TCPIP详解---滑动窗⼝机制及其三种协议
在介绍滑动窗⼝之前先来简单介绍⼀下TCP可靠传输原理中的停⽌等待协议,该协议就是发送⽅每发送⼀个报⽂段后就停⽌发送,⼀直等收到接收⽅的确认后再发送下⼀个报⽂段。
TCP通信是全双⼯的,这⾥为了⽅便理解,就以⼀个⽅向为例,假设A为发送⽅,B为接收⽅。A会有⼀个发送窗⼝,B有⼀个接收窗⼝。
发送窗⼝表⽰在没有收到B确认的情况下,A也可以连续把发送窗⼝的数据发送出去。但是已经发送过的数据在未收到确认之前,它还需要暂时保留,以便于超时重传时使⽤。发送窗⼝越⼤,它就可以在收到对⽅确认之前发送更多的数据,因⽽获得更⾼的传输效率。(但是A的发送窗⼝的值不能超过B的接收窗⼝的⼤⼩,还会受到⽹络拥塞程度的影响)。
发送窗⼝的位置由窗⼝前沿和后沿的位置共同确定。
它后沿变化有两种,(1)不动(没有收到新的确定)(2)前移(收到新的确认);
前沿是不断向前移动的,但也可能不动(1)没有收到新确认,对⽅窗⼝也不变,(2)收到新的确认,对⽅的接收窗⼝缩⼩了,使前沿正好不变)
P3-P1:A的发送窗⼝
P2-P1:已发送但是没有收到确定
P3-P2:允许发送但是未发送(可⽤窗⼝)
接收⽅B只对按序到达的数据中最⾼序号给出确认。
此外发送⽅和接收⽅都有⾃⼰的缓冲区
发送缓冲区存放:
1、发送发TCP准备发送的数据
2、TCP已发送但尚未收到确认的数据(为超时重传准备)tcpip协议pdf
接收缓冲区存放:
1、按序到达但未被应⽤程序读取的数据
2、未按序到达的数据
滑动窗⼝的3种协议
1、1⽐特滑动窗⼝协议(发送窗⼝=1,接收窗⼝=1)
当发送窗⼝和接收窗⼝⼤⼩都为1时,滑动窗⼝协议退化成停⽌等待协议,因为发送⽅需要判断每个发送的帧是新发送的帧还是超时重传的帧,故给每个帧前都加⼀个序号,由于停⽌等待协议中只有当⼀个帧发送确认后才能发送下⼀个,所以⽤1个⽐特来编号即可。
2、后退n协议(发送窗⼝>1,接收窗⼝>1)
由于停等协议要为每⼀个帧进⾏确认后才继续发送下⼀帧,⼤⼤降低了信道利⽤率,因此⼜提出了后退n协议。后退n协议中,发送⽅在发完⼀个数据帧后,不停下来等待应答帧,⽽是连续发送若⼲个数据帧,即使在连续发送过程中收到了接收⽅发来的应答帧,也可以继续发送。
且发送⽅在每发送完⼀个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍收到确认帧,就要重发相应的数据帧。如:当发送⽅发送了N个帧后,若发现该N帧的前⼀个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送⽅就不得不重新发送出错帧及其后的N帧。缺点也很明显,就是重发出错的帧和之后的即使没出错的帧。
3、选择重传协议(发送窗⼝>1,接收窗⼝>1)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论