码迷,mamicode.com
首页 > 其他好文 > 详细

TCP的滑动窗口

时间:2015-04-02 20:24:01      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

TCP发送方的窗口可以划分成四个部分:

1、已经发送并且确认的TCP段;

2、已经发送但是没有确认的TCP段;

3、未发送但是接收方准备接收的TCP段,

4、未发送并且接收方也为准备接受的TCP段。

 

第3部分是可用窗口,长度为snd_una + snd_wnd - snd_nxt。

第2部分和第3部分合并起来,成为发送窗口,简称窗口。

发送窗口的左边界是snd_una,右边界是snd_una + snd_wnd 。

技术分享

 

 

同理,TCP接受方的窗口可以划分成四个部分:

1、已经接收并且已经确认的TCP段;

2、已经接收但是没有确认的TCP段;

2、还未接收但是发送方已经发送的TCP段;

3、还未接收但是发送也不允许发送的TCP段。

 

第1部分和第2部分合并在一起,因为没有区别(???)。

接收窗口的左边界是rcv_nxt,右边界是rcv_nxt + rcv_wnd。

接收窗口rcv_wnd会通过TCP首部的window字段传递给对方。

在一个TCP连接中,一方的rcv_wnd等于另一方的snd_wnd。

 

技术分享

 

如果一定要严格分成四部分的话,大致这么划分:

窗口左边界是rcv_wup,右边界是rcv_wup + rcv_wnd。

第3部分是 rcv_wup + rcv_wnd - rcv_nxt。

 

TCP的滑动窗口

标签:

原文地址:http://www.cnblogs.com/mylinuxer/p/4387781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!