第三章:数据链路层
数据链路层所处的地位
§3-1-1 数据链路层的功能
一.封装成帧(组帧)
1. 主要问题
(1).帧定界
如何让接收才能够确定帧的界限
(2).透明传输
接收方要能够去除"帧定界"的附加信息,把帧"恢复原貌"
2. 四种组帧方法
(1).字符计数法
(2).字节填充法
如果帧的数据部分包含"特殊字符",则发送方需要在这些"特殊字符"前填充"转义字符ESC"(接收方要做逆处理)
(3).零比特填充法
在每个帧的首位分别添加一个特殊比特串01111110,表示帧的开始/结束
-
发送方每遇到连续5个1,就填充一个0
-
接收方每遇到连续5个1,就删掉后面的0
(4).违规编码法
二.差错控制

1. 检错编码
(1).奇偶校验码
- 奇校验码:所有位中"1"的个数为奇数
- 偶校验码:所有位中"1"的个数为偶数
注:偶校验在实际应用中运用的比较多,因为可以用异或门实现校验位的计算
发送方 :求偶校验位,直接对所有信息位进行异或运算,得到的结果就是校验位的值
接收方:进行偶校验,所有位进行异或,若结果为0则正确,结果为1说明出错
奇偶校验码仅能检测出奇数位错误,无纠错能力
(2).循环冗余校验码(CRC码)
①.原理
数据发送、接收方约定一个"除数"(二进制)
发送方 :K个信息位 + R个校验位作为"被除数",添加校验位后需保证除法的余数为0
接收方:收到数据后,进行除法检查余数是否为0,若余数非0说明出错
KKK 个信息位,RRR 个检验位,若生成多项式选择得当,且 2R≥K+R+12^R \ge K+R+12R≥K+R+1,则 CRC 码可纠正 1 位错(实际应用中一般只用来 ''检错'')
理论上可以证明循环冗余校验码的检错能力有以下特点:
- 可检测出所有奇数个错误;
- 可检测出所有双比特的错误;
- 可检测出所有小于等于校验位长度的连续错误;
②.例题
设生成多项式为G(x)=x3+x2+1,信息码为101001,求对应的CRC码。
确定K、R以及生成多项式对应的二进制码
K=信息码的长度=6
R=生成多项式最高次幂=3
校验码位数N=K+R= 9
生成多项式G(x)=1·x3+1·x2+0·x1+1·x0,对应二进制码1101
移位
信息码左移R位,低位补0
101001000
相除
对移位后的信息码,用生成多项式进行模2除法,产生余数对应的CRC码:101001001
被除数:补0后的信息码(101001 000)
除数:生成多项式系数(1101)
根据当前最高位判断是商0还是商1
最高位为0 -> 商0
最高位为1 -> 商1
剩余三位进行异或运算
最后得到的余数即为校验位
检错和纠错
发送: 101001001 记为 C9C8C7C6C5C4C3C2C1C_9C_8C_7C_6C_5C_4C_3C_2C_1C9C8C7C6C5C4C3C2C1
若接收: 101001001用1101进行模 2 除 →\rightarrow→ 余数为 000,代表没有出错
若接收:101001011用1101进行模 2 除 →\rightarrow→ 余数为 010,代表 C2C_2C2 出错(也可能是C8C_8C8)
对于确定的生成多项式,出错位与余数是相对应的
2. 纠错编码
(1).海明校验码
①.原理
海明码设计思路:将信息位分组进行偶校验 →\rightarrow→ 多个校验位 →\rightarrow→ 多个校验位标注出错位置
②.海明码求解步骤
确定校验位数量 →\rightarrow→ 确定校验位的分布 →\rightarrow→ 求校验位的值 →\rightarrow→ 检错纠错
例:信息位:1010
-
确定校验位数量
2k≥n+k+12^k \ge n+k+12k≥n+k+1;n=4→k=3n=4 \rightarrow k=3n=4→k=3
设信息位 D4D3D2D1D_4D_3D_2D_1D4D3D2D1 (1010),共 4 位,校验位 P3P2P1P_3P_2P_1P3P2P1,共 3 位,对应的海明码为 H7H6H5H4H3H2H1H_7H_6H_5H_4H_3H_2H_1H7H6H5H4H3H2H1。
-
确定校验位的分布

校验位Pi放在海明位号为2i-1的位置上;信息位按顺序放到其余位置。
-
求校验位的值


-
纠错

