【发布时间】:2021-04-12 15:22:54
【问题描述】:
我在网上阅读了很多关于为什么要使用 UDP 或 TCP 的资料,但我仍然需要帮助来理解一些东西。
如果我在我的应用程序中实现错误检查和重新传输,我为什么还要考虑使用 TCP?开发人员利用 TCP 的内置功能而不是自己在应用层实现它们是否更方便?我知道 TCP 包含流量控制,这使得它对网络上的其他服务更友好,但是,如果我是一个自私的混蛋,可以对其他人不屑一顾,并希望我的应用程序尽可能快,我不会选择 UDP在每种情况下?
在您的应用程序中重新实现 TCP 的功能是一项艰巨的任务吗?我只需要帮助理解为什么,如果 UDP 快得多,每个应用程序在每种情况下都不会使用 UDP。
【问题讨论】:
-
除了最初的 3 个数据包建立 TCP 连接外,两者没有太大区别。有效负载往往比数据包标头的大小大得多。
-
这很有趣。所以你说在你的应用程序中实现 TCP 特性的开销通常不值得付出努力?但是Bit Torrent开始使用UDP而不是TCP不是因为它“更快”吗?
-
当您比较在 UDP 流中实现自己的重新排序/重新传输/流量控制的开销时,没有。 UDP 真的是一劳永逸
标签: tcp network-programming udp network-protocols