关于nagle及tcp_nodelay的一些总结
关于nagle及tcp_nodelay的一些小结
一 准备知识点
1.1 mss
max segment size,就是tcp报文段中data字段(非head)的最大长度,是tcp选项中最早的选项。MSS在tcp三次握手中协商确定,由src-host、router、dst-host三类角色最终商讨确认。mss对保证传输质量非常重要,因为tcp传输过程中,tcp-head、ip-head的尺寸一定,实际传输的data越小,一定size的数据需要传输的次数越多,同时传输效率=SUM(data)/SUM(segment) 越小。
mss的合理值 = 保证数据包不分片的最大值。对于ethnet,一般为1460。
前面说过mss在tcp建立连接的时候确认,具体流程如下:
1.2 mtu
1.3 nagle
1.4 delay ack
1.5 quick ack
二 nagle与delay ack的纠结
三 解决
四 参考
http://www.stuartcheshire.org/papers/NagleDelayedAck/
http://support.huawei.com/ecommunity/bbs/10156527.html