초록(Abstract)
STUN의 확장을 통한 NAT Behavior Discovery를 기술한 규격
완결적인 규격은 아니고 실험적임을 명시함
※ 분석자주) RFC 단계도 Experimental에 머물러 있음
활용성(Applicability)
- NAT Behavior Discovery는 NAT 장비의 일시적인 동작 상태를 감지하고 판별하는 방식임
- 취지는 랑데뷰(중개) 서비스가 불가능할 때를 위한 것이지만, 실사용을 위해 안정적인 fallback(대안, 예:TURN)이 제공되어야 함
- P2P 오버레이에서 peer의 역할을 정하는데 사용할 수도 있음
- 본 기술의 정확도는 75% 정도로 높지 않지만, 상대적으로 저비용의 방식이므로 유용할 것으로 기대
- STUN의 확장 기능이지만, 특성 상 STUN 본래의 100% 정확도는 따를 수 없음을 명시
- fallback을 필요로 하는 점에서는 ICE 규격과 같으나, ICE는 TURN이 필수인 점이 다름
그 외 규격 보완이나 참조 등에 대한 must 문구가 있으나 분석 생략함
서론(Introduction)
- 이 기술이 NAT/FW(firewall)의 현재 동작 방식을 판별하는데 쓰이는 것을 반복 설명
- 이 기술은 STUN의 BINDING명령에 몇가지 속성을 추가하여 만들어짐
- NAT/FW 장비의 동작 방식은 환경에 따라 일관적이지 않기 때문에 이 기술을 통해 주기적으로 파악하는 것을 권함
- NAT/FW 장비의 비일관성에 의한 제약이 있지만, 유용한 기술일 것이라고 반복하여 강조
진단에 이용 예 (Example Diagnostic Use)
- 실험 조건과 실제 조건 간의 NAT/FW 차이점을 진단
- 사용자는 아래의 사항들을 aware 해야
- 새로운 트래픽을 추가하는 것은 그 자체로 NAT behavior가 변경될 가능성이 있음
- 사용자는 STUN 서버 선정에 주의를 기울여야 함. STUN 서버는 적절히 배치되어 있으며, 이상적으로는 진단 중인 application의 통신 상대와 병존해야 함. 이는 진단 결과가 application이 겪고 있는 네트워크 상황에 활용되기 위해서임
P2P 오버레이에 이용 예 (Example Use with P2P Overlays)
- P2P endpoint들이 NAT/FW 특성에 의해 단순 peer가 될지 *supernode가 될 수 있을지를 판별하는데 이용
- NAT/FW의 특성이 동적으로 변경되는 것을 감시하여 peer의 역할이 바뀌는 상황에 대응
- 본 기술을 이용한 application(P2P 오버레이 관리자)은 아래 조건을 갖춰야 함
- 신뢰도가 낮은 연결을 이용하는 노드들 간에도 안정적인 최종 성능을 보장할 수 있는 프로토콜 이용
- 본 기술을 통한 탐지 결과가 바탕이 된 연결의 대비책(신뢰성 있는)을 제공하는 프로토콜
- Endpoint-Independent Filtering 특성을 가진 NAT 장비 하에 존재해야 함. NAT의 특성을 파악하고, 그 정보를 P2P오버레이에 전파하며, application에 유용한 작업을 진행하기 위함
- 위 세개의 요구사항들이 충족된 application이 아직 존재하지 않으므로 본 문서는 실험적임. 하지만, 소규모 환경에서는 안정적 동작을 어느정도 입증하였고, 실제로 많은 application이 엄격한 검증을 거치지 않은 프로토콜을 사용중임에도 잘 동작하고 있음
* supernode : public IP를 가지고 있거나 hole punching이 가능한 peer로써 일종의 routing server 역할을 할 수 있는 노드
실험적 목표 (Experimental Goals)
본 기술(NAT Behavior Discovery)을 이용한 application이 잘 동작한다고 믿을만한 조건은 아래와 같을 수 있다.
- application의 초기 옵션(추후 연결에 대한 실제 경험을 토대로 조정될) 결정에 활용할 가능성이 높은 기술(NAT의 수행 동작을 판별)에 대한 구현
- 다중 IP주소를 가진 STUN 서버나 두개의 노드를 가진 STUN 서버를 통해 본 기술의 활용성을 입증할 수 있는 구현
- 실사용 조건에서 본 기술의 활용을 통해 application이 개선된 동작을 보이는 실험적 증거
- 예를 들어, 적절한 파라미터들의 더 빠른 도출, 초기 연결의 부담 감소, 운용 중 재설정 상황이 적게 발생 등
- 본 기술을 어떻게 사용할지를 정의한 포로토콜 명세