在网络出现延迟的情况下,即使是ACK也会被延迟约32毫秒,TCP发送缓冲区已经满了,即使在5-10分钟之后也不能清除。
这里有什么问题吗?是否可以检查当前的TCP发送缓冲区状态,以便在缓冲区已满时停止传出通信量?有什么TCP配置我应该处理吗?
它发生在openldap2.4堆栈中。提前谢谢。
发布于 2019-01-31 14:11:12
是否可以检查当前的TCP发送缓冲区状态,以便在缓冲区已满时停止传出通信量?
如果发送缓冲区已满,它将自动停止发送:如果发送缓冲区已满,则发送/写将阻塞(阻塞套接字)或失败(非阻塞套接字)。如果您想在前面停止,只需使用setsockopt(..., SO_SNDBUF,...) - Steffen Ullrich减少缓冲区
发布于 2019-09-26 16:43:46
要在Linux上检查TCP发送和接收队列,请使用ss (sockstat)命令[手册页]。
ss -tn如果您知道您感兴趣的TCP端口号,可以对其进行筛选,以获得更容易的视图,例如:
ss -tn 'dport 389 || sport 389'或
ss -tn 'dport ldap || sport ldap'https://stackoverflow.com/questions/41377187
复制相似问题