数据链路层的功能
数据链路层在物理层提供服务的基础上向网络层提供服务,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路
数据链路层的基本概念
结点:主机、路由器
链路:网络中两个结点之间的物理通道,分为有线链路、无线链路
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路
帧:链路层的协议数据单元,封装网络层数据报
电路接通:物理连接已经能够传送比特流
数据链路接通:在物理连接的基础上,建立数据链路连接,使具有数据链路层的功能
为网络层提供服务
数据链路层通常可为网络层提供如下服务:
无确认的无连接服务:发送数据帧时不需先建立链路连接,收到数据帧时不需发回确认
对丢失的帧,交给上层处理,适用于实时通信或误码率较低的通信信道,如以太网
有确认的无连接服务:发送数据帧时不需先建立链路连接,但收到数据帧时必须发回确认
源机器在所规定的时间内未收到确定信号时,就重传丢失的帧,适用于误码率较高的通信信道,如无线通信
有确认的面向连接服务:帧传输过程分为:建立数据链路、传输帧、释放数据链路
收到每一帧都要确认,收到确认后才能发送下一帧,可靠性最高,适用于通信要求(可靠性、实时性)较高的场合
注意:有连接就一定要有确认,即不存在无确认的面向连接的服务
链路管理
数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务
链路两端的结点要进行通信:
- 首先确认对方已处于就绪状态
- 交换一些必要的信息以对帧序号初始化
- 建立连接,在传输过程中要能维持连接,在传输完毕后要释放连接
在多个站点共享同一物理信道的情况下,如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴
帧定界、帧同步与透明传输
两台主机之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送
将一段数据的前后分别添加首部和尾部,就构成了帧
帧定界:首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的界限
帧同步:接收方应能从接收到的二进制比特流中区分出帧的起始与终止
在 HDLC 协议中,用标识位 F 来标识帧的开始和结束,通信过程中,第一次看见 F 表示开始,第二次表示结束
为了提高帧的传输效率,应使帧的数据部分尽量的大,但在协议中规定了帧的数据部分的长度上限(最大传送单元 MTU)

透明传输:采取有效措施防止发送信息中出现标志,导致被误以为结束,即无论数据是什么都可以正常传输
流量控制
为防止收发双方的工作速率和缓存空间的差异,导致发送速度大于接受速度,而造成的丢包现象
因此,要限制发送方的数据流量,使其发送速率不超过接收方的接收能力
需要有一些规则使发送方知道在什么时候可以发送下一帧,什么时候必须暂停发送直到收到某种反馈信息后继续发送
流量控制并不是数据链路层特有的功能,许多高层协议中也提供此功能,只不过控制的对象不同而已
对于数据链路层,控制的是相邻两结点之间数据链路上的流量,即对帧率进行控制

差错控制
差错控制:让发送方确定接收方是否正确收到其发送的数据
帧在传输中可能会出现的错误分为位错和帧错;
位错:帧中某些位出现差错
通常采用循环冗余校验方式发现位错,通过自动重传请求
ARQ方式来重传出错的帧:- 让发送方将要发送的数据帧附加一定的 CRC 冗余检错码一并发送
- 接收方根据检错码对数据帧进行错误检测,若发现错误则丢弃,发送方超时重传该数据帧
这种差错控制方法称为
ARQ法,只需返回很少的控制信息来进行确认帧错:帧的丢失、重复或失序等错误
在数据链路层引入定时器和编号机制:定时器过时时没确认就重传,保证能到;编号,保证只到一次及有序
组帧
数据链路层把比特组合成帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率
组帧:发送方按规则把网络层的分组封装成帧,以便能正确地接收并检查帧,解决帧定界、帧同步、透明传输等问题
注意:组帧时要加首部,尾部;因为在网络中信息是以帧为最小单位进行传输的,所以要清楚帧从哪里开始到哪里结束
- 而网络层的报文不会出现位错(帧解决了),就不会出现字符计数法的致命问题
由于字节计数法脆弱、字符填充法实现上的复杂性与不兼容性,目前常用的是比特填充法和违规编码法
字符计数法
字符计数法是指在帧头部使用一个计数字段来标明帧内字符数(该计数字段包含自己)
目的结点的数据链路层收到字节计数值时,就知道后面跟随的字节数,从而可以确定帧结束的位置

计数字段出错时(位错),会失去了帧边界划分的依据,导致收发双方将失去同步,从而造成灾难性后果
字符填充的首尾定界符法
字符填充法使用特定字符来定界一帧的开始与结束
控制字符 SOH 放在帧的最前面,表示帧的首部开始,控制字符 EOT 表示帧的结束
使用在特殊字符前填充转义字符 ESC 来避免信息位中的特殊字符(包括 ESC)被误判,实现数据的透明传输
接收方收到转义字符后,就知道其后面紧跟的是数据信息,而不是控制信息

零比特填充的首尾标志法
零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特
它使用一个特定的比特模式,即 01111110 来标志一帧的开始和结束
为了防止信息位中的 01111110 被误判为帧的首尾标志,只要遇到 5 个连续的 1 时,在其后插入一个 0
而接收方做该过程的逆操作,即每收到 5 个连续的 1 时,自动删除后面紧跟的 0,恢复原信息

零比特填充法很容易由硬件来实现,性能优于字符填充法
违规编码法
违规编码法采用违规的编码来表示帧的首和尾
如曼彻斯特编码的违规编码为:高-高电平对和低-低电平对
借用这些违规编码序列来定界帧的起始和终止,局域网 IEEE 802 标准就采用了这种方法
违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余编码的特殊编码环境
差错控制
数据的传输差错由噪声引起的,通信信道的噪声分为两类:
- 热噪声:通道固有的噪声,引起的差错是随机差错,通过提高信噪比来降低
- 冲击噪声:由外界电磁干扰引起的噪声,引起的差错是突发差错,是引起差错的主要原因
通常利用编码技术进行比特差错控制,主要有两类:
ARQ方式:检测出差错时,通知发送端重发,使用检错编码实现FEC方式:检测出差错时,进行纠正,使用纠错编码实现
注意:具体的算法和思路在机组里面有,这里仅作补充说明
检错编码
发送前在有效数据添加冗余位,接收端根据一定的规则来判断是否出错,常见的检错编码有奇偶校验码和循环冗余码
通过循环冗余码 CRC 的检错技术,实现接收端数据链路层接收的帧(收下)都是在传输过程中没有产生差错的帧
注意:CRC 是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到帧出错则直接丢弃
CRC 可以使用硬件来完成,所以其校验速度很快
纠错编码
通过在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串
最常见的纠错编码是海明码,正常的海明码可以纠正一位错误,检测两位错误
- 机组的理论:L - 1 = D + C 且
即编码最小码距 L 越大,其检测错误的位数 D 越大,纠正错误的位数 C 也越大 - 理论推出:根据
,令 D = C 得 L = 2C + 1时最大纠错位数为 C;令 C = 0 得最大检错 D = L - 1
流量控制与可靠传输机制
流量控制、可靠传输
流量控制:对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧
在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载
流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种停止-等待协议和滑动窗口协议
停止-等待流量控制基本原理
发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧
接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧
如果接收方不反馈应答信号,那么发送方必须一直等待
每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低
滑动窗口流量控制基本原理
发送窗口:发送方维持的一组连续的允许发送的帧的序号;接收窗口:接收方维持的一组连续的允许接收帧的序号
发送窗口的大小
发送端每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧时,发送方就会停止发送,直到收到接收方发送的确认帧使窗口移动,窗口内有可以发送的帧后,才开始继续发送

