CN——数据链路层(上)

3.1 数据链路层概述

3.1.1核心功能

在一段链路上传输帧,向上层网络层提供透明传输帧 的服务。 H1 经由路由器转发到 H2,在数据链路层视角分为多段独立链路(H1-R1、R1-R2、R21-R3、R3-H2),属于逻辑水平通信 ;各段链路可以运行不同协议(以太网、PPP 协议)。

3.1.2相关概念

  • 链路:相邻节点之间一段物理线路,中间无交换节点;

  • 数据链路

    • 基于链路,由链路本身和相关的协议共同构成。

    • 网卡(适配器)及其驱动程序实现链路层协议,网卡同时具备物理层、数据链路层功能。CPU 与存储器生成待发送数据,交付适配器;适配器给数据加上以太网帧首部、尾部,封装成帧,转换成串行比特流发送到局域网。

  • :数据链路层对等实体逻辑通信使用的协议数据单元 PDU。

3.1.3数据链路层三大基本问题

封装成帧

网络层IP分组前加首部、后加尾部,封装为帧。

  • 首部:帧开始符、源链路地址、目的链路地址;

  • 尾部:FCS 帧校验序列、帧结束符。

接收方处理流程: ① 通过帧起始、结束符完成帧定界,从连续比特流区分帧;

② 通过 FCS 检测传输误码; ③ 根据目的地址决定是否接收该帧。

帧格式规定属于协议三要素中的语法 。 为提升传输效率,帧载荷长度应远大于首尾控制字段;协议限定载荷最大长度 MTU(最大传送单元);以太网 MTU=1500 字节。 区分:MTU 属于链路层;MSS 是 TCP 传输层最大报文段载荷长度。

透明传输

含义:上层交付的数据内容不受任何限制,链路层对数据透明。

风险:若载荷内部出现帧定界标记 ,接收方发生帧定界错误

两种实现方案:

  1. 字节填充(字符填充,面向字节链路,如 PPP 异步链路) 发送方遇见帧定界符,前方插入转义字符 ESC;若数据本身含有 ESC,同样前置 ESC;接收方向上交付前删除额外 ESC。

  2. 比特填充(面向比特同步链路) 发送方遇见连续 5 个比特 1,末尾插入 1 个 0;接收方遇见连续 5 个 1,删除其后跟随的 0。

以太网特殊规则 以太网帧本身无显式帧定界符,不需要字节 / 比特填充。 链路层封装以太网帧向下交付物理层;物理层额外添加 8 字节前导码: 前 7 字节前同步码(接收方时钟同步),最后 1 字节帧开始符。 依靠96 比特帧间间隔区分相邻帧(10M 以太网对应 9.6μs),无需帧结束符。

差错检测

真实信道存在失真,会产生误码,依靠校验码实现检错 / 纠错。 校验码由原始数据 + 冗余校验数据构成,冗余信息带来额外开销;出现误码会破坏编码规则,接收方能够识别。

码距(海明距离)

码距:两个等长二进制编码相异比特的数量。

编码集最小码距:集合内任意两个编码码距的最小值。

  • 最小码距 d=1:无检错能力;

  • 最小码距 d=2:可以检测 1 位误码。

核心结论:最小码距决定检错、纠错能力;增大码距需要增加冗余比特,提升开销。

码距 d、可检错数 e、可纠错数 t 关系
奇偶校验

原始数据增加 1 位校验位,使 1 的总数保持奇数 / 偶数。 特性:最小码距 d=2;可以检出 1 位误码,无法纠错 ;出现 2 位误码无法检测。

海明校验

基于多组奇偶校验,既检错又纠错。

约束公式:,R = 校验位;

数据位越长编码效率越高;多用于内存单比特错误纠错。

规则:校验位放置在编号为 位置;数据位位置编号拆分为 2 的幂之和,归入对应校验组。

海明校验实例

