誤り検出方式のCRC|科目A-1 令和7年 秋期午前試験 問4
出典:令和7年秋期 午前 問4
分野:基礎理論(中分類) / 計測・制御に関する理論
誤り検出方式であるCRCに関する記述として,適切なものはどれか。
- ア:検査用のデータは,検査対象のデータを生成多項式で処理して得られる1ビットの値である。
- イ:受信側では,付加されてきた検査用のデータで検査対象のデータを割り,余りがなければ送信が正しかったと判断する。
- ウ:送信側では,生成多項式を用いて検査対象のデータから検査用のデータを作り,これを検査対象のデータに付けて送信する。
- エ:送信側と受信側では,異なる生成多項式が用いられる。
TSUNAGARU-ADVICE
まず押さえたいこと
CRCは、送信データから生成多項式を使って検査用データを作り、それを元のデータに付けて送信する誤り検出方式です。ポイントは、検査用データが単なる1ビットではなく、生成多項式による割り算の余りとして作られる点です。
迷ったときの判断軸
CRCでは、送信側と受信側が同じ生成多項式を使います。受信側は、受け取ったデータ全体を生成多項式で割り、余りの有無から誤りを検出します。「検査用データで割る」「送受信で異なる生成多項式を使う」といった表現はひっかけとして見分けましょう。
科目Bにつなげるために
特にプロフェッショナルデジタルスキル(システム)試験合格を目指す方は、CRCをネットワーク通信やストレージでのデータ誤り検出の仕組みとして理解しておくと有効です。科目Bでは、通信品質・フレーム・パケット・再送制御などと組み合わせて問われる可能性があります。
CRCは、送信したデータに誤りが混じっていないかを確認するための方法です。データを特定のビット列で割り算し、その余りをチェック用の値として使います。
ここでは、検査対象データを「1001」、生成多項式を表すビット列を「1011」として考えます。
ポイントは、送信側と受信側が同じ生成多項式を使うことです。同じルールで割り算を行い、受信側で余りが0になれば、途中でデータが変わっていない可能性が高いと判断できます。
逆に、通信中にビットが変化していると、受信側で割ったときに余りが0にならないことがあります。その場合は、誤りが発生したと判断します。
つまりCRCは、「データに割り算の余りを付けて送り、受信側でもう一度割り算して、余りが0かどうかで誤りを確認する仕組み」と考えると分かりやすいです。
したがって、ウが適切です。
❌他選択肢が誤りの理由ア:検査用のデータは,検査対象のデータを生成多項式で処理して得られる1ビットの値である。
⇒CRCの検査用データは、一般に1ビットではなく、生成多項式の次数に応じた複数ビットの余りです。1ビットの検査で代表的なのは、パリティチェックです。
イ:受信側では,付加されてきた検査用のデータで検査対象のデータを割り,余りがなければ送信が正しかったと判断する。
⇒受信側で割るときに使うのは、付加されてきた検査用データではなく、送信側と同じ生成多項式です。受信データ全体を生成多項式で割り、余りを確認します。
エ:送信側と受信側では,異なる生成多項式が用いられる。
⇒CRCでは、送信側と受信側で同じ生成多項式を使います。異なる生成多項式を使うと、受信側で正しく検査できません。