回退N步协议(Go-Back-N)
Go-Back-N (GBN)
在GBN协议中,发送方允许发送多个分组,而不需等待确认。在GBN协议中,发送方的分组被分为4段。
其中,范围内的序号表示已经发送并被确认的分组,范围内的序号表示已经发送但未被确认的分组,范围内的序号表示等待被发送的分组,最后,大于等于的序号是不可用的。
随着协议的运行,窗口会在序号空间向前滑动,因此,GBN协议也常被称为滑动窗口协议(sliding-window protocol)。对于接收方,它的接收窗口为1,因此接收方将会丢弃所有失序的分组。
累计确认与单一定时器
本节表示已经按序收到分组及其之前的所有分组。即使较早的ACK丢失,后来的累计ACK仍能推进窗口。接收方对失序分组再次确认最后按序收到的分组。
发送方保存未确认分组,仅为最老未确认分组维护一个定时器。超时后重传从到的全部分组,并重新启动定时器。这与TCP确认号表示“下一期望字节”的记法不同。
知识测验
题目
GBN中ACK0丢失,ACK1正确到达,发送方能确认什么?
互动实验
GBN:恢复丢失分组
访问权限PRO
PRO EXCLUSIVE探索不止于此
尊享 Pro 权益解锁完整互动实验、进阶解析与精选参考答案。
有限序号空间
若序号字段为位,共有个序号,GBN发送窗口满足。否则旧分组的重传可能与下一轮新分组混淆。实际实现使用模运算比较循环窗口,本节轨迹使用单调递增的逻辑编号便于观察。
知识测验
题目
GBN中base=2、nextseqnum=6,最老分组超时,重传哪些?
动手练习
统计GBN重传
GBN窗口N=4,先发送0–3,分组2丢失。ACK0/ACK1到达后允许发送4/5,其余数据与ACK按序到达。列出收到3/4/5时的动作、超时前发送方base/next、重传分组与完成交付0–5的总发送次数。