CRC(巡回冗長検査)は、データ通信やストレージなどでの偶発的なデータ誤りを検出する手法です。送信側がデータに計算結果(チェックサム)を付加し、受信側が同じ計算を再実行して比較することで、誤りがないかを確認します。CRCは誤りがあることを検出できますが、データを訂正する機能はありません。
生成多項式とは、データ伝送におけるエラーを検出するCRC(巡回冗長検査)などで用いられる、あらかじめ送受信者間で共有される特定の多項式です。
CRCの仕組み
- 送信側:
- 送るデータに対し、あらかじめ定められた特定の数(生成多項式)を用いて、割り算のような計算を行います。
- この計算で得られた余り(チェックサム)を、元のデータに付加して送信します。
- 受信側:
- 送られてきたデータに対し、送信側と同じ生成多項式を使って割り算をします。
- 余りが0であれば、データに誤りがなかったと判断します。
- 余りが0以外であれば、データ伝送中に誤りが発生したと判断し、データを破棄して再送を要求します。
CRCの特徴
- 高い検出精度:
- パリティチェックなどの単純な方法に比べて、ランダムなビット誤りや、連続して発生するバースト誤りの検出能力が高いです。
- 多数のビット誤りを検出できますが、偶然チェックサムが一致してしまう誤りは検出できません。
パリティチェック
データ通信における誤り検出方法の一つで、データのビット列に含まれる「1」の個数が偶数か奇数かを表す「パリティビット」を付加し、送受信間で一致するかを確認する方法です。バースト誤り
データ転送中に連続して発生するビットの誤りのことです。ノイズ混入や記憶媒体の傷など、特定の原因によって短時間に集中的に発生する性質を持ちます。
- 誤り訂正は不可:
- 誤りを検出するだけで、元のデータを復元(訂正)することはできません。
- 実装が容易:
- デジタル回路で簡単に実装できるため、ハードウェアにも広く使われています。
- 広く利用されている:
- USB、Bluetooth、TCP/IPといった主要な通信プロトコルや、ZIP、PNGなどのファイル形式でも利用されています。

コメント