C# ReceiveBufferSize和TcpWindowSize

万兆网高速下载,开始的时候,怎么设置ReceiveBufferSize,下载速度都没啥变化,不晓得怎么回事。

后面用wireshark抓包,发现window size 和我设置的ReceiveBufferSize不一致,我这就疑惑了,怎么会事,你TM在逗我。

经过多次试验,发现设置ReceiveBufferSize和SendBufferSize要在socket connect之前设置,链接了再设置都没什么用了。

对于ReceiveBufferSize可以抓包,再Tcp三次握手的时候会确定window size,但是这个SendBufferSize就不晓得怎么能看到这个值,试过把它设置小点,可是对下载速度一点影响都没得,把ReceiveBufferSize设置小下载速度都会跟着变小。

然后就是Tcp协议里面几个字段:

window size:两个字节,以前最大65535字节

wssf:乘积因子,扩大window size,现在能上G了

windows TCP协议参数:

最大接受窗口:TcpWindowSize

https://technet.microsoft.com/zh-cn/library/cc938219

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ interface-name

Data type

Range

Default value

REG_DWORD

0x0–0x3FFFFFFF ( bytes )

(See description.)

这个默认值和网卡有关:

小于1Mbps          8kb

1Mbps----100Mbps   17kb

大于100Mbps        64kb

窗口扩大因子:Tcp1323Opts

https://technet.microsoft.com/zh-cn/library/cc938205

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Data type

Range

Default value

REG_DWORD

0 | 1 | 2 | 3

3

Value

Meaning

0 (00)

Timestamps and window scaling are disabled.

1 (01)

Window scaling is enabled.

2 (10)

Timestamps are enabled.

3 (11)

Timestamps and window scaling are enabled.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值