接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧
接收端收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接收窗口之外,则一律丢弃

滑动窗口有以下重要特性:
- 接收窗口向前滑动(发送了确认帧)时,发送窗口才有可能(收到确认帧后才)向前滑动
- 从滑动窗口的概念看,三个协议只在发送窗口大小与接收窗口大小上有所差别:
- 停止-等待协议:发送窗口大小 = 1,接收窗口大小 = 1
- 后退 N 帧协议:发送窗口大小 > 1,接收窗口大小 = 1
- 选择重传协议:发送窗口大小 > 1,接收窗口大小 > 1
- 接收窗口的大小为 1 时,可保证帧的有序接收
- 数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的
可靠传输机制
数据链路层的可靠传输使用确认和超时重传两种机制来完成:
确认:一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收
有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认
超时重传:发送方在发送数据帧后就开启一个计时器,超时没确认,就重新发送该数据帧,直到收到确认
自动重传请求 ARQ:接收方请求发送方重传出错的数据帧来恢复出错的帧,用于处理信道所带来的差错
传统自动重传请求分为三种:
- 停止-等待(Stop-and-Wait)ARQ
- 后退 N 帧(Go-Back-N)ARQ
- 选择性重传(Selective Repeat)ARQ
后两种是滑动窗口 + 请求重发,当窗口尺寸足够大时,帧在线路上可以连续地流动,又称其为连续 ARQ 协议
注意:在数据链路层中流量控制机制和可靠传输机制是交织在一起的
注意:实际中链路层很少出差错了,故很少采用可靠传输(不同于 OSI 的思路),大多数教材放在提供可靠传输的传输层中讨论,这里根据 408 考纲,就放在数据链路层
单帧滑动窗口与停止-等待协议
源站发送单个帧后等待确认,在目的站的回答到达源站之前,源站不能发送其他的数据帧
在停止-等待协议中,除数据帧丢失外,还可能出现以下两种差错:
数据帧被破坏:检出后将该帧丢弃,源站装备了计时器,在一个帧发送之后
如果在计时器计满时仍未收到确认,那么再次发送相同的帧,如此重复,直到帧无误到达
确认帧被破坏:发送方收不到确认帧,会重传数据帧
接收方收到同样的数据帧时会丢弃该帧,并重传一个该帧对应的确认帧,总窗口为 2 故用
1bit编号
为了超时重发和判定重复帧的需要,发送方和接收方都须设置一个帧缓冲区
发送端在发送完数据帧时,在缓存中保留此数据帧的副本,出差错时重传,收到确认帧时清除副本
注意:理想情况下确认帧可以不用编号,但若超时的时候确认帧在半路,重发后会出问题

多帧滑动窗口与后退 N 帧协议 GBN
在后退 N 帧式 ARQ 中,发送方可以连续发送帧,出错时重发最近确认帧之后的所有未被确认的帧
如发送方发现某帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,就重传该出错帧及随后的 N 个帧
为了减少开销,GBN 协议还规定接收端可以在连续收到好几个正确的数据帧后,对最后一个数据帧发确认信息,或者可在自己有数据要发送时将对以前正确收到的帧加以捎带确认
ACKn 表示对第 n 号帧的确认,表示接收方已正确收到第 n 号帧及以前的所有帧,下一次期望收到第 n + 1 号帧或 0 号帧
接收端只按序接收数据帧,差错帧后面的帧即使都正确接收了,也要将这些帧丢弃
为了防止已发送的最后确认帧丢失,应重复发送已发送的最后一个确认帧
后退 N 帧协议的接收窗口为 1,可以保证按序接收数据帧;n 比特的帧编号时,发送窗口的尺寸 W 应满足
- 当 W = n = 8 时,发送端发送八个包,接受端都接受了并发送确认,但确认帧在路上都丢失了
- 这时发送方超时重发,接受放就会当作新的帧来处理,而不是当作重复帧
优点:连续发送数据帧而提高了信道的利用率;缺点:重传时又必须把原来已传送正确的数据帧进行重传
若信道的传输质量很差导致误码率较大时,后退 N 帧协议不一定优于停止-等待协议

多帧滑动窗口与选择重传协议 SR
通过加大接受窗口,来收下发送序号不连续但仍处在接收窗口中的那些数据帧,这时就可以只重传需要重传的数据帧
但上交给网络层的时候还是有序的上交的,因此收到头部的帧才滑动窗口,这就是选择重传 ARQ 协议
SR 中,每个发送缓冲区对应一个计时器,超时就重传,此外,接收方怀疑帧出错时,就发送否定帧 NAK 来指定要重传的帧
若采用 n 比特对帧编号,为了保证接收方向前移动窗口后,新窗口序号与旧窗口序号没有重叠部分,需要满足条件:
- 接收窗口
+ 发送窗口 ,道理和 GBN那里相同 - 接收窗口
显然不应超过发送窗口 ,可得
在 SR 协议中,一般接收窗口的大小和发送窗口的大小是相同的,即

选择重传协议需要在接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧
接收端不能接收窗口范围以外的序号的帧,因此所需缓冲区的数目等于窗口的大小,而不是序号数目
通道利用率
信道的效率,也称信道利用率:发送方在一个发送周期的时间内,有效地发送数据所需要的时间占整个发送周期的比率
简单来说就是,通道利用率 = 发送时间 / 发送周期,而发送周期 = (发送时间 + 各种延迟)
信道吞吐率 = 信道利用率 × 发送方的发送速率
选择题:多窗口通道利用率最高:发送窗口 = 发送周期 / 发送时间;发送窗口发满时,第一帧的确认帧到达,可以继续发
选择题:多窗口通道大于利用率:发送时间 × 帧数 / 发送周期 ≥ 利用率,上面利用率最高是 1,限制窗口大小以减少利用率
介质访问控制
主要任务:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输
介质访问控制 Medium Access Control,MAC 子层,属于数据链路层的一个子层:决定广播信道中信道分配的协议
结点 A、B、C、D、E 共享广播信道,当 A 和 B 都要与 C 发生通信时,由于共用一条信道,通信会因为互相干扰而失败
介质访问控制的内容是,采取一定的措施,使得两对结点之间的通信不会发生互相干扰的情况

