首页/计算机网络/03-data-link/可靠传输机制 🔗 在 Obsidian 中打开
计算机网络 · 03-data-link

可靠传输机制

重要度 ⭐⭐⭐⭐⭐ 计算机网络/数据链路层可靠传输确认重传超时滑动窗口
速查
可靠传输三要素:确认(ACK) + 超时重传 + 序号。目标:数据无差错、不丢失、不重复、按序到达。超时时间通常设 ≈ 2×RTT;GBN 要求 Wt ≤ 2ⁿ − 1,SR 要求 Wt + Wr ≤ 2ⁿ。考试频率 ⭐⭐⭐⭐。

核心概念

可靠传输的目标

确保数据无差错、不丢失、不重复、按序到达接收方。

实现可靠传输的三种机制

1. 确认(ACK):接收方通知发送方已正确收到数据
2. 超时重传(Timeout Retransmission):超时前未收到 ACK 则重传
3. 序号(Sequence Number):标识帧顺序,检测重复和乱序

确认机制详解

类型说明优点缺点
逐帧确认每帧单独 ACK简单开销大
累积确认ACKn 确认 n 及之前减少 ACK 流量出错时可能重传已确认帧
否定确认 NAK通知某帧出错快速重传增加复杂度
捎带确认ACK 搭载在数据帧中减少帧数需双向数据流

超时重传机制

超时时间的选择

超时时间 > RTT(往返时延)+ 处理时间
太短:不必要的重传(网络延迟导致误判)
太长:出错时等待过长,降低效率
典型值:超时时间 ≈ 2 × RTT

超时事件处理

发送帧 → 启动定时器
收到 ACK → 取消定时器,发送下一帧
定时器超时 → 重传该帧,重启定时器

序号机制

n 位序号:序号范围 0 ~ 2ⁿ - 1
例:3 位序号 → 0~7,循环使用:0,1,2,...,7,0,1,2,...
发送窗口大小 Wt 与序号位数 n:
GBN: Wt ≤ 2ⁿ - 1
SR:  Wt + Wr ≤ 2ⁿ

序号的作用

  1. 检测重复帧:收到序号相同的帧 → 重复帧 → 丢弃
  2. 检测丢失帧:期望序号 n 但超时 → 帧 n 丢失 → 重传
  3. 保证按序接收:接收方按序号顺序提交数据

三种协议的可靠传输实现

协议确认方式重传策略序号范围
停止-等待逐帧确认超时重传一帧0/1 交替
GBN累积确认超时重传后续所有帧0~Wt-1
SR逐帧确认只重传出错帧0~Wt+Wr-1

常见考法

考点说明
可靠传输三要素确认、超时重传、序号
超时时间计算基于 RTT 设定
序号空间大小与窗口大小的关系
各协议实现差异确认方式和重传策略

易错点

注意
  • 可靠传输不是数据链路层必须的(无确认无连接就不提供)
  • 累积确认中 ACK 丢失不一定导致重传
  • 超时时间不能太短(误重传)也不能太长(效率低)
  • 序号空间必须大于窗口大小,否则会出现歧义

核心结论

必背
  1. 可靠传输 = 确认 + 超时重传 + 序号
  2. 停止-等待、GBN、SR 是三种不同实现方式
  3. 超时时间通常设为 2×RTT
  4. 序号空间大小决定了最大窗口大小

记忆卡片

可靠传输的三个机制?
确认(ACK)、超时重传、序号
超时时间通常设为多少?
2×RTT(往返时延)。
GBN 的序号空间与窗口关系?
Wt ≤ 2ⁿ − 1
累积确认 ACK3 表示什么?
序号 0、1、2、3 的帧都已正确接收。

图示 · 确认与超时重传

时间线(发送方 ──▶) 发送方 帧0 重传帧0 接收方 收帧0 发ACK0 ACK0 丢失→超时 ACK0 先丢失 → 发送方超时 → 重传帧0 → 接收方再发 ACK0
图:靠 ACK 确认、超时重传和序号,发送方保证接收方按序、无丢失地收到帧。

交互动画 · 确认·超时重传·累计确认

待播放
可靠传输三要素: 差错检测 + 确认 + 超时重传 发送方 S含序号/校验 接收方 RCRC 校验 数据0+CRC 数据1+CRC 数据2+CRC 超时未收到 ACK → 重传 累计确认: ACK n 表示 0~n 全部收到(少发 ACK,配合滑动窗口) 三要素齐备 → 不可靠信道上实现可靠传输 ✓
演示可靠传输机制: 确认、超时重传与累计确认。
检错 + 确认 + 超时重传 + 序号 = 可靠。

相关知识点

flow-control stop-and-wait go-back-n-gbn selective-repeat-sr

↑ 站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。