Re: tracerouteについての質問です。
arashi1977
居住地: 広島
投稿数: 1715
ちょっとニュアンスが…
引用:この問い方だと「利用(することによる結果)」について「作用する側、される側」を混同してしまいそうです。
今回の使い方を当てはめるなら
問題:授業中に私的な用件で前の席の人に連絡したい。気づいてもらうためにどうするか選べ
□うけ狙いでハリセンを利用する
□頭が一番気づきやすいので、投げるために消しゴムを利用する
□背中をつつくためにペンを利用する
□自分の手を利用してやさしくつんつんする
かなーと。
とはいえ、この点を掘り下げるとこの質問の本質である「traceroute」の話から遠ざかってしまうので「【利用】の厳密な意味」はいったん離れましょう。
tracerouteの手法は「送出する探索用パケットのTTLを1から順に増やし、目的の宛先までの機器の応答から情報を得る」です。
※そこから、送出パケットに何を利用するかというのがここでの話題(「利用」の解釈)になっていると思っています。
どういう情報を得るか、については「相手機器が返すICMPメッセージ」なのですが、これはtracerouteがやってるわけではなくて、送出された探索用パケットを受け取りTTLを-1すると、TTL=0になるため次の相手に渡せませんという、受け取った機器からの(おおざっぱにいえば)文句なわけです。
つまり、「あー、文句を言ってきたのはこいつか、てことはこいつまでは届いたのね。じゃあもう一人先までやってみっか」みたいなのを繰り返してるのがtracerouteなのです。
antares01さんもこのように言われてます
引用:探索用パケットのTTLを1ずつ増やしてるだけなので、それが相手に届けば極端な話何でもいいわけです。
そこで何を使うかが、IOSやlinuxの場合はUDP/WindowsだとICMP、って話です。
小学生っぽいたとえになっちゃいますが、
■お友達調査
・「あなたの名前を教えて」と伝えます
※この時に「伝えます」の方法を、紙にするかメールにするか言葉にするかは問いません。
・受け取った人は一緒についてくる数字を1減らして、0になったら自分の名前を戻します
・一緒についてくる数字がを1減らしても0にならなかったら、あなたの一番の友達に渡してください。
・戻すときはどういうルートで戻しても構いませんが、必ず送り主に返してください。
(紙でもらったけどメールで返す、メールでもらったけど送り主のところに「何か?」って行く、とか)
これがtracerouteです。
そして、IPネットワークの世界であれば「送り主に返す=ICMPメッセージ」が標準なのです。
これは解説の
引用:で言及されてるところです。
なお、最初の質問である
引用:については、提示したURLの先にある
引用:の1,2がUDPについてのところです。ICMPの場合は
引用:こういう動きです。ttlを1ずつ増やしたpingを送る、と思ってもらえばいいです。
という話だと、少しは助けになるでしょうか?
引用:
問題:次の選択肢の中から風を利用しているものを全て選べ。
□扇風機 (注:自分が風を起こし、その風を利用するのは他者(たとえば人間))
□風力発電 (注:自分が風を受け取り、その力を利用して発電する)
とあったら正解は扇風機だけという事ですよね。
今回の使い方を当てはめるなら
問題:授業中に私的な用件で前の席の人に連絡したい。気づいてもらうためにどうするか選べ
□うけ狙いでハリセンを利用する
□頭が一番気づきやすいので、投げるために消しゴムを利用する
□背中をつつくためにペンを利用する
□自分の手を利用してやさしくつんつんする
かなーと。
とはいえ、この点を掘り下げるとこの質問の本質である「traceroute」の話から遠ざかってしまうので「【利用】の厳密な意味」はいったん離れましょう。
tracerouteの手法は「送出する探索用パケットのTTLを1から順に増やし、目的の宛先までの機器の応答から情報を得る」です。
※そこから、送出パケットに何を利用するかというのがここでの話題(「利用」の解釈)になっていると思っています。
どういう情報を得るか、については「相手機器が返すICMPメッセージ」なのですが、これはtracerouteがやってるわけではなくて、送出された探索用パケットを受け取りTTLを-1すると、TTL=0になるため次の相手に渡せませんという、受け取った機器からの(おおざっぱにいえば)文句なわけです。
つまり、「あー、文句を言ってきたのはこいつか、てことはこいつまでは届いたのね。じゃあもう一人先までやってみっか」みたいなのを繰り返してるのがtracerouteなのです。
antares01さんもこのように言われてます
引用:
tracerouteを実行した端末がIPパケットで
何を運んでいるか(IPヘッダを取り除いたら何がでてくるか)と言うこと意味してます。
そこで何を使うかが、IOSやlinuxの場合はUDP/WindowsだとICMP、って話です。
小学生っぽいたとえになっちゃいますが、
■お友達調査
・「あなたの名前を教えて」と伝えます
※この時に「伝えます」の方法を、紙にするかメールにするか言葉にするかは問いません。
・受け取った人は一緒についてくる数字を1減らして、0になったら自分の名前を戻します
・一緒についてくる数字がを1減らしても0にならなかったら、あなたの一番の友達に渡してください。
・戻すときはどういうルートで戻しても構いませんが、必ず送り主に返してください。
(紙でもらったけどメールで返す、メールでもらったけど送り主のところに「何か?」って行く、とか)
これがtracerouteです。
そして、IPネットワークの世界であれば「送り主に返す=ICMPメッセージ」が標準なのです。
これは解説の
引用:
そのため、ネットワークに障害などが発生した場合、IPの補助的な役割を果たすプロトコルとしてICMP(Internet Control Message Protocol:インターネット制御メッセージプロトコル)があります。
なお、最初の質問である
引用:
ICMPではなくUDPを利用したtracerouteが実際にどのように動いているのか
引用:
1.UDP データグラムは、TTL = 1、宛先 UDP ポート = 33434、および送信元ポート:ランダム値で送信されます。
2.UDP 宛先ポートは増分し、送信元 UDP ポートはランダムに設定され、2 つ目のデータグラムが送信されます。
3.手順 2 が最大 3 プローブ(または拡張 traceroute コマンド出力で要求された回数)まで繰り返されます。送信された各プローブについて、「TTL exceeded」メッセージが返されます。これは、宛先ホストへのパスを構築する際に使用します。
4.ICMP の「time exceeded」メッセージを返された場合、TTL は増分され、このサイクルは増分された宛先ポート数を使用して繰り返されます。また、次のいずれかのメッセージを受け取ることもあります。
ICMP type 3, code 3 ("destination unreachable"、"port unreachable") メッセージ。これは、ホストに到達したことを示しています。
"host unreachable"、"net unreachable"、"maximum TTL exceeded"、または "timeout" タイプのメッセージ。これは、プローブが再送信されたことを示しています。
引用:
MS Windows の tracert コマンドでは、UDP データグラムの代わりに、ICMP エコー要求データグラムがプローブとして使用されます。ICMP エコー要求は、TTL を増分しながら送信されます。また、 「Cisco IOS と Linux」で説明したものと同じ動作が行われます。
という話だと、少しは助けになるでしょうか?
投稿ツリー
-
tracerouteについての質問です。
(prohibited, 2014-8-24 22:58)
- Re: tracerouteについての質問です。 (arashi1977, 2014-8-25 0:30)
-
Re: tracerouteについての質問です。
(prohibited, 2014-8-27 1:32)
- Re: tracerouteについての質問です。 (antares01, 2014-8-27 8:38)
- Re: tracerouteについての質問です。 (arashi1977, 2014-8-27 8:47)
-
Re: tracerouteについての質問です。
(prohibited, 2014-8-28 2:26)
- Re: tracerouteについての質問です。 (arashi1977, 2014-8-28 9:03)