网络编程中Nagle算法和Delayed ACK的测试(转)

来源:互联网 发布:淘宝饰品店名字 编辑:程序博客网 时间:2024/06/04 18:06

http://www.cnblogs.com/ggjucheng/archive/2012/01/15/2323068.html

如果是异步socket 呢?内核会等待这个间隔吗?


nagle算法的ack发送时机:

http://blog.csdn.net/turkeyzhou/article/details/6764389


http://wenku.baidu.com/view/fbfda71aa300a6c30c229f99.html


http://www.360doc.com/content/12/0320/14/8426738_195950612.shtml

http://blog.csdn.net/dog250/article/details/5941637

http://hi.baidu.com/zzcqh/item/144ddaedd004ccd3ea34c912


so?

nagle 算法是   发送端 收到前一个报文的确认然后再发送下一个tcp数据。这样可以避免大量的小数据。 TCP_NODELAY选项控制。
Delay ACK是   接收端 在等待超时(还有其他发送ack确认的时机) 然后才发送ACK给客户端。
CORK算法 是  发送端 尽可能的进行数据的组包,以最大mtu传输,如果发送的数据包大小过小则如果在0.6~0.8S范围内都没能组装成一个MTU时,直接发送。
如果发送的数据包大小足够间隔在0.45内时,每次组装一个MTU进行发送。如果间隔大于0.4~0.8S则,每过来一个数据包就直接发送。TCP_CORK选项控制。


禁用nagle算法 导致小片数据包多 但是ack确认的返回的机制仍旧不变(Delay ACK)。

原创粉丝点击