トレースパス(mtr)が実行時にUDPポートにバインドされるのはなぜですか?

トレースパス(mtr)が実行時にUDPポートにバインドされるのはなぜですか?

攻撃面を完全に理解しているかどうかを確認するために、コンピュータの開いているポートに時折感謝します。今日、これを行ったときにmtrが高いUDPポート(実行するたびに変更されるようです)でリッスンしていることがわかりました。なぜこれが起こるのか知っている人がいますか?マニュアルを簡単に見てGoogle検索もしてみましたが、これについての議論は見つかりません。

再現段階:

mtr 8.8.8.8あるウィンドウで実行し、別のウィンドウで実行sudo lsof -i udp | grep mtr

修正する:

何を意味するかを明確にするために、受信UDPポートからのlsofの出力は次のとおりです。

mtr 31791 user 8u IPv4 221685 0t0 UDP *:39850

答え1

短い答え:これはTracerouteがどのように機能するかです。

長い答え:Tracerouteは初期TTLが1のUDPパケットを送信するように動作します(ほとんどのTracerouteプログラムはデフォルトでこれを行い、通常はTCPまたはICMPを使用するようにコマンドラインで変更できます)、TTL値を単調にします。増やします。これにより、元の送信者は、TTLが期限切れになったときに各後続のルーターから「パケットタイムアウトメッセージ」を取得し、最終的には「パケットを安全かつ健全にします!」を返すことができます。元の送信者(mtrこの場合)は単にこれらのパケット期限切れメッセージを受信し、期限切れのTTLのためにトレースが終了する各ポイントに情報を印刷します。

関連情報