大事な事が抜けていました。 「確実なパケット転送」の意味ですが、これは「送ろうとしたパケットが確実に相手に転送される」と言う意味ではありません。そんな保証はどこにもありませんし誰も保証してくれません。 「確実なパケット転送」の本当の意味は「転送を試みた後に『転送成功』と言われたパケットは、パケットの内容が元と違ってたり化けてたり欠落していたりせずデータが正しいのは保証する。だが『転送失敗』と言った場合は『失敗したのは保証する』けども、その他は一切保証しない。データの中身もどうなってるか判らない」と言う意味です。 つまり「転送を試みたら失敗と言われた」とか「転送を試みたらいつまで経っても転送が終らず、結果待ちしてるうちに接続が切れる」と言う事もある、と言う事です。 これもやっぱり「TCPエラーやTCPタイムアウトに対してソフトウェアがどういう挙動を取るか」の問題になります。