伝送誤りの検出
概要
ランダムな誤りが発生する伝送路を通して固定長データを送信する。
伝送誤りを検出する方法を考え、
送信および受信プログラムを作成し、
その動作を確認する。
誤りを訂正する方法までは考えなくても良い。
方法
- 準備
サーバ側で、伝送エラーを発生させるプログラムを実行するので、
ここまで来たら教官またはTAに申し出ること。
- 条件
文字列2個に1個という確率で受信したデータにエラーが発生する。
エラーが発生した場合には、
文字列のうち1文字がランダムな文字に書き換えられる。
- 誤りがあることの確認
前の実験
で作成した送受信プログラムを実行して、
文字が書き換えられていることを確認する。
- 誤り検出プログラムの作成
誤りを検出するプログラムを作成し、検出できるかどうかを確認する。
なお、誤りがある場合とない場合を区別できるようにすること。

機器の接続とデータの流れ
ヒントと注意
- 情報を追加する必要がある。
- 誤り検出用に追加した情報が書き換えられることもある。
- 書き換えられるのは1文字のみであるということを利用してもよい。
- 以下の方法は比較的簡単に実装できる。
- チェックサム
文字コードの総和を256で割った余りを文字列にして付加する。
一部の文字が書き換えられたら、総和が合わなくなる。
- 2回繰り返し
同じ文字列を2回繰り返したものを送る。
1回目と2回目を比較し、一致しなければ誤りが発生している。
単純だが非常に効率が悪いので、実際には使われていない。
- 3回繰り返し
同じ文字列を3回繰り返したものを送る。
多数決を取れば、1文字の誤りならば訂正できる。
極めて効率が悪い。
- 以下の技術が実際に用いられている。
- パリティチェック
- ハッシュ関数
- ハミングコード
- CRC
(作成: 2001年11月4日, 最終更新: 2001年11月20日)