GBN 与 SR 重传协议实验台
这个实验围绕“滑动窗口如何处理丢包和确认”展开。你既可以先看窗口在理想情况下如何前移,也可以点击飞行中的数据包或 ACK 人为制造丢包,对比 Go-Back-N 的累计确认与 Selective Repeat 的按包重传到底差在哪里。
数值摘要
当前协议
Go-Back-N
发送窗口
5 个序号
发包速率
45 包/分钟
超时 / 往返时延
1.10x
当前判断
超时设置较稳妥
发送方只维护一个窗口计时器,ACK 是累计确认,所以窗口前部丢失后会拖住整个发送窗口。
协议差异
打字机滚动
接收方只认当前期待序号,ACK 会一次确认连续到达的一串分组。
建议点击一枚窗口前部的蓝色数据包,再观察后续分组是否也要跟着重新发送。
推荐实验场景
动画演示区
颜色图例
尚未接收任何数据
已发送但尚未确认
ACK
已确认
已交付到上层
交互方式
- 点击正在飞行的蓝色数据包,可以人为制造数据包丢失。
- 点击绿色 ACK,也可以模拟确认丢失。
- 使用“手动发一个包”可以放慢节奏,便于课堂讲解。
教学重点
- GBN 依赖累计确认,窗口前部的缺失会阻塞后续推进。
- SR 可以在接收端缓存乱序包,因此只需重传真正缺失的分组。
- 超时时间与往返时延的相对大小,会显著影响是否出现提前重传。