【问题标题】:What is a higher reliability protocol than TCP?比 TCP 更可靠的协议是什么?
【发布时间】: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


【解决方案1】:

TLS

广泛部署、易于理解的大量库,可用于所有常用语言。

如果通过“可靠性”您了解检测流更改(坏硬件或恶意干扰)的更好机会,那么加密 HMAC 是的方法。 TLS 几乎是行业标准。

【讨论】:

  • 啊,谢谢,我什至对密码学或恶意攻击者都不感兴趣(用户对通道有直接的物理控制),所以我什至不认为这是一个解决方案。我在想不可靠性会因为频道干扰或其他原因而有点翻转。我会快速阅读它,让你知道它是否是我所追求的。 :)
  • 这是我所追求的功能:en.wikipedia.org/wiki/Transport_Layer_Security#Data_integrity 似乎是合适的协议,尽管它带有很多我不感兴趣的额外功能。虽然它是标准的。谢谢。 :)
猜你喜欢
  • 1970-01-01
  • 2017-10-08
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-01
  • 2011-04-28
  • 1970-01-01
  • 2010-11-15
相关资源
最近更新 更多