두 개의 다른 NAT 뒤에있는 두 호스트가 P2P 연결을 설정할 수 있으려면 둘 다 서로의 공용 끝점 (주소/포트)을 가져야합니다. 각 호스트가 자신의 공용 끝점을 인식하게하려면 서버에서 볼 수있는 공용 끝점을 호스트에 반환하는 알려진 공개 서버와 통신 할 수 있습니다. STUN (RFC5389)을 참조하십시오.이것은 NAT 뒤에있는 두 호스트 사이에 P2P 연결을 설정하는 합리적인 기술입니까?
이 메커니즘이 작동하려면 NAT에서 대상 끝점과 상관없이 동일한 개인 끝점을 동일한 공용 끝점으로 일관되게 변환해야합니다.
이 특정 NAT 동작에 따라 P2P 응용 프로그램을 구현하는 것이 좋습니다 (즉, 일반적으로 충분합니까). Skype 및/또는 다른 인기있는 P2P 응용 프로그램에는 다른 대체 메커니즘이 있습니까?
EDIT : 대상마다 다른 포트를 선택하는 NAT를 "대칭 NAT"라고합니다. 또한 일부 대칭 NAT는 포트 번호를 증가시켜 적절한 포트를 추측 할 수 있습니다.
이제는 NAT의 몇 퍼센트가 대칭 NAT입니까? 그리고 임의의 포트 할당을 사용하는 비율이 증가하는 것과 비교하여 어떤 비율입니까?
"nat punchthrough"에 대한 구글, 나는 당신의 골목 바로 위에 있어야한다고 생각하지만 나는 100 % 확실하지 않다. – dutt
@dut 예. 감사합니다. 그것은 다소 개념입니다. 문제가되는 NAT 유형과 비슷합니다. http://www.jenkinssoftware.com/raknet/manual/natpunchthrough.html에 따르면 NAT는 "Symmetric NAT"라고합니다. – bsirang
UPnP를 사용하여 NAT 문제를 추상화하는 방법은 무엇입니까? – Spidey