誤り検出 【error detection】 誤り検知
概要
誤り検出(error detection)とは、データを記録・伝送する際に特殊な符号を追加するなどして、途中で起きる誤りを受け手の側で検出できるようにすること。そのために付加される符号を「誤り検出符号」(EDC:Error-Detecting Code)という。データを記憶装置に書き込んだり、電気回路や通信回線などを通じて伝送すると、様々な理由で意図せずデータの欠落や改変が起こることがある。これを完全に防止することは困難であるため、読み出しや受信の際に誤りが起きたかどうかを確かめられるようにするのが誤り検出技術である。
データを記録・送信する際に、一定の長さごとに特定の計算手順で「誤り検出符号」を算出し、データに連結する。読み込みや受信の際にはデータと符号を分離し、一定の計算手順でデータに誤りがないか確認し、誤りが検出されたら利用者にそのことを知らせたり、通信の場合は送り手に再送を要求する。
誤り検出には様々な方式があるが、どのような量・種類の誤りも完全に検出できる誤り検出符号はなく、ある長さあたり何ビットまでの誤りを検出可能かが符号により決まっている。符号を長くすれば検出できる誤りも増えるが、符号の算出・逆算のための計算量が増え、記録や伝送により多くの容量や帯域が必要となるため、コストや誤りの発生率などを勘案して適切なものが選ばれる。
著名な誤り検出符号としては、パリティ符号やチェックサム、巡回冗長符号(CRC:Cyclic Redundancy Code)などがある。誤りを検出するだけでなく、少ない誤りであれば正しい状態に復元することができる手法を「誤り訂正」(error coorection)という。検出と訂正を合わせて「誤り検出訂正」(error detection and correction)と総称する場合もある。
(2023.12.21更新)