はじめに
誤り制御方式のCRC(Cyclic Redundancy Check)は、データ通信において誤り検出を行うための手法の一つです。CRCは、送信側でデータに対して計算を行い、その結果を受信側で再度計算することで、データの誤りを検出することができます。本記事では、CRCの基本的な仕組みや種類、応用例について解説します。
CRCとは
CRCは、データ通信において誤り検出を行うための手法の一つです。CRCは、送信側でデータに対して計算を行い、その結果を受信側で再度計算することで、データの誤りを検出することができます。CRCは、誤り検出のみを行うため、誤り訂正はできません。
CRCの仕組み
CRCは、多項式演算を用いて計算を行います。送信側では、データに対してCRCを計算し、その結果をデータに付加して送信します。受信側では、受信したデータに対して再度CRCを計算し、送信側で計算したCRCと比較することで、データの誤りを検出することができます。
CRCの種類
代表的なCRCの種類として、CRC-16、CRC-32があります。CRC-16は、16ビットのCRCを生成するための方式であり、CRC-32は、32ビットのCRCを生成するための方式です。CRCの種類によって、生成されるCRCのビット数や誤り検出能力が異なります。
CRCの応用例
CRCは、データ通信において広く利用されています。CRCは、TCP/IPやUSB、イーサネットなどの通信プロトコルで使用されています。また、CRCは、データストレージのメディアにおいても利用されており、CDやDVD、ハードディスクなどの記録媒体において、誤り検出のために使用されています。
CRCのメリットとデメリット
CRCのメリットは、誤り検出が高速であることや、誤り検出能力が高いことです。また、CRCは、誤り訂正ができないため、誤り訂正が必要な場合は、他の誤り制御方式を使用する必要があります。CRCのデメリットは、CRCの種類によって、生成されるCRCのビット数や誤り検出能力が異なるため、適切なCRCを選択する必要があることです。
CRCの注意点
CRCを使用する際には、以下の点に注意する必要があります。 CRCの種類によって、生成されるCRCのビット数や誤り検出能力が異なるため、適切なCRCを選択する必要があります。 CRCは、誤り検出のみを行うため、誤り訂正が必要な場合は、他の誤り制御方式を使用する必要があります。
まとめ
CRCは、データ通信において誤り検出を行うための手法の一つであり、広く利用されています。CRCは、多項式演算を用いて計算を行い、誤り検出能力が高いことが特徴です。CRCを使用する際には、適切なCRCを選択し、誤り訂正が必要な場合は、他の誤り制御方式を使用する必要があります。
FAQs
CRCは、どのような場面で使用されるのでしょうか?
A1. CRCは、データ通信やデータストレージにおいて、誤り検出のために使用されます。
CRCは、どのように誤り検出を行うのでしょうか?
A2. CRCは、送信側でデータに対して計算を行い、その結果を受信側で再度計算することで、データの誤りを検出することができます。
CRCの種類によって、生成されるCRCのビット数や誤り検出能力が異なるとのことですが、具体的にどのような違いがあるのでしょうか?
A3. CRCの種類によって、生成されるCRCのビット数や誤り検出能力が異なります。CRC-16は、16ビットのCRCを生成するための方式であり、CRC-32は、32ビットのCRCを生成するための方式です。
CRCは、誤り検出能力が高いとのことですが、どの程度の誤りを検出できるのでしょうか?
A4. CRCは、誤り検出能力が高く、一般的には、1ビットの誤りを検出することができます。
CRCを使用する際に注意すべき点はありますか?
A5. CRCを使用する際には、適切なCRCを選択し、誤り訂正が必要な場合は、他の誤り制御方式を使用する必要があります。
例題(誤り制御方式)
問題
メモリの誤り制御方式で,2ビットの誤り検出機能と,1ビットの誤り訂正機能をもたせるのに用いられるものはどれか.
選択肢
ア:奇数パリティ イ:水平パリティ ウ:チェックサム エ:ハミング符号
平成30年度秋期午前I問5
問題文の解説
誤り制御
誤り制御とは,コンピュータ間通信の途中で失われた情報や壊れた情報を検知し,適切な状態に修正することを指します.コンピュータ間通信では必ずエラーが発生するため,誤り制御が必須となります.
誤り検出
誤り検出は伝送誤りの検出を行うことです.送信側は誤り検出のための情報を付加して送信し,受信側は誤り検出のための情報を使って,受信したデータをチェックします.
誤り訂正
誤り訂正は伝送誤りの訂正を行うことです.送信側は誤り訂正のための情報を付加して送信し,受信側は誤り訂正のための情報を使って誤りを検出,必要があれば正しいデータを復元します.
選択肢の解説
ア:奇数パリティ
パリティを含めたデータ全体で常に「1」の数が奇数になるようにパリティビットを決定することからこのように呼ばれる.
これによりデータ送信中に改竄された場合,受け取り手がパリティチェックを行うことでデータの改竄の有無を確認できる.
ただし2ビット誤りがあった場合には1の数が偶数になってしまうため検出できません. また,どのビットが誤っているかはわからないので,誤りの検出のみで訂正はできません.
イ:水平パリティ
連続する数ブロックについて,各ブロックの1ビット目,2ビット目…をグループ化し,各グループ毎にパリティを付与する
また,各列において奇数個なら誤りを検出することができる.
ウ:チェックサム
元データを所定区間に区切りその総和を求め,その総和の値に所定のアルゴリズムを通して得られた結果をチェックサムとします.
エ:ハミング符号
ハミング符号は,データを送信する際に,本来のデータに一定の手順で計算したチェック用のデータを付加して送信することにより,受信側で受け取ったデータに誤りがないかどうかを検証することができるものになります.誤りがあった場合,1bitの誤りであれば訂正が可能となります.
step1ではデータブロックを用意します. 次に,step2で4bitから3bitを抽出した組み合わせを作成します. step3ではXORを算出し,元のデータブロックに結合させて完了です.
ここで,誤り検出訂正能力を確認してみましょう.
1bitの場合(ここではbが誤っている場合)では,bが誤りと検出でき,さらに訂正をすることができます.
しかし,2bitの場合では,2bitが誤っていることは検出できますが,どこが誤っているまでは分からず訂正はできません.
解答
エ
参考文献
- TokyoInteractive.情報処理安全確保支援士午前Ⅰ・Ⅱ一問一答問題集2022年度版(p.30).TokyoInteractive.Kindle版.
- https://www.foresight.jp/fe/column/error-control/
- https://basics.k-labo.work/2017/09/21/%E8%AA%A4%E3%82%8A%E6%A4%9C%E5%87%BA%E3%83%BB%E8%A8%82%E6%AD%A3/
- https://e-words.jp/w/%E5%A5%87%E6%95%B0%E3%83%91%E3%83%AA%E3%83%86%E3%82%A3.html#:~:text=%E5%A5%87%E6%95%B0%E3%83%91%E3%83%AA%E3%83%86%E3%82%A3%E3%81%A8%E3%81%AF%E3%80%81%E8%AA%A4%E3%82%8A,%E3%80%8C0%E3%80%8D%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E5%BC%8F%E3%80%82
コメント