TCP协议,减少RTT瓶颈

TCP protocol, reducing RTT bottleneck

本文关键字:RTT 瓶颈 减少 协议 TCP      更新时间:2023-10-16

根据我的理解,tcp协议的性能受到RTT(往返时间)的限制。如果客户端向服务器发送消息,则需要等待确认响应,然后才能发送序列中的下一条消息。这意味着,如果我在250毫秒RTT的链接上,我每秒只能收到4条消息,这对许多应用程序来说都很慢,严重阻碍了数据传输速率。

有哪些方法可以绕过这一限制?

如果客户端向服务器发送消息,则需要等待确认响应,然后才能发送序列中的下一条消息。

这是不对的。有延迟ACK和选择性ACK。

这意味着,如果我在250毫秒RTT的链接上,我每秒只能收到4条消息。

不,没有。

实际瓶颈是链路的带宽延迟乘积。请确保两端的套接字发送和接收缓冲区至少等于此产品。

RTT只是告诉您从发送缓冲区中逐出数据包的延迟约为250ms。假设发送缓冲区足够大,没有什么可以阻止您在最大带宽减去协议开销的情况下进行双向通信。

如果您不需要纠错(也就是说,当消息到达太迟时,您的消息毫无价值),请考虑使用UDP。

如果我理解正确。您的协议将等待来自对等方的响应消息,然后才能发送下一条请求消息。在这种情况下,RTT会限制您所说的速度(每秒4条消息)。

如果您的协议规范要求进行这种等待,那么该协议的设计就不好。

如果没有,那么您可以通过在等待响应消息之前向对等方发送多条消息来提高性能。这样一来,高RTT就不会造成如此糟糕的减速。