UDPネットワークプロトコルを使用して、さまざまなクライアントからルートサーバーにメッセージを送信しています。
クライアントからサーバーへのメッセージは直接送信されない場合があり、他のクライアントを介して送信される場合があります。
ルートサーバーで受信したメッセージを見て、メッセージの送信元のクライアントを知りたい。これを行う方法?
UDPネットワークプロトコルを使用して、さまざまなクライアントからルートサーバーにメッセージを送信しています。
クライアントからサーバーへのメッセージは直接送信されない場合があり、他のクライアントを介して送信される場合があります。
ルートサーバーで受信したメッセージを見て、メッセージの送信元のクライアントを知りたい。これを行う方法?
UDPにはこの情報は含まれていません。メッセージが通過したサーバーを追跡する場合は、プロトコルに何かを含める必要があります。
tracerouteプログラムは、TTLを増加する数に設定することにより、バウンスされたパケットを取得するためのトリックを使用します。最初のバウンスがソースに最も近いサーバーから来るように、TTLは1から始まります。次に、TTL 2を試行して、パス上の2番目のサーバーからバウンスを取得します。
tracerouteはクライアント側でヒューリスティックです。つまり、安定した接続に対してのみ機能します。基本的にオーバーレイネットワークを構築しているため、ルートに関する情報を取得する唯一の方法は、ルーティングアルゴリズムに従ってルーティングを再構築するか(ハードで、分散ネットワークではおそらく実行不可能)、各リレーにメモを追加させることです(通常はリレーの名前、および以前のIPアドレス)をメッセージに送信します。