質問

QNo.63133 PINGのTTLについて
質問者:gaia5 PINGのTTLについてですが、
-iスイッチを使って指定した数と
帰ってきた数が違うのはどうしてでしょうか?
どなたかわかる方お願いいたします。

例)PING -i 5
Replay...........TTL251
例) PING -i 2
Replay...........TTL expired in transit

共に相手に届いていると言うのはわかりますが、
-iスイッチで指定したTTLの数と
ReplayのTTLは、違うのですか?
よろしくお願いいたします。
困り度:
  • 暇なときにでも
質問投稿日時:
01/04/13 01:51
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.3 お使いの ping は Windows の ping なんですよね。

-i に続ける数値は、通り抜けられるルータの数だと思ってください。

例としてあげてもらった相手は、ルータ3個以上をまたいだ向こうだ
ということです。

なので、

例) PING -i 2
Replay...........TTL expired in transit

は相手に届いていないです。二個目のルータが、もう届けられないよ、
という返事です。


次に、ping が表示する TTL の数値は、相手が返してきた
Time To Live フィールドの数値です。

最初の回答の方が

> TTL 251 と言う事は相手から応答が来るまでに4つの
> ルータを通過していると言う事

というのは BSD系の unix は 255 を TTL フィールドに
入れて返します。ルーターを通る度にひとつずつへって行く
ので、自分(ping を打った側)に返ってきたときには
251 になってる、つまり 255 - 251 で、4つ通ってきた
ということです。

でも、255 を入れて返さなければいけない、ということが
決まっているわけでは無いので、相手次第で、この数字は
変わります。

WindowsNTだと多分128、他にも64で返すunixを知ってます。


ちなみに、いわゆる unix 系に実装されている ping では
-t のオプションが TTL の指定です。

参考URLには linux の man を示します。TTLの詳細という
項が参考になると思います。
回答者:a-kuma
種類:回答
どんな人:専門家
自信:自信あり
回答日時:
01/04/13 11:31
参考URL: http://www.linux.or.jp/JM/html/netkit/man8/ping.8.html
この回答へのお礼いつもありがとうございます。
OSは、Win98です。
ちょうど、PINGのスイッチについて
練習していたのですが、
テキストの表現だと、実装と経由しだいと
載っていたのですが、よく意味がわかりませんでしたので
質問させていただきました。
なるほど引き算すれば良いんですね。

回答

ANo.2 使っているOSは何ですか?

ちょっとうろ覚えなので自信がありませんが、
Solarisとか一部のOSでは「-i」はマルチキャスの為の
インタフェースアドレスを指定するオプションだったような気が...
ちなみにその場合配信間隔は「-I」と大文字になります。

詳しいことがわかったらまた回答します。
...ってその前に他の方が回答するかな? ^ ^;)
回答者:noname#41381
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
01/04/13 10:38
この回答へのお礼回答ありがとうございます。
実は、OSはWin98です。
明記しなくてすいません。
でも、勉強になりました。

回答

ANo.1 -iはpingでパケットを送る間隔を秒で指定するだけなので
TTLとは関係ないです。TTLの方は相手先から自ホストに
到達するまでの間にルータ等を通過する度に1つ引かれます。

TTL 251 と言う事は相手から応答が来るまでに4つの
ルータを通過していると言う事かと思います。

# -i 2 とした時に expireするのは謎ですが...(?_?;
回答者:h_hikita
種類:回答
どんな人:一般人
自信:自信あり
回答日時:
01/04/13 02:57
この回答へのお礼早速の回答ありがとうございます。
なるほど、255を最大として
そこから引けば良いのですね。