比 TCP 可靠性更高的协议是什么?
What is a higher reliability protocol than TCP?
我知道 TCP 有一个 16 位校验和,用于捕获传输中的错误。所以 TCP 在另一端的输出在理论上是可靠的......在某种程度上。
这篇文章表明 TCP 并不像人们希望的那样可靠,如果他们在 "high reliability" 之后:
http://iang.org/ssl/reliable_connections_are_not.html#ref_6
是否有比 TCP 更可靠的现成协议,甚至是传输库(C/C++ 首选)? 速度也需要适度关注。
我认为传输库实际上是 TCP 大部分部分的重新实现。
遗憾的是,TCP 没有更灵活地允许以 throughput/latency/speed 为代价来换取更高的可靠性。如果您将校验和设为 32 位而不是 16 位,您可以获得更高的可靠性。如果您选择将其设为 64 位,则同样如此。
在 TCP 之上添加您自己的可靠传输层似乎需要很大的成本:对于初学者来说,处理 TCP 的硬件加速支持是不够的,您需要提供一些 CPU是时候处理这一层了。此外,实现这样的事情需要很多额外的复杂性和代码,如果 TCP 校验和更大或可以选择,这些都是可以避免的。
广泛部署,易于理解,大量库以所有常用语言提供。
如果通过 'reliability' 您了解检测流更改(不良硬件或恶意干扰)的更好机会,那么加密 HMAC 是 方法。 TLS 几乎是行业标准。
我知道 TCP 有一个 16 位校验和,用于捕获传输中的错误。所以 TCP 在另一端的输出在理论上是可靠的......在某种程度上。
这篇文章表明 TCP 并不像人们希望的那样可靠,如果他们在 "high reliability" 之后: http://iang.org/ssl/reliable_connections_are_not.html#ref_6
是否有比 TCP 更可靠的现成协议,甚至是传输库(C/C++ 首选)? 速度也需要适度关注。
我认为传输库实际上是 TCP 大部分部分的重新实现。
遗憾的是,TCP 没有更灵活地允许以 throughput/latency/speed 为代价来换取更高的可靠性。如果您将校验和设为 32 位而不是 16 位,您可以获得更高的可靠性。如果您选择将其设为 64 位,则同样如此。 在 TCP 之上添加您自己的可靠传输层似乎需要很大的成本:对于初学者来说,处理 TCP 的硬件加速支持是不够的,您需要提供一些 CPU是时候处理这一层了。此外,实现这样的事情需要很多额外的复杂性和代码,如果 TCP 校验和更大或可以选择,这些都是可以避免的。
广泛部署,易于理解,大量库以所有常用语言提供。
如果通过 'reliability' 您了解检测流更改(不良硬件或恶意干扰)的更好机会,那么加密 HMAC 是 方法。 TLS 几乎是行业标准。