写真 問題を発見し解析した日本工営 技術企画部情報基盤センターの西村 正寛氏
写真 問題を発見し解析した日本工営 技術企画部情報基盤センターの西村 正寛氏
[画像のクリックで拡大表示]
図1 日本工営のWindows Updateアクセス時のHTTP応答時間分布
図1 日本工営のWindows Updateアクセス時のHTTP応答時間分布
[画像のクリックで拡大表示]

 2009年5月から8月にかけて,フレッツ網経由のMicrosoft Update/Windows Updateへのアクセスが極端に遅くなっていた。パケット・キャプチャ・データを見ると,Microsoft Updateサイト,またはサイトのごく近くで,TCPハンドシェークのMSS(最大セグメント長)オプションの処理に誤りがあった可能性が高い。マイクロソフトにもユーザーから数件の問い合わせがあったという。ただし,マイクロソフトは自社サイトの問題とは認識せず,対処はしなかった。

フレッツ網経由のアクセスが極端に遅い

 7月上旬に問題に気付いたのは,自社のWindowsパソコンをBフレッツ網経由でWindows Updateサイトにアクセスさせていた日本工営。技術企画部情報基盤センターの西村 正寛氏(写真)によると,6月下旬には社内の一部から「Windows Updateが遅い」という声が上がり,7月上旬に,はっきりと問題を認識したという。同社のプロキシ・サーバーのログに残る,HTTPリクエストを送信してからコンテンツを受け取るまでの応答時間の記録からその問題が見てとれる。4月までは多くのリクエストの応答時間が1秒以内だったのに対して,7月はほぼ100%のリクエストの応答時間が21秒以上になっている(図1)。実際のWebページの表示には,複数のHTTPリクエストを送信するため,分単位で体感速度が遅くなった。

 同じような事象は,インターネット接続の足回りにフレッツ網を使い,Microsoft Update/Windows Updateに手作業でアクセスするほかのユーザーにも発生した。8月になるとインターネット上の掲示板「2ちゃんねる」で話題になった。日本工営はKDDIのインターネット接続サービスを利用していたが,2ちゃんねるでは,それ以外のサービスを利用するユーザーからも「遅い」という声が寄せられた。

 西村氏が原因にたどりついたのは,2ちゃんねるで話題になったのに先立つ7月30日のことだ。Yahoo! BBのADSL回線経由でWindows Updateにアクセスしたときには問題が発生しないことに気付き,パケット・キャプチャ・データを比較した。その結果,フレッツ網経由でのアクセスの場合,パケットの抜けが発生していたことがわかった。抜けているメッセージの長さは1460バイト。日本工営側から再送要求を送信しても20秒間応答がなく,その後MSSが536バイトのTCPパケットが送られてくる。TCPハンドシェークのオプションでMSSを1414バイトに指定しているのにもかかわらず,「Microsoft UpdateサイトからMSSが1460バイトで網内分割禁止のフラグを立てたTCPパケットが送られてきて,フレッツ網内の手前で廃棄されているように見えた」(西村氏)。

問題はサイトか,サイトの極めて近く

 西村氏が確認した事象は,日本工営と異なるプロバイダを利用するユーザーが2ちゃんねる上で公開したログでも確認できる。つまり,問題はユーザーを収容するプロバイダで起こっているのではない。フレッツ網に問題があることも極めて考えにくい。フレッツ網は,プロバイダがPPPでカプセル化したIPパケットを機械的に転送するだけだからだ。また,Microsoft Updateサイトを収容するプロバイダの問題でもなさそうだ。マイクロソフトは,CDN事業者のサービスを使ってMicrosoft Updateサイトを分散している。プロバイダが異なるはずのMicrosoft Updateサイトの複数のアドレスあてのアクセスで同じ事象が起こっている。

 つまり問題は,Microsoft Updateサイト,またはMicrosoft Updateサイトを収容するCDNにある可能性が高い。TCPハンドシェークで送られてくるMSS指定を正常に受け付けられず,デフォルトのMSS1460バイトでTCPパケットを送信している。サーバーの設定によっては,何回かTCPパケットの再送を試みたあとに応答が得られないときにMSSを536バイトに変更して再度転送を試みる。このメカニズムが働いて,切断が避けられたのだと考えれば説明がつく。

マイクロソフトは「認識せず」

 西村氏は7月31日,調査結果をマイクロソフトの営業担当に連絡した。しかしマイクロソフトからは,「パソコンのMTU(IPレベルの最大転送量)を小さくしてみては,という的外れの回答しかなかった」(西村氏)。対応に業を煮やした日本工営は,8月3日から4日にかけてWindows Updateをフレッツ網経由から別にあるイーサネット専用線経由に切り替えた。問題は解決したが,同社にとってイーサネット専用線は,「重要通信用に用意していたもの。Windows Updateで帯域を消費するのは好ましくない」(西村氏)。

 マイクロソフトの広報によると,Microsoft Update/Windows Updateが遅いというクレームは数件あったという。ただし,「Microsoft Updateサイトに問題があったとは認識しておらず,対処もしていない」(広報)。

 問題が最終的に解決したのは,8月末のこと。Microsoft UpdateサイトへのTCPハンドシェークのMSSネゴシエーションが正常に処理されるようになり,TCPパケットが抜けることがなくなった。あたかもサイトを順次改修していったかのように,Microsoft Updateの複数あるIPアドレスで順次問題が解決されていった。9月2日に状況を確認した西村氏は,「私の知るMicrosoft Updateの10のIPアドレスすべてで問題がなかった」という。

 つまり,フレッツ網経由でアクセスするMicrosoft Update/Windows Updateが遅いという問題は,マイクロソフトが認識しないまま発生し,マイクロソフトが認識しないまま収束した。ユーザーとしては何とも不安が残る結末だ。明確な原因がわからないため,また突然同じような現象が再発する可能性が否定しきれない。日本工営は,問題が解決したからといって,すぐにWindows Updateをフレッツ網経由に戻すつもりはない。「Windows Updateが消費する帯域を注視し,問題があるならフレッツ網経由に戻すことを検討する」(西村氏)という。