gpt4 book ai didi

sockets - TCP 连接的 Recv-Q 高的原因是什么?

转载 作者:可可西里 更新时间:2023-11-01 02:43:29 26 4
gpt4 key购买 nike

在我的应用程序中,我发现我对 TCP 连接的 send() 调用偶尔会被阻止。每当发生这种情况时,netstat 输出的 TCP 连接的 Recv-Q 非常高:

tcp   314238      0 10.8.8.21:47302         10.8.8.11:5672          ESTABLISHED
tcp 313276 0 10.8.8.21:47294 10.8.8.11:5672 ESTABLISHED

什么可能导致 TCP 连接的接收缓冲区被填满?它是如何导致我的 send() 调用无限期挂起的?

附注这可能相关也可能不相关,此 TCP 连接位于我的应用程序和 RabbitMQ 服务器之间。

最佳答案

What could possibly cause the recv buffer of a TCP connection to be filled up?

接收方接收速度比发送方发送速度慢。

And how does it cause my send() call to hang indefinitely?

当接收缓冲区填满时,TCP 关闭接收窗口,禁止发送方发送。发送方发送的数据不能超过接收方 TCP 在其接收窗口中公布的数据。

关于sockets - TCP 连接的 Recv-Q 高的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34108513/

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