计算机网络提纲

[TOC]

1 概述

1.3 互联网的组成

交换方式

  1. 电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
  2. 报文交换:整个报文传送到相邻结点,全部储存下来后查找转发表,转发到下一个结点。
  3. 分组交换:单个分组(整个报文的一部分)传送到相邻结点,储存下来后查找转发表,转发到下一个结点。

1.5 计算机网络的类别

按照网络的作用范围分类

  1. 广域网 (Wide Area Network, WAN),远程网,长距离,高速链路,较大通信容量。
  2. 城域网 (Metropolitan Area Network, MAN),多个局域网,一个城市,常用以太网技术。
  3. 局域网 (Local Area Network, LAN),微型计算机或工作站通过高速通信线路相连。
  4. 个人区域网 (Personal Area Networl, PAN),个人使用的电子设备。

1.6 计算机网络的性能

性能指标

速率

  • 1Mbps = $10^6$ bits / second
  • 1MB = $2^{20}$ Bytes

带宽

  • 某个信号具有的频带宽度(300Hz <-> 3.4 kHz ==> 3.1kHz),频域
  • 某通道传输数据的能力,时域

吞吐量

  • 单位时间内通过某个网络(或信道、接口)的实际数据量

时延

  1. 发送时延(传输时延)(transmission delay):发送数据帧所需的时间,与发送器(网络适配器)有关。$发送时间 = \frac{数据长度}{发送速率}$
  2. 传播时延(propagation delay):电磁波传播花费的时间,与线路有关
  3. 处理时延:收到分组后的计算耗时
  4. 排队时延:输入队列、输出队列耗时

时延带宽积

传播时延 * 带宽。表示线路的“容积”

往返时间

(Round-Trip Time, RTT)最后一帧的传播延迟+ack的传播延迟(假设忽略发送时延)

$有效数据率 = \frac{数据长度}{发送时间+\text{RTT}}$

利用率

  • 信道利用率:信道有数据通过的时间的比率
  • 网络利用率:全网络的信道利用率的加权平均值

设$D_0$为网络空闲时(利用率0%)的时延,$D$表示当前网络时延,当前利用率$U$,则$D = \frac{D_0}{1-U}$。

1.7 计算机网络体系结构

  • 系统网络体系结构 SNA(System Network Architecture)。IBM开发。
  • 开放系统互连基本参考模型 OSI/RM(Open Systems Interconnection Reference Model)ISO制定。

协议

  • 定义:为进行网络中的数据交换而建立的规则、标准或约定

  • 三要素:语法,语义,同步

五层协议的体系结构

无论哪一层传送的数据单元,都笼统地用“分组”或“协议数据单元PDU(Protocol Data Unit)”来表示

应用层

application layer

负责应用进程间交互。 协议定义进程间通信和交互的规则。

如:域名系统DNS;HTTP协议;SMTP协议;

数据单元称为报文(message)

传输层

transport layer

负责为进程间通信提供通用的数据传输服务。

一个主机,多个进程 => 传输层有复用和分用的功能

主要协议:

  • 传输控制协议 TCP(Transmission Control Protocol):面向连接的、可靠的数据传输服务。数据传输的单位是报文段(segment)
  • 用户数据报协议 UDP(User Datagram protocol):无连接的、尽最大努力的数据传输服务(不保证数据传输的可靠性)。数据传输的单位是用户数据报

网络层

network layer

也叫网际层、IP层。

负责为分组交换网上的不同主机提供通信服务。 发送数据时,将运输层的报文段或用户数据报封装成分组进行传送。

在TCP/IP中,网络层使用IP协议,所以分组也叫IP数据报,简称数据报。

网络层要选择合适的路由。

数据链路层

data link layer

将网络层的包组装成帧(framing),在两个相邻结点之间传送帧(frame)。每一帧包括数据和控制信息(如同步信息、地址信息、差错控制等)。

控制信息指出了数据在哪、校验或纠错信息。如果发现差错,可以丢弃这一帧。

物理层

physical layer

数据单位是比特。负责关注电压和电缆的引脚。

电缆、无线信道等物理媒体不是物理层关注的。如何解释0和1的意义也不是物理层负责的。


同层次之间可以屏蔽下层的工作,看作把协议数据单元直接传送给“对等层(peer layers)”。

每一层在协议的控制下为上一层提供服务。要实现本层协议,需要依赖下一层提供的服务。

每一层协议只能看见下一层的服务。 下面的协议对上面的实体是透明的。

