mylinuxer

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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。

 

posted on 2015-04-02 18:17  mylinuxer  阅读(2840)  评论(0编辑  收藏  举报