tracerouteとtracertの違い
最近、TCP/IP詳解第1巻を読んでいて、tracerouteコマンドとtracertコマンドには違いがあることが分かりました。
Windows でパケットをキャプチャしましたが、udp パケットをキャプチャできませんでした。 。 。 。
これは、読書するときは頭を使う必要があるということを自分自身に思い出させるものでもあります。 ! !
どちらも、送信元から宛先までデータ パケットによってルーティングされる IP を検出するために使用されますが、検出方法が異なります。
相違点:
1. アプリケーション環境が異なります
tracert は Windows で適用されます。
traceroute は linux/BSD/router/UNIX で適用されます。
tracert は Windows では一般的に使用されるコマンド ライン ツールであり、UNIX ではtraceroute です。これらはすべて UDP プロトコルのルーティング検出に基づいています。
Tracert は、IP データグラムが宛先に到達するためにたどるパスを決定するために使用されるtraceroute ユーティリティです。 Tracert コマンドは、IP 生存時間 (TTL) フィールドと ICMP エラー メッセージを使用して、ネットワーク上の 1 つのホストから他のホストへのルーティングを決定します。
仕組み:
Tracert 診断プログラムは、異なる IP 生存時間 (TTL) 値を持つインターネット コントロール メッセージ プロトコル (ICMP) エコー パケットをターゲットに送信することにより、ターゲットまでのルートを決定します。パス上の各ルーターは、パケットを転送する前に、パケットの TTL を少なくとも 1 つ減らす必要があります。パケットの TTL が 0 に減少すると、ルーターは「ICMP タイムアウト」メッセージを送信元システムに送信する必要があります。
Tracert は最初に TTL が 1 の応答パケットを送信し、ターゲットの応答または TTL がルートを決定する最大値に達するまで、後続の送信プロセスごとに TTL を 1 ずつ増分します。ルートは、中間ルーターから返信された「ICMP タイムアウト」メッセージを調べることによって決定されます。一部のルーターは、TTL が期限切れになったパケットを何も尋ねずにドロップしますが、これは Tracert ユーティリティでは表示されません。
Tracert コマンドは、「ICMP タイムアウト」メッセージを返すパス内の近接ルータ インターフェイスのリストを順番に出力します。 -d オプションを使用すると、Tracert ユーティリティはすべての IP アドレスに対して DNS を照会しません。
次の例では、パケットはホスト 172.16.0.99 に到達するために 2 つのルーター (10.0.0.1 と 192.168.0.1) を通過する必要があります。ホストのデフォルト ゲートウェイは 10.0.0.1 で、192.168.0.0 ネットワーク上のルーターの IP アドレスは 192.168.0.1 です。
C:>tracert 172.16.0.99 -d
最大30ホップで172.16.0.99へのルートをトレースします
1 2s 3s 2s 10,0.0,1
2 75 ms 83 ms 88 ms 192.168.0.1
3 73ミリ秒 79ミリ秒93 ms 172.16.0.99
Trace complete.
Traceroute プログラムは、ICMP ヘッダーと IP ヘッダーの TTL (Time To Live) フィールドを使用するように設計されています。まず、traceroute は、最初のパケットが最初のパケットに到達したときに、TTL 1 の IP データグラムを宛先に送信します (実際には、送信元アドレス、宛先アドレス、送信パケットのタイムスタンプを含む 40 バイトのパケットを 3 つ送信するたび)。パス ルーターがこのデータグラムを受信すると、TTL が 1 ずつ減ります。このとき、TTL は 0 になるため、ルーターはこのデータグラムを破棄し、「ICMP 時間超過」メッセージ (IP パケットの送信元アドレス、IP パケットのすべての内容、およびルーターの IP アドレスを含む) を送り返します。 、traceroute このメッセージを受信すると、このルーターがこのパス上に存在することがわかり、traceroute は TTL 2 の別のデータグラムを送信し、2 番目のルーターを見つけます...traceroute は送信されるデータグラムの TTL に毎回 1 を加えます。別のルーターを検出し、特定のデータグラムが宛先に到達するまでこの繰り返しのアクションが続きます。データグラムが宛先に到達しても、その宛先がすでに宛先であるため、ホストは ICMP 時間超過メッセージを送り返しません。では、traceroute はどのようにして宛先に到達したことを知るのでしょうか。
Traceroute が UDP データグラムを宛先に送信するとき、配信するために選択するポート番号は、一般的なアプリケーションでは使用されない番号 (30000 以上) であるため、UDP データグラムが宛先に到着すると、ホストは「ICMP ポート」を送り返します。 unreachable」メッセージが表示され、traceroute がこのメッセージを受信すると、宛先に到達したことがわかります。したがって、traceroute にはサーバー側にいわゆるデーモン プログラムがありません。
Traceroute は、ICMP TTL 有効期限メッセージを送信したデバイスの IP アドレスを抽出し、ドメイン名解決を実行します。毎回、Traceroute は、通過するルーティング デバイスのドメイン名と IP アドレス、および 3 つのパケットのそれぞれが往復するのにかかる時間を含む一連のデータを出力します。
Traceroute には、応答 (ICMP TTL 有効期限メッセージ) を待機する時間が固定されています。この時間が経過すると、このパス上のデバイスが指定された時間内に ICMP TTL Expired メッセージで応答できないことを示す一連の * 記号が出力されます。その後、Traceroute は TTL カウンタに 1 を加えて続行します。
2. 検出方法と検出データの種類が異なります
デフォルトでは、tracert は宛先アドレスに ICMP 要求エコー パケットを送信しますが、traceroute は宛先アドレスの特定のポート (30000 より大きい) に UDP データグラムを送信します。
同じ点:
1. どちらも、送信元から宛先までデータ パケットによってルーティングされる IP を検出するために使用されます。
2. どちらも、送信パケットの TTL 値を 1 から順に 1 ずつ増加させることで検出されます。
最後に、tcptracetroute は、より強い侵入力で TCP SYN パケットをポート 80 にターゲットに送信します。
http://www.bkjia.com/PHPjc/1117251.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1117251.html技術記事トレースルートとトレースルートの違い 最近、『TCP/IP 詳細第 1 巻』を読んでいたときに、トレースルート コマンドとトレースルート コマンドに混乱しました。この 2 つには違いがあることがわかりました。 窓の下でパケットをキャプチャしました...