簡體   English   中英

如何在Java中獲取UDP數據包的TTL?

[英]How to get TTL of a UDP packet in Java?

我正在使用Java應用程序將UDP數據包發送到Android設備。 我有另一個Java應用程序接收這些UDP數據包並顯示其數據 - 非常簡單。

現在我正在研究一些路由算法 - 因此,知道UDP數據包自發送以來的跳數有多好。 我的想法是只讀出數據包的TTL(生存時間)值並顯示它。 你知道純Java是否可行嗎? DatagramPacket類根本不提供任何提示。

我想這是不可能的,因為這些信息可能已經在較低層刪除了,但我只想確定。 :-)

如您所知, TTL字段是底層IP協議(使用時)的一個特性,而不是UDP的特性。 因此,它在DatagramPacket API中不可見是有意義的。 但是,我認為你是對的; 通常不可能通過數據報級API訪問IP數據包:s。 您可能需要查看數據包捕獲。

這是IP頭的一部分,是從套接字設置的,顯然只適用於多播套接字。 檢查這個答案:

Java控制IP TTL?

為了您的目的,如果我正確地理解,那么操縱發送者的TTL就足夠了; 例如,將發送套接字的TTL設置為1,2,3,4,5,並為每個發送一條內容為“1”,“2”,“3”,“4”或“5”等的消息。有些可能是丟失在接收器上......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM