我发现 WinSock 发送呼叫可能会延迟 200 毫秒
来自 MSDN: http: //support.microsoft.com/kb/214397/en
Nagle 算法: http : //en.wikipedia.org/wiki/Nagle's_algorithm
问题摘要:
如果重复发送带有 SO_SNDBUF "0" 选项的小 msg(< MTU),则发送功能块 200ms。
我的问题:为什么先发送消息延迟200ms?
因为 TCP 在第一次发送调用之前是空闲的,所以我认为必须立即发送第一条消息。
但测试结果并不理想。
第一条消息也延迟了 200 毫秒,为什么?
谢谢你的回答。
添加一些细节:
Naggle 算法适用于以下小消息:
1. if wire is idle, send it immediately.
2. if formal message's ACK is not received, wait until ACK & send
3. Window's TCP ack delay mechanism send ack after 200ms.
所以,我期望第一条消息立即发送,第二条消息等待第一条消息的确认 200 毫秒,依此类推。
这是错的吗?