介质访问控制方法:信道划分介质访问控制(静态)、随机访问介质访问控制(动态)、轮询访问介质访问控制(动态)
信道划分介质访问控制
将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备
多路复用:传输介质的带宽超过传输单个信号所需的带宽时,在一条介质上同时携带多个传输信号来提高传输系统的利用率
多路复用技术可把多个输入通道的信息整合到一个复用通道中,在接收端把收到的信息分离出来并传送到对应的输出通道
信道划分的实质就是把广播信道逻辑上转变为点对点信道

频分多路复用 FDM
频分多路复用是一种将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术
在物理信道的可用带宽超过单个原始信号所需带宽时,将物理信道的总带宽分割成若干与传输单个信号带宽相同的子信道,每个子信道传输一种信号,这就是频分多路复用;注意:子信道是逻辑的,带宽指的是赫兹

每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽
在实际应用中,为了防止子信道之间的干扰,相邻信道之间需要加入保护频带

优点:充分利用了传输介质的带宽,系统效率较高;由于技术比较成熟,实现也较容易;缺点:不能用于数字传输
时分多路复用 TDM
时分多路复用是将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用,实现一条物理信道上传输多个信号

- 某个时刻来看:时分多路复用信道上传送的仅是某一对设备之间的信号
- 某段时间来看:传送的是按时间分割的多路复用信号
但由于计算机数据的突发性,一个用户对已经分配到的子信道的利用率一般不高
统计时分多路复用 STDM,异步时分多路复用:TDM 的一种改进,采用 STDM 帧,它按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片,因此可以提高线路的利用率;它会在帧头添加信息表示自己是谁发过来的

例如线路传输速率为 8000b/s,4 个用户:TDM 方式,用户的最高速率为 2000b/s;STDM 方式,用户的最高速率 8000b/s
波分多路复用 WDM
波分多路复用即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来
由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用

码分多路复用 CDM
码分多路复用是采用不同的编码来区分各路原始信号,它既共享信道的频率,又共享时间
例子:假设 A 站要向 C 站运输黄豆,B 站要向 C 站运输绿豆,A 与 C、B 与 C 之间有一条公共的道路,类比为广播信道
- 频分复用:公共道路被划分为两个车道,两类车可以同时行走,但只分到了公共车道的一半,只共享了时间
- 在时分复:先让 A 到 C 的车走一趟,再让 B 到 C 的车走一趟,只共享了空间
- 码分复用:黄豆与绿豆放在同一辆车上运送,到达 C 后,把车上的黄豆和绿豆分开,既共享了空间,也共享了时间

也叫码分多址 Code Division Multiple Access,CDMA,原理:
- 每个比特时间再划分成 m 个短的时间槽,称为码片(各个站点的码片序列相互正交),通常 m 的值是 64 或 128
- 每个站点被指派一个唯一的 m 位码片序列,发送 1 时,站点发送它的码片序列;发送 0 时,站点发送该码片序列的反码
- 当两个或多个站点同时发送时,各路数据在信道中线性相加
- 到达目的后,将数据分离,使用每个站点的码片与接受的信息进行规格化内积,结果为 1 发送 1;为 -1 发送 0;为 0 没发
举例说明 CDMA 的原理,站点 A 和站点 B 同时向站点 C 发送数据,和站点 C 接受数据后的分离:
站点 A 的码片序列被指派为 00011011,按惯例将码片中的 0 写为 -1,将 1 写为 +1,A 码片是 -1-1-1+1+1-1+1+1
令 S 表示 A 站、T 表示 B 站码片向量,两个不同站的码片序列正交的规格化内积为 0:
一个码片和自身的规格化内积都是 1,和反码的的规格化内积是 -1,如:
令 B 站的向量 T 为 -1-1+1-1+1+1+1-1,其反码为 +1+1-1+1-1-1-1+1
当 A 站向 C 站发送数据 1 时,发送了 -1-1-1+1+1-1+1+1 当 B 站向 C 站发送数据 0 时,就发送了 +1+1-1+1-1-1-1+1
两个向量到了公共信道上就进行叠加,即线性相加,得到 S - T = (0 0 -2 2 0-2 0 2)
到达 C 站后,使用叠加原理进行数据分离,如要取 A 站的数据
优点:频谱利用率高、抗干扰能力强、保密性强、语音质量好等
可以减少投资和降低运行成本,主要用于无线通信系统,特别是移动通信系统
随机访问介质访问控制
在随机访问协议(争用型协议)中,用户能根据自己的意愿随机地发送信息,占用信道全部速率
在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突,导致所有冲突用户的发送均以失败告终
为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过
这些规则就是随机访问介质访问控制协议:ALOHA 协议、CSMA 协议、CSMA/CD 协议和 CSMA/CA 协议等
采用随机访问控制机制,各结点之间的通信就可既不共享时间,也不共享空间
随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为

ALOHA 协议
纯 ALOHA 协议
纯 ALOHA 协议的基本思想:当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据
如果在一段时间内未收到确认,就认为传输过程中发生了冲突,会等待一段时间后再发送数据,直至发送成功

工作原理:每个站均自由地发送数据帧,发生冲突时,让各站等待一段随机的时间再进行重传,直到重传成功

假设网络负载为 G,则纯 ALOHA 网络的吞吐量为
- 网络负载:
时间内所有站点发送成功和因冲突未发送成功的帧 - 网络的吞吐量:
时间内成功发送的平均帧数
例如,当 G = 0.5 时,
时隙 ALOHA 协议
把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙,规定只能在每个时隙开始时才能发送一个帧
这样避免了用户发送数据的随意性,减少了数据产生冲突的可能性,提高了信道的利用率
工作原理:时隙的长度

时隙 ALOHA 网络的吞吐量 S 与网络负载 G 的关系是
例如,当 G = 1 时,
CSMA 协议
若每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送,则就会大大降低冲突的可能,从而提高信道的利用率
载波侦听多路访问 Carrier Sense Multiple Access,CSMA 协议依据的正是这一思想
CSMA 协议是 ALOHA 的一种改进协议,比 ALOHA 多了一个载波侦听装置
根据侦听方式和侦听到信道忙后的处理方式不同,CSMA协议分为三种
1 - 坚持 CSMA
基本思想:一个结点要发送数据时,先侦听信道:空闲则发;忙则等待,直到空闲;冲突则随机时间后,再侦听
坚持的含义:侦听到信道忙后,继续坚持侦听信道;侦听到信道空闲后,立刻发送数据
传播延迟对 1 - 坚持 CSMA 协议的性能影响较大:
- A 结点侦听信道空闲,发消息,过了一会但消息没传到 B 结点,B 结点侦听信道也空闲,发送了消息,发生冲突
- A、B 结点侦听信道忙,都坚持侦听,当信道空闲时,两个同时发消息,发生冲突
非坚持 CSMA
基本思想:一个结点要发送数据时,首先侦听信道:空闲则发;忙则随机时间后再侦听
优点:降低了多个结点等待信道空闲后同时发送数据导致冲突的概率;缺点:增加数据在网络中的平均延迟
可见,信道利用率的提高是以增加数据在网络中的延迟时间为代价的
p - 坚持 CSMA
用于时分信道(时隙 ALOHA 那样的信道)基本思想与 1 - 坚持类似:一个结点要发送数据时,首先帧听信道:
- 如果信道忙,就下一个时隙再侦听
- 如果信道空闲,以概率 p 发送数据,以概率 1 - p 推迟到下一个时隙再侦听
概率发送是为了:降低 1 - 坚持 CSMA 协议中多个结点检测到信道空闲后同时发送数据的冲突概率
坚持帧听是为了:克服非坚持 CSMA 协议中由于随机等待而造成的延迟时间较长的缺点
p - 坚持 CSMA 协议是非坚持 CSMA协议和 1 - 坚持 CSMA 协议的折中方案
三种的比较

