首页 / 知识点 3 / GBN 与 SR 重传协议

GBN 与 SR 重传协议实验台

这个实验围绕“滑动窗口如何处理丢包和确认”展开。你既可以先看窗口在理想情况下如何前移,也可以点击飞行中的数据包或 ACK 人为制造丢包,对比 Go-Back-N 的累计确认与 Selective Repeat 的按包重传到底差在哪里。

核心概念:滑动窗口 核心概念:累计确认与选择重传 支持点击分组制造丢包

实验参数

协议模式

切换协议后会重新初始化发送方、接收方和窗口状态。

窗口越大,发送方在等待 ACK 期间能连续推进的分组就越多。

这里表示单程从发送端到接收端的飞行时间,因此完整往返时延大约是它的两倍。

如果它比一个往返时延还短,发送方可能在 ACK 返回前就提前重传。

前者会随着窗口推进不断向右滚动,后者则更适合观察局部丢包后的重复发送。

表示上层应用每分钟尝试交给协议层多少个新分组。这个参数可以在实验过程中继续调整。

数值摘要

当前协议 Go-Back-N
发送窗口 5 个序号
发包速率 45 包/分钟
超时 / 往返时延 1.10x

当前判断

超时设置较稳妥

发送方只维护一个窗口计时器,ACK 是累计确认,所以窗口前部丢失后会拖住整个发送窗口。

协议差异

打字机滚动

接收方只认当前期待序号,ACK 会一次确认连续到达的一串分组。

建议点击一枚窗口前部的蓝色数据包,再观察后续分组是否也要跟着重新发送。

推荐实验场景

动画演示区

颜色图例

尚未接收任何数据

已发送但尚未确认

ACK

已确认

已交付到上层

交互方式

  • 点击正在飞行的蓝色数据包,可以人为制造数据包丢失。
  • 点击绿色 ACK,也可以模拟确认丢失。
  • 使用“手动发一个包”可以放慢节奏,便于课堂讲解。

教学重点

  • GBN 依赖累计确认,窗口前部的缺失会阻塞后续推进。
  • SR 可以在接收端缓存乱序包,因此只需重传真正缺失的分组。
  • 超时时间与往返时延的相对大小,会显著影响是否出现提前重传。

实验分享

这个链接会记录当前协议、窗口大小、传播时延、超时时间、发包速率和滚动方式。后续 Coze 可以直接把它作为该知识点的推荐实验入口发给学生。

修改参数后,这里的链接会自动更新。