멀티 캐스트 데이터를 수신하는 Java 프로그램이있는 경우 수신 데이터 그램의 나머지 TTL을 어떻게 알 수 있습니까?Java에서 멀티 캐스트 패킷의 나머지 TTL을 확인하십시오.
보내는 멀티 캐스트 소켓에서 TTL을 설정하는 방법을 알고 있지만 도착한 패킷의 나머지 TTL을 알고 싶습니다.
멀티 캐스트 데이터를 수신하는 Java 프로그램이있는 경우 수신 데이터 그램의 나머지 TTL을 어떻게 알 수 있습니까?Java에서 멀티 캐스트 패킷의 나머지 TTL을 확인하십시오.
보내는 멀티 캐스트 소켓에서 TTL을 설정하는 방법을 알고 있지만 도착한 패킷의 나머지 TTL을 알고 싶습니다.
원시 소켓으로 UDP 데이터 그램을 수신 한 경우 TTL (또는 IP 또는 UDP 헤더의 다른 것)을 검사 할 수 있습니다. 개는 많이하지만,이 있습니다
나는 (당신도 상상했던 것처럼) 보았지만 이것을 수행하는 데 훌륭한 Java API를 찾을 수 없었다.
TTL은 IPv4 데이터 그램의 9 번째 전체 바이트입니다. 들어오는 데이터 그램에서 DatagramPacket의 9 번째 바이트를 출력하면 어떻게됩니까? TTL 값과 비슷합니까? 또는 IP 데이터 그램의 헤더가 DatagramPacket에서 사용할 수 없으며 IPv4 데이터 그램의 데이터 부분 만 사용할 수 있습니까?
도착 패킷은 무엇입니까? 데이터 그램 또는 UDP 패킷은 실제로 여러 개의 IP 패킷으로 분할 될 수 있습니다. 여러 개의 IP 패킷은 다르게 라우팅되는 경우 다른 TTL과 함께 도착합니다. 두 경우 (분할 여부) Java는 IP 헤더에 대한 액세스를 제공하지 않습니다.
약간의 추가 조사가 끝나면 순수 Java로는 불가능하다고 생각합니다. JNI를 사용하고자한다면 rocksaw 라이브러리를 사용하여 수행 할 수 있다고 생각합니다. http://www.savarese.com/software/rocksaw/ –