`
fishermen
  • 浏览: 379920 次
社区版块
存档分类
最新评论

关于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

  • 大小: 231.3 KB
分享到:
评论

相关推荐

    tcp/ip协议之 Nagle算法 TCP_NODELAY和TCP_CORK.zip

    TCP/IP协议是互联网通信的基础,其中的Nagle算法、TCP_NODELAY和TCP_CORK是优化TCP连接传输效率的重要策略。Nagle算法旨在解决小数据包发送的问题,通过合并多个小数据段来减少网络中的小包数量,从而提高带宽利用率...

    SO_REUSEADDR配置 & TCP_NODELAY1

    SO_REUSEADDR配置 & TCP_NODELAY SO_REUSEADDR配置和TCP_NODELAY是两种重要的网络协议配置选项,分别用于解决TCP连接中的端口重用和数据传输效率问题。 SO_REUSEADDR配置 在TCP连接中,主机A断开连接时,会发送...

    small_packet_delay.zip_NODELAY_TCP/IP_small package delay

    标题中的"small_packet_delay.zip_NODELAY_TCP/IP_small package delay"提到了TCP/IP协议中的小包延迟问题以及NODELAY选项的影响。在TCP/IP通信中,小包(通常指小于MTU,即最大传输单元的包)的传输可能会面临额外...

    nginx_tcp_proxy_module-master

    7. **Nagle算法控制**:`tcp_nodelay`可以控制是否启用Nagle算法,优化传输效率。 **使用注意事项** - 仔细阅读`readme`文件,了解模块的最新更新、使用限制和配置示例。 - 测试配置前,确保Nginx配置文件没有语法...

    socket tcp TCP_CORK禁用Nagle实现文件传输速度优化,加速tcp传输速度.zip

    TCP_CORK禁用Nagle实现文件传输速度优化,加速tcp传输速度.zip

    socket tcp如何防止多次send的包被合成一个包(粘包)发送.zip

    - 文件"2使用TCP_NODELAY选项,告诉内核尽快将该数据包发送出去.txt"和"2连接进行TCP_NODELAY选项的设置,关闭Nagle算法,这样就会像telnet一样,不管有多少数据会立即发送,没有延迟.txt"提到了这个方法。`TCP_...

    Java_TCP_IP_Socket编程(原书第2版)

    10. **套接字选项与网络参数**:Java的Socket类还可以设置套接字选项,如SO_LINGER(控制linger时间)、TCP_NODELAY(禁用Nagle算法)等,以优化网络通信性能。 以上只是Java TCP/IP Socket编程的一些基本概念和...

    tcp_test.zip_-baijiahao_TCP_test_tcp传输

    在使用`tcp_test`之前,确保你了解了基本的TCP概念,如滑动窗口机制、拥塞控制(慢启动、快速重传和快速恢复等)、TCP选项(如Nagle算法和延迟确认)。此外,为了进行测试,你需要一台运行服务器程序的设备和至少一...

    log_tcp_源码

    1. **SOCKET选项**:在编程中,我们可以通过设置socket选项来修改TCP的行为,如TCP_NODELAY(禁用Nagle算法,减少小包延迟)、TCP_QUICKACK(快速确认,提高效率)和TCP_KEEPALIVE(保持连接活动,检测死连接)。...

    tcp-Nagle算法讲解

    Nagle算法规定,一个tcp链接上最多只能有一个未被确认的小分组。 如果ack响应到达前,tcp暂时收集待发数据,等到响应ack到达后使用一个分组将待发数据发送出去。 Nagle算法启动的条件,...Tcp提供TCP_NODELAY关闭nag

    Java_TCP_IP_Socket开发指南

    此外,TCP/IP通信中还会涉及到异常处理、连接超时、套接字选项设置(如TCP_NODELAY禁用Nagle算法)、多线程并发处理等多个复杂问题。开发者在实际项目中需要根据具体需求,灵活运用这些知识进行优化。 总之,"Java_...

    TCP.zip_DEMO_LINUX TCP _linux 网络通信_linux 网络_linux 网络编程

    7. **套接字选项**:使用`setsockopt()`和`getsockopt()`可以设置和查询套接字的选项,例如TCP_NODELAY(禁用Nagle算法)和SO_REUSEADDR(允许立即重用地址)。 8. **服务器并发模型**:有两种常见的服务器模型:单...

    TCP.rar_linux tcp client_tcp_tcp linux

    8. **TCP选项和特性**:如TCP的Nagle算法,它旨在减少小数据包的发送,提高网络效率;还有TCP的Keepalive机制,用于检测长时间无数据交换的连接是否仍然活跃。 9. **调试与日志记录**:在开发过程中,记录详细的...

    TCP_IP详解卷1

    1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...

    TCP文件传输_tcp_

    此外,还可以考虑使用Nagle算法来减少网络中的小数据包数量,或者使用TCP_NODELAY选项禁用Nagle算法以实现更快的响应。 8. **安全性**: 考虑到网络安全,可以使用SSL/TLS对TCP连接进行加密,提供安全的文件传输。...

    TCP_and_C.zip

    9. **性能优化**:可能会涉及到TCP选项的设置,如TCP_NODELAY(禁用Nagle算法)以减少小包延迟,或者根据实际需求调整TCP缓冲区大小。 10. **安全性**:虽然这个项目没有明确提到,但实际应用中,传输数据的安全性...

    tcp_socket_TCP应答通信_

    滑动窗口允许TCP发送方在一个连续的数据流中发送多个数据段,而Nagle算法则通过合并小的数据段减少网络中的小包数量。 通过对`tcp_socket.c`的分析,我们可以学习如何在实际项目中实现TCP客户端和服务器间的通信。...

    Wireshark_TCP_Sept_15_2009.zip_wireshark

    这个压缩包“Wireshark_TCP_Sept_15_2009.zip”显然是关于Wireshark对TCP协议捕获的数据包分析的一个案例研究或教程,时间戳为2009年9月15日。通过分析这个文件,我们可以深入理解TCP(传输控制协议)的工作原理及其...

    TCP_WINDOWS_SET.rar_tcp Windows set

    4. **Nagle算法**:这是一种旨在减少小数据段发送的策略,通过合并多个小数据段为一个大的数据段发送。然而,在某些情况下,这可能会导致延迟。禁用Nagle算法或调整其阈值可能有助于改善低延迟应用的性能。 5. **...

    TCP_IP协议详解卷一

    1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...

Global site tag (gtag.js) - Google Analytics