マルチキャスト データをリッスンする Java プログラムを使用している場合、着信データグラムの残りの TTL を確認するにはどうすればよいですか?
送信側のマルチキャスト ソケットに TTL を設定する方法は知っていますが、到着するパケットの残りの TTL を知りたいです。
raw ソケットで UDP データグラムを受信した場合は、TTL (または IP または UDP ヘッダーのその他のもの) を調べることができます。ただし、多くの落とし穴があります。
到着したパケットは何ですか?データグラムまたは UDP パケットは、実際には複数の IP パケットに分割されている可能性があり、それらが異なる方法でルーティングされると、異なる TTL で到着します。どちらの場合でも (分割されているかどうかに関係なく)、Java は IP ヘッダーへのアクセスを提供しません。
私は調べましたが (あなたもそうだったと思います)、これを行うための優れた Java API を見つけることができませんでした。
TTL は、IPv4 データグラムの 9 番目のバイトです。受信データグラムから DatagramPacket の 9 番目のバイトを出力するとどうなりますか? それはTTL値のように見えますか?または、IP データグラムのヘッダーは DatagramPacket では使用できず、IPv4 データグラムのデータ部分のみを使用できますか?