【计网速通】计算机网络核心知识点和高频考点——数据链路层(一)

数据链路层核心知识点(一)

一、数据链路层概述

1.1 基本概念

数据链路层位于OSI模型的第二层,介于物理层和网络层之间,主要负责在相邻节点之间传输和识别数据帧。

1.2 主要功能

  • 帧同步:识别帧的开始和结束
  • 差错控制:检测和纠正传输错误
  • 流量控制:协调发送方和接收方的速率
  • 链路管理:建立、维护和释放数据链路
  • 透明传输:确保任何比特组合都能传输

1.3 两种信道类型

  1. 点对点信道:一对一通信(如PPP协议:点对点协议)
  2. 广播信道:一对多通信(如以太网)

二、数据链路层的三个重要问题

2.1 封装成帧

基本概念

将网络层传下来的IP数据报添加首部和尾部,形成帧。

帧结构
复制代码
| 帧首部 | 数据部分 | 帧尾部 |
  • 帧定界:通过特殊字符标识帧的开始和结束
  • 最大传输单元(MTU):帧中数据部分的最大长度
常用方法

(1)字符计数法(Character Count)
基本原理

在帧首部使用固定长度字段(通常1字节)标明帧中**字符(byte)**的总数。

帧格式示例
复制代码
| 计数字段(1字节) | 数据部分 | 

示例:'\x06''H''E''L''L''O' 表示包含(包括自己的)6个字符的帧

特点
  • 优点:实现简单
  • 缺点
    • 计数字段出错会导致后续所有帧错位(灾难性错误传播)
    • 无法支持变长帧(受限于计数字段长度)
应用场景

早期网络协议(如DECNET),现代网络已基本淘汰


(2) 字符填充法(Character Stuffing)
基本原理

使用特定字符作为帧定界符:

  • 开始符:ASCII字符DLE STX(0x02)
  • 结束符:ASCII字符DLE ETX(0x03)
  • 转义字符:DLE(Data Link Escape,0x10)
处理规则
  1. 数据中出现DLE时,插入额外DLE实现透明传输

示例:传输的数据"DLE" → 传输时运输的数据"DLE DLE"

  1. 接收方遇到连续两个DLE时删除一个,只解析第一个DLE转移字符后的数据部分
帧格式示例
复制代码
| DLE STX | 数据部分(填充后) | DLE ETX |
特点
  • 优点:兼容性强(支持任意字符传输)
  • 缺点
    • 效率低(需插入额外字符)
    • 仅适用于文本传输(不适用于二进制数据)
典型协议

BISYNC协议(IBM二进制同步通信协议)


(3) 比特填充法(Bit Stuffing)
基本原理

使用特定比特模式作为帧定界标志:

  • 帧定界符:01111110(0x7E)
  • 填充规则:数据中出现连续5个1时自动插入1个0

防止数据中传输的数据可能会出现判定帧定界符错误的问题

工作流程
  1. 发送方:
    • 遇到11111时插入0 → 发送111110
    • 始终保持帧间隔符01111110的唯一性
  2. 接收方:
    • 删除连续5个1后的0
    • 遇到01111110识别为帧边界
帧格式示例
复制代码
01111110 | 数据部分(填充后) | 01111110
特点
  • 优点
    • 高效(比特级操作)
    • 完美支持二进制数据传输
  • 缺点:实现复杂度较高
典型协议

HDLC、PPP协议


(4) 违规编码法(Physical Layer Violation)
基本原理

利用物理层冗余编码规则实现帧定界:

  • 使用物理层未定义的信号状态作为标志
  • 示例:曼彻斯特编码中的"高-高"或"低-低"电平组合
实现方式
编码类型 正常信号 违规信号
曼彻斯特 位中间跳变 持续高/低电平
差分曼彻斯特 位开始跳变 无跳变
帧格式示例
复制代码
[违规信号] | 正常编码数据 | [违规信号]
特点
  • 优点
    • 无需占用数据位
    • 定界信号100%可靠
  • 缺点:依赖特定物理层编码方式
