まず、tracertはTTLが1のIPパケットを宛先に送信し、経路上の最初のルーターがこのパケットを受信すると、TTLを1デクリメントする。この時点でTTLは0になるため、そのルーターはこのパケットをドロップし、「ICMP time exceeded」メッセージ(送信IPパケットのソースアドレス、IPパケットの内容すべて、ルーターのIPアドレスが含まれる)を返送する。tracertはこのメッセージを受信すると、このルーターがパス上に存在することを認識し、2番目のルーターを見つけるために、TTLが2の別のパケットを送信する。 tracertは、別のルーターを発見するために送信する各パケットのTTLに1を追加し、パケットが宛先に到着するまでこれを繰り返す。パケットが目的地に到着した時点で、ホストはICMP time exceededメッセージを送り返さないが、tracerouteはUDPパケットで一般的でないポート(30000以上)にパケットを送信するため、目的地に到着すると「ICMP port unreachable」メッセージを受信し、目的地に到着したと判断できる。
トレースルート
tracerouteは、パケットを送信したホストと宛先ホストとの間に通過したゲートウェイの数を検出するために使われるツールである。tracerouteの原理は、パケットが宛先ホストに到達するまでに通過したゲートウェイを追跡するために、最小のTTL(time to live)でプローブパケットを送信し、ゲートウェイからのICMP応答をリッスンしようとするものである。送信されるパケットのデフォルトのサイズは38バイトである。
原理:このプログラムは、TTL(time to live)を増加させることで機能を実現する。パケット(送信元アドレス、宛先アドレス、送信時のタイムスタンプを含む3つのパケット)がルーターを通過するたびに、TTLは1ずつ減っていく。TTLが0になると、ホストはパケットをキャンセルしてICMP(Internet Control Message Protocol。TCP/IPプロトコルファミリーのサブプロトコルで、IPホスト、ルーター間の制御メッセージの受け渡しに使われる。制御メッセージとは、ネットワークが通れるかどうか、ホストに到達できるかどうか、ルートが利用できるかどうかなど、ネットワークそのものに関するメッセージである。これらの制御メッセージはユーザーデータを送信しないが、ユーザーデータの配信において重要な役割を果たす)。 TTLパケットを元のパケットの発信元に送る。