TCP滑动窗口和SO_RCVBUF之间的实际关系
来源:互联网 发布:acfun离线缓存mac 编辑:程序博客网 时间:2024/05/21 08:43
上次转载了一篇文章http://blog.csdn.net/jwybobo2007/archive/2010/12/30/6107419.aspx,上面提到了TCP窗口大小与SO_RCVBUF选项之间的关系.但其实这篇文章描述的是有问题的.
在以Unix为核心的一些操作系统中(不一定都是),SO_RCVBUF选项确实决定了TCP窗口的大小.你设置为多少窗口就为多少.但在Windows上确并非如此,通过一些抓包工具分析后,你会发现这两者并不是一一对应关系,MSDN的说明上确实也告知这一事实.
如使用Windows2003作服务器时,它的SO_RCVBUF在默认不设置的条件下为8192,但是握手时告知的窗口大小为16384,而后在正式的数据通信中又马上通知对方自己的窗口大小为65535.
上面谈的只是一个问题,还有关于设置SO_RCVBUF的时机描述也有问题.服务端在accept前设置了缓冲区后可以向下继承,同样客户端connect前设置缓冲区大小可以在握手时通告窗口(上面说的Windows下的窗口和该设置关系不大,但通过测试还是有一定关系的),但实际上是可以随时设置的(主要指的是Windows下面,其它系统不一定可以),一但设置后,会随着下一个ACK包,或者普通数据包通告给对方最新的TCP窗口大小,需要注意的是此时窗口只能增大,不能减小,也就是说SO_RCVBUF设置的比上一次小的话,该值是不会作为新窗口大小通告给对方的。
- TCP滑动窗口和SO_RCVBUF之间的实际关系
- TCP滑动窗口和SO_RCVBUF之间的实际关系
- [总结]TCP滑动窗口和SO_RCVBUF之间的关系
- TCP滑动窗口和SO_RCVBUF之间的关系
- TCP滑动窗口和socket缓冲区之间的关系
- TCP滑动窗口和socket缓冲区之间的关系(记录)
- TCP滑动窗口和socket缓冲区之间的关系(记录)
- TCP滑动窗口和socket缓冲区之间的关系(记录)
- TCP滑动窗口和socket缓冲区之间的关系
- TCP滑动窗口和socket缓冲区之间的关系
- TCP滑动窗口和socket缓冲区之间的关系(记录)
- TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系
- TCP/IP详解--滑动窗口与内核缓冲区之间的关系
- tcp socket发送缓冲区、接受缓冲区、滑动窗口协议之间的关系
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
- TCP/IP详解--滑动窗口与内核缓冲区之间的关系
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
- Web缓存技术
- 远离疲劳
- C语言库函数学习
- Visual.Assist.X.V10.6.1825正式发行版 以及的破解补丁[推荐]
- ARM汇编伪指令介绍
- TCP滑动窗口和SO_RCVBUF之间的实际关系
- 终于迎来了第一个双薪
- placeholder和Page.LoadControl动态加载自定义控件
- string.h源码
- C/MFC如何获得应用程序当前路径(整理)
- 在oracle中导入导出dmp数据库文件
- mmap详解
- www.souapp.com(搜应用网)推出了中文版和英语版网站
- unix系统信息查看