CSMA/CD 协议
载波侦听多路访问/碰撞检测 CSMA/CD 协议是 CSMA 协议的改进方案,适用于总线形网络或半双工网络环境
- 载波帧听:发送数据前先要检测总线上是否有其他站点正在发送数据,若有则等待信道变为空闲时再发送
- 碰撞检测:适配器边发送数据边检测信道上信号电压的变化情况,判断其他站点是否也在发送数据
CSMA/CD 协议已成功应用于使用有线连接的局域网
工作流程
工作流程可简单概括为先听后发,边听边发,冲突停发,随机重发:
- 适配器从网络层获得一个分组,封装成以太网帧,放入适配器的缓存,准备发送
- 适配器侦听信道:空闲则发;忙则侦听到空闲再发
- 在发送过程中,适配器持续检测信道:未碰撞则发送完毕;碰撞则中止发送,并发送拥塞信号,让所有用户知道
- 在中止发送后,适配器就执行指数退避算法,等待一段随机时间后返回到步骤 2
窗口争用期
某个时刻检测到信道空闲时,此时信道并不一定是空闲的,可能信道有数据但没传播到这里
例子如下图(碰撞检查是查看信道的电压与发送的信息的电压是否一样):
- 设
为单程传输时延,在 t = 0 时 A 发送数据,在 时 B 检测信道空闲也发送消息 - 在
时,两数据碰撞,在 时 A 发送的数据到达 B,B 检查到碰撞停止发送数据 - 在
时,B 发送的数据也到达 A,A 检查到碰撞停止发送数据

CSMA/CD 中的站不可能同时进行发送和接收,因此采用 CSMA/CD 协议的以太网只能进行半双工通信
当 A 发送数据
因此把以太网端到端往返时间
最小帧长
CSMA/CD 作用是在发送数据时检查到碰撞而停止发送,帧太短发完了才检查到碰撞,协议就没作用了
为了让本协议起作用,所以数据的发送时间应该大于等于争用期,得最小帧长 = 总线传播时延 × 数据传输速率 × 2
收到帧长小于最小帧长时,把它当作无效帧立即丢弃;发送帧长小于最短帧时,在数据字段后面增加填充字段填充若干字节
例如:以太网规定取 51.2us 为争用期的长度,对于 10Mb/s 的以太网,在争用期内可发送 512bit,即 64B
以太网规定最短帧长为 64B,凡长度小于 64B 的帧都是由于冲突而异常中止的无效帧,收到这种无效帧时应立即丢弃
二进制指数退避算法
CSMA/CD 采用二进制指数退避算法来解决碰撞问题,算法精髓如下:
- 确定基本退避时间,一般取争用期:两倍的总线端到端传播时延
- 定义参数 k,它等于重传次数,但 k 不超过 10,即 k = min[重传次数, 10]
- 从集合
中随机取出一个数 r,重传所需要退避的时间就是 r 倍的基本退避时间,即 - 当重传达 16 次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错
例子:第 1 次重传时,随机数 r 从整数 {0, 1} 中选择,第 2 次重传时,随机数 r 从整数 {0, 1, 2, 3} 中选择
使重传时推迟的平均时间随重传次数的增大而增大(动态退避),能降低发生碰撞的概率,有利于整个系统的稳定
CSMA/CA 协议
在无线局域网环境下,却不能使用 CSMA/CD 协议,主要有两个原因(这一节都是 802.11 的规定):
- 接收信号远小于发送信号的强度,且信号强度的动态变化范围很大,要实现碰撞检测,则硬件上的花费就会过大
- 在无线通信中,并非所有的站点都能够听见对方,即存在隐蔽站问题
802.11 标准定义应用于无线局域网的 CSMA/CA 协议,它对 CSMA/CD 协议进行了修改,把碰撞检测改为碰撞避免
碰撞避免是指尽量降低碰撞发生的概率:802.11 无线局域网不使用碰撞检测,即使发生碰撞时仍然会完全的发送该帧,会严重降低网络的效率,因此要采用碰撞避免技术降低碰撞的可能性
帧间间隔
无线信道的通信质量远不如有线信道,使用确认/重传 ARQ 方案,发完一帧要收到确认才能发送下一帧
帧间间隔 IFS:为了尽量避免碰撞,所有的站完成发送后,必须再等待一段很短的时间才能发送下一帧
帧间间隔的长短取决于该站要发送的帧的类型:
SIFS,短 IFS:最短 IFS,用来分隔属于一次对话的各帧;有ACK、CTS、RTS 帧PIFS,点协调 IFS:中等长度的 IFS,在PCF操作中使用DIFS,分布式协调 IFS:最长的 IFS,用于异步帧竞争访问的时延
工作原理
CSMA/CA 的退避算法与 CSMA/CD 稍有不同:信道从忙态变为空闲态时,要发送数据帧,不仅都要等待一个时间间隔,而且要进入争用窗口(刚开始是 [0, 31])计算随机退避时间,这样可以降低了碰撞发生的概率
当且仅当检测到信道空闲且要发送的第一个数据帧时,才不使用退避算法,其他所有情况都必须使用退避算法,具体为:
- 在发送第一个帧前检测到信道忙
- 每次重传
- 每次成功发送后要发送下一帧
CSMA/CA 算法归纳如下(详细):
若站点最初有数据要发送,且检测到信道空闲,在等待时间
DIFS后,就发送整个数据帧否则,站点执行 CSMA/CA 退避算法,选取一个随机回退值
检测到信道忙时,退避计时器就保持不变;只有信道空闲时,退避计时器才进行倒计时
当退避计时器减到 0 时,这时信道只可能是空闲的,站点就发送整个帧并等待确认
发送站若收到确认,就知道已发送的帧被目的站正确接收
否则超时重传从步骤 2 开始,直到被确认或失败太多被抛弃
要发送第二帧,就要从步骤 2 开始

处理隐蔽站问题
隐蔽站问题:站 A 和 B 都在 AP 内,但听不见对方;当 A 和 B 检测到信道空闲时,都向 AP 发送数据,导致碰撞的发生