典型应用

IEEE 802.3以太网(前导码使用7字节0xAA+1字节0xAB)


四种方法对比总结
方法 定界方式 透明传输方案 效率 复杂度 适用场景
字符计数法 首部长度字段 已淘汰
字符填充法 特定字符 DLE(SEC)转义 文本传输
比特填充法 特殊比特模式 零比特插入 二进制数据传输
违规编码法 物理层违规信号 物理层区分 最高 特定编码系统

考研高频考点
  1. 比特填充法流程(必考计算/简答)

    • 给出数据部分,要求写出填充后的帧
    • 示例 :数据011011111011111101 → 填充后01101111100 1111100 1
  2. 透明传输问题分析

    • 判断给定场景应使用哪种方法
    • 典型题干 :"当数据中出现大量0x7E时,应采用___实现透明传输"
      (比特填充)
  3. 方法缺陷比较

    • 字符计数法的错误传播问题
    • 字符填充法的效率瓶颈
  4. 协议与方法对应关系

    • PPP协议 → 比特填充法
    • BISYNC协议 → 字符填充法
    • 以太网 → 违规编码法(前导码)+ 比特填充法(MAC帧内)

2.2 透明传输

问题描述

当数据部分出现与帧定界符相同的比特组合时,如何区分是数据还是控制信息。

解决方案
  1. 字节填充:在特殊字符前插入转义字符
  2. 比特填充:在连续5个1后插入0

2.3 差错控制

差错类型
  1. 位错:比特位翻转(1变0或0变1)
  2. 帧错:帧丢失、重复或失序

检错技术
(1) 奇偶校验(Parity Check)

基本原理

  • 在数据位后添加1位校验位,使整个码字中"1"的个数满足特定奇偶性
  • 奇校验:1的总数为奇数
  • 偶校验:1的总数为偶数

实现步骤

  1. 发送方计算数据位中1的个数
  2. 根据校验类型(奇/偶)设置校验位
    • 奇校验:若数据中1的个数为偶数,校验位置1
    • 偶校验:若数据中1的个数为奇数,校验位置1
  3. 接收方验证1的总数是否符合约定

示例

  • 数据10100011(4个1)
    • 奇校验码:101000111(总1数=5,奇数)
    • 偶校验码:101000110(总1数=4,偶数)

特点

  • 优点:实现简单,开销小(仅1位校验)
  • 缺点:
    • 只能检测奇数位错误
    • 无法定位错误位置
    • 漏检率高达50%(偶数位错误无法检测)

应用场景

  • 低速串行通信(如UART)
  • 内存错误检测(早期RAM)

(2) 循环冗余校验(CRC, Cyclic Redundancy Check)

核心思想

  • 数据位串 视为多项式系数 (如1101 → ( x3 + x2 + 1 ))
  • 通过模2除法计算校验码(余数作为FCS)

关键参数

  • 生成多项式 :预先约定的除数(如CRC-16:( x16 + x15 + x2 + 1 ))
  • 校验位长度:生成多项式最高次幂(如CRC-16为16位,r=16)

计算步骤

  1. 数据左移n位低位补0(n=生成多项式次数)
  2. 用生成多项式(数据位串)作除数对扩展后的数据做模2除法
  3. 将余数(r位)作为FCS附加到原数据后

示例

  • 数据:1101011011
  • 生成多项式:( x4 + x + 1 )(10011)(最高次幂为4)
  1. 数据左移4位:11010110110000

  2. 模2除法(不进位借位的异或运算):

    复制代码
     	    ____1100001010_
     10011 /11010110110000
     		10011
     		--------------
     		 10011
     		 10011
     		---------------
     		  00001
     		  00000
     		  -------------
     		   00010
     		   00000
     		   ------------
     		    00101
     		    00000
     		    -----------
     		     01011
     		     00000
     		     ----------
     		      10110
     		      10011
     		      ---------
     		       01010
     		       00000
     		       --------
     		        10100
     		        10011
     		        -------
     		         01110
     		         00000
     		         ------
     		          1100
  3. 发送帧:11010110111110

