首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google协议缓冲区.比特错误的概率及其减少方法

google协议缓冲区.比特错误的概率及其减少方法
EN

Stack Overflow用户
提问于 2011-12-23 00:13:38
回答 2查看 1.1K关注 0票数 1

我通过TCP通过无线网络在VPN上传输了相当数量的google协议缓冲区消息,我觉得自己的错误率相对较高(例如,布尔字段从false切换到true或类似的东西)。十分之一到五万之一之间的东西。

这有可能吗?Wikipedia声明TCP有一个弱校验和,但这在底层协议中通常是固定的:

从现代标准来看,TCP校验和是一个弱校验。具有高误码率的数据链层可能需要额外的链路错误校正/检测功能。弱校验和通过在TCP和IP以下的第二层通用CRC或更好的完整性检查(如PPP或以太网帧)得到部分补偿。

有没有人有经验,预期的错误率应该是多少?如果以上的费率是可能的,那么建议的/最简单的方法是什么?复制田地?发两次信?或者还有其他的方法可以提高可靠性呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-23 03:03:47

不,这是不可能的。假设您没有遭受硬件故障(内存、网卡等),这应该很容易检查--它发生在多台计算机上吗?

更有可能的是,您的应用程序代码中有无效的内存访问权限或类似的内容,或者您发送的数据根本不是您想要的。试着运行您的代码在val研或类似的。

将字段复制作为正常操作的一部分的想法似乎是荒谬的:基本上在野外没有人这样做,你也不应该这样做。在您的系统中有多个保护层来防止无声的数据损坏,所以它很可能是一个简单的(或者不是那么简单的)应用程序错误。

票数 3
EN

Stack Overflow用户

发布于 2015-05-01 00:42:24

John的回答是正确的,因为您的结果是不合理的,在应用层修复是一个错误。

如果网卡引入了这么多错误,VPN (假设SW层)会崩溃并失去连接。

按照建议,试试瓦兰,看看你的西南是否在腐蚀缓冲器。

此外,如果“容易检查”的内存似乎不是这样,一个很好的选择是memtest86,http://www.memtest86.com,您可以把它放在USB驱动器或CD上,让它在一夜之间或周末运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8611119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档