java - 확인 - NAT를 통해 공용 IP를 통해 UDP 패킷을 보내는 방법은 무엇입니까?



라우팅 nat (1)

내 개인 네트워크에서 실행되는 UDP 서버가 있습니다. 공용 IP를 통해 서버에 UDP 패킷을 보내는 NAT 이상의 장치가 있습니다. 나는 UDP 패킷을 받아 들일 수 있고 그것들을 파싱하고 유료로드, src와 dest 포트를 볼 수있다. 이제는 해당 장치에 ACK 메시지를 보내야하므로 IP 및 포트 번호를 캡처하고 UDP 패킷을 전송했습니다. 그러나 해당 장치에서 UDP 패킷을 볼 수 없었습니다.

제 질문은 장치가 NAT를 넘어서서 NAT 주소 나 실제 장치의 IP 주소와 포트 번호가 맞습니까?

NAT를 통해 해당 장치에 UDP 패킷을 보내는 방법은 무엇입니까?


제 질문은 장치가 NAT를 넘어서서 NAT 주소 나 실제 장치의 IP 주소와 포트 번호가 맞습니까?

패킷에서 식별 한 IP 및 포트는 NAT가 클라이언트에 대한 매핑을 생성 한 포트입니다. 간단히 말해서 장치가 연결된 NAT의 IP 및 포트입니다.

NAT를 통해 해당 장치에 UDP 패킷을 보내는 방법은 무엇입니까?

클라이언트가 수신 한 패킷에서 서버가 감지 한 IP 및 포트에 대해 응답해야합니다. 더 명확하게 UDP Holepunching 을 구현해야합니다.

NAT를 사용하는 장치에 연결하는 것과 관련된 네트워킹 문제를 먼저 이해해야합니다. NAT TraversalUDP Punching을 위해 다양한 RFC 를 사용할 수 있습니다.

다음은 몇 가지 출처입니다.

http://en.wikipedia.org/wiki/Network_address_translation

http://en.wikipedia.org/wiki/UDP_hole_punching

http://tools.ietf.org/html/rfc4787

https://tools.ietf.org/html/rfc5128





nat