TCP 校验和

Cet*_*ert 4 checksum network-programming tcp crc

TCP 是否不负责通过在传输过程中发生丢失等可能需要的任何事情来确保通过网络完整发送流?

难道它没有做好吗?

为什么更高的应用层协议及其应用程序仍然执行校验和?

Gre*_*ill 5

虽然 TCP 确实包含自己的校验和,但它只是一个 16 位的校验和,并且 TCP 校验和机制肯定可能会导致多位传输错误。这是非常罕见的,但它仍然是可能的,而且我实际上已经看到它发生了(几十年一两次)。

健壮的协议将希望使用更高级别的散列函数来确保传输数据的完整性。话虽如此,但传输少量数据的应用程序并不多见。批量传输应用程序(例如包管理器或自动更新机制)通常会使用加密散列函数来增加数据完整性的保证。

  • 如果您反复遇到同样的问题,则不太可能是 TCP 传输错误。那种多位传输错误是不可重复的。 (3认同)