>TTLとはルータを通過する数だったんですか??
違います。以下参照。
>pingでいつも出てくるのですがTimeToALiveとあり、
TTLとはTime To Liveです。
>pingの制限時間くらいにしか考えていませんでした。
通過可能ルータ数です。
送信元はTTL値を設定してパケットを送出します。一般的には最大値の255を設定しますが、どうしたことか127とかを設定するOSもあります(余り遠いと使い物にならないと考えているのかも)。TTLはルータを通過する度に1つ引かれます。TTLが0になると到達できないので、送信元にICMP time exceededを返します。ですので、最大通過可能ルータ数は254です。
tracerouteは最初はTTL値を1に設定してパケットを投げます。すると最初のルータがICMP time exceededを返しますので、最初のルータのIPアドレスが分ります。tracerouteは最小値、最大値、平均値を計算するため、同じパケットを3回投げます。
次いでTTL値を+1してパケットを投げます。最初のルータはICMP time exceededを返さずに中継、2個目のルータがICMP time exceededを返します。これで2個目のルータのIPアドレスが分ります。やはりtracerouteは3個同じパケットを投げます。
次いでTTL値を+1してパケットを投げます。以降はこれの繰り返しでICMP time exceededが来なくなるまで繰り返しです。
ちなみにicmpをdeny設定しているルータも多々あります。ping floodというDOS攻撃を避けること、また不用意にIPアドレスを明かすと、それをもとに攻撃対象のIPアドレスを類推されやすいことなどが理由です。
tracertの概要はNo.2の方が書かれている通りです
で、WindowsのtracertはUNIXとは違い、ICMP echo request(=ping)をTTLを増やしながら出します
http://www.wdic.org/w/WDIC/ICMP
途中では、ICMP time exceededが帰ってくるはずですが、おそらくこれが網側でフィルタリングされて返ってこない状況(Request Time Out)になり、最後のyahooに到達した際はICMP echo requestに対するICMP echo replyが返ってきた(11だけ応答があった)、ということで表示されたということでしょう
どこに対してもtracertの途中経路がRequest Time Outで最後だけしか応答がない場合は、プロバイダもしくはルータでICMP time exceededがフィルタリングされている可能性が高いでしょう
お礼
これまた詳細に有り難うございます。 前に学習したところが一本の線に繋がってきた感じです。 tracerコマンドを勉強してTTLまで理解できるようになりました。 TTLを+1していくのは面白い仕組みですね。 裏の動きまで教えて頂き感謝いたします。