知识卡片

数据完整性校验技术谱系的权衡

专业/工作 · 553.h

内容

校验数据完整性的手段沿着”开销递增、检错能力递增”排成一条谱系:奇偶校验每字节只加一位,实现和硬件成本极低,但只能发现约一半的错误,且额外开销占比很高,不适合高速通信;累加和校验用一字节记录全部数据的按字节累加和,实现简单但检错能力一般;CRC把数据当成一个大数去做多项式除法,用余数作校验值,检错能力显著强于前两者,被广泛用于压缩软件和网络协议;MD5/SHA等摘要算法对全部数据提炼出一份不可逆的指纹,检错能力最强,还能兼顾数据签名的用途,但计算开销也最大。发散:选择哪种校验手段的核心权衡是”愿意为检错能力付出多少额外的计算和传输开销”,没有一种是全场景最优解,这也是为什么同一个系统里往往会同时用到好几种校验方式,分别用在不同层级。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第5章《存储安全》