作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个实时应用程序(使用 websockets 的 C++)必须通过拥挤的 LAN 进行通信。因为它是实时的,所以不能容忍延迟。在这种情况下,UDP 的性能会优于 TCP 吗?
我不能容忍数据包丢失,但如果使用 UDP,可以通过重试来解决。
最佳答案
在拥塞的网络中,是的,UDP 将发送它的数据包比 TCP 更快,这是因为 TCP 使用称为 congestion control 的机制将拥塞考虑在内。 . UDP 没有拥塞控制,因此它会以本地网络接口(interface)允许的速度发送数据包。
因此,如果您的首要任务是发送 数据包,那么 UDP 就是最佳选择。但是,如果您也有兴趣接收它们,那就是另一回事了。以高速率将 UDP 数据包发送到拥塞的网络只会导致它变得(更多)更拥塞。这将不可避免地导致长时间的延迟和数据包丢失。
这里的问题不是 TCP 或 UDP,而是拥塞的网络。 如果道路拥堵,无论您是开车还是乘公共(public)汽车,您都会迟到。
选择哪种协议(protocol)并不重要。要通过拥塞的网络快速发送内容,您需要网络级别的解决方案,可能是一些 QoS mechanism . QoS 可以为您提供相当于公交车道的网络,让公交车可以快速通过拥挤的道路。
关于networking - 在拥挤的局域网中,UDP 发送速度是否比 TCP 快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42870240/
我是一名优秀的程序员,十分优秀!