【发布时间】:2015-07-02 08:01:39
【问题描述】:
我知道 TCP 有一个 16 位校验和,用于捕获传输中的错误。所以 TCP 另一端的输出在理论上是可靠的……在一定程度上。
这篇文章表明,如果 TCP 追求“高可靠性”,则它并不像人们希望的那样可靠: http://iang.org/ssl/reliable_connections_are_not.html#ref_6
是否存在比 TCP 更可靠的现成协议,甚至传输库(首选 C/C++)? 速度也值得关注。
我认为传输库实际上是对 TCP 大部分部分的重新实现。
遗憾的是,TCP 不能更灵活地以吞吐量/延迟/速度为代价来权衡更高的可靠性。如果您甚至将校验和设为 32 位而不是 16 位,您可以获得更高的可靠性。如果您选择将其设置为 64 位,则再次说明。 在 TCP 之上添加您自己的可靠传输层似乎需要很大的成本:对于初学者来说,处理 TCP 的硬件加速支持是不够的,您需要提供一些 CPU 时间来处理它层。此外,实现这样的事情需要大量额外的复杂性和代码,如果 TCP 校验和更大或可选,则可以避免这些。
【问题讨论】:
-
为什么投反对票?以后请帮我改进我的问题!
标签: tcp network-programming protocols reliability