计算机网络第三章笔记(一)

目录

一、数据链路层基础概念与功能

1.1基本术语

[1.2 核心功能](#1.2 核心功能)

1.3服务类型

[二、 数据链路层的三个核心问题](#二、 数据链路层的三个核心问题)

2.1封装成帧

2.1.1核心定义

2.1.2相关概念

[2.1.3 帧格式的核心字段](#2.1.3 帧格式的核心字段)

[2.2 透明传输](#2.2 透明传输)

[2.2.1 问题本质](#2.2.1 问题本质)

[2.2.2 实现方法](#2.2.2 实现方法)

[2.3 差错检测](#2.3 差错检测)

[2.3.1 差错类型](#2.3.1 差错类型)

[2.3.2 校验码](#2.3.2 校验码)

三、差错检测编码

[3.1 奇偶校验](#3.1 奇偶校验)

[3.1.1 核心原理](#3.1.1 核心原理)

[3.1.2 检错能力](#3.1.2 检错能力)

[3.2 海明校验](#3.2 海明校验)

[3.2.1 核心特性](#3.2.1 核心特性)

[3.2.2 关键公式](#3.2.2 关键公式)

[3.2.3 编码步骤](#3.2.3 编码步骤)

[3.2.4 纠错步骤](#3.2.4 纠错步骤)

[3.3 循环冗余校验(CRC)](#3.3 循环冗余校验(CRC))

[3.3.1 核心特性](#3.3.1 核心特性)

[3.3.2 核心原理](#3.3.2 核心原理)

[3.3.3 生成多项式的规则](#3.3.3 生成多项式的规则)

[3.3.5 校验步骤](#3.3.5 校验步骤)


一、数据链路层基础概念与功能

1.1基本术语

|------|----------------------------------------|
| 术语 | 定义 |
| 链路 | 节点间的物理线路(有线/无线),无协议约束,仅负责比特传输 |
| 数据链路 | 物理链路 + 通信协议 + 软硬件(如网卡,含物理层+数据链路层功能) |
| 帧 | 数据链路层PDU,对等实体逻辑通信的基本单位,由首部+数据+尾部组成 |
| 透明传输 | 使数据链路层对上层交付的PDU内容无限制,可传输任意比特组合 |

1.2 核心功能

  1. 封装成帧:给网络层IP数据报添加首部和尾部,形成帧

  2. 透明传输:解决帧定界符与数据的冲突问题

  3. 差错检测:检测帧在传输过程中的比特错(误码)

  4. 可靠传输:可选功能,实现帧的无差错、不丢失、不重复、按序交付

  5. 链路管理:面向连接协议(如HDLC)的链路建立、维护与释放

1.3服务类型

为网络层提供两种服务:无确认的无连接服务(如以太网)、有确认的无连接服务(如无线局域网)

二、 数据链路层的三个核心问题

2.1封装成帧

2.1.1核心定义

给网络层PDU添加首部和尾部 ,实现帧的定界,区分连续传输的不同帧

2.1.2相关概念

最大传送单元(MTU)

帧的数据载荷(网络层PDU)的最大长度,由数据链路层协议规定(以太网MTU为1500字节,PPP协议MTU可配置)

最大报文段长度(MSS)

TCP报文段的数据部分的最大长度(不含TCP首部),由TCP层协商

2.1.3 帧格式的核心字段

|-------|---------------------------------|-------------------------------------|
| 协议 | 核心字段 | 功能 |
| 以太网V2 | 目的MAC地址、源MAC地址、类型字段、FCS序列 | 类型字段标识上层协议(如0x0800表示IP协议),FCS用于差错检测 |
| PPP | 标志字段(0x7E)、地址字段、控制字段、协议字段、FCS序列 | 标志字段用于帧定界,协议字段标识上层协议 |

2.2 透明传输

2.2.1 问题本质

解决帧定界符与数据内容冲突的问题(如数据中出现与帧标志字段相同的比特序列)

2.2.2 实现方法
  1. 字节填充(字符填充)

    1. 适用场景:面向字节的协议(如PPP协议)

    2. 定界符:0x7E(帧开始和结束标志)

    3. 填充规则:

      • 发送方:数据中出现0x7E ,替换为0x7D 0x5E ;出现0x7D ,替换为0x7D 0x5D (即将原始的冲突字符减去0x2E, 再在前面加上0x7D)

      • 接收方:反向替换,恢复原始数据

  2. 比特填充

    1. 适用场景:面向比特的协议(PPP协议)

    2. 定界符:01111110

    3. 填充规则:

      • 发送方:扫描数据,每遇到5个连续的1 ,在其后插入1个0

      • 接收方:扫描收到的帧,每遇到5个连续的1 ,删除其后的1个0

  3. 以太网的特殊处理

    1. 通过8字节前导码(7字节同步码+1字节帧开始符)实现帧定界,无需帧结束符

    2. 以太网还规定了帧间间隔时间为96比特时间

2.3 差错检测

2.3.1 差错类型
  • 比特错(误码):信道失真导致比特翻转(1→0或0→1),数据链路层主要检测此类差错

  • 分组丢失/失序/重复:由网络拥塞、链路故障等导致,数据链路层不处理,由上层(如TCP)负责

2.3.2 校验码
  1. 码距(海明距离)

    1. 定义:两个等长二进制编码中,对应位不同的位数

    2. 编码集的码距:任意两个编码的最小码距 ,记为

  2. 码距与检错、纠错能力的关系

    1. 检错能力:若要检测 位误码,需满足

    2. 纠错能力:若要纠正 位误码,需满足

    3. 同时检错纠错:若要检测 位误码并纠正 位误码(),需满足

三、差错检测编码

3.1 奇偶校验

3.1.1 核心原理

在原始数据后添加1位校验位,使整个编码(数据位+校验位)中1的个数为奇数(奇校验)或偶数(偶校验)

3.1.2 检错能力

码距,可检测1位误码 ,无法检测偶数位误码,无纠错能力

3.2 海明校验

3.2.1 核心特性
  • 基于奇偶校验改进,可检测2位误码,纠正1位误码 ,编码集码距

  • 局限性:无法可靠纠正2位及以上误码,仅适用于1位误码场景

3.2.2 关键公式

设原始数据位为,校验位为,需满足:

  • 公式含义:个状态中,1个状态表示无错,剩余个状态用于标识位中某一位出错

  • 示例:时,(),构成12位海明码

3.2.3 编码步骤
  1. 确定校验位位置 :校验位放在海明码中编号为2的幂次方 的位置,海明码编号从1开始

  2. 确定数据位位置:原始数据位依次填充海明码中除校验位外的剩余位置

  3. 分配校验组 :将每个数据位的位置编号拆分为校验位位置编号的和,该数据位即归属于对应校验位的校验组(一个数据位可属于多个校验组)

  4. 计算校验位值:每个校验位的值由其校验组内所有数据位的异或结果决定

3.2.4 纠错步骤
  1. 接收方根据校验组重新计算每个校验位的预期值

  2. 比较预期值与实际值,得到校验结果位(1表示出错,0表示无错)

  3. 将校验结果位按顺序排列,得到出错位置编号,若为0则无错,否则纠正该位置的比特

3.3 循环冗余校验(CRC)

3.3.1 核心特性
  • 专门针对突发性多比特误码,开销小、检错效率高,以太网、PPP、802.11均采用

  • 检错能力:与生成多项式相关,可检测所有奇数位误码、所有长度小于等于 的突发误码(为 最高次幂)

  • 局限性:无纠错能力,若检测到误码,直接丢弃帧;一般需要结合重传机制进行重传

3.3.2 核心原理

基于二进制模2运算 (无进位加法、无借位减法,等价于异或运算)的多项式除法,收发双方预先约定生成多项式

3.3.3 生成多项式的规则

必须包含最高次项 和最低次项 (即多项式系数的最高位和最低位均为1)

3.3.4 编码步骤

  1. 多项式转换 :将原始数据表示为多项式,生成多项式 的最高次幂为

  2. 数据左移 :将 左移 位,得到(即原始数据尾部添加 个0)

  3. 模2除法 :用 对 做模2除法,得到余数(冗余码,长度为 位,不足则补0)

  4. 生成CRC码 :CRC校验码 = 原始数据 + 冗余码(该码能被 整除)

3.3.5 校验步骤
  1. 接收方将收到的CRC校验码表示为多项式

  2. 用 对 做模2除法

  3. 结果判断:余数为0则无错;余数不为0则存在误码,丢弃该帧

相关推荐
Li_RuiQi1 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu1 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇1 小时前
turtle 入门教程笔记
笔记
跨知易知识产权2 小时前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理2 小时前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法
悟道书生2 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
陈哈哈11113 小时前
折腾了半天,总算把 Vim 9.2 装明白了
笔记
陈哈哈11113 小时前
折腾了半天,总算把 OpenGL 的开发环境给装明白了
笔记
深圳老胡3 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节
正弦波_Wave4 小时前
【Orcad原理图打印Pdf】
笔记·pdf