【零基础计网入门笔记 03】数据链路层

整体定位:数据链路层只解决相邻设备、局部局域网 / 点对点网线的通信,不跨路由器,分为两大通信场景:一对一点对点、一对多广播局域网;全章节围绕封装成帧、透明传输、差错检测三个底层通用问题展开。

本章重点速览:

  • 数据链路层的几个共同问题 ※
  • 点对点协议 PPP ※
  • 使用广播信道的数据链路层 ※

一、前置基础概念:信道、链路、数据链路

1.1 两种信道类型

  1. 点对点信道(1 对 1)

线路只连接两台设备(电脑连光猫、串口拨号),不存在多台设备抢线,一对一通信。

  1. 广播信道(1 对多)

一根总线 / 集线器连接多台主机,一台发数据,所有设备都能收到;多台同时发包会产生信号冲突乱码,局域网早期组网用这种。

1.2 链路 vs 数据链路

  1. 链路:指的从一个结点到相邻结点的一段物理线路,中间没有结点。
  • 单纯的物理网线 / 光纤,只有硬件线路,没有任何传输协议。
  • 例:A → B → C,A 直接连 B 才叫链路;A 经过 B 中转到 C,A-C 不能叫链路。
  1. 数据链路:链路 + 数据链路层协议,能完成组帧、纠错、透明传输,真正实现可靠传递数据。

二、数据链路层的三个基本问题

封装成帧、透明传输、差错检测

2.1 封装成帧

给 IP 数据包套上“信封”。

  1. 操作:网络层下发裸 IP 数据,链路层给它加帧首部 + 帧尾部,整体叫「帧」。
    - ![[Pasted image 20260619201710.png]]

  2. 核心作用帧定界。首尾有固定二进制标记,接收端靠标记区分:一帧从哪开始、到哪结束。
    -  ![[Pasted image 20260619201847.png]]

  3. 限制 MTU:以太网规定帧内部的数据部分最大 1500 字节,数据包超过这个长度,网络层需要提前拆分。

  4. 原生缺陷:如果 IP 数据内部恰好出现和帧头 / 帧尾一模一样的二进制标记,接收端会误判 “帧提前结束”,截断数据,由此引出第二个问题:透明传输。
    -  ![[Pasted image 20260619201938.png]]

2.2 透明传输

任意二进制数据都能完整送达。

  1. 含义:上层不用关心底层的分界标记,无论数据是 0/1 乱码、特殊控制字符,都能原样无修改送到接收端,底层自动处理冲突标记。

  2. 解决方案:填充(字符 / 字节填充)

    • 遇到和帧分界符重复的数据时,在它前面插入转义字符做标记;接收端识别转义字符后,删除转义符还原原始数据,避免误判帧边界。
      - ![[Pasted image 20260619202910.png]]

2.3 差错检验

CRC 循环冗余校验(排查传输比特错误)。

含义:网线受电磁干扰会出现比特翻转(0 变 1、1 变 0),CRC 用来检测这种传输错误。

注意:CRC只能检测错误,不能修复错误,出错只能丢弃,依靠上层重传。

1. CRC 运算规则

模2运算(异或运算:相同为0,相异为1)。

被除数:
待发送的数据+几个0(+几个0取决于除数,除数 -1位,5→4,4→3)

除数:

  1. 由生成多项式 G (X) 得到二进制除数
    • 示例:$G(X)=X4+X2+X+1$
    • 按幂次补系数:$1X4+0*X3+1X2+1*X1+1*X^0$,除数 = 10111(5 位)
  2. 除数有 n 位,原始数据(被除数)末尾补 n-1 个 0(本例 5 位除数,补 4 个 0)

接下来:

  1. 原始数据 + 补零整体除数 做模 2 除法,得到余数(校验码 FCS)。若有余数,则说明数据是错误的。
  2. 把末尾补的 0 替换成余数,组成完整帧发送
  3. 接收端校验:整串帧除以除数
    • 余数 = 0:无传输错误;
    • 余数≠0:数据损坏,直接丢弃该帧。

例题
![[Pasted image 20260619204259.png]]

三、点对点协议 PPP

适用场景:老式电话拨号上网、光猫串行点对点链路,专门管理一对一通信。

