发送方正在向接收方发送 N 个数据包。 我想要一个保证交付的协议或方法,每个数据包至少被接收一次。如果某些数据包由于重传而被多次接收,或者数据包无序到达,只要所有数据包最终到达即可。 TCP实现顺序传送,同时具有流量控制机制。 我怀疑这是否是一种矫枉过正,或者在我的情况下有不必要的开销。我应该使用什么协议?
我想要一个良好高效的协议。
TLDR:如果您在 TCP 和 UDP 之间进行选择,请使用 TCP。
您想要一个“良好高效的协议”。这是一个优秀、强大的协议,当网络条件允许效率时它是有效的,而当网络条件不允许时,当其他协议崩溃或它们的客户端崩溃时,它会继续工作。
您对过度杀伤的担忧是多余的,TCP 在空间和时间的所有环境中都是有效的。 (好吧,也许是 1940 年 - 现在,在内行星)。
人们经常看到或听到关于 TCP 如何在特定情况下无法“完美”工作的故事,但 TCP 在过去几十年中不断发展和繁荣。
详细来说,它非常复杂,因为网络很复杂,好的 TCP 文档没有“悬崖注释”,而这些文档通常最终变成了全尺寸的书三部曲(“网络互联”和“图解”)。