TCP滑动窗口和SO_RCVBUF之间的实际关系

原创 2011年01月21日 10:14:00

  上次转载了一篇文章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设置的比上一次小的话,该值是不会作为新窗口大小通告给对方的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

setsockopt 设置socket 详细用法

1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SO...

TQ210学习笔记——uboot代码搬移

@专题9 代码搬移 copy_to_ram: ldr r0, =0xd0020000 @搬移起点 ldr r1, =0x20000000 @搬移终点 add r3, r0, #(1024*4)...

linux非阻塞的socket发送数据出现EAGAIN错误的处理方法

一、非阻塞socket         非阻塞套接字是指执行此套接字的网络调用时,不管是否执行成功,都立即返回。比如调用recv()函数读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在...

套接字选项(SO_RCVBUF和SO_SNDBUF)

有时候我们需要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要学习套接字选项。   int getsockopt(int sockfd,int level,int optname,voi...

UDP主要丢包原因及具体问题分析

文章来源:http://www.2cto.com/net/201311/254835.html UDP主要丢包原因及具体问题分析   一、主要丢包原因   1、接收端处理时间过长导致丢包:...

什么是死锁及死锁的必要条件和解决方法【转】

来自:http://blog.163.com/yanenshun@126/blog/static/128388169200982444858590/?fromdm&fromSearch&isFromS...

ServerSocket选项的基本解析:SO_TIMEOUT选项、SO_REUSEADDR选项、SO_RCVBUF选项

1:SO_TIMEOUT选项      此选项表示等待客户连接的超时时间设置该选项:public void setSoTimeOut(int timeout) throws SocketExcepti...

netstat 中 Recv-Q和Send-Q状态

执行命令查看当前网络状态时候发现,执行了命令 netstat -anp 发现recv-q 和 send-q 状态不是很正常,对这2个参数不了解,特意学习了一下,简单总结如下: recv...

socket选项: SO_REUSEADDR, SO_RCVBUF, SO_SNDBUF

From: http://blog.csdn.net/jasonliuvip/article/details/22591531 最近在看《linux高性能服务器编程》,在此做个日记,以激励自...

SO_SNDBUF and SO_RECVBUF

参见 http://stackoverflow.com/questions/4257410/what-are-so-sndbuf-and-so-recvbuf The "SO_" prefi...
  • wf1982
  • wf1982
  • 2014-08-27 15:35
  • 4303
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)