CRC(巡回冗長検査)

CRC(巡回冗長検査)

 CRC(Cyclic Redundancy Check:巡回冗長検査)は、データの誤り検出に使用されるアルゴリズムです。CRCは、送信するデータに対して生成されるチェックサムを使用して、誤りを検出することができます。

 CRCは、ビット単位でデータを処理します。CRCは、データに対して生成されたビット列と予め定義された多項式を使用して、データのビット列に対するチェックサムを生成します。チェックサムは、送信元と受信先の両方で計算され、比較されます。送信側では、生成されたチェックサムをデータに付加して、受信側に送信されます。受信側では、データとチェックサムの組み合わせが受信され、再度チェックサムを計算して、送信元のチェックサムと比較します。一致しない場合は、データの誤りがあると判断されます。

 CRCは、TCP/IPプロトコルスタックなど、多くのプロトコルで使用されています。CRCは、送信されたデータに対して誤り検出が必要な場合に使用されます。CRCは、単一ビットエラーや複数ビットエラーなど、多くの種類の誤りを検出することができます。CRCの長さは、多項式の長さによって異なりますが、一般的には32ビットまたは64ビットのCRCが使用されます。

 CRCの主な利点は、高速で簡単に実装できることです。CRCは、数学的に妥当なチェックサムを生成し、誤り検出能力が高いため、データ通信において広く使用されています。ただし、CRCは、データの誤りを修正することはできないため、誤り検出後には、データを再送信する必要があります。