原始数据 4 位:D₄ D₃ D₂ D₁ = 1 0 1 1,采用偶校验,求解完整海明校验码,并演示纠错过程。

海明码位置序号 1(P₁) 2 3(D₄) 4 5(D₃) 6(D₂) 7(D₁)
码位类型 P₁(校验位) P₂(校验位) D₄(数据位) P₃(校验位) D₃(数据位) D₂(数据位) D₁(数据位)
位置二进制编号 001 010 011 100 101 110 111
P₁校验组(第1位为1)
P₂校验组(第2位为1)
P₃校验组(第3位为1)
CRC 循环冗余校验(链路层主流)

网络差错大多为突发性多比特误码,CRC 对此检测效果好、开销小;

海明校验适合单比特纠错(内存场景)。链路层使用 CRC 检错,配合重传实现可靠传输。

运算规则:模二运算(等价异或,无进位、无借位)。

构建 CRC 校验码步骤:

接收方校验:收到的校验码模二除以;余数≠0 代表存在误码。 注意:CRC校验与FCS生成 由硬件高速完成。

3.2 可靠传输基础与三大 ARQ 协议

差错检测仅能发现错误,后续处理方式取决于链路层服务类型:

  • 不可靠传输:出错帧直接丢弃,不采取补救措施;有线链路误码率低常采用;

  • 可靠传输:通过机制保证接收方最终收到正确帧;无线链路误码高常需要。

传输差错不止比特误码,还包括:帧丢失、帧失序、帧重复;可靠传输并非链路层独有,多层均可实现。 三类 ARQ 自动重传请求协议:停止等待、回退 N 帧 GBN、选择重传 SR。

1. 停止等待协议 Stop-and-Wait

发送一帧后暂停,等待接收方反馈。 基础流程:无错返回 ACK;出错返回 NAK。

缺陷:帧、ACK、NAK 丢失时协议失效;引入超时重传解决。 优化方案:增加超时重传后可舍弃 NAK,协议更简洁;NAK 优势是提前触发重传。

1.解决帧重复

帧携带序号;停止等待仅需 1 比特序号(0、1)。 接收方收到重复序号帧:丢弃重复帧,依旧回复 ACK。

2.缓存机制

发送方发送帧后保留副本,收到 ACK 才可删除。

3.信道利用率

适用特点:卫星链路 RTT 极大,利用率很低,不适合;无线局域网 RTT 远小于发送时延,表现尚可。

2. 流水线传输

无需等待 ACK,可以连续发送多个帧;不能无限发送,因此引入滑动窗口机制。

3.回退 N 帧 GBN(Go-Back-N)

发送窗口:窗口内序号帧可连续发送;接收窗口

采用累计确认:ACK N 代表 N 及之前所有帧全部正确接收。

窗口约束(n = 序号比特数)目的:防止新旧帧混淆。

工作特点:一旦某一帧出错,该帧后续所有已发送帧全部重传(协议名称由来)。

性能:无差错时信道利用率很高;信道质量差、误码多时,大量重传,效率可能低于停止等待。

4. 选择重传 SR Selective Repeat

目标:只重传出错帧

条件:接收窗口 ,接收方缓存失序但无差错、序号落在窗口内的帧;

不使用累计确认,采用逐个确认。 窗口约束:。 可配合 NAK 分组,收到 NAK 立刻重传,不必等待超时。

性能对比: 理想无差错时,GBN 与 SR 理论最大利用率相同;存在误码时 SR 性能远优于 GBN;停止等待利用率最低。

3.3 PPP 点对点协议

3.3.1典型应用

  1. 因特网用户的计算机通过点对点协议接入到某个 ISP,进而接入到因特网。用户计算机与 ISP 所采用的数据链路层协议一般就是 PPP 协议。

  2. 广泛用于广域网路由器之间的专用线路。