为了避免该问题,允许发送站对信道进行预约,源站要发送数据帧之前先广播一个短请求发送 RTS 控制帧,它包括源地址、目的地址和这次通信(含相应的确认帧)所持续的时间,该帧能被其范围内包括 AP 在内的所有站点听到
若信道空闲,则 AP 广播一个允许发送 CTS 控制帧,它包括这次通信所需的持续时间(从 RTS 复制)
CTS 帧有两个目的:①给源站明确的发送许可;②指示其他站点在预约期内不要发送

使用 RTS 和 CTS 帧会使网络效率有所下降,但这两种帧都很短,与数据帧相比开销不算大
若不使用这种控制帧,一旦发生碰撞而导致数据帧重发,则浪费的时间更多
协议设有三种情况供用户选择:
- 使用 RTS 和 CTS 帧
- 只有当数据帧的长度超过某一阈值时才使用 RTS 和 CTS 帧
- 不使用 RTS 和 CTS 帧
CSMA/CD 与 CSMA/CA 的区别
- CSMA/CD 可以检测冲突,但无法避免;CSMA/CA 不能边发边检查,接收结点冲突与本结点冲突无关,只能尽量避免
- 传输介质不同:CSMA/CD 用于总线形以太网;CSMA/CA 用于无线局域网
802.11a/b/g/n等 - 检测方式不同:CSMA/CD 通过电缆中的电压变化来检测;而 CSMA/CA 采用能量检测、载波检测、能量载波混合检测三种检测信道空闲的方式
CSMA/CA 协议的基本思想:发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据
CSMA/CD 协议的基本思想:发送前侦听,边发送边侦听,一旦出现碰撞马上停止发送
轮询访问介质访问控制
在轮询访问中,通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配
某结点使用信道时,其他结点都不能使用信道;典型的协议是令牌传递协议,它主要用在令牌环局域网中
令牌传递协议中,一个令牌在各结点间以某个固定次序交换,令牌是由一组特殊的比特组合而成的帧
- 必须要拥有令牌才可以发送帧,帧中包括目的站的地址,以标识哪个站应接收此帧
- 帧在环上传送时,所有站点都进行转发,直到该帧回到它的始发站,并由该始发站撤销该帧
- 帧的目的站还应针对该帧维持一个副本(即进行接受),并通过在帧的尾部设置响应比特来指示已收到
- 站点在发送完一帧后,应释放令牌,以便让其他站使用,当计算机都不需要发送数据时,令牌就在环形网上游荡

在令牌传递网络中,传输介质的物理拓扑是星形或环形,但在逻辑上是一个环
轮询介质访问控制非常适合负载很高的广播信道,即多个结点在同一时刻发送数据概率很大的信道(不会发生冲突)
轮询介质访问控制既不共享时间,也不共享空间,它在随机介质访问控制的基础上,限定了发送数据的结点只能有一个
通过介质访问控制机制使广播信道逻辑上变为点对点的信道,所以说数据链路层研究的是点到点之间的通信
局域网
局域网的基本概念和体系结构
局域网 Local Area Network,LAN:在一个较小的地理范围内,将各种计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和信息共享的计算机互联网络
主要特点如下:
- 为一个单位所拥有,且地理范围和站点数目均有限
- 所有站点共享较高的总带宽
- .较低的时延和较低的误码率
- 各站为平等关系而非主从关系
- 能进行广播和组播
局域网特性主要由拓扑结构、传输介质、介质访问控制方式决定,最重要的是介质访问控制方式,它决定局域网的技术特性
- 拓扑结构主要有:星形结构、环形结构、总线形结构、星形和总线形结合的复合型结构
- 传输介质主要有:双绞线、铜缆、光纤等,其中双绞线为主流传输介质
- 质访问控制方法主要有:CSMA/CD、令牌总线、令牌环,前两种主要用于总线形局域网,令牌环主要用于环形局域网
三种特殊的局域网拓扑实现如下:
- 以太网,IEEE 802.3:目前使用范围最广的局域网,逻辑拓扑是总线形结构,物理拓扑是星形
- 令牌环,IEEE 802.5:逻辑拓扑是环形结构,物理拓扑是星形结构
- 光纤分布数字接口
FDDI,IEEE 802.8:逻辑拓扑是环形结构,物理拓扑是双环结构
IEEE 802 标准定义的局域网参考模型只对应于 OSI 参考模型的数据链路层和物理层
IEEE 802 标准将数据链路层拆分为:
逻辑链路控制 LLC 子层:与传输媒体无关,它向网络层提供服务,如差错控制、给帧加序号
媒体接入控制 MAC 子层:与传输媒体有关,它向上层屏蔽对物理层访问的各种差异,提供对物理层的统一访问接口
用于处理与物理层相关的东西,如组帧和拆卸帧、比特传输差错检测、透明传输
注意:由于以太网在局域网取得了垄断地位,因此现在许多网卡仅装有 MAC 协议而没有 LLC 协议

以太网与 IEEE 802.3
IEEE 802.3 标准是一种基带总线形的局域网标准,它描述物理层和数据链路层的 MAC 子层的实现方法
以太网逻辑上采用总线形拓扑结构,所有计算机共享同一条总线,信息以广播方式发送,通信使用 CSMA/CD 方式
以太网指 DIX Ethernet V2 标准的局域网,但它与 IEEE 802.3 标准只有很小差别,因此将 802.3 局域网也简称为以太网
以太网采用两项措施以简化通信:
- 采用无连接的工作方式,不对发送的数据帧编号,也不要求接收方发送确认(不可靠),对于差错的纠正则由高层完成
- 使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接收以此同步信号
选择题:在总线的以太网中(没有交换机等),一个结点发送消息,包括该结点在内的所有结点都可以收到
以太网的传输介质与网卡
以太网常用的传输介质有:粗缆、细缆、双绞线和光纤,适用情况为(要背):

注意:10BASE-T 虽然最大最多结点数是 2,但它连接集线器,在逻辑上仍然是一个总线网,属于一个冲突域
计算机与外界局域网的连接是通过主机箱内插入的一块网络接口板(也称网络适配器或网络接口卡)实现的
网卡上装有处理器和存储器工作在数据链路层和物理层:
- 在数据链路层:实现将电缆的串行转换为 I/O 总线的并行,以及 MAC 层的功能
- 在物理层:控制主机对介质的访问
介质访问控制 MAC 地址:每块网卡在出厂时都有唯一的代码,用于控制主机在网络上的数据通信
数据链路层设备如网桥和交换机,都使用各个网卡的 MAC 地址
以太网的 MAC帧
MAC 地址也称物理地址:它长 6 字节,一般用由连字符或冒号分隔的 12 个十六进制数表示,如 02-60-8c-e4-b1-21
高 24 位为厂商代码,低 24 位为厂商自行分配的网卡序列号,局域网的地址是每个站的名字或标识符
由于使用广播通信,网卡每收到一个 MAC 帧,先检查 MAC 帧中的 MAC 地址,如果是自己的,那么就收下,否则丢弃
以太网 MAC 帧格式有两种标准:DIX Ethernet V2 标准和 IEEE 802.3 标准,下面介绍最常用的 V2 标准 MAC 帧格式

