gpt4 book ai didi

tcp - TCP Nagle 刷新发生了什么?

转载 作者:可可西里 更新时间:2023-11-01 02:32:16 27 4
gpt4 key购买 nike

根据 this Socket FAQ article , Nagle 的算法是许多算法中的一种,它可以导致一堆数据位于 TCP 缓冲区中,而不是到达线路。 Nagle 算法的延迟最高可达 200 毫秒。

出于某种原因,Nagle 的算法可以完全关闭,但不会只刷新一次。这真让我费解。为什么没有办法说“就这一次,不要等待任何更多数据。就好像 Nagle 的 200ms 已到。”

这难道不是很合理,并且在完全不使用 Nagle、始终使用 Nagle 和从头实现自己的协议(protocol)之间取得良好的平衡吗?

最佳答案

好问题。我想没有人真的需要它,或者他们绕过了它。如果我没记错的话,启用 TCP_NODELAY 会立即推送数据。然后你就可以禁用它了。

当然,这是以两次系统调用“刷新”为代价的。您可以做什么: send(2),在 Unix 实现上有一个 flags 参数。您可以实现自己的标志,例如:MSG_JUSTPUSHIT(好吧,也许是另一个名称)并在 tcp_output 中考虑它。

关于tcp - TCP Nagle 刷新发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6726832/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com