OSI把层与层之间交换的数据的单位称为*服务数据单元SDU(Service Data Unit)

计算机网络的协议必须把所有不利的条件都事先估计到,而不能假定一切都是正常的和理想的。

习题

  1. OSI的三个核心概念是服务、接口、协议。
  2. 原数据1000字节,七层体系结构,每层20字节的头。则头占用了$140/1140 = 12%$的带宽。
  3. 最早实现分组交换(packet switched)的网络是ARPAnet
  4. 网络层控制了子网的操作、决定分组的路由。
  5. 应用层有一系列用户常用的协议。
  6. 表示层(presentation)关心数据的语法和语义。
  7. 数据链路层将原始传输设备转换为一个已检错的线路。
  8. 能将信息发往部分机器的广播形式叫多播(multicasting)。
  9. 协议是实体如何进行交流的约定。
  10. 各种协议的实现细节不属于网络体系结构的内容。
  11. 一个计算机网络可以看作一些自主计算机系统的连接。
  12. 发送速率是10Mbps,考虑同轴线缆的传播速度是光速的$\frac{2}{3}$,则1bit的长度是20米。
  13. OSI的失败在于技术、耗时、实现、政策。
  14. 数据包在向上层传递时,头部将会被删除。
  15. 卫星组网,回应请求的延迟按4倍的距离算。
  16. 储存转发传输(Store-and-forward transmission)意味着路由器要储存整个包的内容。
  17. 数据转换和压缩是由表示层完成的。
  18. 接口定义了低层向高层提供的原始操作和服务。

2 物理层

2.1 物理层的基本概念

物理层的主要任务是确定与传输媒体接口相关的一些特性,即:

  1. 机械特性
  2. 电气特性
  3. 功能特性
  4. 过程特性

2.2 数据通信的基础知识

数据通信系统的模型

三大部分:

  1. 源系统(发送端、发送方)
  2. 传输系统(传输网络)
  3. 目的系统(接收端、接收方)

