Go-Back-N(GBN)返回N
- 窗口大小为N,最多允许N个分组未确认
- ACK(n),则表示确认从开始到 n(包含n)的序列号全部正确接收
- 空中在传的分组设置一个Timer计时器,处理超时,如果收到了timeout(n)事件,那么会重传的是 n 以及 n 以后的所有分组(尽管后面的可能已经收到了,这就是回退,回退到n开始传,GBN)
Selective Repeat (SR)选择重传
- GBN缺陷,累积确认机制导致回退到N,重复传了很多。SR 解决了这个缺陷。
- 对每个分组分别确认,不再只接收期望的,接到不期望的,就先缓存(设置缓存机制),接到期望的才交付上层
- 发送方只需要重传那些没收到ACK的分组
- 产生了接收方窗口(GBN只有发送方窗口),用来缓存,现在有两窗口了
- 序列号的位数是K的话,那么得满足 接 收 方 窗 口 大 小 N + 发 送 方 N < = 2 k 接收方窗口大小 N + 发送方 N<= 2^k 接收方窗口大小N+发送方N<=2k ,防止因为接收方ACK丢失导致发送重发k号分组,而此时接收方滑到了新窗口,新窗口有新的k号分组(不是原来的,共用序号产生的),导致出错