TCP校验和的错误率是多少?

4
TCP和UDP(有时)使用简单的校验和来确保内容正确。我想知道的是,对于拥有标准计算机和互联网连接的人来说,一个数据包被损坏但具有正确的校验和的频率有多高,是否有任何经验数据或估计值。现在我知道这可能会受到ISP质量、硬件质量等因素的影响,但我只是想听听有关此方面的任何信息。
2个回答

5
你正在询问一根绳子有多长。一般情况下,除非出现问题,否则误差率应该小于10-7。另一方面,无线、3G等技术的误差率可能会显著提高。
这个Google搜索将展示给你大量的文献。

1
我认为10-7有点太高了。在Google中,1-(1-10^-7)^(5千兆字节/1500字节)似乎表明在传输5千兆字节时有30%的失败概率。我从未遇到过这样的错误。 - Unknown
1
那就比这还少了。但这也取决于硬件。以太网连接可能会有更多,但在硬件层面捕获它们并且根本不会传播到网络上。 - Charlie Martin

1

来自微软研究院,

过去两年的互联网数据包迹象表明,在链路层循环冗余校验(CRC)应该捕获所有错误的情况下,每1,100个到32,000个数据包中就有1个数据包未通过TCP校验和。对于某些情况,校验和失败率甚至更高:在一个小时的测试中,我们观察到400个数据包中有1个校验和失败。我们正在调查为什么会出现这么多错误,当链路层CRC应该几乎可以捕获所有错误。

http://academic.research.microsoft.com/Paper/22436.aspx

基本上,在典型的互联网连接上传输100MB以上的数据,很可能会出现无声的失败。

2
那是校验和错误的数量,例如一个数据包具有错误的TCP校验和,可能是由于传输错误引起的(并且将被丢弃并重新传输)。 - nos
3
在那个页面稍往下的文字中,我们得出结论:经过分析,校验和将无法检测到大约每 1600 万至 100 亿个数据包中的错误。 - Chris Pacejo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接