u-tokyo.ac.jp のミラー FTP サーバーから同じファイルを連続して2回ダウンロードすると内容が一致しない
ある人が、Gentoo Linux の CD イメージをダウンロードしようとして、u-tokyo.ac.jp が速そうなのでその FTP サイトから落として CD ブートしてインストールすると、いくつかのファイルが壊れている (CRC エラー) と出た。
ダウンロードしたファイルは下記の場所にある iso イメージである。
ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/releases/x86/2005.0/installcd
これで結構悩んだ (最初はうちのネットワークがおかしいのではないかとか) のだが、
上記 FTP サーバーから iso イメージを落とすと、2回落とすと、1回目と2回目のファイル内容が異なっている という奇妙な現象を見つけた。
どうやら、上記の東京大学の FTP サーバーからファイルをダウンロードすると、なんと平均約 10 メガバイトに 1 ビット程度の割合で、ファイルの中身のデータが化ける ようである。しかも、さらによく調べると、データが化けるときは 8 ビット目がビット反転してしまうようである (他のビットは化けていない)。
上記の東京大学の FTP サーバーではなく、他からダウンロードすれば問題無かった。
考えられる原因は、①途中のネットワークがおかしい、②FTP サーバーのマシンが物理的におかしい のどちらかだと思うが、TCP の特性上 ① は考えにくい (Checksum エラーが発生したら輻輳検出と同様に再送モードに入るので転送速度は落ちるはず)。したがって送信元 FTP サーバーがデータをディスクから読み出し FTP プロトコルの一部として TCP にカプセル化する前の段階でビットが化けている可能性が高い。
メモリがハード的に寿命だとかだろうか。
以下の方法で試すことができます。やってみてください。
- ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/releases/x86/2005.0/installcd/install-x86-minimal-2005.0.iso (61Mbytes) をダウンロードする。
- 深呼吸して、もう一度、ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/releases/x86/2005.0/installcd/install-x86-minimal-2005.0.iso (61Mbytes) をダウンロードする。 (IE 等ではキャッシュが残っている可能性もあるので、FTP クライアントソフトなどを使うことをお勧めします)
- 上記で落とした 2 個のファイルを MD5 チェックサム (md5sum) か何かで比較してみる。
- あれ? 内容が一致しない ということに気付く。
↑ 1 回目にダウンロードしたファイルを 1.dat、2 回目にダウンロードしたファイルを 2.dat として、それぞれ MD5 でハッシュしてみたところ