連続都市伝説シリーズ:TCP/IPのパケット到達保証

『UDPと違って、TCPはパケットが必ず届くからね。』

この迷信は根が深いです。

多くの場合、UDPの信頼性の低さを強調するために吐かれる与太話なわけですが、それをまじめに信じ込んでしまっている人が多数います。

スイッチやハブ、それにNICとプロトコルスタックが正常なら、パケットロスは発生しないというワケです。

ハブやスイッチでバッファがあふれても、再送機構でパケットは失われないというわけです。

ハブだけが停電しても?

LANケーブルを抜いても?

そうすると、そういうのは故障の範疇だから、TCPでの通信プロトコルでパケットロスが回避可能なこととは、関係がないというようなことを、真顔で言う人が本当にいました。

これも分業制の弊害なのでしょう。自分が担当する閉じたシステム、それも自分達で勝手に決めた、所掌範囲のみで成り立つ原則だけでモノつくりを平気で無責任に垂れ流しているのです。

プロがやるいじわるテストでなくても、通信開始直後にわざとハブやスイッチの電源を切って、すぐに復旧させることくらい素人でも思いつきます。そしてまた、実際にしょっちゅう起こることなのです。

もちろん通信環境に問題があれば、処理を正常続行できないのは仕方が無いと思いますが、エラー処理はできるはずです。

UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI

リンク
(非)連続都市伝説