计算机网络提纲
[TOC]
1 概述
1.3 互联网的组成
交换方式
- 电路交换:整个报文的比特流连续地从源点直达终点,好像在一个管道中传送。
- 报文交换:整个报文传送到相邻结点,全部储存下来后查找转发表,转发到下一个结点。
- 分组交换:单个分组(整个报文的一部分)传送到相邻结点,储存下来后查找转发表,转发到下一个结点。
1.5 计算机网络的类别
按照网络的作用范围分类
- 广域网 (Wide Area Network, WAN),远程网,长距离,高速链路,较大通信容量。
- 城域网 (Metropolitan Area Network, MAN),多个局域网,一个城市,常用以太网技术。
- 局域网 (Local Area Network, LAN),微型计算机或工作站通过高速通信线路相连。
- 个人区域网 (Personal Area Networl, PAN),个人使用的电子设备。
1.6 计算机网络的性能
性能指标
速率
- 1Mbps = $10^6$ bits / second
- 1MB = $2^{20}$ Bytes
带宽
- 某个信号具有的频带宽度(300Hz <-> 3.4 kHz ==> 3.1kHz),频域
- 某通道传输数据的能力,时域
吞吐量
- 单位时间内通过某个网络(或信道、接口)的实际数据量
时延
- 发送时延(传输时延)(transmission delay):发送数据帧所需的时间,与发送器(网络适配器)有关。$发送时间 = \frac{数据长度}{发送速率}$
- 传播时延(propagation delay):电磁波传播花费的时间,与线路有关
- 处理时延:收到分组后的计算耗时
- 排队时延:输入队列、输出队列耗时
时延带宽积
传播时延 * 带宽。表示线路的“容积”
往返时间
(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)
计算机网络的协议必须把所有不利的条件都事先估计到,而不能假定一切都是正常的和理想的。
习题
- OSI的三个核心概念是服务、接口、协议。
- 原数据1000字节,七层体系结构,每层20字节的头。则头占用了$140/1140 = 12%$的带宽。
- 最早实现分组交换(packet switched)的网络是ARPAnet。
- 网络层控制了子网的操作、决定分组的路由。
- 应用层有一系列用户常用的协议。
- 表示层(presentation)关心数据的语法和语义。
- 数据链路层将原始传输设备转换为一个已检错的线路。
- 能将信息发往部分机器的广播形式叫多播(multicasting)。
- 协议是实体如何进行交流的约定。
- 各种协议的实现细节不属于网络体系结构的内容。
- 一个计算机网络可以看作一些自主计算机系统的连接。
- 发送速率是10Mbps,考虑同轴线缆的传播速度是光速的$\frac{2}{3}$,则1bit的长度是20米。
- OSI的失败在于技术、耗时、实现、政策。
- 数据包在向上层传递时,头部将会被删除。
- 卫星组网,回应请求的延迟按4倍的距离算。
- 储存转发传输(Store-and-forward transmission)意味着路由器要储存整个包的内容。
- 数据转换和压缩是由表示层完成的。
- 接口定义了低层向高层提供的原始操作和服务。
2 物理层
2.1 物理层的基本概念
物理层的主要任务是确定与传输媒体接口相关的一些特性,即:
- 机械特性
- 电气特性
- 功能特性
- 过程特性
2.2 数据通信的基础知识
数据通信系统的模型
三大部分:
- 源系统(发送端、发送方)
- 传输系统(传输网络)
- 目的系统(接收端、接收方)
源系统、目的系统可细分为:
- 源点(source)
- 发送器(数字比特流->模拟信号)
- 接收器(模拟信号->数字比特流)
- 终点(destination)
有关信道的几个概念
从通信的双方信息交互来看,三种基本方式:
- 单向通信(单工通信)
- 双向交替通信(半双工通信)
- 双向同时通信(全双工通信)
“单工”有时也表示双向交替通信。
来自信源的信号称为基带信号(基本频带信号)。信道不能传输低频分量或直流分量,故需要对基带信号进行调制(modulation)。
调制的分类:
- 基带调制(编码):对波形变换,变换后仍是基带信号,仍是数字信号。
- 带通调制:使用载波(carrier)进行调制,把基带信号的频率范围搬移到较高的频段,并转换为模拟信号。载波调制后的信号成为带通信号(仅在一段频率范围内能通过信号)。
常用的编码方式
- 不归零制:电平代表01
- 归零制:脉冲代表01;位开始边界总是中间电平。
- 曼彻斯特编码:位周期中心跳变代表01.
- 差分曼彻斯特编码:位中心总是跳变;位开始边界跳变为0,不跳变为1。
自同步:从信号波形本身提取信号时钟频率。
基本的带通调制方法
- 调幅(AM):振幅随数字信号变化。
2.调频(FM):频率随数字信号变化。 - 调相(PM):初相位随数字信号变化。
为了更高的信息传输速率,必须采用多元制的振幅相位混合调制方法。例如正交振幅调制QAM(Quadrature Amplitude Modulation)。
信道的极限容量
限制码元在信道上的传输速率的因素有两个:
- 信道能通过的频率范围
- 信噪比
信道能通过的频率范围
码间串扰:接收端收到的信号波形失去了码元之间的清晰界限。
奈氏准则:算出理想条件下、避免码间串扰,码元的传输速率的上限值。超过此上限,接收端对码元的识别成为不可能。
信道的频带越宽,能通过的信号高频分量越多,就可用更高速率传送码元而不出现码间串扰。
信噪比
信噪比就是信号的平均功率和噪声的平均功率之比,记为$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),非引导型。
引导型沿着固体媒体传播;非引导型指向自由空间,无线传输。
引导型传输媒体
- 双绞线(twisted pairs):最常用,便宜,性能不错。距离太长时需要放大器(模拟传输)或中继器(数字传输),加粗导线。屏蔽双绞线(STP,Shielded Twisted Pair);无屏蔽双绞线(UTP,Unshielded Twisted Pair)。
- 同轴电缆(coaxial cable)
- 光缆(fiber cable)
非引导型传输媒体
短波(高频)通信:靠电离层的反射;多径效应,质量较差,低速传输。
微波通信:
- 地面微波接力通信
- 卫星通信
信道复用技术
- 频分复用(FDM, Frequency Division Multiplexing):用户始终占用不同频带
- 时分复用(TDM):更有利于数字信号的传输。利用率不高,若用户太多则时隙太短。
- 统计时分复用(STDM, Statistic):保存用户信息头,有额外花销。
- 波分复用(WDM, Wavelength Division Multiplexing):光的频分复用。光载波频率很高,因此常用波长。
- 密集波分复用(DWDN, Dense):一根光纤上复用几十或更多路。
- 码分复用(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自适应地调整可用频率以避开干扰,可见不能保证固定的数据率
习题
- ICMP属于网络层
- SDLC, PPP, HDLC属于数据链路层
- 红外线在光纤中衰减。现有波段是0.85,1.30,1.55(微米,e-6)
- 电路交换不使用储存转发传输技术。
- 10base5,一种以太网标准,该标准用于使用粗同轴电缆(Thick coaxialcable)、速度为10Mbps的基带局域网络,基于曼彻斯特编码。在总线型网络中,最远传输距离为500米。
- 波特率(baud rate)为1000的信道,若其电平级数为16(2^4),则数据率(data rate)可达4Kbps。
- 影响数据传输率的因素有信噪比、频率带宽、调制效率(Modulation rate)。不受传播速率影响。
- 频分复用时,最左右两侧可不设置保护频段。
- 光纤具有较好的抗干扰性
- 二元信号,3KHz信道,信噪比S/N 31,最大传输数据率为6Kbps。(当做无噪声信道计算)
- E1载波,2.048Mbps速率的PCM载波,同步时分复用,30个话音信道(64K)和两个控制信道(16K)。 开始和中间各有8位分别做同步和信令;30路8位数据;组成一帧,256位,每一帧125us时间(每秒8000帧)。 开销占比2/32 = 6.25%, 有效数据率1.92Mbps。
- T1载波,24个信道(每个8bit),外加1bit帧同步数据,共193bit每帧。每个8bit中有1bit是控制数据。对一路语音通道,数据比特率是7b/125us=56kb/s。总的比特率193b/125us=1.544Mb/s。开销占比(1*24+1)/193 = 13%。
- 物理层关心在一个通信信道上传输纯比特。
3 数据链路层
主要信道类型:
- 点对点信道
- 广播信道
点对点信道的数据链路层
数据链路和帧
数据链路 = 物理链路 + 通信协议
常用网络适配器实现这些硬件和软件,适配器也含有物理层的功能。
网络层交下来的数据构成帧——数据链路层的协议数据单元。 帧上交到网络层组成IP数据包(数据包、分组、包)。
点对点信道在数据链路层通信时的主要步骤:
- 网络层(IP数据报)->数据链路层
- 数据链路层添加首部尾部,成帧
- 帧发送到另一结点
- 接受者的数据链路层检错(有错则丢弃帧),提取IP数据报->网络层
三个基本问题
- 封装成帧
- 透明传输
- 差错检测
封装成帧:
链路层协议规定了最大传输单元(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协议的特点
- 简单。将繁杂任务丢给TCP/IP。不纠错,无序号,无流量控制。仅做CRC检验。
- 封装成帧。使用帧定界符。
- 透明性。规避文本出现的帧定界符。
- 支持多种网络层协议,在同一物理链路上。
- 支持多种链路。
- 差错检测。立即丢弃错误帧。
- 检测连接状态。及时发现链路故障或恢复。
- 最大传送单元MTU的标准默认值。
- 网络层地址协商。使通信的两个网络层知道或配置彼此的网络层地址。
- 数据压缩协商。
PPP不需要的功能:
- 纠错
- 流量控制
- 序号(PPP不是可靠传输协议)
- 多点线路
- 半双工或单工链路(PPP仅支持全双工链路)
PPP协议的组成:
- IP数据包封装到串行链路的方法。PPP既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。
- 链路控制协议LCP(Link Control Protocol)。建立、配置和测试数据链路连接。
- 网络控制协议NCP(Network Control Protocol)。用来支持不同的网络层协议。
PPP协议的帧格式
当“协议”为0x0021就是IP数据包,
为0xC021就是LCP数据,
为0x8021就是网络层的控制数据。
字节填充:
异步:
- 0x7E -> (0x7D, 0x5E)
- 0x7D -> (0x7D, 0x5D)
- ASCII控制字符(小于0x20) -> (0x7D 0x??)
零比特填充: 用于SONET/SDH链路,同步传输
信息字段中5个连续的1后插入一个0。有效避开了0x7E。
PPP协议的工作状态
习题
- selective repeat protocol 最大接受窗口为$2^M-1$
- Go-Back-N 最大接收窗口是$2^{M-1}$(默认接收窗口大小 = 发送窗口大小)
- CRC异或取模。别忘了先左移n位
- 纠错需要距离为2d+1比特的编码
- 检测需要距离为d+1比特的编码
- 数据链路层的功能:为网络层提供明确的服务接口;调节数据流,以帮助慢速接收者不被淹没。
- 处理传输错误
- PPP提供了NCP,LCP和帧的封装方法
- ???PPP提供了协商网络层选项的方法(而不是SLIP, BOOTP, HDLC)
- PPP, HDLC, SDLC(同步) 属于数据链路层。ICMP属于网络层。
- PPP帧包括flags,address,control,protocol,payload,checksum。