CRC(巡回冗長検査)
CRCとは、Cyclic Redundancy Check(巡回冗長検査)の略で、送信データと受信データが同じかどうか確認する手法です。
ネットワーク上を流れるデータは、途中でノイズなどが入ることで波形が変わり、通信相手に正しいデータが届かないことがあります。そこで、パリティチェックやCRC(巡回冗長検査)などを用いて、誤りを検出します。
CRC(巡回冗長検査)の仕組み:送信側の動き
CRC(巡回冗長検査)では、はじめに送信側と受信側で特定の値を決めます。この値を「生成多項式」と呼びます。送信側は「送信データ」を「生成多項式」で割り、その余りをチェック用として「送信データ」に付加します。
次の図は、CRC(巡回冗長検査)のイメージ例です。
送信側は、「送信データ」に計算で得られた「余り」を付加して送信します。余りを付加することで、「生成多項式」で「割り切れる数」に変わります。
CRC(巡回冗長検査)の仕組み:受信側の動き
受信側は送られてきたデータを、送信側と同じ「生成多項式」で割り算します。この時に求められた余りとデータに付加された余りを比較して、一致していればデータを正常に受信できたと判断します。
また、余りを検証する計算方法は特に決まっていないため、データからデータに付加された余りを引き算してから「生成多項式」で割り、割り切れれば(余りがない)データを正常に受信できたと判断することもできます。
CRC(巡回冗長検査)では、複数ビットの誤りが検出できます。ただし、データの誤り訂正は行えません。そのため、誤りが見つかった場合は、データの再送を要求します。
helpful
この記事は役に立ちましたか?