源系统、目的系统可细分为:

  1. 源点(source
  2. 发送器(数字比特流->模拟信号)
  3. 接收器(模拟信号->数字比特流)
  4. 终点(destination)

有关信道的几个概念

从通信的双方信息交互来看,三种基本方式:

  1. 单向通信(单工通信)
  2. 双向交替通信(半双工通信)
  3. 双向同时通信(全双工通信)

“单工”有时也表示双向交替通信。

来自信源的信号称为基带信号(基本频带信号)。信道不能传输低频分量或直流分量,故需要对基带信号进行调制(modulation)

调制的分类:

  1. 基带调制编码):对波形变换,变换后仍是基带信号,仍是数字信号。
  2. 带通调制:使用载波(carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号。载波调制后的信号成为带通信号(仅在一段频率范围内能通过信号)。

常用的编码方式

数字信号常用的编码方式

  1. 不归零制:电平代表01
  2. 归零制:脉冲代表01;位开始边界总是中间电平。
  3. 曼彻斯特编码:位周期中心跳变代表01.
  4. 差分曼彻斯特编码:位中心总是跳变;位开始边界跳变为0,不跳变为1。

自同步:从信号波形本身提取信号时钟频率。

基本的带通调制方法

基本的带通调制方法

  1. 调幅(AM):振幅随数字信号变化。
    2.调频(FM):频率随数字信号变化。
  2. 调相(PM):初相位随数字信号变化。

为了更高的信息传输速率,必须采用多元制的振幅相位混合调制方法。例如正交振幅调制QAM(Quadrature Amplitude Modulation)

信道的极限容量

限制码元在信道上的传输速率的因素有两个:

  1. 信道能通过的频率范围
  2. 信噪比

信道能通过的频率范围

码间串扰:接收端收到的信号波形失去了码元之间的清晰界限。

奈氏准则:算出理想条件下、避免码间串扰,码元的传输速率的上限值。超过此上限,接收端对码元的识别成为不可能。

信道的频带越宽,能通过的信号高频分量越多,就可用更高速率传送码元而不出现码间串扰。

信噪比

信噪比就是信号的平均功率和噪声的平均功率之比,记为$S/N$。

$$
\text{信噪比(dB)} = 10 \log_{10}(S/N) \text{(dB)}
$$

香农公式

信道的极限信息传输速率$C$:

$$
C = W \log_2(1 + S/N) \text{(bit/s)}
$$

$W$是信道的带宽(Hz),S是信道内所传信号的平均功率,N是信道内高斯噪声功率。

只要信息传输速率低于信道的极限信息传输速率,就一定存在某种办法来实现无差错的传输。

要提高信息的传输速率,还可用编码的方法让每一个码元携带更多比特的信息量。

2.3 物理层下面的传输媒体

传输媒体(传输介质,传输媒介)是发送器和接收器之间的物理通路。可分为两大类:引导型(guided)非引导型

引导型沿着固体媒体传播;非引导型指向自由空间,无线传输。

引导型传输媒体

  1. 双绞线(twisted pairs):最常用,便宜,性能不错。距离太长时需要放大器(模拟传输)或中继器(数字传输),加粗导线。屏蔽双绞线(STP,Shielded Twisted Pair)无屏蔽双绞线(UTP,Unshielded Twisted Pair)
  2. 同轴电缆(coaxial cable)
  3. 光缆(fiber cable)

非引导型传输媒体

短波(高频)通信:靠电离层的反射;多径效应,质量较差,低速传输。

微波通信:

  1. 地面微波接力通信
  2. 卫星通信

信道复用技术

  1. 频分复用(FDM, Frequency Division Multiplexing):用户始终占用不同频带
  2. 时分复用(TDM):更有利于数字信号的传输。利用率不高,若用户太多则时隙太短。
  3. 统计时分复用(STDM, Statistic):保存用户信息头,有额外花销。
  4. 波分复用(WDM, Wavelength Division Multiplexing):光的频分复用。光载波频率很高,因此常用波长。
  5. 密集波分复用(DWDN, Dense):一根光纤上复用几十或更多路。
  6. 码分复用(CDM, Code),码分多址CDMA(Code Division Multple Access):频谱类似于白噪声,不易被发现;抗干扰能力强。

2.5 数字传输系统

2.6 宽带接入技术

ADSL技术

非对称数字用户线ADSL(Asymmetric Digital Subscriber Line)技术是用数字技术对线有的模拟电话用户线进行改造,使其承载宽带数字业务。

ADSL传输距离取决于数据率和用户线的线径。实际最高数据传输速率还与用户线上的信噪比密切相关。

离散多音调 DMT(Discrete Multi-Tone)调制技术:频分复用(24kHz - 1.1MHz)划分为许多子信道。相当于许多的调制解调器并行地传送数据。

ADSL自适应地调整可用频率以避开干扰,可见不能保证固定的数据率

习题

  1. ICMP属于网络层
  2. SDLC, PPP, HDLC属于数据链路层
  3. 红外线在光纤中衰减。现有波段是0.85,1.30,1.55(微米,e-6)
  4. 电路交换不使用储存转发传输技术。
  5. 10base5,一种以太网标准,该标准用于使用粗同轴电缆(Thick coaxialcable)、速度为10Mbps的基带局域网络,基于曼彻斯特编码。在总线型网络中,最远传输距离为500米。
  6. 波特率(baud rate)为1000的信道,若其电平级数为16(2^4),则数据率(data rate)可达4Kbps。
  7. 影响数据传输率的因素有信噪比、频率带宽、调制效率(Modulation rate)。不受传播速率影响。
  8. 频分复用时,最左右两侧可不设置保护频段。
  9. 电话系统结构
  10. 光纤具有较好的抗干扰性
  11. 二元信号,3KHz信道,信噪比S/N 31,最大传输数据率为6Kbps。(当做无噪声信道计算)
  12. E1载波,2.048Mbps速率的PCM载波,同步时分复用,30个话音信道(64K)和两个控制信道(16K)。 开始和中间各有8位分别做同步和信令;30路8位数据;组成一帧,256位,每一帧125us时间(每秒8000帧)。 开销占比2/32 = 6.25%, 有效数据率1.92Mbps。
  13. T1载波,24个信道(每个8bit),外加1bit帧同步数据,共193bit每帧。每个8bit中有1bit是控制数据。对一路语音通道,数据比特率是7b/125us=56kb/s。总的比特率193b/125us=1.544Mb/s。开销占比(1*24+1)/193 = 13%。
  14. 信道最大传输速率
  15. 物理层关心在一个通信信道上传输纯比特。

3 数据链路层

主要信道类型:

  1. 点对点信道
  2. 广播信道

点对点信道的数据链路层

数据链路和帧

数据链路 = 物理链路 + 通信协议

常用网络适配器实现这些硬件和软件,适配器也含有物理层的功能。

网络层交下来的数据构成——数据链路层的协议数据单元。 帧上交到网络层组成IP数据包(数据包、分组、包)。

点对点信道在数据链路层通信时的主要步骤:

  1. 网络层(IP数据报)->数据链路层
  2. 数据链路层添加首部尾部,成帧
  3. 帧发送到另一结点
  4. 接受者的数据链路层检错(有错则丢弃帧),提取IP数据报->网络层

三个基本问题

  1. 封装成帧
  2. 透明传输
  3. 差错检测

封装成帧:

链路层协议规定了最大传输单元(MTU, Maximum Transfer Unit),表示帧能容纳的最大数据(不计首部和尾部)。

如果数据是ASCII编码的文本文件,帧头标记是SOH(Start Of Header, 0x01),帧尾标记是EOT(End Of Transmission,0x04)

透明传输:

若文本无需处理(不会出现SOH和EOT),则传输是透明传输

若文本无法透明传输,可以用字节填充(byte stuffing)字符填充(character stuffing)。在特殊字符前插入转义字符ESC(0x1B)”。例如文本含"0x1B",就传输 "0x1B 0x1B"。

数据链路层还原IP数据报时需要去除转义信息。

差错检测:

误码率(BER, Bit Error Rate)指单位时间内错误比特的比率。

循环冗余检验(CRC, Cyclic Redundancy)

假设传送数据$M$,事先约定除数$P\text(n+1位二进制)$,做异或取模$R\text{(n位二进制)} = 2^nM \mod P$。

$R$作为帧检验序列(FCS, Frame Check Sequence),也放在数据末尾。

接收端直接做异或取模,若无差错,余数为0。

用多项式表示,除数$P=1100=X^3 + X^2 + 1$。

现在可以近似认为“凡是接收端数据链路层接收的帧均无差错”。但尚未考虑帧丢失、重复、失序等问题,即非可靠传输

OSI要求可靠传输,因此有CRC,帧编号、确认重传机制。但现在的数据链路层不使用确认和重传,而将差错交给上层协议(如运输层TCP)来处理。

点对点协议PPP

PPP协议是用户和ISP通信时使用的数据链路层协议。

PPP协议的特点

  1. 简单。将繁杂任务丢给TCP/IP。不纠错,无序号,无流量控制。仅做CRC检验。
  2. 封装成帧。使用帧定界符。
  3. 透明性。规避文本出现的帧定界符。
  4. 支持多种网络层协议,在同一物理链路上。
  5. 支持多种链路。
  6. 差错检测。立即丢弃错误帧。
  7. 检测连接状态。及时发现链路故障或恢复。
  8. 最大传送单元MTU的标准默认值。
  9. 网络层地址协商。使通信的两个网络层知道或配置彼此的网络层地址。
  10. 数据压缩协商。

PPP不需要的功能:

  1. 纠错
  2. 流量控制
  3. 序号(PPP不是可靠传输协议)
  4. 多点线路
  5. 半双工或单工链路(PPP仅支持全双工链路)

PPP协议的组成:

  1. IP数据包封装到串行链路的方法。PPP既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。
  2. 链路控制协议LCP(Link Control Protocol)。建立、配置和测试数据链路连接。
  3. 网络控制协议NCP(Network Control Protocol)。用来支持不同的网络层协议。

PPP协议的帧格式

PPP协议的帧格式

当“协议”为0x0021就是IP数据包,
为0xC021就是LCP数据,
为0x8021就是网络层的控制数据。

字节填充:

异步:

  1. 0x7E -> (0x7D, 0x5E)
  2. 0x7D -> (0x7D, 0x5D)
  3. ASCII控制字符(小于0x20) -> (0x7D 0x??)

零比特填充: 用于SONET/SDH链路,同步传输
信息字段中5个连续的1后插入一个0。有效避开了0x7E。

PPP协议的工作状态

PPP协议的状态图

习题

  1. selective repeat protocol 最大接受窗口为$2^M-1$
  2. Go-Back-N 最大接收窗口是$2^{M-1}$(默认接收窗口大小 = 发送窗口大小)
  3. CRC异或取模。别忘了先左移n位
  4. 纠错需要距离为2d+1比特的编码
  5. 检测需要距离为d+1比特的编码
  6. 数据链路层的功能:为网络层提供明确的服务接口;调节数据流,以帮助慢速接收者不被淹没。
  7. 处理传输错误
  8. PPP提供了NCP,LCP和帧的封装方法
  9. ???PPP提供了协商网络层选项的方法(而不是SLIP, BOOTP, HDLC)
  10. PPP, HDLC, SDLC(同步) 属于数据链路层。ICMP属于网络层。
  11. PPP帧包括flags,address,control,protocol,payload,checksum。