落穂ひろい:TCP/IPでチェックサム誤りが発生する実例

こういうエロい人が公式に書いてくれるのはありがたいですね。

昔、

ソケット通信のペイロードも

チェックサムでチェックしないとまずいっすよ

と主張したら、とんでもなくバカにされたことがあります。

おいおい

RFCの最初のページくらい読んでねぇのかよ

チェックサムが違うパケットは

途中で破棄/再送されるっちゅうの

なんでトランスポート層から

はるか上空のアプリでそんな

めんどくさいこと

やんなきゃいけねぇんだよ

俺らはUDP使ってるんだっけか?

みたいな公開処刑に遭遇したわけですね。

さて、以下のムックを読んでいたら、識者のコラムスが載っていました。

20160324212054

インターネットはバグだらけ

「TCPで通信しているから内容は保証される」

みなさんはこれを正しいと思いますか?

もちろんTCPの仕様上は、チェックサムや再送の機構などにより、通信データの内容は保証されます。

でも、経験豊かな方でしたら、「なんか壊れている」状態を経験したことがあるのではないでしょうか。

筆者も過去に、インターネット経路上で頻繁に破損するTCP通信を経験しました。

・・・

ごみためまんは幸運にも家庭用ブロードバンドルータの開発現場も経験しましたので、ルータやハブが簡単にバグること、および、バグるとパケットがグチャることは体験済みです。

ネットワーク機器も所詮はソフトウェア駆動なのですから当然ですね。

しかし実際に出荷されるネットワーク機器は、もちろんそんなバグは可能な限り除去されています。「見つかったバグは直されている」ということです。

以下の記事を書いたころは、個人の経験としては

パケット破損の間接証拠はあるけど

直接証拠のパケット取れなかった

という状況でした。なにしろ再現率が低いとどうにもなりませんからね。

ごみため(ー日ー膳!)+- 連続都市伝説シリーズ:TCP-IPのパケット到達保証

ちなみにこのシトはFFXIの立ち上げにも関係している方のようです。

20160324212040

・・・筆者は2002年にサービスを開始したファイナルファンタジーXIでも、立ち上げ当初にスイッチの冗長化で・・・

20160324212109

最近だと、WebSocketワーイワーイな連中が困った実装を書き散らして大変なことになっているんでしょうな、きっと。