1

我从来没有尝试过在上面编程,UDP但我知道它是快速且不可靠的。
我的问题是,如果我对可靠性进行编程,UDP得到的性能是否与使用相同TCP?即值得尝试吗?
关键点:没有编程UDP,将尝试第一次实现可靠性。

4

4 回答 4

3

有许多商业解决方案可以提供快速可靠的 UDP。对于典型的安装,这些成本高达 10 万美元,您可以期望在硬件上花费大约相同的费用以使其稳定。

编写可靠的 UDP 比听起来要困难得多,因为您对丢弃的数据包非常敏感。即,只要您丢失很少的数据包,它就可以正常工作。

对于简单的安装,TCP 将比尝试实现自己的可靠 UDP 更快、更简单。如果您不需要可靠性,我建议您只使用 UDP。

于 2013-07-31T19:56:29.170 回答
1

如果选择是“为 UDP 设计一些可靠性”或“使用 TCP 等经过验证的选项”,我肯定会选择 TCP 路线。您是否有理由避免使用 TCP?我认为这种推理可能对提出的建议至关重要。

有一个类似的线程提到了除了 UDP/TCP 之外的许多选项,您可能会在实现自定义之前考虑使用这些选项。在这里查看:当您需要可靠的 UDP 时,您会使用什么?

于 2013-07-31T19:56:01.370 回答
0

另一件需要考虑的事情是,由于发送速率的调整,TCP 也会引入自己的延迟——这一属性也称为拥塞控制。拥塞控制表现为 TCP 窗口启动慢、加法增加、乘法减少。此属性是对 TCP 提供的可靠性的补充。UDP(或其变体之一)广泛用于音频/视频的原因之一是由于拥塞控制和重传,它没有延迟。因此,如果您的应用程序对延迟敏感,那么与具有最低可靠性的 UDP 一起使用肯定会更好。

于 2013-08-01T16:38:04.523 回答
0

从长远来看,TCP 将更容易实现和更可靠。如果您正在展望一个巨大的项目,UDP 可能是可行的,但简单的 TCP 设计可能甚至可以胜任一项大型任务。

于 2013-07-31T20:00:07.473 回答