Windows XPからWebDAVサーバへのアクセスが遅い原因と対策

2008/09/17

Windows XP Professional SP3からWebDAVサーバにアクセスする必要があって、ネットワークプレースでWebDAVサーバを追加しました。

すると初回接続時に異様に時間がかかり(約20秒)、これでは実用に耐えないと思って原因を調べてみました。

クライアント - サーバ間のパケットをキャプチャしてみると、本来不要であるnetbios-ssn(139/tcp)、いわゆるファイル共有のリクエストがサーバに発行されていました。

サーバ側ではそのサービスを提供していないので同リクエストが失敗して3秒後にリトライ、再び失敗して6秒後にリトライ、三たび失敗して12秒後にようやくHTTPアクセスを行っていました(ここまで合計21秒)。

この場合のネットワークプレースのアイコンはファイル共有と同じものになっており、リンク先はUNC(Universal Naming Convention)パスになっていました。

ShareFolder
\\XXX.XXX.XXX.XXX\public

クライアントのUser-Agentは以下のようになっていました。

Microsoft-WebDAV-MiniRedir/5.1.2600

そこで試しにポート番号まで指定してWebDAVサーバを追加してみると今度はすぐにHTTPアクセスが発生してすぐに接続完了、アイコンはWebフォルダ、リンク先はURLになりました。

WebFolder
http://XXX.XXX.XXX.XXX:80/public

クライアントのUser-Agentは以下のようになっていました。

Microsoft Data Access Internet Publishing Provider DAV 1.1

どうやら前者はWindows XPから追加されたWebClientというサービスが動作していると有効になるようで、このサービスを止めればポート番号を指定しなくても後者のWebフォルダとして機能しました。

結論として、以下の2通りのどちらかを実施すれば遅延問題は発生しません。

パスにポート番号まで含める (WebClientサービスを止めない場合)
WebClientサービスを止める