帧要加头部和尾部:这里头部是目的地址、源地址、类型,尾部是校验码
前导码:使接收端与发送端时钟同步,在帧前面插入的 8 字节分为两个字段:
- 第一个字段:7 字节,是前同步码,用来快速实现 MAC 帧的比特同步
- 第二个字段:帧开始定界符,表示后面的信息就是 MAC 帧
注意:MAC 帧并不需要帧结束符,因为以太网在传送帧时,各帧之间必须有一定的间隙,对于曼切斯特编码来说,停止传送是很明显的,因为传送一位时中间会有一次跳转,若没有跳转就知道没有传送,就知道帧结束了
地址:通常使用 6 字节的 MAC 地址
类型:2 字节,指出数据域中携带的数据应交给哪个协议实体处理
对于 802.3 这里是数据的长度,实践中这里是长度/类型,前 1500 表长度,1501 ~ 65535 用于类型段识别符
数据:46 ~ 1500 字节,包含高层的协议消息,少于 46 字节时会进行填充
由于 CSMA/CD 算法的限制,以太网最段帧是 64 字节,头尾占了 18 字节,所以数据起码要 46 字节
校验码
FCS:4 字节,校验范围从目的地址段到数据段的末尾,32 位循环冗余码
高速以太网
速率达到或超过 100Mb/s 的以太网称为高速以太网
100BASE-T以太网:在双绞线上传送100Mb/s基带信号的星形拓扑结构以太网,它使用 CSMA/CD 协议这种以太网既支持全双工方式,又支持半双工方式,在全双工方式下无冲突发生(使用交换机无冲突)
MAC 帧格式仍然是 802.3 标准规定的,保持最短帧长不变,将一个网段的最大电缆长度减小到
100m,并把帧间时间间隔从原来的9.6us改为现在的0.96us吉比特以太网:允许在
1Gb/s下用全双工和半双工两种方式工作使用 802.3 协议规定的帧格式,仅在半双工方式下使用 CSMA/CD 协议,与
10BASE-T和100BASE-T技术向后兼容10 吉比特以太网:使用 802.3 协议规定的帧格式,使用光纤作为传输媒体,且只工作在全双工方式
以太网从 10Mb/s 到 10Gb/s 的演进证明了以太网是可扩展的、灵活的(多种传输媒体、全/半双工、共享/交换),易于安装,稳健性好
IEEE 802.11
802.11 的 MAC 帧头格式
RA 是目的结点的 AP 的地址,TA 是源结点的 AP 的地址,SA 源结点的地址,DA 是目的结点的地址

IBSS:一个服务集内的移动站点不通过基站的直接通信,BSSID是 AP 的 ID- To AP:服务集内的移动站点向基站的通信
- From AP:服务集内基站向移动站的通信
WDS:不同服务集内的两个移动站之间的通信,应该是两个 AP 之间的帧
思考:无论是哪个,Address 1 就是该帧接受设备,Address 2 就是该帧发送设备
有固定基础设施无线局域网
对于有固定基础设施的无线局域网,IEEE 制定了无线局域网的 802.11 系列协议标准,包括 802.11a/b/g/n 等
使用星形拓扑,其中心称为接入点 AP,MAC 层使用 CSMA/CA 协议;使用 802.11 系列协议的局域网又称 Wi-Fi
规定无线局域网的最小构件是基本服务集 BSS,一个基本服务集包括一个基站和若干移动站
和本 BSS 内的站都可以直接通信,和本 BSS 外的站通信时都必须通过本 BSS 的基站
AP 就是基本服务集中的基站 base station,安装 AP 时,为该 AP 分配一个不超过 32 字节的服务集标识符 SSID 和一个信道
基本服务集覆盖的地理范围称为基本服务区 BSA,无线局域网的基本服务区的直径一般不超过 100m
基本服务集可以是孤立的,也可通过 AР 连接到一个分配系统 DS,然后连接到另一个基本服务集,构成一个扩展的服务集ESS,ESS 还可以通过一种称为门桥 Portal 的设备为无线用户提供到有线连接的以太网的接入,门桥的作用相当于一个网桥

移动站 A 如果要和另一个基本服务集中的移动站 B 通信,就必须经过两个接入点 AP1 和 AP2
移动站 A 移动到另一个基本服务集时,仍然可保持与移动站 B 的通信,但使用的 AP 改变了,AP 的切换叫漫游
无固定基础设施移动自组织网络
自组网络没有上述基本服务集中的 AP,而是由一些平等状态的移动站相互通信组成的临时网络
各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能
自组网络中的每个移动站都要参与网络中的其他移动站的路由发现和维护,同时由移动站构成的网络拓扑可能随时间变化得很快,因此在固定网络中行之有效的一些路由选择协议对移动自组网络已不适用

自组网络和移动 IP 并不相同:
- 移动 IP 技术:使漫游的主机可以用多种方法连接到因特网,基于固定网络中的各种路由选择协议
- 自组网络:把移动性扩展到无线领域中的自治系统,具有自己特定的路由选择协议,并且可以不和因特网相连
令牌环网的基本原理
令牌环网的每一站通过电缆与环接口干线耦合器 TCU 相连
TCU 的主要作用:传递所有经过的帧,为接入站发送和接收数据提供接口
TCU 的状态有:收听状态和发送状态,数据在某个特定的方向上逐比特地传送,每个 TCU 重新产生并重新传输每一比特

令牌沿着环形总线在入网结点计算机间依次传递,令牌是一个特殊格式的 MAC 控制帧,它不包含信息,仅控制信道的使用
只有取得令牌后才能发送数据帧,对所有入网计算机而言,访问权是公平的
令牌环网中令牌和数据的传递过程如下:
网络空闲时,环路中只有令牌帧在循环传递
站点要发送数据时先等待令牌,然后修改令牌中的一个标志位,在令牌中附加传输数据,变成一个数据帧再发送出去
数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址
目的地址和自己的地址相同,就复制该数据帧以便进一步处理
数据帧沿着环路传输,直到到达该帧的源站点,源站点检验数据传输过程中是否有错,若有错则重传该帧
源站点传送完数据后,重新产生一个令牌,并将令牌传递给下一个站点,以交出对媒体的访问权限
令牌环网在物理上是星形拓扑结构,逻辑上是环形拓扑结构,其标准由 IEEE 802.5 定义
广域网
广域网的基本概念
广域网指覆盖范围很广的长距离网络,是因特网的核心部分,其任务是长距离运送主机所发送的数据
连接广域网各结点交换机的链路都是高速链路,它可以是长达几千千米的光缆线路、或长达几万千米的点对点卫星链路
因此广域网首要考虑的问题是通信容量必须足够大,以便支持日益增长的通信量
广域网不等于互联网,互联网可以连接不同类型的网络,通常使用路由器来连接
局域网可以通过广域网与另一个相隔很远的局域网通信