3.3.2PPP 三大组成

  1. LCP 链路控制协议:链路建立、配置、测试、释放;

  2. 网络层 PDU 串行链路封装方式,载荷长度受 MTU 限制(默认 1500 字节);同时支持异步面向字节链路、同步面向比特链路;

  3. NCP 网络控制协议:一组子协议,分别协商配置不同网络层协议(IPCP 用于 IPv4)。

3.3.3PPP 帧关键字段

  1. 标志字段 F(0x7E):帧定界符;相邻帧可共用一个 F;连续两个 F 为空帧,丢弃。

  2. 协议字段: 0x0021 IPv4 报文;0xC021 LCP 分组;0x8021 IPCP 分组(NCP)

  3. FCS 字段:CRC 校验;运算范围:地址字段至信息字段。 执行顺序:发送方先算 FCS,再填充;接收方先去除填充,再校验 FCS。

3.3.4PPP 透明传输实现

  1. 异步链路(字节填充)

    需要填充的字符类型 原始数据载荷 字节填充后发送内容
    ① 帧界定符 0x7E 0x7E 0x7D 0x5E
    ② 转义符 0x7D 0x7D 0x7D 0x5D
    ③ 控制字符(例:0x01) 0x01 0x7D 0x21
    普通字符(无需填充:0x20及以上非特殊字符) 0x30 0x30
  2. 同步链路(零比特填充) 发送方遇见连续 5 个比特 1,后面插入 0;接收方删除该额外 0。

3.3.5PPP 协议工作状态(以 PC 拨号接入 ISP 为例)

  1. PPP 链路初始与最终状态均为链路静止(Link Dead)。此时用户主机与 ISP 拨号服务器之间不存在物理层连接。

  2. ISP 拨号服务器检测到主机经由调制解调器发来的载波信号,建立物理连接后,PPP 进入链路建立状态(Link Establishment)

    1. 协商成功:进入鉴别状态(Authentication)

    2. 协商失败:退回链路静止状态。

  3. 进行鉴别

    1. 无需身份鉴别,或身份鉴别成功:进入网络层协议状态(Network Layer Protocol)

    2. 身份鉴别失败:直接进入链路终止状态

  4. 网络层协议状态:通信双方交互对应 NCP 分组,完成网络层参数配置(如 IPCP 协商 IPv4 地址)。 NCP 配置完成,链路进入打开状态(Open),两端可以正常传输数据帧。

  5. 当链路发生故障,或任意一端发送链路终止请求时,进入链路终止状态;载波信号断开之后,链路回到链路静止状态,一次 PPP 会话结束。

相关推荐
Mortalbreeze2 小时前
深入理解TCP协议(一):TCP报文格式详解
linux·服务器·网络·tcp/ip
fasdgfgsdha56942 小时前
西乡塘代理记账哪家好
笔记
SendTomo3 小时前
send.wang(私传网)P2P直连加速文件传输
网络·网络协议·webrtc·html5·p2p
longxingiot3 小时前
智慧园区全域管控物联网主机应用
网络·物联网
嵌入式阿蔡3 小时前
OTA 实战四:安全启动与固件签名(Secure Boot)—— 拒绝非法固件
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
学计算机的计算基3 小时前
TCP 传输层硬核整理:三次握手、四次挥手、拥塞控制一次讲透
java·网络·笔记·网络协议·算法
砚凝霜3 小时前
软考网络工程师|案例分析:华为全套综合实验核心知识点 & 考点总结
网络·华为
Wang's Blog4 小时前
PostgreSQL笔记20: 实例、集群、模板数据库与表空间 —— 逻辑体系架构深度解析
数据库·笔记·postgresql
小新讲网安5 小时前
WiFi安全攻防实战:WPA3新协议与传统破解技术全解析
开发语言·网络·安全·php·漏洞·nmap·漏洞检测
wp123_112 小时前
硬件元器件笔记|IPX8 防水 Type‑C 母座安费诺 124018802112A 与 TONEVEE TY48086‑24A 分析
c语言·开发语言·笔记