3.1 PPP 三大组成

  • 帧封装规则:把 IP 数据包封装进 PPP 帧,适配串行物理线路;
  • LCP 链路控制协议:负责建立、配置、断开物理线路,协商线路基础参数;
  • NCP 网络控制协议:协商上层网络参数(给设备分配 IP 地址等)。

3.2 PPP协议的帧格式

![[Pasted image 20260621161700.png]]

  • 首部是用 16 进制表示的,可能和信息部分重合,造成误判。为了避免这种情况,要进行填充。

3.3 PPP 帧的透明传输的两种填充方式

PPP 帧的首尾标记是十六进制7E,如果数据里出现7E、转义符7D会误判帧结束,分两种传输模式处理:

1. 异步传输(字符流,老式拨号):字节填充

到特殊字符前插入转义字符7D,同时修改原字符:

  • 分界符7E:加7D,原数值减 0x20 → 5E
  • 转义符7D:加7D,原数值减 0x20 → 5D
  • ASCII 小于 0x20 的控制字符:加7D,原数值加 0x20

接收端读到7D,就对后一个字符反向加减 20,删掉转义符恢复原始数据。
- ![[Pasted image 20260621162230.png]]

2. 同步传输(高速光纤比特流):零比特填充

不靠字符区分边界,靠比特序列01111110做帧标记。

  • 发送端:扫描全部比特,只要出现连续 5 个 1,强制插入 1 个 0;保证数据不会出现 6 个连续 1,不会和帧标记冲突。
  • 接收端:识别连续 5 个 1,直接删除紧跟的 0,还原原始比特。

四、广播信道:局域网以太网(多主机共享线路)

4.1 冲突问题与 CSMA/CD 协议

广播信道的局域网:用同轴电缆或集线器组网,A - B - C - D 多台主机共享。

  • 这种情况下,如果我同时要传输信息 A → C 和 B → D,则会导致 B → C 这一段信息冲突碰撞,产生乱码。为了避免这种情况,我们提出 CSMA/CD协议

1. CSMA/CD协议

集线器组网属于共享总线,多台主机同时发包会信号碰撞乱码,CSMA/CD 用来管控发包行为,五步逻辑:

  1. 发送前侦听:先检测线路是否空闲,有数据传输就等待;
  2. 边发边听:发包同时持续监听线路信号;
  3. 检测冲突立刻停发:波形紊乱 = 冲突,马上停止发送;
  4. 发送阻塞信号:发送一串干扰码,通知全网所有主机发生冲突;
  5. 截断二进制退避算法:等待一段随机时间后,重新尝试发送。

4.2 以太网技术

以太网 = 全世界最通用的局域网二层通信标准(数据链路层技术)。

  • 简单理解:你电脑插网线、路由器 LAN 口、公司内网、交换机、WiFi 底层局域网部分,全都是以太网。
  • 核心任务:规定设备之间怎么封装「帧」、怎么识别内网设备、网线里怎么传输数据

以太网的两个主要标准

  1. DIX Ethernet V2:最早商用标准,目前互联网主流;

  2. IEEE 802.3:官方标准化标准,拆分数据链路层两层:

    • LLC 逻辑链路层:对接网络层,现已淘汰;
    • MAC 媒体访问控制层:帧封装、冲突管控、硬件寻址,现在局域网只保留 MAC 层。

4.3 MAC 地址(硬件地址 / 物理地址)

根据以太网两个标准的不同,可以把数据链路层分为两层(LLC,MAC),目前主要使用 MAC(媒体介入控制组层)。

MAC 地址就是硬件地址,也就是物理地址,是由 48 位组成的。

  • 规格:固定 48 位(6 字节,12 位十六进制,如00:AA:BB:CC:DD:EE);
  • 存储:网卡出厂时厂商烧录在网卡硬件 ROM 中,全球唯一;换网卡才会真正改变,软件只能临时伪装;
  • 生效范围:仅当前局域网

作用:同一内网里精准定位一台设备。广播局域网中定位目标设备,帧头部携带源 MAC、目的 MAC,用来区分接收主机。

posted @ 2026-07-10 14:51  Alkaid2077  阅读(2)  评论(0)    收藏  举报