③.补充: 检错、纠错能力
三.流量控制和可靠传输(三种协议)
- 补充: 与滑动窗口机制
###1. 停止-等待协议(S-W)
(1). 滑动窗口机制
发送窗口 WT=1W_T=1WT=1,接收窗口 WR=1W_R=1WR=1
(2). 确认机制
若接收方收到i号帧,且没有检测出"差错",需要给发送方返回确认帧 ACK_i
(3). 重传机制
- 超时重传:若发送方超时未收到 ACK_i,则重传i号帧
(4). 帧编号
要求: WT+WR≤2nW_T + W_R \le 2^nWT+WR≤2n(n代表用n bit给帧标号)
停止-等待协议仅需1bit给帧"编号";
(5).基础概念
(6).实际情况
-
正常情况

-
数据帧丢失

-
确认帧丢失

如果没有"帧序号''接收方无法判别"重复帧"!
-
数据帧有"差错"

2. 后退N帧协议(GBN)
(1). 滑动窗口机制
发送窗口 WT>1W_T > 1WT>1,接收窗口 WR=1W_R = 1WR=1
发送方可连续发送多个帧,但接收方一次只能按顺序接收 1 个帧。
(2). 确认机制(ACK)
累积确认(Cumulative ACK)
- 若接收方连续收到了多个正确的帧,只需返回最后一个正确帧的 ACK(如 ACK_i)
- ACK_i 表示: 接收方已正确收到 i 号帧及其之前所有帧
若接收方收到"非法帧"(包括: 落在窗口外的帧、检测出差错的帧),
则: 接收方丢弃该帧,并返回当前已成功接收的最后一个正确帧的 ACK_i,以提醒发送方回退重传。
(3). 重传机制
- 超时重传: 若发送方超时未收到 ACK_i,则必须重传 i 号帧及其"之后的所有帧"。
GBN 的核心: 只要有一个帧出现问题,则从该帧开始全部回退重发。
(4). 帧编号
为了支持滑动窗口与确认机制,需使用 至少 n bit 给帧编号,满足:
WT+WR≤2nW_T + W_R \le 2^nWT+WR≤2n
(5). GBN 的特殊规则与要点
① 非法帧处理
接收方只接收按序帧,遇到非法帧 → 丢弃、并返回 ACK_i(最后正确帧)。
② 缺点
若接收方处理慢,或信道误码率高,可能导致发送方频繁"后退"重传,降低效率。
3. 选择重传协议(SR)
(1). 滑动窗口机制
发送窗口 WT>1W_T > 1WT>1,接收窗口 WR>1W_R > 1WR>1
在实际应用中,通常取WT==WR
(2). 确认机制
若接收方收到i号帧,且没有检测出"差错",需要给发送方返回确认帧 ACK_i(必须一帧一确认)
(3). 重传机制
-
超时重传: 若发送方超时未收到 ACK_i,则重传i号帧
-
请求重传: 若发送方收到 NAK_i,则重传 i 号帧
(4). 帧编号
为了支持滑动窗口与确认机制,需使用 至少 n bit 给帧编号,满足:
WT+WR≤2nW_T + W_R \le 2^nWT+WR≤2n**(若不满足会导致发送方和接收方无法正确判别"重复帧")**
(5). SR 的特殊规则
- 否认帧: NAK_i
- 若接收方收到i号帧,但检测出 i 号帧有"差错",需要丢弃该帧,并给发送方返回否认确认 NAK_i
- 窗口大小要求
- 要求: WR≤WTW_R \le W_TWR≤WT,即接收窗口不能大于发送窗口
- SR 协议不支持"累计确认",必须一帧一确认
(6).实际情况
①.数据帧丢失
窗口第一个帧收到确认帧,窗口就可以右移;每个帧被发出时设置计时器,如果超时未收到对应的ACK,就重传这个帧。
②.数据帧因差错而被丢弃
窗口第一个帧收到确认帧,窗口就可以右移;如果接收方收到一个有差错的帧,就将此帧丢弃,并返回对应的否认帧NAK_i,主动请求发送方重传i号帧
③.确认帧丢失
首先发送端超时重传,若在接收端窗口外就是重复帧,收到重复帧就返回该帧的ACK
四.介质访问控制
- §3-1-3到§3-1-5具体讲解三种方法
广播信道"需要实现此功能。广播信道在逻辑上是总线型拓扑,多个结点需争抢传输介质的使用权
点对点信道"通常不需要实现此功能。点对点信道通常意味着两个结点之间有专属的传输介质,不用抢
§3-1-2 信道利用率
零.术语补充
1. 滑动窗口协议
滑动窗口协议: 后退N帧协议(GBN), 选择重传协议(SR)
2. ARQ协议,连续ARQ协议
ARQ协议: 停止-等待协议(S-W), 后退N帧协议(GBN), 选择重传协议(SR)
连续ARQ协议: 后退N帧协议(GBN), 选择重传协议(SR)
一.S-W协议
1. 确认帧长度不可忽略
2. 确认帧长度可以忽略
**例题: **
二.GBN,SR协议
三.例题
例1:
例2:
§3-1-3 (介质访问控制)信道划分
一.引入
多个节点共享同一个"总线型"广播信道时,可能发生"信号冲突"。如何减少或避免该冲突?

