Windows端末で名前解決の処理時間を計測してみました。
Windowsではnslookupで時間計測ができません。
debugオプションを利用しても処理時間は出力されません。
Linuxではdigコマンドを利用することで名前解決にかかる時間が分かるのですが、Windowsでは通常はdigコマンドを利用できないので他に方法がないかを模索しました。
Windowsで名前解決の処理時間を計測する
Measure-Commandを利用して時間を計測します。
Measure-Command {nslookup <宛先FQDN>}
これでnslookupにかかった時間を計測し、名前解決にかかる時間を計測します。
計測結果
checkip.amazonaws.comの名前解決結果
自分のグローバルIPを表示するサイト(checkip.amazonaws.com)の名前解決の時間を計測してみます。
PS C:\> Measure-Command {nslookup checkip.amazonaws.com}
権限のない回答:
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 158
Ticks : 1580789
TotalDays : 1.82961689814815E-06
TotalHours : 4.39108055555556E-05
TotalMinutes : 0.00263464833333333
TotalSeconds : 0.1580789
TotalMilliseconds : 158.0789
PS C:\>
TotalSenconds の値を見ると約0.15秒であることが分かります。
yahoo.co.jpの名前解決結果
次にyahooのサイトの名前解決の速度を確認してみます。
PS C:\> Measure-Command {nslookup yahoo.co.jp}
権限のない回答:
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 101
Ticks : 1017960
TotalDays : 1.17819444444444E-06
TotalHours : 2.82766666666667E-05
TotalMinutes : 0.0016966
TotalSeconds : 0.101796
TotalMilliseconds : 101.796
PS C:\>
TotalSenconds の値を見ると約0.1秒であることが分かります。
DNSサーバの構成やNW環境には依存しますが、自宅からインターネット上のサイトを名前解決する際の速度はだいたい0.1秒前後の速度なのかなと思います。
宛先が見つからない場合の実行結果
DNS通信がブロックされた環境で上記と同じコマンドをたたき、どういう結果が返ってくるかを見てみます。
PS C:\> Measure-Command {nslookup checkip.amazonaws.com}
*** UnKnown への要求がタイムアウトしました
Days : 0
Hours : 0
Minutes : 0
Seconds : 10
Milliseconds : 98
Ticks : 100986921
TotalDays : 0.000116883010416667
TotalHours : 0.00280519225
TotalMinutes : 0.168311535
TotalSeconds : 10.0986921
TotalMilliseconds : 10098.6921
PS C:\>
コマンドの直後に [UnKnown への要求がタイムアウトしました] と表示され、
速度も TotalSenconds の値を見ると約10秒かかっていること分かります。
コマンドを2つ組み合わせているので、本当に正確かと言われると微妙な気もしますが、Measure-Commandとnslookupを組み合わせることで、windowsでも疑似的に名前解決の速度の計測ができることが確認できました。