检错能力

  • 可检测所有奇数位错误
  • 可检测所有双比特错误
  • 可检测所有长度≤r的突发错误(r为校验位长度)
  • 漏检率:1/2r

典型标准

标准 生成多项式 应用场景
CRC-8 ( x8 + x2 + x + 1 ) ATM信头
CRC-16 ( x16+ x15 + x2 + 1 ) Modbus协议
CRC-32 ( x32 + ... + 1 ) 以太网、ZIP文件

纠错技术:海明码(Hamming Code)
1. 基本原理
  • 在数据位中插入多个校验位 ,构建冗余关系
  • 通过校验方程定位错误位置并纠正
2. 校验位计算
  • 设数据位为m,校验位为r,满足:

    2r ≥ m + r + 1

  • 校验位位置:位于2的幂次方位(1,2,4,8,...)

3. 编码步骤(以4位数据1011为例)
  1. 确定校验位数:

    • m=4 → 最小r=3(因( 23=8 ≥ 4+3+1 )
  2. 构建码字位置:

    复制代码
    位置: 1(校验) 2(校验) 3 4(校验) 5 6 7
    值:   _       _      1 _       0 1 1
  3. 计算校验位:

    • P1(位置1):覆盖所有位置号第0位为1的位(1,3,5,7)

      复制代码
      P1 = D3 ⊕ D5 ⊕ D7 =  1⊕0⊕1 = 0
    • P2(位置2):覆盖所有位置号第1位为1的位(2,3,6,7)

      复制代码
      P2 = D3 ⊕ D6 ⊕ D7 = 1⊕1⊕1 = 1
    • P4(位置4):覆盖所有位置号第2位为1的位(4,5,6,7)

      复制代码
      P4 = D5 ⊕ D6 ⊕ D7  = 0⊕1⊕1 = 0
  4. 完整码字:

    复制代码
    位置: 1   2   3   4   5   6   7
    值:   0   1   1   0   0   1   1
4. 检错与纠错
  1. 接收方重新计算校验方程:

    • ( S1 = P1 ⊕ D3 ⊕ D5⊕ D7 )
    • ( S2 = P2 ⊕ D3 ⊕ D6 ⊕ D7 )
    • ( S4 = P4 ⊕ D5 ⊕ D6 ⊕ D7 )
  2. 错误位置:

    错误位置 = S4 S2 S1 (二进制)

    • 示例:若D3出错(位置3):
      • ( S1=1, S2=1, S4=0 ) → 011=3
5. 特点
  • 纠错能力 :仅能纠正单比特错误
  • 检错能力:可检测双比特错误(无法纠正)
  • 效率:校验位占比随数据长度增加而降低
6. 海明距离
  • 定义:两个等长码字间不同位的个数
  • 关系
    • 检测e个错误:码距 ≥ e+1
    • 纠正t个错误:码距 ≥ 2t+1

技术对比
技术 类型 冗余度 能力 复杂度 典型应用
奇偶校验 检错 1位 检测奇数位错误 串口通信
CRC 检错 16-32位 检测多种错误模式 以太网/磁盘存储
海明码 纠错 log₂n位 纠正单比特错误 ECC内存/卫星通信

考研真题示例

真题1(2016年-35)

题目:采用CRC校验,生成多项式为( x^3 + 1 ),数据为101001,求校验码。

解答:

  1. 生成多项式1001(( x^3 + 1 ))

  2. 数据左移3位:101001000

  3. 模2除法:

    复制代码
    101001000
    ⊕ 1001
    --------
      001101
    ⊕   1001
    --------
        1110 → 余数`110`
  4. 校验码:110

真题2(2020年-37)

题目:海明码编码,信息位1010,求编码后的码字。

解答:

  1. m=4 → r=3(( 2^3 \geq 4+3+1 ))

  2. 码位布局:

    复制代码
    位置:1 2 3 4 5 6 7
    数据:_ _ 1 _ 0 1 0
  3. 计算校验位:

    • P1 = D3⊕D5⊕D7 = 1⊕0⊕0 = 1
    • P2 = D3⊕D6⊕D7 = 1⊕1⊕0 = 0
    • P4 = D5⊕D6⊕D7 = 0⊕1⊕0 = 1
  4. 完整码字:1 0 1 1 0 1 0


三、可靠传输机制

3.1 停止-等待协议(Stop-and-Wait)

基本原理
  • 发送方发送一帧后停止,等待接收方确认
  • 收到确认后再发送下一帧
关键问题
  1. 超时重传:设置合理的超时计时器
  2. 确认丢失:重复帧处理
  3. 确认迟到:序列号机制
信道利用率

U = TD / (TD + RTT + TA)

  • TD:发送数据时间
  • RTT:往返时间
  • TA:发送确认时间

3.2 后退N帧协议(GBN)

基本原理
  • 发送窗口大小WT:1 < WT ≤ 2n - 1
  • 接收窗口大小WR:1
  • 累计确认机制
特点
  1. 发送方可以连续发送多个帧
  2. 接收方只按序接收
  3. 出错时重传所有未确认帧

3.3 选择重传协议(SR)

基本原理
  • 发送窗口大小WT = 接收窗口大小WR = 2(n-1)(一般情况下)
  • 单独确认机制
特点
  1. 接收方可以缓存乱序到达的帧
  2. 只重传真正丢失的帧
  3. 效率高但实现复杂

四、考研真题示例

真题1(2015年-36)

题目

若数据链路层采用后退N帧协议发送数据,发送窗口尺寸为4,帧编号为3位,则发送方最多可发送多少帧?

解析

对于后退N帧协议,发送窗口大小WT ≤ 2n - 1 = 7。

题目给定WT=4,因此最多可连续发送4帧。

真题2(2018年-37)(下节讲解知识)
题目

以太网中,若最短帧长为64B,信号传播速率为2×10^8m/s,网络带宽为100Mbps,求最大网络跨距。
解析

  1. 发送最短帧时间 = (64×8)/108 = 5.12μs
  2. 争用期 = 2τ = 5.12μs → τ = 2.56μs
  3. 最大跨距 = 2.56×10-6 × 2×108 = 512m

附:重要公式速查

  1. 海明码校验位数
    2^r ≥ k + r + 1

  2. CRC校验
    FCS = 数据 × 2^n mod 生成多项式

  3. 信道利用率(停止等待)
    U = T_D / (T_D + RTT + T_A)

  4. 最小帧长(以太网) :(下节讲解)
    L_min = 2τ × 带宽

上文链接:https://blog.csdn.net/weixin_73492487/article/details/146455322

相关推荐
二进制人工智能21 分钟前
【QT5 网络编程示例】TCP 通信
网络·c++·qt·tcp/ip
落笔画忧愁e3 小时前
VRRP协议
网络·智能路由器
卓应4 小时前
2025年华为H31-831题库
网络·华为
山楂树の5 小时前
计算机网络 TCP/IP参考模型
网络·tcp/ip·计算机网络
卓应6 小时前
2025年华为HCIP题库分享
网络·华为·智能路由器
榆榆欸8 小时前
7.从Server到Acceptor,优化Reactor模式的实现
linux·服务器·网络
Mars--9 小时前
IP数据报报文格式
网络
榆榆欸10 小时前
6.实现 Reactor 模式的 EventLoop 和 Server 类
linux·服务器·网络·c++·tcp/ip
快乐的蛋糕11 小时前
【Linux】进程间通信(IPC)-- 无名管道、命名管道
linux·服务器·网络
XMYX-011 小时前
如何加强 SSH 安全:内网和专用网络环境下的防护策略
网络·安全·ssh