二.时分复用
1. 常规时分复用(TDM)
- (TDM,Time Division Multiplexing)
将时间分为等长的"TDM帧",每个"TDM帧"又分为等长的m个"时隙",将m个时隙分配给m对用户(节点)使用
-
**缺点: **
每个节点最多只能分配到信道总带宽的1/m
如果某节点暂不发送数据,会导致被分配的"时隙"闲置,信道利用率低
2. 统计时分复用(STDM)
- (STDM,Statistic Time Division Multiplexing)
在TDM的基础上,动态按需分配时隙
-
**优点: **
如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源
如果某节点暂不发送数据,可以不分配"时隙",信道利用率更高
三.频分复用(FDM)
- (FDM,Frequency DivisionMultiplexing)
频分复用是将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信。
-
优点
各节点可同时发送信号,充分利用了信道带宽
-
缺点、
只能用于模拟信号的传输
四.波分复用(WDM)
- (WDM,WavelengthDivision Multiplexing)
波分复用就是光的频分复用
Tips: 光信号的频带范围(带宽)非常大,因此很适合采用波分复用技术,将一根光纤在逻辑上拆分为多个子信道
五.码分复用(CDM)
1. 给各节点分配专属"码片序列"
- "码片序列"包含 mmm 个码片(信号值),可看作"mmm 维向量"
- (mmm 维向量的分量通常取 1 或 -1)
- **要求: ** 各节点的"mmm 维向量"必须相互正交
- **注: **相互通信的各节点知道彼此的"码片序列"
2. 发送方如何发送数据
- 节点发出 m 个信号值与"码片序列"相同 ,表示比特 1
- 节点发出 m 个信号值与"码片序列"相反 ,表示比特 0
3. 信号在传输过程中"叠加"
- 当多个发送方同时发送数据时,信号值会叠加(注: 本质是多个m维向量的加法)
4. 接收方如何接收数据
- 接收方收到的是"叠加"信号,需要从中"分离"出各发送方的数据
- 叠加信号 与 发送方的码片序列 作"规格化内积 "
- 结果为 1 ,表示比特 1
- 结果为 -1 ,表示比特 0
5. 例题
§3-1-4 (介质访问控制)随机访问
一.ALOHA协议
1. 纯ALOHA(非重点)
如果准备好数据帧,就立刻发送
2. 时隙ALOHA协议(非重点)
- 时隙大小固定 = 传输一个最长帧所需时间
- 只有在每个时隙开始时才能发送帧
二.CSMA协议
- CSMA(Carrier Sense Multiple Access)协议,即载波监听多路访问协议
CSMA协议在ALOHA协议基础上提出改进: 在发送数据之前,先监听信道是否空闲,只有信道空闲时,才会尝试发送
1. 1-坚持CSMA协议
- 优点: 信道利用率高。信道一旦空闲,就可以被下一个节点使用
- 缺点: 当多个节点都已准备好数据时,一旦信道空闲,会有多个节点同时发送数据,冲突概率大。
2. 非坚持CSMA协议
- 优点: 降低冲突概率。放弃监听信道一段时间可使各节点"错开"发送数据
- 缺点: 信道利用率降低。(信道刚恢复空闲时,可能不会被立即利用)
3. p-坚持CSMA协议
- 优点: 属于1-坚持CSMA、非坚持CSMA的折中方案,降低冲突概率的同时,提升信道利用率
三.CSMA/CD协议(有线以太网)
- CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 协议,即载波监听多路访问/冲突检测协议
用于早期的有线以太网 (总线型)
1. 协议要点
- 先听后发,边听边发,冲突停发,随机重发
(1).如何随机重发
-
截断二进制指数退避算法:
随机等待一段时间 = r 倍争用期,其中 r 是随机数("争用期"是一段固定大小的时间)
-
如果 k≤10k \le 10k≤10,在 [0,(2k−1)][0, (2^k - 1)][0,(2k−1)] 区间随机取一个整数 r
-
如果 k>10k > 10k>10,在 [0,(210−1)][0, (2^{10} - 1)][0,(210−1)] 区间随机取一个整数 r
(2). 特别注意
- 第10次冲突,是"随机重发"的分水岭
- 第16次冲突,直接躺平,放弃传帧,报告上级(网络层)
2. 争用期
- 争用期 = 2×2 \times2× 最大单向传播时延 (考虑距离最远的两个节点)
- 若争用期内未发生冲突,就不可能再冲突
- CSMA/CD 没有ACK机制,若发送过程中未检测到冲突,就认为帧发送成功,多有线使用(误码率较低)
3. 最短帧长
- 最短帧长 = 2×2 \times2× 最大单向传播时延 ×\times× 信道带宽
- 若收到的帧小于最短帧长,视为无效帧
- 如果实际要发送的数据很少, 可填充至合法长度后再发送
4. 最长帧长
- 规定最长帧长可防止某些节点一直占用信道
5. 以太网规定
- 最短帧长 = 64B;最长帧长 = 1518B
四.CSMA/CA协议(无线局域网)
-
[非重点]
-
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 协议,即载波监听多路访问/碰撞避免协议
0. 补充
无线局域网(WiFi)面临的新问题
1. 协议要点
-
发送方: 先听后发,忙则退避
- 若信道空闲,间隔DIFS后,再发送帧(一口气发完,发送过程中不用检测冲突)
- 若信道不空闲,则进行"随机退避"
-
随机退避原理
- 用二进制指数退避算法确定一段随机退避时间(倒计时)
- 发送方会保持监听信道,只有信道空闲时才"扣除倒计时",倒计时结束后立即发送帧(此时信道"听起来"一定空闲)
-
接收方: 停止等待协议
- 每收到一个正确数据帧都返回ACK;若发送方超时未收到ACK,则进行"随机退避"
2. 信道预约机制(可选功能)
解决隐藏站问题
key:先预约,再发送
-
发送方广播RTS控制帧(先听后发,忙则退避)
-
AP广播CTS控制帧
注: 需在RTS、CTS中指明预约时长
-
其他无关节点收到CTS后自觉"禁言"一段时间(即: 虚拟载波监听机制);发送方收到 CTS后,就可以发送数据帧
-
AP收到数据帧后,进行CRC校验,若无差错就返回ACK帧
3. 帧间间隔IFS
-
DIFS,最长的IFS
- 每次"帧事务"开始之前需要等待的时间
-
SIFS,最短的IFS
- 收到一个帧后需要预留的一段处理时间
-
PIFS,中等长度的IFS
- 考研可不关注PIFS
时间长度:DIFS >PIFS >SIFS
§3-1-5 (介质访问控制)轮询访问
一.令牌传递协议
1. 协议要点
(1). 令牌帧
- 需指明当前获得令牌的节点编号(MAU分配的)
- 只有获得令牌 (Token) 的节点才能往信道上发送数据帧
- 如果获得令牌的节点没有数据要发送 ,就将令牌传递下一个节点 (注:此时若有数据发送,则进行"发送数据时转换")
(2). 数据帧
- 需指明数据帧的 源地址/目的地址 、是否已被接收 、获得令牌的节点编号
- 数据帧从源结点发出,"传递一圈"后回到源节点
- 数据帧"传递一圈"的过程中,会被 目的节点复制一份数据 ,并将数据帧标记为"已接收"
- 数据帧回到源结点后,如果发现 异常状况 ,就尝试 重发 ;若 无异常,就将令牌传递下一个节点
2. 其他补充
- 无论是令牌帧还是数据帧,都只能沿单向传递
- 获得令牌的节点,每次只能发一帧,发完就释放令牌
- 需要用专门的网络设备 (MAU) 实现 集中控制
- 令牌传递协议很适用于 负载较高 的网络(不会发生冲突,效率高)
二.数据帧和令牌帧
三.MAU一令牌环网的集中控制站
§3-2-1 局域网
一.局域网和IEEE 802
二.局域网(LAN)的特点
- 覆盖较小的地理范围
- 较低的时延和误码率
- 局域网内的各节点之间以"帧"为单位进行传输
- 支持单播、广播、多播
三.局域网(LAN)的分类
关注三要素 (出题点)
- 拓扑结构
- 传输介质
- 介质访问控制方式
1. 有线局域网
(1).令牌环网(Token Ring)
- 环形
- 同轴电缆或双绞线
- 令牌传递协议
(2).以太网/802.3(Ethernet)
物理层采用曼彻斯特编码
①.同轴电缆以太网(废弃)
10Base5,1982年
- 总线形
- 同轴电缆(可用中继器连接多个同轴电缆网段)
- CSMA/CD协议
②.光纤以太网
10BaseF,1993年**(用于扩大以太网覆盖范围)**
- 点对点(用于中继器/集线器/交换机之间的传输,也就是说通常不会直接连接终端节点)
- 光纤
- NULL(用两条光纤实现全双工通信,没有信道争用)
③.双绞线以太网
10BaseT,1990年
用集线器连接
- 物理上星形,逻辑上总线形
- 双绞线(用集线器连接)
- CSMA/CD协议(半双工)
用交换机连接
-
物理上、逻辑上都是星形
-
双绞线(用交换机连接)
-
CSMA/CD协议或NULL
半双工模式下,采用CSMA/CD 争抢信道
全双工模式下,不用争抢信道,也就不需要使用CSMA/CD协议
2. 无线局域网/802.11(WLAN)
- IEEE802.11定义为星形(1个AP+N台移动设备)
- .无线(Wireless)
- CSMA/CA协议
§3-2-2 以太网802.3
LLC名存实亡,可以任务MAC层就是数据链路层。
一.以太网物理层
1. 做题技巧
- 同轴电缆网段: 仅支持半双工
- 双绞线网段
- 如果连接集线器,就只能工作在半双工模式下
- 如果连接交换机,就默认工作在全双工模式下
- 光纤网段(很少考): 仅支持全双工
二.以太网MAC层
使用曼彻斯特编码(跳0反跳1看中间,中必变)
1. V2标准的以太网MAC帧
2. 802.3标准的以太网MAC帧
3. 单播帧/广播帧如何传播
E到F交换机也会收到
4. 冲突域/广播域
三.VLAN(虚拟局域网)
1. 大型局域网面临的问题
- 局域网内任何一个节点发出的广播帧,都会被广播至所有节点。可能出现"广播风暴"。
- 不安全,局域网内可能会有一些敏感节点
2. VLAN(虚拟局域网)
3. VLAN划分方式:
(1).基于接口
(2).基于MAC地址
(3).基于IP地址
注:这种方式可以让VLAN范围跨越路由器,让多个局域网的主机组成一个VLAN(需要网络层功能支持)
4. 802.1Q帧的作用
主机与交换机之间,传输标准以太网帧
交换机与交换机之间,传输 802.1Q 帧
5. 802.1Q帧的结构
§3-2-3 无线局域网802.11
一.基本概念
二.802.11帧的分类
1. 数据帧
2. 控制帧
如 ACK、RTS、CTS帧
3. 管理帧
如 探测请求/探测响应帧(说人话:用于发现 wifi)
三.数据帧格式
1. 格式
2. 例题
注:
- 1.802.11帧用于无线链路传输,通常是AP与移动站之间的传输;
- 2.在有线链路上通常使用太网帧格式,AP与AP之间、AP与路由器之间、AP与以太网交换机之间使用有线链路;
AP通常具备"帧格式转换"功能。可以将在无线链路上传输的802.11帧格式,与有线链路上传输的以太网帧格式相互转换.
四.拓展:RTS,CTS,ACK帧格式
§3-2-4 以太网交换机
一.特点
- 交换机 = 多端口网桥(408大纲已删除网桥)
- 交换机工作在数据链路层,可以根据目的MAC地址转发帧
二.自学习功能(支持即插即用)
1. 交换表
- 初始为空,记录(MAC地址,端口号)的对应关系
2. 更新机制
- 每收到一个帧,就将"发送方"的(MAC地址,端口号)更新到交换表
3. 转发机制
(1). 不知道"接收方"在哪
- 就把帧广播到除入口外的其他端口
(2). 知道"接收方"在哪
- 就把帧精准转发至某个端口
4. 维护机制
- 交换表中每个表项都有"有效时间",过期表项自动作废(以防某些节点拔线跑路)
三.两种交换方式
1. 直通交换
- 只检查帧的目的MAC地址,以决定帧的转发端口
- 优点: 转发时延低
- 缺点: 不适用于需要速率匹配、协议转换或差错检测的线路
2. 存储转发交换
- 先把帧完整地接收到交换机内部的高速缓存中,进行差错检测等必要处理,再根据交换表决定从哪个端口转发出去
- 优点: 适用于需要速率匹配、协议转换或差错检测的线路
- 缺点: 转发时延高
-
例题






































































