2013-04-23 4 views
2

UDP 소켓을 사용하여 패킷을 보내고 수신 된 패킷의 IP 헤더에서 TTL 필드를 확인하고 싶습니다. 가능한가?수신 된 UDP 패킷의 IP 헤더 필드를 읽을 수 있습니까?

IP_HDRINCL 소켓 옵션이 있는데 RAW 소켓에서만 작동하는 것 같습니다.

+0

리눅스에서 나는'IP_RECVTTL' 소켓 옵션을 설정하고'recvmsg()'를 사용하여 얻을 수 있다고 생각합니다. – Barmar

+0

[이 답변] (http://stackoverflow.com/a/6689064/1383051) 도움이 될 것입니다. –

답변

1

UDP 소켓을 사용하는 경우 TTL 필드 값이나 IP 헤더의 다른 필드를 가져올 수 없도록 모든 헤더가 제거 (캡슐 해제되지 않음)되지만 가져 오기에 관심이있는 경우 또는 설정, 원시 소켓 사용 및 헤더 작성, 원시 소켓을 사용하여 헤더는 작성한 헤더 (IP + 전송) 계층 헤더를 포함하여 응용 프로그램으로 전달됩니다.

+0

기술적으로 UDP에는 헤더가 없습니다. OP가 원하는 헤더는 IP (v4?) 프로토콜 용입니다. –

+0

TTL은 IP 헤더에 있지만 일반적으로 이야기하고있었습니다. "UDP에는 헤더가 없습니다"라는 의미를 이해하지 못했습니다. UDP 소켓을 사용할 때 UDP 헤더를 작성하지 않았다는 것을 의미한다면, 그렇습니다.하지만 여전히 남아 있습니다. 원시 소켓을 사용하고 UDP를 전송 계층 프로토콜로 사용한다면 빌드해야합니다. – Alaa

관련 문제