checksum - CRC-8 与 Fletcher-16 的错误检测性能
问题描述
我有一个应用程序,我目前正在使用 Fletcher-16 校验和进行错误检测。计算速度很重要。
不过,我想知道,如果 CRC-8 算法(使用查找表)会捕获与 Fletcher-16 校验和一样多甚至更多的错误?
我可以节省查找表所需的额外 256 字节,这似乎是为了更快的计算速度而进行的公平交易。CRC-8 查找表算法肯定比任何 Fletcher-16 算法都快。
在网上搜索这个主题似乎只会产生学术结果,老实说,这超出了我的理解范围。
任何人都可以对此有所了解吗?谢谢!
解决方案
特蕾莎·C·马克西诺;Philip J. Koopman,“嵌入式控制网络校验和的有效性”,IEEE Transactions on Dependable and Secure Computing,vol。6,第 1 期,2009 年 3 月:
对于分别小于 128、256 和 512 位的码字长度,CRC-8、CRC-9 和 CRC-10 的性能都优于 Fletcher-16。
因此,如果要保护的码字/消息长度小于 128 位,那么 CRC-8 可能比 Fletcher-16 更好。
(请注意,并非所有 CRC 多项式都是相等的:有些比其他多项式差得多。对于 CRC-8,共识似乎是在 0xEA 上;例如,参见Philip Koopman 和 Tridib 的“嵌入式网络的循环冗余码 (CRC) 多项式选择”查克拉瓦蒂,2004 年。)
推荐阅读
- selenium-webdriver - 将会话 cookie 导出为 JSON 格式以导入 Chrome
- ios - Dart devtools 内存视图无法处理堆栈溢出错误
- angular - 将 Material UI 图标渲染为 Highcharts 中的标记
- mysql - 保持与固定子行数的一对多关系的正确方法?
- php - 如何在类似条件下使用别名
- docker - Monorepo 与 Jenkins 和 Docker
- java - 如何缓存来自firebase的json数据以供离线使用?
- capl - 如何在 CAPL 中将字符串作为用户定义的函数参数传递
- javascript - 无法使用数组块调用函数,未定义
- php - 如何在 php codeigniter 中读取 doc/docx/pdf 文件中的文本/内容?