广域网由一些结点交换机及连接这些交换机的链路组成(广域网是单个网络用结点交换机就好了)
- 注意:结点交换机和路由器都用来转发分组,工作原理也类似;结点交换机在单个网络使用,路由器在多个网络使用
结点交换机的功能:将分组存储并转发,使用点到点连接,为了提高网络的可靠性,其通常与多个结点交换机相连
从层次上考虑,广域网和局域网的区别很大,局域网使用的协议主要在数据链路层,而广域网使用的协议主要在网络层

广域网中的一个重要问题是路由选择和分组转发:路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构造路由表,然后从路由表再构造出转发分组的转发表,分组是通过转发表进行转发的
PPP 协议和 HDLC 协议是目前最常用的两种广域网数据链路层控制协议
PPP 协议
Point-to-Point Protocol 是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上
设计的目的:通过拨号或专线方式建立点对点连接发送数据,使各种主机、网桥和路由器之间进行简单连接
PPP 协议是在 SLIP 协议的基础上发展而来的,它既可以在异步线路上传输,又可在同步线路上使用
PPP 协议有三个组成部分:
- 链路控制协议
LCP:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路 - 网络控制协议
NCP:每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接 - 将 IP 数据报封装到串行链路的方法:IP 数据报在 PPP 帧中就是其信息部分

PPP 帧的结构:
标志字段 F:
7E,01111110,前后各占 1 字节,标志帧开始和结束地址字段 A:规定为 FF,保留
控制字段 C:规定为 03,保留
协议字段:说明信息段中运载的分组的种类
- 以比特 0 开始:是诸如
IP、IPX、AppleTalk这样的网络层协议 - 以比特 1 开始:被用来协商的其他协议,包括
LCP及每个支持的网络层协议的一个不同的NCP
- 以比特 0 开始:是诸如
信息部分:长度可变,
0 ~ 1500B,当信息段中出现和标志字段一样的比特组合时,必须采用一些措施来改进注意:因为 PPP 是点对点,不使用 CSMA/CD 所以没有最短帧
帧检验序列
FCS:循环冗余码检验中的冗余码,检验区包括地址字段、控制字段、协议字段和信息字段
PPP 链路的建立、使用、撤销过程,如下图:
- 当线路处于静止状态时,不存在物理层连接
- 当线路检测到载波信号时,建立物理连接,变为建立状态
LCP开始选项商定,商定成功后就进入身份验证状态- 双发身份验证通过后,进入网络状态
- 采用
NCP配置网络层,配置成功后,进入打开状态,然后就可进行数据传输 - 当数据传输完成后,线路转为终止状态,载波停止后则回到静止状态

PPP 协议中需要注意的是:
- PPP 提供差错检测但不提供纠错功能,只保证无差错接收;是不可靠的传输协议,因此也不使用序号和确认机制
- 它仅支持点对点的链路通信,不支持多点线路
- PPP 只支持全双工链路
- PPP 的两端可以运行不同的网络层协议,但仍然可使用同一个 PPP 进行通信
- PPP 是面向字节的,当信息字段出现和标志字段一致的比特组合时的处理方法:
- 若 PPP 用在异步线路,默认:则采用字节填充法,填充
7D - 若 PPP 用在
SONET/SDH等同步线路:采用硬件来完成比特填充
- 若 PPP 用在异步线路,默认:则采用字节填充法,填充
额外:PPP 是 TCP/IP 的协议,而 HDLC 不是
HDLC 协议
高级数据链路控制 HDLC 协议是 ISO 制定的面向比特的数据链路层协议,其特点有:
- 该协议不依赖于任何一种字符编码集
- 数据报文可透明传输,用于实现透明传输的是 0 比特插入法
- 全双工通信,有较高的数据链路传输效率
- 所有帧采用 CRC 检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高
- 传输控制功能与处理功能分离,具有较大的灵活性
HDLC 有非平衡配置和平衡配置两种适用于链路的基本配置:
- 非平衡配置的特点:一个主站控制整个链路的工作
- 平衡配置的特点:链路两端的两个站都是复合站,都可以平等地发起数据传输
站
HDLC 有主站、从站、复合站三种站类型:
- 主站:负责控制链路的操作,主站发出的帧称为命令帧
- 从站:按主站的命令进行操作,发出的帧称为响应帧
- 复合站:有主站和从站的功能,它可以发出命令帧和响应帧
数据操作方式
HDLC 有 3 种数据操作方式:
- 正常响应方式:非平衡结构操作方式,主站向从站传输数据,从站响应传输(从站收到主站许可后,才可进行响应)
- 异步平衡方式:平衡结构操作方式,每个复合站都可以对另一站进行数据传输
- 异步响应方式:非平衡结构操作方式,但从站未受到主站的允许,也可进行传输
HDLC 帧
HDLC 的帧格式由标志、地址、控制、信息和帧校验序列等字段构成:
- 标志字段 F:
7E,采用零比特填充的首尾标志法实现透明传输 - 地址字段 A:非平衡方式传送数据时,是从站的地址;平衡方式传送数据时,是应答站的地址
- 控制字段 C:最复杂的字段,HDLC 的许多重要功能都靠控制字段来实现

根据控制字段第 1 位或第 1、2 位的取值,可将 HDLC 帧划分为三类:
- 信息帧 I,以 0 开头:用来传输数据信息,或使用捎带技术对数据进行确认
- 监督帧 S,以 10 开头:用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能
- 无编号帧 U,以 11 开头:用于提供对链路的建立、拆除等多种控制功能
PPP 帧和 HDLC 帧的格式有以下几点不同:
- PPP 协议是面向字节的,HDLC 协议是面向比特的
- PPP 帧比 HDLC 帧多一个 2 字节的协议字段,当协议字段值为
0x0021时,表示信息字段是 IP 数据报 - PPP 不能提供可靠传输,只保证无差错接收;HDLC 能够提供可靠传输
数据链路层设备
网桥的概念及其基本原理
多个以太网通过网桥连接后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就称为一个网段
网桥工作在链路层的 MAC 子层,可以为以太网各网段隔离碰撞域
由于各网段相对独立,因此一个网段的故障不会影响到另一个网段的运行
注意:网桥的数据对象是帧,工作在数据链路层;中继器、放大器的数据对象是信号,工作在物理层
网络 A、C 通过网桥连接,网桥接收 A 的数据帧后检查目的地址,是 B 的地址不需要转发就丢弃,是 C 的地址就转发
设每个网段的数据率都是 10Mb/s,三个网段合起来的最大吞吐量就变成了 30Mb/s

