美文网首页
Nagle算法在TCP

Nagle算法在TCP

作者: 不爱钱的张师傅 | 来源:发表于2019-06-23 19:11 被阅读0次

使用 Nagle 可以尽可能发送大块数据的包,从而减少发包个数,以此降低网络负载。

如果调试过 telnet 之类的程序,就会知道,每次在窗口输入一个字符的时候,服务器端就可见反应。
所以,比如你输入 “cd /”三个字符,可能需要发出三个包,而不是一个。这就造成网络负载严重。

所以,对于需要高度互动的程序,比如 QQ ,微信(C/S)等,最好禁用该算法。

所以,写这类交互程序的时候,禁用该算法,理论上可以提高交互体验。
使用的函数是setsockopt()

int opt_val = 1;
setsockopt( sock IPPROTO_TCP, TCP_NODELAY, (void *)&opt_val, sizeof(opt_val));

sock:套接字
IPPROTO_TCP:TCP协议
TCP_NODELAY:禁用 Nagle 算法。
opt_val:禁用成功,这个值为 1,否则为 0 ;

相关文章

  • TCP之Nagle、Cork、Delay ACK(延迟确认)

    [TOC] 参考资料 TCP协议中的Nagle算法 TCP中的Nagle算法 Linux下TCP延迟确认(Dela...

  • 详解Socket编程---TCP_NODELAY选项

    Nagle算法描述 Socket编程中,TCP_NODELAY选项是用来控制是否开启Nagle算法,该算法是为了提...

  • Nagle算法在TCP

    使用 Nagle 可以尽可能发送大块数据的包,从而减少发包个数,以此降低网络负载。 如果调试过 telnet 之类...

  • TCP之Nagle算法

    [TOC] Small Packet Problem 在使用一些协议通讯的时候,比如Telnet,会有一个字节字节...

  • HTTP连接管理

    Http事务的时延:(1)TCP建立连接握手(2)TCP慢启动拥塞控制(3)数据聚集的Nagle算法(4)用于捎带...

  • TCP_NODELAY 和 TCP_CORK主要区别

    tcp_nodelay:禁止nagle算法,有需要发送的就立即发送,比较常见。 tcp_cork:它是一种加强的n...

  • tcp-粘包浅析

    在运输层用的最多的就是tcp 和udptcp面向连接udp非面向连接tcp使用了优化方法(Nagle算法),将多次...

  • 网络

    TCP_NODELAY 是 禁用了 Nagle算法 允许小包发送,一般都这么做。https://www.bilib...

  • TCP 中的 Nagle 算法

    《HTTP 权威指南》阅读随笔 为什么要使用 Nagle 算法TCP 有一个数据流接口,应用程序可以通过它将任意尺...

  • Netty 学习7. TCP参数设置

    TCP_NODELAY 解释:是否启用Nagle算法,改算法将小的碎片数据连接成更大的报文来最小化所发送的报文的数...

网友评论

      本文标题:Nagle算法在TCP

      本文链接:https://www.haomeiwen.com/subject/ggdwqctx.html