一、物理层与数据链路层:编码、成帧与滑动窗口(补-01 ~ 补-05)
补-01
以太网(IEEE 802.3,10Mbps 标准以太网)在物理层采用的信号编码方式是( ),其编码效率为( )。 A. 差分曼彻斯特编码;50% B. 4B/5B 编码;80% C. 曼彻斯特编码;50% D. NRZ(不归零)编码;100%
答案:C
① 考点定位:物理层 — 编码方式 — 曼彻斯特编码与差分曼彻斯特编码的区分,以及编码效率的概念。
② 知识精讲
以太网(IEEE 802.3)10Mbps 标准以太网在物理层使用的信号编码是曼彻斯特编码。其核心规则:每个比特周期的中间有一个跳变——从高电平跳到低电平表示“0”,从低电平跳到高电平表示“1”(也有教材采用相反约定,但均有中间跳变)。中间跳变既传输数据又自带时钟信息,因此称为自同步编码。
编码效率的计算:
- 曼彻斯特编码中,每个比特需要两个码元(一个高电平+一个低电平)来表示,即比特率 = 波特率/2。
- 如果信道波特率为 10 Mbaud,则比特率仅为 5 Mbps——但 10Base-T 以太网的设计是让波特率翻倍来达到 10 Mbps 比特率。
- 编码效率 = 有效信息比特数 / 传输的码元数 × 100% = 1/2 = 50%。
差分曼彻斯特编码(用于令牌环网 IEEE 802.5):每个比特中间必有跳变(用于同步),比特起始处有跳变表示“0“、无跳变表示”1”。它也是 50% 效率,但判断 0/1 的规则不同。
4B/5B 编码用于 100Base-TX 快速以太网(IEEE 802.3u):将 4 位数据映射为 5 位码组,效率 4/5 = 80%,再配合线路编码传输——铜缆(100Base-TX)用 MLT-3,光纤(100Base-FX)用 NRZI。
NRZ(不归零编码):高电平表示 1、低电平表示 0(或反之),无中间跳变,编码效率理论上 100%,但无自同步能力,连续 0 或连续 1 时接收方无法提取时钟,因此不直接用于以太网。
③ 本题解析
本题问的是 IEEE 802.3 10Mbps 标准以太网的编码方式。10Mbps 以太网(如 10Base-T)在物理层使用曼彻斯特编码,编码效率 50%。对应选项 C. 曼彻斯特编码;50%。
④ 选项逐项辨析
- A. 差分曼彻斯特编码;50% ❌:差分曼彻斯特编码用于令牌环网(IEEE 802.5),不是以太网。效率虽同为 50%,但编码方式不对。 误解来源:两种编码名字只差“差分”二字,效率同为 50%,且都靠比特中间跳变实现自同步,初学者极易混为一谈。记住关键区别:差分曼彻斯特用“比特起始处有无跳变”来区分 0/1(有跳变=0,无跳变=1),而曼彻斯特用“中间跳变方向”来区分(高→低=0,低→高=1)。
- B. 4B/5B 编码;80% ❌:4B/5B 用于 100Base-TX 快速以太网(100Mbps),而非 10Mbps 标准以太网。效率 80% 是正确的,但编码方式不匹配题意。 误解来源:看到“以太网”就选最常听到的编码。4B/5B 确实是以太网家族的编码,但属于百兆阶段;题目明确问 10Mbps 标准以太网,对应的是更早期的曼彻斯特。把“以太网编码”笼统等同于 4B/5B 是典型错误。
- C. 曼彻斯特编码;50% ✅:10Mbps 以太网使用曼彻斯特编码,效率 50%,完全正确。
- D. NRZ(不归零)编码;100% ❌:NRZ 效率虽为 100%,但无自同步能力,以太网不使用此编码。 误解来源:被“编码效率 100%”吸引,误以为效率越高越好。实际上物理层编码的首要目标是接收端能可靠提取时钟,而非效率最大化。NRZ 连续发 0 或连续发 1 时线路上无电平跳变,接收方无法区分“一个长 1”和“两个 1”,因此不用于以太网。
⑤ 易混对比
| 编码方式 | 使用场景 | 编码效率 | 自同步 | 判 0/1 规则 |
|---|---|---|---|---|
| 曼彻斯特编码 | 10Mbps 以太网(802.3) | 50% | ✅ | 中间跳变方向:高→低=0,低→高=1 |
| 差分曼彻斯特编码 | 令牌环网(802.5) | 50% | ✅ | 起始处有跳变=0,无跳变=1 |
| 4B/5B + MLT-3 | 100Base-TX 快速以太网(铜缆) | 80% | ✅ | 4 位数据→5 位码组,再 MLT-3 三电平 |
| 4B/5B + NRZI | 100Base-FX 快速以太网(光纤) | 80% | ✅ | 码组再 NRZI(遇 1 翻转) |
| 8B/10B + NRZI | 1000Base-X 千兆以太网 | 80% | ✅ | 8 位数据→10 位码组,直流平衡 |
| NRZ | 早期低速链路 | 100% | ❌ | 高=1,低=0 |
| PAM-5 | 1000Base-T 千兆铜缆 | — | ✅ | 五级脉冲振幅调制 |
相近概念辨析:曼彻斯特 vs 差分曼彻斯特——两者都是“中间必有跳变”的自同步编码,效率都是 50%;区别只在如何用跳变编码 0/1。差分曼彻斯特的“差分”指的是:用“与前一比特相比有无跳变”来表示数据,抗极性反转能力更强(两根线对调也不影响解码),因此令牌环采用它。
⑥ 拓展延伸
- 与主库相关题号:主库第 9 题(发送时延)、第 10 题(奈奎斯特准则)、第 11 题(香农公式)是编码的理论基础——编码效率直接决定“要达到某比特率需要多大波特率/带宽”;第 17 题(以太网最小帧长)与编码同属物理层/链路层细节;第 28 题(万兆以太网)、第 132 题(1000BASE-T)涉及更新一代编码技术。
- 编码效率与带宽利用率的关系:编码效率越低,占用的带宽越大。曼彻斯特编码效率仅 50%,这意味着要达到 10Mbps 的数据传输率,线路上的信号变化率(波特率)需要 20 Mbaud,对带宽要求高,因此百兆以太网改用 4B/5B 编码来提高效率。
- 百兆以太网编码演进:100Base-T4 使用 8B/6T 编码(8 bit 编成 6 个三进制码元,效率 = 8 ÷ (6 × log₂3) ≈ 84%,与同表 4B/5B 的 80% 同档,不是 100%;三对线各 25 MBaud 共承载 100 Mbps),100Base-TX 使用 4B/5B + MLT-3(铜缆信号编码,编码效率 80%),100Base-FX 使用 4B/5B + NRZI(光纤)。
- 千兆以太网编码:1000Base-T 使用 PAM-5(五级脉冲振幅调制),1000Base-X(光纤)使用 8B/10B 编码。
- 工程场景:网络工程中排查链路质量问题时,示波器/网络分析仪上看到的波形就是线路编码后的信号。若某段链路误码率异常高,可能与编码方式不匹配、信号衰减或干扰有关。10M/100M/1000M 速率协商失败时,也需要检查双方编码能力是否一致。
- 常见面试追问:
- “为什么以太网不用 NRZ 而用曼彻斯特?”——NRZ 无自同步能力,连续长串 0/1 时接收方提取不到时钟。
- “曼彻斯特编码效率只有 50%,为什么还用?”——10M 时代带宽便宜、可靠性优先;百兆后通过 4B/5B 提高效率。
- “差分曼彻斯特和曼彻斯特有什么区别?”——差分曼彻斯特用“有无跳变”而非“跳变方向”表示数据,抗极性反转。
⑦ 真题变式
变式题:100Base-TX 快速以太网采用的编码方式是( ),编码效率为( )。 A. 曼彻斯特编码;50% B. 4B/5B 编码;80% C. 8B/10B 编码;80% D. NRZ 编码;100%
答案:B解析:100Base-TX 使用 4B/5B 编码,效率 4/5 = 80%。8B/10B 用于千兆以太网光纤。
⑧ 记忆锚点
曼彻斯特 → 10M 以太网 → 50% 效率;差分曼彻斯特 → 令牌环 → 50% 效率;4B/5B → 100M 以太网 → 80% 效率。一句话记忆:“十曼百五八,差分在令牌”——十兆用曼彻斯特(50%),百兆用4B/5B(80%),差分曼彻斯特用在令牌环。
补-02
Ethernet V2(DIX Ethernet V2)MAC 帧中,用于标识上层协议的是( )字段,其数据字段的最小长度为( )字节。 A. 类型;46 B. 长度;46 C. 类型;64 D. 帧检验序列 FCS;18
答案:A
① 考点定位:数据链路层 — Ethernet V2(DIX Ethernet V2)MAC 帧格式 — 帧各字段含义与长度。
② 知识精讲
Ethernet V2(也称 DIX Ethernet V2)是现今最常用的以太网 MAC 帧格式,其帧结构如下:
| 前导码 | 目的地址 | 源地址 | 类型 | 数据 | FCS |
|---|---|---|---|---|---|
| 8B | 6B | 6B | 2B | 46~1500B | 4B |
- 前导码(8 字节):7 字节前同步码(10101010...)+ 1 字节帧起始定界符(10101011),用于接收端时钟同步。注意:前导码不计入帧长度计算。
- 目的地址/源地址(各 6 字节):MAC 地址。
- 类型字段(2 字节):标识上层协议。例如 0x0800 = IP,0x0806 = ARP,0x86DD = IPv6。这是 Ethernet V2 与 IEEE 802.3 的关键区别——802.3 在此位置放的是“长度”字段。
- 数据字段(46~1500 字节):承载上层协议数据。最小 46 字节是因为以太网帧最小长度要求 64 字节(含目的地址 6 + 源地址 6 + 类型 2 + 数据 + FCS 4 = 64 → 数据 = 64-18 = 46)。
- FCS(4 字节):帧检验序列,使用 CRC-32 校验。
Ethernet V2 vs IEEE 802.3 的区别:
- Ethernet V2 的第 13~14 字节为类型字段,值 ≥ 0x0600 时表示上层协议类型。
- IEEE 802.3 的第 13~14 字节为长度字段,值 ≤ 1500 时表示数据字段长度。
- 实际中 Ethernet V2 是主流格式,大多数 TCP/IP 网络使用它。
③ 本题解析
Ethernet V2 MAC 帧用类型字段标识上层协议,数据字段最小长度为 46 字节(确保帧总长 ≥ 64 字节)。对应选项 A. 类型;46。
④ 选项逐项辨析
- A. 类型;46 ✅:Ethernet V2 使用类型字段标识上层协议,数据最小 46 字节,完全正确。
- B. 长度;46 ❌:长度字段是 IEEE 802.3 的特征,不是 Ethernet V2。数据最小 46 字节是正确的,但字段名称错误。 误解来源:混淆了 Ethernet V2 与 IEEE 802.3 两种帧格式。两者在第 13~14 字节放的东西不同:V2 放“类型”(≥0x0600 表示协议类型),802.3 放“长度”(≤1500 表示数据长度)。实际网络中 V2 是主流,但教材常把两者并列讲解,造成混淆。
- C. 类型;64 ❌:类型字段正确,但数据最小长度是 46 字节而非 64。64 是整个帧的最小长度(含前导码之外的部分)。 误解来源:把“帧最小长度 64 字节”误当成“数据字段最小长度 64 字节”。实际上 64 字节 = 目的地址6 + 源地址6 + 类型2 + 数据46 + FCS4,数据字段只占其中的 46 字节。
- D. 帧检验序列 FCS;18 ❌:FCS 是帧检验序列而非协议标识字段。18 = 6+6+2+4(地址+类型+FCS),不是数据字段的最小长度。 误解来源:把 FCS 的功能(帧检验)误认为是“标识上层协议”。FCS 只做 CRC 差错检测,不携带任何协议信息。18 这个数字是首部开销总和(去掉数据部分),与“数据最小长度”无关。
⑤ 易混对比
| 特征 | Ethernet V2 | IEEE 802.3 | IEEE 802.3 + LLC/SNAP |
|---|---|---|---|
| 第13~14字节字段 | 类型 | 长度 | 长度 |
| 字段值 ≥ 0x0600 | 标识协议类型 | — | — |
| 字段值 ≤ 1500 | — | 数据长度 | 数据长度 |
| 数据字段最小长度 | 46B | 46B | 46B |
| 帧最小总长度 | 64B | 64B | 64B |
| 上层协议标识方式 | 类型字段直接标识 | 通过 LLC 头的 DSAP/SSAP | 通过 SNAP 的 OUI+类型 |
| 实际使用 | 主流(TCP/IP 网络) | 少见 | 用于需要兼容 802 的场景 |
相近概念辨析:以太网帧 vs HDLC 帧 vs PPP 帧——以太网帧用 FCS 做 CRC 检错(不纠错);HDLC 帧面向比特、有帧校验;PPP 帧面向字节、也用 FCS。三者都是数据链路层成帧方案,但以太网用于广播式多路访问链路,HDLC/PPP 用于点对点链路。
⑥ 拓展延伸
- 与主库相关题号:主库第 16 题(MAC 地址长度)、第 17 题(以太网最小帧长)与本题直接相关;第 26 题(数据链路层三个基本问题:封装成帧、透明传输、差错检测)是本题的理论框架;第 27 题(CRC 校验)对应 FCS 字段;第 43 题(TTL 字段)的逐项辨析里讲了 IP 首部的协议字段(ICMP=1、TCP=6、UDP=17),它与以太网类型字段(0x0800=IP、0x0806=ARP)是同一类「标识上层协议」的字段,可对照记忆;第 118 题(交换机收到未知目的 MAC 的帧时的行为)与帧格式应用相关。
- 为什么最小帧长 64 字节:这是 CSMA/CD 机制的要求。以太网最小帧长必须保证在帧发送完毕之前能够检测到冲突(即发送端在发送整个帧期间仍能监听到碰撞信号)。IEEE 802.3 将 10Mbps 以太网的争用期(slot time)定为 512 比特时间 = 51.2μs,最小帧长 64 字节(512 比特)由此而来。注意:51.2μs 对应的是含中继器在内的最大碰撞域直径约 2500m 的往返时延预算——纯传播只占约 21.6~25μs(按 0.77c≈2.31×10⁸ m/s 到 2×10⁸ m/s 算 2×2500m),其余预算留给路径上最多 4 个中继器/集线器的双向转发延时,只按 2500m 传播复算会得到约 25μs 而对不上 51.2μs;它也不是 10Base-5 单个网段 500m 的往返时延——500m 同轴电缆的单程传播时延仅约 2μs 量级,往返约 4μs 量级。单段 500m 只是 10Base-5 一根粗缆的最大长度;标准允许通过最多 4 个中继器将最大碰撞域扩展到约 2500m,争用期正是按这个最坏情况设计的。
- 短数据填充:当上层协议数据不足 46 字节时,MAC 层会自动添加填充字段(padding)使数据字段达到 46 字节。填充内容由上层协议负责解释和去除。
- 工程场景:网络工程师用 Wireshark 抓包时,看到的以太网帧就是 Ethernet V2 格式。帧长度小于 64 字节的“runt frame”通常是冲突残留或网卡故障。如果某设备发送的帧最大只有 1500 字节数据但类型字段值小于 0x0600,说明它用的是 IEEE 802.3 格式而非 V2。
- 常见面试追问:
- “以太网帧为什么最小 64 字节?”——保证 CSMA/CD 在帧发完前能检测到冲突,对应 512 比特争用期。
- “Ethernet V2 和 IEEE 802.3 帧格式有什么区别?”——V2 用类型字段(≥0x0600),802.3 用长度字段(≤1500)。
- “数据不足 46 字节怎么办?”——MAC 层自动填充到 46 字节,上层协议负责去除填充。
⑦ 真题变式
变式题:在 Ethernet V2 帧中,类型字段值为 0x0800 时,表示上层使用什么协议? A. ARP B. IP C. IPv6 D. ICMP
答案:B解析:0x0800 = IP,0x0806 = ARP,0x86DD = IPv6。ICMP 是 IP 层之上的协议,类型字段不直接标识它。
⑧ 记忆锚点
V2 有“类型”,802.3 有“长度”,数据最小 46 字节,帧最小 64 字节。记忆公式:64 = 6+6+2+46+4,数据 = 64-18 = 46。“V2 看类型(0x0800 是 IP),802.3 看长度(≤1500)”。
补-03
采用后退 N 帧(GBN)协议,若帧序号字段占 3 位,则发送窗口的最大尺寸为( )。 A. 3 B. 4 C. 7 D. 8
答案:C
① 考点定位:数据链路层 — 滑动窗口协议 — GBN(后退 N 帧)协议窗口大小上限。
② 知识精讲
GBN(Go-Back-N,后退 N 帧)协议是滑动窗口协议的一种,采用累计确认机制。
帧序号空间:若帧序号字段占 n 位,则可用序号为 0 ~ 2ⁿ-1(共 2ⁿ 个序号),序号循环复用。
GBN 窗口上限推导:
GBN 协议中发送窗口 Wₛ ≤ 2ⁿ - 1。原因如下——
考虑序号空间为 0~7(n=3,共 8 个序号)的场景。假设发送窗口 Wₛ = 8:
- 发送方连续发送 0~7 号帧。
- 假设全部丢失。
- 超时后发送方重传 0~7 号帧。
- 但接收方无法区分新收到的 0 号帧是新数据还是旧帧重传——因为序号空间已完全用尽一轮。
因此发送窗口必须比序号空间少 1,即 Wₛ ≤ 2ⁿ - 1。
- n = 3 时:Wₛ ≤ 2³ - 1 = 7
- n = 4 时:Wₛ ≤ 2⁴ - 1 = 15
GBN 的接收窗口大小恒为 1:只按序接收,一旦失序即丢弃后续帧。
③ 本题解析
帧序号字段 3 位 → 可用序号 0~7(共 8 个)→ GBN 发送窗口上限 Wₛ = 2³ - 1 = 7。对应选项 C. 7。
④ 选项逐项辨析
- A. 3 ❌:这个数字没有理论依据。 误解来源:直接把序号位数 n=3 当成窗口大小。序号位数决定的是序号空间(2ⁿ=8 个),不是窗口大小;窗口是序号空间的子集,受协议约束。
- B. 4 ❌:4 = 2² = 2ⁿ⁻¹(n=3 时),这是 SR 在 n=3 时的窗口上限,不是 GBN 的上限(GBN 为 2ⁿ−1 = 7)。 误解来源:把 SR 的窗口公式 2ⁿ⁻¹ 套用到了 GBN 上。SR 要求收发窗口各占序号空间一半,而 GBN 接收窗口恒为 1,发送窗口可以更大。两者公式不同,不能混用。
- C. 7 ✅:GBN 窗口上限 = 2ⁿ - 1 = 2³ - 1 = 7,正确。
- D. 8 ❌:8 = 2³ = 序号空间大小,但 GBN 窗口不能等于序号空间(会导致无法区分新帧和重传帧)。 误解来源:以为窗口可以占满整个序号空间。若 Wₛ=8,发送方发完 0~7 号帧后超时重传,接收方无法判断新的 0 号帧是新数据还是旧帧的重传——因为序号已经绕了一圈。因此 GBN 必须“少留一个序号”。
⑤ 易混对比
| 协议 | 发送窗口上限 | 接收窗口 | 确认方式 | 重传策略 | 乱序帧处理 |
|---|---|---|---|---|---|
| GBN(后退 N 帧) | Wₛ ≤ 2ⁿ - 1 | Wᵣ = 1 | 累计确认 | 超时后重传该帧及后续全部 | 丢弃 |
| SR(选择重传) | Wₛ ≤ 2ⁿ⁻¹ | Wᵣ ≤ 2ⁿ⁻¹ | 逐帧确认 | 只重传出错/超时的帧 | 缓存 |
| 停止等待(SW) | Wₛ = 1 | Wᵣ = 1 | 逐帧确认 | 超时重传单帧 | 丢弃 |
| TCP(实际协议) | 可变(拥塞+接收窗口) | 可变 | 累计确认+SACK | 快速重传+超时重传 | 缓存 |
核心区别:GBN 的 Wₛ+Wᵣ ≤ 2ⁿ;SR 的 Wₛ+Wᵣ ≤ 2ⁿ。但 SR 要求 Wₛ = Wᵣ 且 Wₛ ≤ 2ⁿ⁻¹。
相近概念辨析:GBN vs 停止等待——SW 是 GBN 在 Wₛ=1 时的特例;GBN vs SR——GBN 牺牲效率换实现简单(接收方无需缓存),SR 牺牲实现复杂度换效率(接收方需缓存乱序帧)。
⑥ 拓展延伸
- 与主库相关题号:主库第 59 题(端到端可靠传输)、第 66 题(TCP 流量控制目的)、第 67 题(TCP 发送窗口取决于什么)、第 78 题(收到乱序报文段时的处理)与滑动窗口机制直接相关。GBN/SR 是理解 TCP 窗口机制的理论基础。
- 累计确认的含义:GBN 中接收方对序号 k 的确认(ACK k)表示“序号 ≤ k 的所有帧均已正确接收”。接收方只接受期望序号的帧,其余一律丢弃。
- 超时重传机制:GBN 在某个帧超时后,从该帧开始全部重传后续已发送但未确认的帧(即“后退 N 帧”)。这导致信道利用率在误码率较高时显著下降。
- 信道利用率公式:U ≈ Wₛ × Tₛ / (Tₛ + RTT),其中 Tₛ 为发送时延(帧长/数据率),RTT 为往返传播时延(有时也写作 U = Wₛ × Tₛ / (Tₛ + 2Tₚ),Tₚ 为单程传播时延,二者等价)。窗口越大,利用率越高(但受上限限制)。
- 完整验算(信道利用率):假设帧长 L=1000B,数据率 R=1Mbps,单程传播时延 Tₚ=20ms,GBN 窗口 Wₛ=7。
- 发送时延 Tₛ = L/R = 1000×8/10⁶ = 8ms
- RTT = 2×Tₚ = 40ms
- 利用率 U = Wₛ×Tₛ/(Tₛ+RTT) = 7×8/(8+40) = 56/48 ≈ 1.17 > 1 → 窗口足够大,信道可满载
- 若 Wₛ=1(停止等待):U = 1×8/(8+40) = 8/48 ≈ 16.7%
- 结论:窗口从 1 增大到 7,利用率从 16.7% 提升到接近 100%,说明窗口大小对性能影响巨大。
- 工程场景:在卫星链路(RTT 约 250ms)等高延迟场景中,若使用 GBN 且窗口不够大,信道利用率极低。因此现代高速网络普遍采用 SR 思想(如 TCP 的 SACK 选项),避免“后退 N 帧”带来的大量不必要重传。
- 常见面试追问:
- “GBN 和 SR 的窗口上限为什么不同?”——GBN 接收窗口=1,只需 Wₛ+Wᵣ≤2ⁿ 即 Wₛ≤2ⁿ-1;SR 收发窗口相等,需 Wₛ=Wᵣ≤2ⁿ⁻¹。
- “TCP 更像 GBN 还是 SR?”——混合体:累计确认像 GBN,缓存乱序段+选择重传(SACK)像 SR。
- “为什么 GBN 窗口不能等于序号空间?”——会导致新帧和旧帧重传无法区分。
⑦ 真题变式
变式题:采用 GBN 协议,帧序号字段占 4 位,发送窗口大小为 8,则该窗口设置( )。 A. 合法,因为 8 ≤ 2⁴ - 1 = 15 B. 合法,因为 8 ≤ 2⁴ = 16 C. 不合法,因为 GBN 的窗口上限是 2ⁿ⁻¹ = 8,不能取到 8 D. 不合法,因为 4 位序号最多支持 7 个未确认帧
答案:A解析:GBN 窗口上限为 2ⁿ-1 = 15,8 ≤ 15,合法。B 的上限公式错(应为 2ⁿ−1 而非 2ⁿ);C 误用 SR 的 2ⁿ⁻¹;D 误把 3 位序号下的 GBN 上限(7)套到 4 位。
⑧ 记忆锚点
GBN 窗口 = 2ⁿ - 1(序号少一个);SR 窗口 = 2ⁿ⁻¹(序号砍半)。记忆口诀:“GBN 少一个,SR 砍一半”。3 位序号 → GBN 最多 7、SR 最多 4;4 位序号 → GBN 最多 15、SR 最多 8。
补-04
采用选择重传(SR)协议,若帧序号字段占 4 位,则发送窗口与接收窗口的最大尺寸均为( )。 A. 8 B. 15 C. 16 D. 4
答案:A
① 考点定位:数据链路层 — 滑动窗口协议 — SR(选择重传)协议窗口大小上限。
② 知识精讲
SR(Selective Repeat,选择重传)协议是滑动窗口协议中效率最高的一种,接收方可以接收乱序帧并缓存,发送方只重传出错的帧。
SR 窗口上限推导:
SR 要求发送窗口 Wₛ 和接收窗口 Wᵣ 大小相同,且 Wₛ = Wᵣ ≤ 2ⁿ⁻¹(其中 n 为序号字段位数)。
推导思路——考虑 n = 4,序号空间 0~15(共 16 个):
- 若 Wₛ = Wᵣ = 8,则发送窗口和接收窗口合计覆盖全部 16 个序号。
- 发送方发完窗口内 0~7 号帧。
- 接收方收到全部帧后窗口前移,接收窗口变为 8~15。
- 此时所有 ACK 丢失,发送方超时重传 0~7 号帧。
- 接收方新窗口 8~15 与重传帧 0~7 恰好不重叠 → 可以正确区分新旧帧。
- 如果 Wₛ = Wᵣ = 9(> 8),则窗口重叠,无法区分。
因此 SR 窗口上限为 Wₛ = Wᵣ ≤ 2ⁿ⁻¹。
- n = 4 时:Wₛ = Wᵣ ≤ 2³ = 8
- n = 3 时:Wₛ = Wᵣ ≤ 2² = 4
③ 本题解析
帧序号字段 4 位 → SR 窗口上限 Wₛ = Wᵣ ≤ 2⁴⁻¹ = 2³ = 8。对应选项 A. 8。
④ 选项逐项辨析
- A. 8 ✅:SR 窗口上限 = 2ⁿ⁻¹ = 2³ = 8,正确。
- B. 15 ❌:15 = 2⁴ - 1,这是 GBN 的窗口上限公式(2ⁿ-1),不是 SR 的。 误解来源:把 GBN 的公式 2ⁿ-1 套用到了 SR 上。GBN 接收窗口恒为 1,所以 Wₛ+Wᵣ=Wₛ+1≤2ⁿ,得 Wₛ≤2ⁿ-1;SR 收发窗口相等且都要预留空间,所以 Wₛ=Wᵣ≤2ⁿ⁻¹。两个公式的推导前提完全不同。
- C. 16 ❌:16 = 2⁴,这是序号空间大小,SR 窗口不能等于序号空间。 误解来源:与补-03 选项 D 同理——误以为窗口可以占满整个序号空间。若 Wₛ=Wᵣ=16,发送窗口覆盖全部 16 个序号,重传帧与新帧将完全重叠,接收方无法区分。
- D. 4 ❌:4 = 2⁴⁻²,不对应任何窗口公式。注意不要与 3 位序号时的 SR 上限混淆。 误解来源:可能是记混了“3 位序号时 SR 上限=4”,把 3 位的结果套到了 4 位题目上。或者把公式误记为 2ⁿ⁻²。记住:SR 公式是 2ⁿ⁻¹(n-1 次方),不是 2ⁿ⁻²。
⑤ 易混对比
| 协议 | 序号位数 n | 序号空间 | 发送窗口上限 | 接收窗口 | 窗口公式 | 完整验算 |
|---|---|---|---|---|---|---|
| GBN | 3 | 0~7(8个) | 7 | 1 | 2ⁿ-1 | 2³-1=7 |
| GBN | 4 | 0~15(16个) | 15 | 1 | 2ⁿ-1 | 2⁴-1=15 |
| GBN | 5 | 0~31(32个) | 31 | 1 | 2ⁿ-1 | 2⁵-1=31 |
| SR | 3 | 0~7(8个) | 4 | 4 | 2ⁿ⁻¹ | 2²=4 |
| SR | 4 | 0~15(16个) | 8 | 8 | 2ⁿ⁻¹ | 2³=8 |
| SR | 5 | 0~31(32个) | 16 | 16 | 2ⁿ⁻¹ | 2⁴=16 |
GBN vs SR 核心区别:
- GBN 接收窗口=1,丢弃乱序帧;SR 接收窗口>1,缓存乱序帧。
- GBN 累计确认,重传从出错帧起的全部帧;SR 逐帧确认,只重传出错帧。
- GBN 窗口上限 2ⁿ-1;SR 窗口上限 2ⁿ⁻¹。
- GBN 实现简单、接收方无需缓冲;SR 实现复杂、接收方需缓冲乱序帧。
相近概念辨析:SR vs TCP 选择确认(SACK)——SR 是数据链路层的完整协议;TCP 的 SACK 是传输层的一种选项机制,允许接收方告知发送方哪些字节已收到,发送方据此只重传缺失部分。两者思想一致,但 TCP 还叠加了拥塞控制。
⑥ 拓展延伸
- 与主库相关题号:主库第 59 题(端到端可靠传输)、第 66 题(TCP 流量控制)、第 67 题(发送窗口大小取决于什么)、第 68 题(连续收到 3 个重复 ACK 的处理——快速重传,类似 SR 思想)、第 78 题(收到乱序报文段时的处理——TCP 会缓存,类似 SR)。
- SR 的优势与代价:SR 信道利用率高于 GBN(不需要重传已正确接收的帧),但接收方需要足够的缓冲区来缓存乱序帧,实现复杂度更高。
- TCP 与滑动窗口:TCP 的可靠传输机制是 GBN 与 SR 的混合体——TCP 使用累计确认(类似 GBN),但接收方可以缓存乱序报文段(类似 SR),发送方可选择重传(TCP 选择确认 SACK 选项)。
- 窗口大小与序号空间的关系本质:窗口上限的约束本质上是为了保证在任何情况下,接收方能区分收到的帧是新的还是旧的重传帧。
- 完整验算(SR 窗口与序号空间):n=4,序号空间 0~15(16 个)。若 Wₛ=Wᵣ=8:
- 发送方发 0~7 号帧,接收方窗口为 0~7。
- 接收方全部正确接收,窗口滑到 8~15,发回 ACK 0~7。
- ACK 全部丢失,发送方超时重传 0~7。
- 接收方新窗口 8~15 与重传帧 0~7 无重叠 → 正确识别为重复帧并丢弃。✅ 若 Wₛ=Wᵣ=9:
- 发送方发 0~8,接收方窗口 0~8,全部正确后窗口滑到 9~15,0,1(从 9 起共 9 个序号:9,10,11,12,13,14,15,0,1)。
- ACK 丢失,重传 0~8。
- 接收方窗口 9~15,0,1 与重传帧 0~8 在序号 0 和 1 两处重叠 → 无法区分新旧 ❌ 因此 Wₛ=Wᵣ 必须 ≤ 2ⁿ⁻¹ = 8。
- 工程场景:在高误码率链路(如无线网、卫星链路)中,SR 明显优于 GBN。因为 GBN 在一个帧出错后会重传后续所有帧,浪费大量带宽;SR 只重传出错的帧。现代 TCP 的 SACK 选项就是 SR 思想在传输层的应用。
- 常见面试追问:
- “SR 为什么窗口要砍半?”——收发窗口各占一半,确保滑动后新窗口与旧帧序号不重叠。
- “TCP 的 SACK 和链路层 SR 有什么关系?”——SACK 是 SR 思想在传输层的应用,但 TCP 还叠加了拥塞控制。
- “如果序号字段只有 1 位,GBN 和 SR 的窗口上限分别是多少?”——GBN: 2¹-1=1(退化为停止等待);SR: 2⁰=1(也是停止等待)。
⑦ 真题变式
变式题:采用 SR 协议,帧序号字段占 5 位,则发送窗口和接收窗口的最大尺寸分别为( )。 A. 16;16 B. 31;1 C. 15;1 D. 16;1
答案:A解析:SR 窗口上限 Wₛ = Wᵣ ≤ 2ⁿ⁻¹ = 2⁴ = 16。GBN 上限才是 2⁵-1 = 31(接收窗口 1)。
⑧ 记忆锚点
与补-03 联合记忆:GBN = 2ⁿ - 1(少一个),SR = 2ⁿ⁻¹(砍半)。4 位序号:GBN 最多 15,SR 最多 8。核心区分点——SR 收发窗口相等且各占序号空间的一半,GBN 接收窗口恒为 1。
补-05
下列关于 PPP(点对点协议)的叙述,错误的是( )。 A. PPP 是面向字节的协议,主要用于点对点链路(如家庭宽带拨号、路由器间串行链路) B. PPP 只提供差错检测(FCS)而不纠错,不使用序号,因此不保证可靠交付 C. PPP 通过 LCP 完成链路建立与身份认证(PAP/CHAP),通过 NCP 支持多种网络层协议 D. PPP 使用滑动窗口机制进行流量控制,序号字段占 2 字节
答案:D
① 考点定位:数据链路层 — PPP(点对点协议)— 协议特性、LCP/NCP、差错控制方式。
② 知识精讲
PPP(Point-to-Point Protocol,点对点协议)是数据链路层协议,用于点对点链路(如家庭宽带 PPPoE 拨号、路由器间串行链路)。
PPP 的核心特性:
- 面向字节:PPP 帧以字节为单位,帧格式类似于 HDLC,帧长为整数字节。
- 帧格式:标志(F)7E + 地址(FF) + 控制(03) + 协议(2B) + 信息(≤1500B) + FCS(2~4B) + 标志(7E)。协议字段标识上层协议(如 0x0021=IP,0xC021=LCP,0x8021=NCP)。
- 差错检测:PPP 使用 FCS(CRC)进行差错检测,但不进行纠错,也不使用序号和确认机制,因此不保证可靠传输。出错帧直接丢弃。
- LCP(链路控制协议):用于链路建立、配置、维护和终止,包括身份认证(PAP/CHAP)。
- NCP(网络控制协议):是一族协议,用于协商和配置不同的网络层协议(如 IPCP 配置 IP 地址)。
- 无流量控制:PPP 不使用滑动窗口机制,不做流量控制。它依赖于上层协议(如 TCP)来实现可靠性。
PPP 的链路建立过程:
- 链路静止 → LCP 协商(建立链路、认证) → NCP 协商(配置网络层参数) → 链路打开 → 数据传输 → LCP 终止链路 → 链路静止。
③ 本题解析
题目问的是“错误”的叙述。选项 D 说“PPP 使用滑动窗口机制进行流量控制,序号字段占 2 字节”——这是错误的,PPP 不使用滑动窗口,不做流量控制,不用序号。对应选项 D。
④ 选项逐项辨析
- A. PPP 是面向字节的协议,主要用于点对点链路(如家庭宽带拨号、路由器间串行链路) ✅:完全正确,PPP 以字节为基本单位,用于点对点链路。
- B. PPP 只提供差错检测(FCS)而不纠错,不使用序号,因此不保证可靠交付 ✅:正确,PPP 用 CRC 检错但不纠错,无序号无确认,不可靠。
- C. PPP 通过 LCP 完成链路建立与身份认证(PAP/CHAP),通过 NCP 支持多种网络层协议 ✅:正确,这是 PPP 最核心的分层结构。
- D. PPP 使用滑动窗口机制进行流量控制,序号字段占 2 字节 ❌(本题答案):错误。PPP 不使用滑动窗口,不做流量控制,也不用序号。这是 HDLC 的特性,不是 PPP 的。 误解来源:把 PPP 与 HDLC 混淆。PPP 的帧格式确实借鉴了 HDLC,但做了重大简化:去掉了序号、确认、滑动窗口等可靠传输机制。PPP 的设计哲学是“链路层只做最基本的成帧和检错,可靠性交给上层 TCP”。HDLC 是面向比特的协议,有序号和滑动窗口;PPP 是面向字节的协议,无序号无窗口。
⑤ 易混对比
| 特性 | PPP | HDLC | 以太网(Ethernet V2) |
|---|---|---|---|
| 工作方式 | 面向字节 | 面向比特 | 面向比特 |
| 链路类型 | 点对点 | 点对点 | 广播式多路访问 |
| 序号/确认 | 无 | 有(可选) | 无 |
| 可靠传输 | 不保证 | 可保证(ABM模式) | 不保证 |
| 流量控制 | 无 | 滑动窗口 | 无 |
| 差错控制 | FCS检错不纠错 | FCS检错+重传纠错 | FCS检错不纠错 |
| 多协议支持 | 支持(NCP) | 不直接支持 | 支持(类型字段) |
| 认证 | PAP/CHAP | 无(可选) | 无(需 802.1X 等) |
| 成帧标志 | 0x7E | 0x7E | 前导码+SFD |
相近概念辨析:PPP vs PPPoE——PPP 是点对点链路层协议;PPPoE(PPP over Ethernet)是将 PPP 帧封装在以太网帧中,使 PPP 能在以太网这种广播式链路上工作,广泛用于家庭宽带拨号。PPPoE 的发现阶段(PADI/PADO/PADR/PADS)是以太网帧,会话阶段才是 PPP 帧。
⑥ 拓展延伸
- 与主库相关题号:主库第 26 题(数据链路层三个基本问题:封装成帧、透明传输、差错检测)是 PPP 的理论框架——PPP 做了成帧和检错,但故意不做可靠传输;第 27 题(CRC 校验)对应 PPP 的 FCS 字段;第 25 题(VLAN)与 PPP 同属链路层但用于不同链路类型。
- PPP 的简化设计哲学:PPP 的设计理念是“简单即好”——只做最基本的数据链路层功能(成帧、检错、链路建立),把可靠传输、流量控制交给上层(TCP)。这与以太网的设计理念一致。
- PPPoE:PPP over Ethernet,将 PPP 帧封装在以太网帧中传输,广泛用于家庭宽带拨号上网(虽然现在逐渐被 IPoE/DHCP 替代)。
- PAP vs CHAP 认证:PAP(Password Authentication Protocol)明文传输密码,安全性低;CHAP(Challenge-Handshake Authentication Protocol)使用挑战-响应机制,密码不在线路上传输,安全性较高。
- 工程场景:家庭宽带拨号时,光猫/路由器通过 PPPoE 向 ISP 认证并获取 IP 地址。网络工程师排查拨号故障时,常用
show pppoe session(Cisco)或pppoe-discovery工具查看 PPPoE 会话状态。CHAP 认证失败通常是用户名/密码错误或 ISP 端配置问题。 - 常见面试追问:
- “PPP 和以太网有什么区别?”——PPP 用于点对点链路,以太网用于广播式链路;PPP 有 LCP/NCP 协商,以太网没有。
- “PPP 为什么不保证可靠传输?”——设计哲学:链路层简单化,可靠性交给 TCP。点对点链路误码率低,不需要链路层重传。
- “PAP 和 CHAP 的区别?”——PAP 明文传密码,CHAP 挑战-响应不传密码,CHAP 更安全。
- “PPPoE 是怎么工作的?”——发现阶段(4 步)建立 PPPoE 会话 ID,然后进入 PPP 会话阶段(LCP 协商→认证→NCP 协商→数据传输)。
⑦ 真题变式
变式题:下列关于 PPP 的叙述,正确的是( )。 A. PPP 使用序号和确认机制保证可靠传输 B. PPP 支持多种网络层协议,通过 NCP 协商网络层参数 C. PPP 的帧格式与以太网 V2 完全相同 D. PPP 不使用 FCS 进行差错检测
答案:B解析:A 错(PPP 无序号无确认不可靠);B 正确;C 错(PPP 帧格式与以太网不同);D 错(PPP 使用 FCS 检错)。
⑧ 记忆锚点
PPP “三不”原则:不纠错(只检错)、不排序(无序号)、不流控(无滑动窗口)。PPP “两协议”:LCP 管链路(建立+认证),NCP 管网络(配IP等)。简单记忆:“PPP 简单——检错不纠错,无序无窗口,LCP 建链路,NCP 配网络”。