如题,想到一个问题,即排除三次握手与四次分手所保证的连接可靠性后,服务端能否确保与客户端接收数据完全一致?
比如客户端发送了 aaaaaaa,被拆分成三个封包发送,而服务端接收到该字符串后,虽然能确保按顺序接收,但会不会因为网络不稳定或硬件因素影响,导致接收数据变成了 aaabaaa ?
看了一些文章,tcp 对于数据本身的校验采用反码求和的算法,通常我们认为确保可靠都是计算 hash 之类的,这个反码求和似乎并没有 hash 那么靠谱,按照我的理解,反码求和当中比如同时有 2 个以上的 bit 改变,是可能导致求和结果相同,但具体内容不同的。
======
是否是我理解错了?还是 TCP 确实无法保证完全相同,业务上的校验需要应用层进行进一步校验?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.