TCP 是否不负责通过在传输过程中发生丢失等情况时采取任何可能必要的措施来确保通过网络完整地发送流?
它做的不对吗?
为什么更高的应用层协议(protocol)及其应用程序仍然执行校验和?
最佳答案
虽然 TCP 确实包含自己的校验和,但它只是一个 16 位校验和,而且 TCP 校验和机制肯定有可能漏掉多位传输错误。这种情况很少见,但仍有可能发生,事实上我已经看到它发生了(几十年一两次)。
健壮的协议(protocol)会希望使用更高级别的哈希函数来确保传输数据的完整性。话虽如此,传输少量数据的应用程序并不多。批量传输应用程序(例如包管理器或自动更新机制)通常会使用加密哈希函数来提高数据完整性的保证。
关于tcp - TCP 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494416/