网桥的基本特点:
网桥必须具备寻址和路径选择能力,以确定帧的传输方向
从源网络接收帧,以目的网络的介质访问控制协议向目的网络转发该帧
网桥在不同或相同类型的 LAN 之间存储并转发帧,必要时还进行链路层上的协议转换
注意:存储转发类设备都能进行协议转换,即连接的两个网段可以使用不同的协议
网桥对接收到的帧不做任何修改,或只对帧的封装格式做很少的修改
网桥应有足够大的缓冲空间,因为在短时间内帧的到达速率可能高于转发速率
网桥的优点:
- 能过滤通信量
- 扩大了物理范围
- 可使用不同的物理层
- 可互联不同类型的局域网
- 提高了可靠性
- 性能得到改善
网桥的缺点:
- 增大了时延
- MAC 子层没有流量控制功能,流量控制是 LLC 子层的
- 不同 MAC 子层的网段桥接在一起时,需要进行帧格式的转换
- 只适合于用户数不多和通信量不大的局域网,否则广播信息太多而产生网络拥塞(广播风暴)
根据路径选择算法的不同,可将网桥分为透明网桥和源路由网桥
透明网桥(非最佳路由)
接收与之连接的所有 LAN 传送的每一帧,到达帧的路由选择过程取决于源 LAN 和目的 LAN:
- 如果源 LAN 和目的 LAN 相同,那么丢弃该帧
- 如果源 LAN 和目的 LAN 不同,那么转发该帧
- 如果目的 LAN 未知,那么扩散该帧(广播)
当网桥刚连接到以太网时,其转发表是空的,网桥按照自学习算法处理收到的帧
该算法的基本思想是:
- 网桥每收到一个帧,就记下其源地址和进入网桥的端口,作为转发表中的一个项目(源地址、进入的接口和时间)
- 网桥转发帧是先根据目的地址查找转发表,如果找到就直接转发,如果没有就向其他端口广播出去
为了避免转发的帧在网络中兜圈子,透明网桥使用了一种生成树算法,以确保每个源到每个目的地只有唯一的路径
生成树使得整个扩展局域网在逻辑上形成树形结构,所以工作时逻辑上没有环路,但生成树一般不是最佳路由
额外:每过一段时间会刷新转发表,刷新后就要重新学习,这是为了防止 MAC 地址更换,造成冲突
源路由网桥(最佳路由)
在源路由网桥中,路由选择由发送数据帧的源站负责,网桥只根据数据真正的路由信息对帧进行接收和转发
源路由网桥对主机是不透明的,主机必须通过发送发现帧来选择路由
源路由的生成过程是:
- 在未知路径前,源站要先发送一个发现帧
- 途中的每个网桥都转发此帧,最终可能从多个途径到达目的站
- 目的站都响应应答帧,每个应答帧将通过原路径返回
- 途经的网桥把自己的标志记录在应答帧中
- 源站选择出一个最佳路由(时间最短或路由最短)
- 以后凡是该源站向该目的站发送帧,帧头都携带这一路由信息
发送帧还可以帮助源站确定整个网络可以通过的帧的最大长度,但若发现帧的数量太多,可能会使网络严重拥塞
两种网桥的比较
- 源路由网桥:利用最佳路由,若在两个以太网之间使用并联的源路由网桥,则使通信量较平均地分配给每个网桥
- 透明网桥:使用生成树,不能保证所用的路由是最佳的,也不能在不同的链路中进行负载均衡
注意:最佳路由是发送帧往返时间最短的路由,这样才能负载平衡;往返时间长说明某个路由器超载了,那就换时间短的路
局域网交换机及其工作原理
局域网交换机
桥接器的任一时刻通常只能执行一个帧的转发操作;局域网交换机,也称以太网交换机在任一时刻可以执行多个帧转发
以太网交换机是一个多端口的网桥,它工作在数据链路层,能将网络分成小的冲突域,为每个工作站提供更高的带宽
以太网交换机对工作站是透明的,因此管理开销低廉,简化了网络结点的增加、移动和网络变化的操作
利用以太网交换机还可以方便地实现虚拟局域网 Virtual LAN,VLAN 可以隔离冲突域和广播域
原理
检测从以太端口来的数据帧的目的和源的 MAC 地址,然后在动态查找表进行查找并转发
若数据帧的 MAC 地址不在查找表中,则将该地址加入查找表,然后广播出去
特点
以太网交换机的特点如下:
- 以太网交换机的每个端口都直接与单台主机相连,而网桥端口连接的是网段,并且工作在全双工方式
- 以太网交换机能同时连通许多对端口,使每对相互通信的主机都能无碰撞地传输数据
- 以太网交换机和透明网桥一样是一种即插即用设备,其转发表是通过自学习算法逐渐建立起来的
- 以太网交换机由于使用了专用的交换结构芯片,因此交换速率较高
- 以太网交换机独占传输媒体的带宽
对于 10Mb/s 带宽的以太网,若有 N 个用户,使用以太网交换机:
- 如果是半双工通信:每个端口的带宽是
10Mb/s,交换机的总容量为N × 10Mb/s × 0.5 - 如果是全双工通信:每个端口的带宽是
20Mb/s,交换机的总容量为N × 10Mb/s
以太网交换机一般都具有多种速率的端口,如具有 10Mb/s、100Mb/s、1Gb/s 的端口的组合,方便了各种不同情况的用户
两种交换模式
以太网交换机主要采用两种交换模式:
直通式交换机:只检查帧的目的地址,这使得帧在接收后几乎能马上被传出去
这种方式速度快,但缺乏智能性和安全性,也无法支持具有不同速率的端口的交换,转发时只有 6 字节的转发延迟
存储转发式交换机:将接收到的帧缓存到高速缓存器中,并检查数据是否正确,正确才将该帧发送出去,否则丢弃
存储转发式的优点是可靠性高,并能支持不同速率端口间的转换,缺点是延迟较大,转发时有整个帧长的转发延迟
冲突域和广播域
冲突域,碰撞域:一块网卡发送信息时,只要有可能和另一块网卡冲突,可能发送冲突的网卡的集合
广播域:一块网卡发出一个广播时,能收到这个广播的所有网卡的集合
一般来说,一个网段就是一个冲突域,一个局域网就是一个广播域

📝 个人补充与原笔记精华
NOTE
组帧时既要加首部,又要加尾部。原因是,在网络中信息是以帧为最小单位进行传输的,所以接收端要正确地接收帧,必须要清楚该帧在一串比特流中从哪里开始到哪里结束(因为接收端收到的是一串比特流,没有首部和尾部是不能正确区分帧的)。而分组(即 IP 数据报)仅是包含在帧中的数据部分,所以不需要加尾部来定界。
TIP
由于字节计数法的脆弱性与字符填充实现的复杂性与不兼容性,所以目前基本使用零比特填充与违规编码法。
NOTE
现有的实际有线网络的数据链路层很少采用可靠传输(不同于 OSI 参考模型的思路), 因此大多数教材把这部分内容放在第 5 章传输层中讨论,本笔记按照 408 考纲,不做变动。
