誤り検出の解説(基本情報技術者シラバス用語)

目次

誤り検出とは

誤り検出(Error Detection)とは、コンピュータ間でデータを通信したり、ハードディスクなどの記憶媒体にデータを保存したりする際に、ノイズや障害によってデータの内容が途中で書き換わって(破損して)いないかをチェックする技術です。送信側がデータから一定の計算ルールに基づいて「検証用データ」を作り、データと一緒に送ります。受信側でも同じルールで計算し、送られてきた検証用データと一致するかで誤りを見つけます。

具体例

「パリティチェック」では、データの「1」の個数が奇数個か偶数個かを示すパリティビットをデータ末尾に付けます。受信側で「1」の個数を数えて整合性を確認し、ズレがあればエラーと判定します。

データ送信時: 1101001 (1の数は4個: 偶数)
検証データ: 0 (偶数パリティ)
受信データ: 1101000 (ノイズで最後の1が0になった)
受信側判定: 1の数が3個なのに検証データは0(偶数)なので「誤りあり」と検知

もう少し詳しく

ネットワーク通信やストレージ書き込み時、ノイズ等でデジタルデータのビット(0と1)が反転して壊れることがあります。これを検知するための仕組みが「誤り検出」です。送信側は、元のデータに一定の規則に従って計算したビット(冗長ビット)を付加して送信します。受信側でも受け取ったデータに対して同じ計算を行い、付加されたビットと突き合わせることでデータの変質を検証します。主な手法として、1データ(通常7〜8ビット)ごとに1ビットの検査用データを付加する「パリティチェック(偶数パリティ/奇数パリティ)」、データをブロックに分けて縦横2次元でパリティを確認することで特定の誤り位置も特定できる「水平垂直パリティチェック」、ビット列を生成多項式と呼ばれる数式で割り算した余り(検査文字)を用いることでバースト誤り(連続したエラー)も高精度に検出できる「CRC(巡回冗長検査)」、データの合計値を算出して送信する「チェックサム」などがあります。

試験でのポイント

試験では、代表的な誤り検出方式の特徴と動作原理が頻出です。特に「パリティチェック(1ビットの誤りは検出できるが、2ビットの偶数個の誤りは検出できない)」「水平垂直パリティチェック(1ビットの誤りであれば検出と同時にその位置を特定して訂正も可能)」「CRC(主に通信用で、連続した誤りであるバースト誤りの検出に優れる)」という各方式の違いを対比させて理解することが非常に重要です。また、具体的なビット列の計算問題が出題されることもあります。

関連する用語

パリティチェック(偶数・奇数の性質を利用した簡易な誤り検出)、CRC(巡回冗長検査、多項式を用いた高精度な通信向け検出方式)、チェックサム(データの総和を用いてパリティよりも広くチェックする方式)。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