無線 LAN 使用時の TCP データの順番の相違?
有線 LAN ⇔ 無線 LAN で TCP 通信すると、データが送信元と受信先で順番が相違する? 謎な現象が起こっています。
無線 LAN,
親機は BUFFALO WSR-300HP / WHR-G45S どちらでも発生
子機は Archer T2UH
具体的には svn の使用中に気が付きました。数個ファイルを転送すると、つぎの 2 つのエラーが任意に発生します。
svn: E210004: Malformed network data
svn: E140001: zlib (uncompress): corrupt data: Decompression of svndiff data failed
エラーが出るので仕方なく何回も svn cleanup && svn up
をやっています。何回でもエラーが発生します。
svnserve (Windows Server 2012) は有線 LAN で、svn は無線 LAN 側 (Windows Server 2012) です。
そこでテストプログラムを作り、相違が発生するかどうか検証しました。16 バイトの固定長文字列を延々と送信するプログラムです。
time is 0
time is 1
time is 2
time is 3
...
有線 LAN 側ではこのような内容を延々と送信し、無線 LAN 側はそれを受信して内容確認するプログラムです。
結果、何回やっても異なる場所で順番の相違が発生しました。
Diff! [time is 2348 ] should be [time is 589 ]
Diff! [time is 2431 ] should be [time is 469 ]
Diff! [time is 2247 ] should be [time is 600 ]
無線 LAN 側でダイゼクタ… Wireshark を起動し、通信をキャプチャ。TCP Stream を追跡すると順番の相違はなく 0 から順番にキレイに並んでいることを確認しました。
TCP については詳しくないのですが、ウィンドウサイズ・シーケンス番号・ACK 番号とかそういったものの設定が関わってくるのでしょうか。
こういった現象って一般に認知されていたり回避策があったりするのでしょうか…