프로그램에서 라우터 NAT 유형을 프로그래밍 방식으로 결정해야합니다. 나는 STUN 관련 답변들과 UPnP 관련 정보를 보았습니다. 그러나 확실한 답을 얻지 못했습니다.프로그래밍 방식으로 라우터 NAT 유형을 결정하십시오.
STUN RFC (rfc 5389)를보고 NAT 유형을 결정하는 방법을 지정하지 않았습니다. 이전 버전 (RFC 3489)이 NAT 유형을 결정하는 메커니즘을 제공했음을 언급합니다. 그러나 또한 언급 :
또한. NAT 유형의 분류를위한 고전 STUN의 알고리즘은 결함이있는 것으로 밝혀졌습니다. 많은 NAT가 거기 정의 된 유형에 완전히 들어 맞지 않기 때문입니다.
위와 같이 주어진 경우, 소프트웨어에서 라우터 NAT 유형을 결정하는 방법에 대한 조언을 구할 수 있습니까? 더구나 RFC 3489가 폐기되었으므로 다른 방법이 있습니까?
미리 감사드립니다. - 기본 STUN 프로토콜
RFC 5389 :
답변 해 주셔서 감사합니다. nat traversal에서 작업 중이므로 nat 유형에 대해 아는 것이 코드 흐름을 변경하지는 않지만 도움이됩니다. 나는 일하는 것이 흥미로운 것이라고 생각합니다. – sthustfo
BTW, RFC 5389에 RFC 3489 메커니즘에 대한 좋은 의견이 없으므로 최신 RFC 5780의 nat 유형 결정이 얼마나 정확합니까? 해봤습니까? 그렇다면 어떤 관측이 있었습니까? – sthustfo
다시 돌아가서 내 노트를 확인해야하지만 가장 잘 작동하는 NAT는 매핑 동작 및 "주소 + 포트 종속"이라는 측면에서 "끝점 독립적"입니다. 이 NAT 중 하나를 사용하면 홀 펀치 (hole punching)를 사용하여 UDP를 통해 안정적으로 P2P를 수행 할 수 있습니다. 해당 NAT가 매핑 ("RFC"에서 "대칭"이라고도 함)에 대해 "종점에 독립적"이 아니라면 트래버스하기가 더 어려워집니다. "항구 예측"이 작동하는 경우도 있습니다. 나는 당신과 당신의 프로젝트에 대해 그리고/또는 우리가 협력 할 수 있다면 당신과 이야기하고 싶습니다. Gmail과 Gmail을 통해 jselbie 님과 오프라인으로 소식을주고받습니다. – selbie