TCP 校验和,为什么?

TCP 校验和,为什么?

为什么当较低层无论如何都会进行完整性检查(例如以太网 CRC)时,TCP 需要校验和?

答案1

TCP 协议保证准确交付,无论底层机制如何。但不能保证它所运行的每个协议都会进行任何类型的完整性检查。 例如,没有错误检测。

答案2

因为它是一种起源于 20 世纪 70 年代早期的协议。当时,通信的分层模型还不是常识。

我个人认为它只是协议设计早期的遗留物。

这就是我认为这个校验和很疯狂的原因:

  1. 它太弱,无法提供有意义的保护
  2. 计算起来仍然很痛苦(特别是在微控制器上。这浪费了周期)
  3. 它不能防止操纵(因为它很容易修复)
  4. 许多实现无论如何都会忽略它

相关内容