文章最新内容请移步原文地址
n表示用于帧编号的比特数
GBN协议
结论
1<WT<=2n-1,WR=1
WT=2n会怎么样
假设此时n为3,WT=8,W=1,若此时发送窗口[0,1,2,3,4,5,6,7],接收窗口[0];
接收窗口成功接收到了帧编号0~7共计7个数据帧,接收方窗口向前移动为7个帧单位变为又变为了[0],接收方发送这7个数据帧相对应的确认帧;
但是由于某种原因,发送方没有收到这7个确认帧,于是在定时器超时之后发送方选择重传这7个数据帧;
接收方在再次收到这7个数据帧时,由于帧(1,2,3,4,5,6,7)落在接收窗口外于是被拒绝,而帧(0)被再次接受,于是会错误的接收这1个重复帧,导致传输出错。
SR协议
在讨论SR协议的窗口大小时,我们一般会定义一个大前提:接收方窗口和发送方窗口的大小通常是相同的。(做题时一般默认有大前提,除非题目给定了WT>2n-1)
接下来我们根据有无这个大前提来分析一下SR协议下发送窗口和接收窗口的尺寸大小问题
有大前提
结论
WT=WR<=2n-1
大于2n-1会怎么样
在有大前提的情况下,发送窗口尺寸WT和接收窗口尺寸WR总是相同,假设此时n为3,WT=WR=5,若此时发送窗口[0,1,2,3,4],接收窗口[0,1,2,3,4];
接收窗口成功接收到了帧编号0~4共计五个数据帧,接收方窗口向前移动为[5,6,7,0,1,2],接收方发送这五个数据帧相对应的确认帧;
但是由于某种原因,发送方没有收到这五个确认帧,于是在定时器超时之后发送方选择重传这五个数据帧;
接收方在再次收到这五个数据帧时,由于帧(0,1,2)落在接收窗口内,于是会错误的接收这三个重复帧,导致传输出错。
无大前提
结论
WR<=WT且WR+WT<=2n
WR>WT
接收窗口总有窗口资源被浪费
WR+WT>2n
已知WR>WT非法,因此我们只讨论WR<=WT下WR+WT>2n的情况。由于WR<=WT,若要WR+WT>2n,则WT>2n-1,结合有大前提情况下大于2n-1的分析,容易有也会出现接收方无法分辨新帧和旧帧的情况,因此WR+WT>2n非法。