第三の容疑者
IRC切断問題の続き。
ネットワーク図を見直して気付いたこと。 不具合の発生したPCは全て、同じスイッチングハブを経由している… LAN内の通信に何ら問題がなかったので、ルータよりも内側のネットワークについては疑っていなかったが、考えてみるとハブの故障あるいは暴走というケースは何度も経験している。 通常、そういう時にはまずLAN内のファイル転送やら何やらにまず不具合が出るが、実際外部との通信でもIRCやMSN以外は何ら問題なかったわけだし。 wiresharkによる解析では、TCP Retransmissionの他にReassembled PDUも多発していたので、もしかするとパケットサイズの小さな通信にのみ問題が発生しているのかも知れない。そう言えばLAN内はGbEの効率を上げるためMTUをでかくしているが、これが原因か? だとすればハブの再起動で解決しそうだが、切り分けのためには別のハブに繋ぎたいところ。幸い、ルータ(WZRなんとか)に4ポートのハブがついているので、こっちに差し替えてみた。 とりあえずIRCサーバにテスト用のチャンネルを作り、一定時間ごとに自動的に発言するマクロを組んで一晩放置してみたが、切断はされなかった。まぁ、今までも丸一日程度切断されないことはあったので、これで解決とは言い切れないが。 なお、wiresharkによるとIRCサーバとの通信で再送は一度も発生していなかった。 残念ながらhttpやhttpsでの再送はまだ発生しているが、このトラブルが発生するまで解析したことはなかったので、これが異常な動作なのかははっきりしない。 この状態で数日間様子を見て、発生しなかったらハブを交換しようと思う。発生したらプロバイダに問い合わせかな。
参考資料:超簡単なネットワーク図
変更前 モデム | ルータ | GbEハブ−PC | 無線AP…Mac
変更後 モデム | 無線AP兼ルータ…Mac | PC
ついでに、テスト用の自動発言マクロ。(Limechat2のスクリプト) 荒らしとかに使っちゃやーよ。
[javascript] var channel=”#loadtest”; //テスト用のチャンネル var inttime=30000; //発言間隔(ms) function testsend(){ send(channel, “ろーどてすとなう”); } function event::onConnect(){ testsend; setInterval(testsend,inttime); } function event::onLoad(){ testsend; setInterval(testsend,inttime); } [/javascript]