我通过TCP通过无线网络在VPN上传输了相当数量的google协议缓冲区消息,我觉得自己的错误率相对较高(例如,布尔字段从false切换到true或类似的东西)。十分之一到五万之一之间的东西。
这有可能吗?Wikipedia声明TCP有一个弱校验和,但这在底层协议中通常是固定的:
从现代标准来看,TCP校验和是一个弱校验。具有高误码率的数据链层可能需要额外的链路错误校正/检测功能。弱校验和通过在TCP和IP以下的第二层通用CRC或更好的完整性检查(如PPP或以太网帧)得到部分补偿。
有没有人有经验,预期的错误率应该是多少?如果以上的费率是可能的,那么建议的/最简单的方法是什么?复制田地?发两次信?或者还有其他的方法可以提高可靠性呢?
谢谢
发布于 2011-12-23 03:03:47
不,这是不可能的。假设您没有遭受硬件故障(内存、网卡等),这应该很容易检查--它发生在多台计算机上吗?
更有可能的是,您的应用程序代码中有无效的内存访问权限或类似的内容,或者您发送的数据根本不是您想要的。试着运行您的代码在val研或类似的。
将字段复制作为正常操作的一部分的想法似乎是荒谬的:基本上在野外没有人这样做,你也不应该这样做。在您的系统中有多个保护层来防止无声的数据损坏,所以它很可能是一个简单的(或者不是那么简单的)应用程序错误。
发布于 2015-05-01 00:42:24
John的回答是正确的,因为您的结果是不合理的,在应用层修复是一个错误。
如果网卡引入了这么多错误,VPN (假设SW层)会崩溃并失去连接。
按照建议,试试瓦兰,看看你的西南是否在腐蚀缓冲器。
此外,如果“容易检查”的内存似乎不是这样,一个很好的选择是memtest86,http://www.memtest86.com,您可以把它放在USB驱动器或CD上,让它在一夜之间或周末运行。
https://stackoverflow.com/questions/8611119
复制相似问题