質問: tcp環境下でのファイル破損は起こるのか? ふと思った事なのですが、フリーソフト等ダウンロードをftpで行った際、たまに「ファイルが破損」しています。 といったエラーになる場合があります。 再ダウンロードするとうまく動く(解凍できたり)のです。 そこで質問なんですが、 ftpはtcpを使用していると思っています。 tcpというと参考書などには「再送制御?」なるものがあり、 確実なファイル転送がおこなえるような記述がなされています。 tcp環境下でビットの欠落が起こるえるんでしょうか? よろしくお願いします。
回答: ftpにはいくつかの転送モードがありますが、一番使われているのは、ファイルをそのままtcpで送り、tcp接続を閉じることによってファイル末を示すというものです。 この場合、何らかのトラブルでデータ転送のtcp接続が途中終了してしまった場合と最後まで転送し終わって接続をクローズした場合とが区別できない事があります。結果として、正常終了したのに尻切れトンボのファイルがクライアント側に残る、と思います。 詳しくはftpのrfcを読んでください。