スポンサーリンク

【応用情報技術者試験】CRC

CRC(巡回冗長検査)は、データ通信やストレージなどでの偶発的なデータ誤りを検出する手法です。送信側がデータに計算結果(チェックサム)を付加し、受信側が同じ計算を再実行して比較することで、誤りがないかを確認します。CRCは誤りがあることを検出できますが、データを訂正する機能はありません。

生成多項式とは、データ伝送におけるエラーを検出するCRC(巡回冗長検査)などで用いられる、あらかじめ送受信者間で共有される特定の多項式です。

CRCの仕組み

  • 送信側:
    1. 送るデータに対し、あらかじめ定められた特定の数(生成多項式)を用いて、割り算のような計算を行います。
    2. この計算で得られた余り(チェックサム)を、元のデータに付加して送信します。
  • 受信側:
    1. 送られてきたデータに対し、送信側と同じ生成多項式を使って割り算をします。
    2. 余りが0であれば、データに誤りがなかったと判断します。
    3. 余りが0以外であれば、データ伝送中に誤りが発生したと判断し、データを破棄して再送を要求します。

CRCの特徴

  • 高い検出精度:
    • パリティチェックなどの単純な方法に比べて、ランダムなビット誤りや、連続して発生するバースト誤りの検出能力が高いです。
    • 多数のビット誤りを検出できますが、偶然チェックサムが一致してしまう誤りは検出できません。

パリティチェック
データ通信における誤り検出方法の一つで、データのビット列に含まれる「1」の個数が偶数か奇数かを表す「パリティビット」を付加し、送受信間で一致するかを確認する方法です。

バースト誤り
データ転送中に連続して発生するビットの誤りのことです。ノイズ混入や記憶媒体の傷など、特定の原因によって短時間に集中的に発生する性質を持ちます。

  • 誤り訂正は不可:
    • 誤りを検出するだけで、元のデータを復元(訂正)することはできません。
  • 実装が容易:
    • デジタル回路で簡単に実装できるため、ハードウェアにも広く使われています。
  • 広く利用されている:
    • USB、Bluetooth、TCP/IPといった主要な通信プロトコルや、ZIP、PNGなどのファイル形式でも利用されています。

コメント