応用情報技術者令和7年秋期 午前問4

問4

誤り検出方式であるCRCに関する記述として,適切なものはどれか。
  • 検査用のデータは,検査対象のデータを生成多項式で処理して得られる1ビットの値である。
  • 受信側では,付加されてきた検査用のデータで検査対象のデータを割り,余りがなければ送信が正しかったと判断する。
  • 送信側では,生成多項式を用いて検査対象のデータから検査用のデータを作り,これを検査対象のデータに付けて送信する。
  • 送信側と受信側では,異なる生成多項式が用いられる。

分類

テクノロジ系 » 基礎理論 » 計測・制御に関する理論

正解

解説

CRC(Cyclic Redundancy Check:巡回冗長検査)は、ネットワーク伝送やストレージなどにおいて用いられる誤り検出方式です。生成多項式を使用して検査用データの生成と検証を行うことが特徴で、単純なパリティチェックでは検出できない偶数個の誤りやバースト誤りを検出できる特長があります。

CRCの基本的な原理は次のとおりです。
  1. 送信側は、検査対象のデータを生成多項式(ビット列)で割り、その余りを検査用データとする
    例)10001000 mod 1010 = 110
  2. 送信側は、検査対象のデータに検査用データを付加して送信する
    例)検査対象データ:10001000、検査用データ:110
  3. 受信側は、検査対象データ+検査用データを、送信側と同じ生成多項式で割る
    例)(10001000 + 110) mod 1010 = 0
  4. 3.で計算した余りが0であれば"誤りなし"と判断する
  • 1ビットではありません。検査用データのビット数は、生成多項式の次数(ビット数-1)と同じになります。上記の生成多項式 1010 = x3+x1 を例にすると、次数3なので検査用データも3ビットです。
    CRCにはCRC-8やCRC-16、CRC-32などの種類があります。CRC-8というのは、8次の生成多項式を使い、その結果として8ビットのチェックデータを付ける方式のことです。
  • 受信側では、検査対象データに検査用データを加えた値を、送信側と同じ生成多項式で除算します。その余りが0になるかどうかでデータの正しさを判断します。
  • 正しい。送信側は生成多項式を用いて余りビットを計算し、それを検査用データとしてデータ本体に付加して送信します。
  • 送信時と受信時で同じ生成多項式を利用します。多項式が異なるとデータの正しさを確認することができません。CRCの方式ごとに使う多項式は決められています。
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop