提示:
计算机网络运输层部分:TCP可靠传输实现-滑动窗口协议初级示例(根据计算机网络(第七版)-谢希仁第五章5.4补充内容)
>>滑动窗口5.6详细内容请戳(原创努力码字中,尽快补上链接)
>>更多运输层内容第五章请戳(原创努力码字中,尽快补上链接)
文章目录
滑动协议:
发送方和接收方都具有一定容量的缓冲区,允许发送站连续发送多报文而不需要等待应答。
发送窗口就是发送端允许连续发送的报文的序号表,发送端可以不等待应答而连续发送的最大报文数称为发送窗口的尺寸
接收窗口是接收方允许接收的报文的序号表,凡落在接收窗口内的报文,接收方都必须处理,落在接收窗口外的报文被丢弃.接收方每次允许接收的报文数称为接收窗口的尺寸。.
滑动窗口示例:
以字节为单位的滑动窗口:
解读上图:
WT发送窗口尺寸=WR接收窗口尺寸=7
1.发送方连续发送0、1、2字节给接收方
2.接收方接收0、1、2成功后返回了个ACK3(算是反馈信息)
那么怎么理解ACK3?可以看作在3这个字节之前的数据我成功接收了。
3.发送方收到了这个反馈信息后发送窗口移动
4.继续发送,相当于重复上面的操作
发送没有限制吗?肯定有限制的,后面再谈。
Go-back-N ARQ 传输时
这里简单一提相关概念(>>更多请戳)
Go-back-N(回退N):发送方连续发送多个分组中间有一个字节出现差错,那么此字节和之后的所有字节回退(重新发送),N就是重新发送的个数。(涉及接收方确认方式-累计确认)
连续ARQ协议:发送方每收到一个确认,滑动窗口滑动一个分组。
传输正常时:
丢失帧时:
过程和滑动窗口内容相似
1.很明显在发送方发送字节2时还收到反馈信息0、1成功接收
2.但是接着发送字节2时出现数据丢失,但发送方并不知道
3.接着发送了字节3
到了黄框内容,框3字节被舍弃,并不在窗口之中
4.这时候发送方还未收到反馈(这里存在时间限制),判断数据丢失,从上次收到反馈信息开始重新发送。
5.成功接收,解决字节丢失,继续发送接收。
一道课后题:
证明:当发送数目超过2n时,会发生编号重复问题。例如当n=3时,我们发送10个分组,这十个分组编号分别为0,1,2,3,4,5,6,7,0,1。在这里0,1出现了两次。如果收到反馈ACK2,那么发送方无法确认是发送了0,1分组还是0,1,2,3,4,5,6,7,0,1都发送过去产生了歧义。
接收重复报文,协议失败问题
1.T1时刻发送方发送0-7给接收方
2.T2时刻接收方按序收到0-7,并且反馈ack0,但是ack0丢失。
3.T3时刻发送方没有收到确认,认为数据丢失,重新发送数据
4.T4时刻,接收方重新收到0-7,但它认为这是新数据,因为确认信息呢是0,而这组数据开头也是0.协议失败
发送窗口尺寸不等于接收窗口尺寸: