`
cunzhangok
  • 浏览: 66703 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

Nagle

 
阅读更多
Nagle算法是以他的发明人John Nagle的名字命名的,它用于自动连接许多的小缓冲器消息;这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率。Nagle算法于1984年定义为福特航空和通信公司IP/TCP拥塞控制方法,这使福特经营的最早的专用TCP/IP网络减少拥塞控制,从那以后这一方法得到了广泛应用。Nagle的文档里定义了处理他所谓的小包问题的方法,这种问题指的是应用程序一次产生一字节数据,这样会导致网络由于太多的包而过载(一个常见的情况是发送端的"糊涂窗口综合症(Silly Windw Syndrome)")。从键盘输入的一个字符,占用一个字节,可能在传输上造成41字节的包,其中包括1字节的有用信息和40字节的标题数据。这种情况转变成了4000%的消耗,这样的情况对于轻负载的网络来说还是可以接受的,但是重负载的福特网络就受不了了,它没有必要在经过节点和网关的时候重发,导致包丢失和妨碍传输速度。吞吐量可能会妨碍甚至在一定程度上会导致连接失败。Nagle的算法通常会在TCP程序里添加两行代码,在未确认数据发送的时候让发送器把数据送到缓存里。任何数据随后继续直到得到明显的数据确认或者直到攒到了一定数量的数据了再发包。尽管Nagle的算法解决的问题只是局限于福特网络,然而同样的问题也可能出现在ARPANet。这种方法在包括因特网在内的整个网络里得到了推广,成为了默认的执行方式,尽管在高互动环境下有些时候是不必要的,例如在客户/服务器情形下。在这种情况下,nagling可以通过使用TCP_NODELAY 套接字选项关闭。
分享到:
评论

相关推荐

    Linux关闭Nagle算法,实习Tcp每40ms发一帧

    Linux关闭Nagle算法,实习Tcp每40ms发一帧。

    tcp-Nagle算法讲解

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

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

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

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

    在TCP/IP协议中,Nagle算法、TCP_NODELAY和TCP_CORK是用于优化TCP连接传输效率的关键机制,它们对数据传输过程中的各种性能问题提供了针对性的解决方案。 Nagle算法是一种网络数据传输优化算法,它主要用于减少TCP...

    大讲解!一种基于Nagle算法的嵌入式TCP协议.docx

    一种基于 Nagle 算法的嵌入式 TCP 协议** 随着嵌入式技术的快速发展,嵌入式系统与网络的融合变得越来越普遍,尤其是在8/16位低成本嵌入式处理器中实现TCP/IP协议的需求日益增长。然而,这类处理器的性能限制与复杂...

    win2008,win8,win10网络加速TCP参数

    3. **延迟发送**(Nagle算法):Nagle算法旨在减少网络上的小数据包数量,通过合并多个小数据段成一个大的TCP报文。然而,这可能会增加延迟。禁用Nagle算法可以改善交互式应用的性能,例如在线游戏或VoIP。可以通过...

    Fundamentals_of_Differential_Equations_8th_ed.pdf

    根据提供的文件信息,我们可以确定这是一本关于常微分方程基础的书籍,书名为《Fundamentals of Differential Equations 8th edition》,作者是R.Kent Nagle,Edward B. Saff 和 Arthur David Snider。这本书是针对...

    基于Nagle算法的嵌入式TCP协议

    随着嵌入式系统的发展,在嵌入式系统中实现网络连接已成为研究热点,广泛使用的廉价8/ 16 位嵌入式处理器的性能不足与... 因此在简化的TCP 协议中引入Nagle 算法,大幅度减少了嵌入式网络中发送的小数据包个数,提高了吞

    嵌入式系统/ARM技术中的基于Nagle算法的嵌入式TCP协议

    随着嵌入式系统的发展,在嵌入式系统中实现网络连接已成为研究热点,广泛使用的廉价8/ 16 位嵌入式处理器的性能不足与网络... 因此在简化的TCP 协议中引入Nagle 算法,大幅度减少了嵌入式网络中发送的小数据包个数,提高

    socketio-nagle-experiment:尝试尽可能降低 socketio 延迟

    socketio-nagle-experiment 尝试尽可能降低 socketio 延迟。 尝试了 3 种方法: 在每个客户端消息后从服务器发送确认 从客户端每 10 毫秒发送一次填充数据包 从服务器每 10 毫秒发送一次填充数据包 android 版 ...

    TcpNoDelay

    TCP中的Nagle算法是一种优化策略,旨在减少网络中传输的小数据包数量,从而提高网络效率。默认情况下,TCP连接启用了Nagle算法。其工作原理是将多个小的数据片段合并成一个大的数据包进行发送,避免频繁的网络交互。...

    Baudot Teletype RSS Feed Reader:移至https://github.com/John-Nagle/baudotrss-开源

    适用于Baudot电传打字机的RSS阅读器模拟... (此程序的所有更高版本都位于Github上,网址为https://github.com/John-Nagle/baudotrss)(由于Google语音所做的更改,已删除了Google语音支持。现在有一些Twilio支持。)

    电脑管家更改游戏配置教程.pdf

    Nagle算法是一种用于提高网络带宽效率的策略,但它有时会导致网络游戏的延迟增加,影响游戏的实时性。因此,对于一些对网络延迟敏感的在线游戏,关闭Nagle算法是有益的。以下是禁用Nagle算法的步骤: 1. 按【Win+R...

    SO_REUSEADDR配置 & TCP_NODELAY1

    然而,在某些情况下,Nagle算法可能会对网络流量产生负面影响,影响传输效率。例如,在传输大文件数据时,不使用Nagle算法可以提高传输速度。 为了禁用Nagle算法,可以使用setsockopt函数,例如: ```c int opt_val...

    TCP/IP -- 探寻影响业务性能的隐形杀手

    在IT行业中,网络通信是至关重要的,而TCP/IP(传输控制协议/因特网协议)作为互联网的基础,其性能直接影响到业务的效率和用户体验。本文将深入探讨如何通过TCP/IP协议来识别并解决可能导致业务性能下降的问题,...

    ARM的嵌入式以太网通信分析与实时性改进.pdf

    Nagle算法通过合并连续的小数据包来减少网络中的传输次数,而延迟ACK则是等待一段时间来确认多个数据包,以此减少ACK包的发送,进一步优化网络资源。 然而,在嵌入式系统中,尤其是单向数据传输的应用场景,Nagle...

    高性能编程.docx

    文档提到了几个关键点,包括Nginx中间件、Python Socket编程、TCP/IP理解、多线程、网络协议、TCP连接、报文分片、Nagle算法、慢启动和拥塞窗口等。 1. **Nginx中间件**:Nginx是一个高性能的反向代理服务器,以其...

    提高51单片机TCP通信效率的软件方法.docx

    影响通信速率的因素主要包括两个方面:首先,由于Nagle算法的存在,TCP连接上最多只能有一个未被确认的分包,这限制了小数据包的连续发送,可能导致高速交互的采样系统出现延迟。其次,接收端的延时确认算法也会影响...

Global site tag (gtag.js) - Google Analytics