0

我在 Linux 平台上使用阻塞 BOOST ASIO 套接字。在一些 read() 操作中,我看到了 500+ 毫秒的巨大延迟。(通常延迟很好,但如此巨大的延迟之一是不可接受的)

我已经使用该选项禁用了 Nagle 算法

_socket->set_option( tcp::no_delay( true) );

我尝试在互联网上搜索,似乎还有其他东西,如延迟确认和 PUSH 标志,可以确保这种延迟消失。

我正在使用 Linux,PUSH 标志设置可能在 Linux 中不可用。不确定 BOOST 上的延迟确认设置。(我应该使用从 boost 套接字中提取的本机套接字描述符吗?)

结束这个问题,延迟来自接收方。客户端和服务器之间实现的底层协议是这样的,接收者不会给发送者一个标志来发送更多的数据包。在 TCP 级别上什么都没有。应用程序级别的实现很糟糕。

4

1 回答 1

0

延迟来自接收方。客户端和服务器之间实现的底层协议是这样的,接收者不会给发送者一个标志来发送更多的数据包。在 TCP 级别上什么都没有。应用程序级别的实现很糟糕。结束这个问题。

于 2013-07-03T03:54:21.627 回答