2010. 4. 21. 16:35

UPnP NAT traversal FAQ

출처: http://www.microsoft.com/korea/windowsxp/pro/techinfo/planning/networking/natfaq.mspx

Q.


UPnP란 무엇입니까?

A.

UPnP(Universal Plug and Play)는 특히, 가정 내에서 PC와 지능형 장치 또는 기기를 피어-투-피어 방식의 네트워크로 연결하기 위해 보편적으로 사용될 아키텍처입니다. UPnP는 TCP/IP, HTTP 및 XML과 같은 인터넷 표준과 기술을 기반으로 하기 때문에 이러한 장치들이 서로 자동 연결되고 더욱 많은 사람들은 네트워킹(특히, 홈 네트워킹)을 통해 함께 사용할 수 있습니다.

Q.
일반 사용자는 UPnP를 어떻게 사용할 수 있습니까?
A.

일반 사용자는 간편해지고 더욱 혁신적인 경험을 할 수 있습니다. UPnP 기술을 사용하는 네트워킹 제품은 네트워크에 물리적으로 연결만 하면 "바로 작동"됩니다. UPnP는 유무선에 관계 없이 거의 모든 네트워킹 미디어 기술과 호환됩니다. 여기에는 Category 5 이더넷 케이블, Wi-Fi 또는 802.11B 무선 네트워크, IEEE 1394("Firewire"), 전화선 또는 전력선 네트워킹이 포함되는데, 이러한 장치와 PC가 서로 연결되면 사용자는 혁신적인 새로운 서비스와 응용 프로그램을 더욱 쉽게 활용할 수 있습니다.

Q.
UPnP Forum이란 무엇입니까?
A.

UPnP Forum은 가정과 궁극적으로는 기업 내에서 지능형 장치의 네트워킹을 단순화하는 UPnP 표준을 규정하기 위해 1999년 6월에 출범한 개방된 통신업계 컨소시엄입니다. UPnP Forum은 UPnP 장치 제어 프로토콜 및 서비스 제어 프로토콜을 정의하고 발표함으로써 이러한 목적을 달성하고 있습니다. 2001년 6월 현재 350개 이상의 기업이 UPnP Forum의 회원사로 가입하였으며, 22개 회원사로 이루어진 UPnP Steering Committee가 UPnP Forum를 주도하고 있습니다. 이 컨소시엄의 노력을 구체화하기 위해 특정 장치 분야를 전담하고 있는 Technical Committee, Marketing Committee 및 기타 다양한 위원회가 운영되고 있습니다. UPnP Forum 가입 정보 및 전체 회원사 목록은 UPnP Forum 웹 사이트  에서 볼 수 있습니다.

Q.
UPnP의 기술적 요소는 무엇입니까?
A.

UPnP는 가정 네트워크, 근접 네트워크 및 소규모 기업과 전체 기업의 네트워크를 대상으로 하기 때문에 범위가 넓다고 할 수 있습니다. 네트워크에 있는 어떤 제어 장치의 명령에 의해 두 장치 간의 데이터 통신이 이루어지도록 하는 UPnP는 특정 운영 체제, 프로그래밍 언어 또는 물리적 매개체에 상관 없이 작동합니다.

UPnP는 무인 구성 네트워킹 및 자동 감지 기능을 지원하고, 장치는 네트워크에 동적으로 연결되어 IP 주소를 얻고, 고유한 이름을 알리며, 요청에 따라 기능을 수행하고, 다른 장치의 존재 여부 및 기능을 감지합니다. DHCP 및 DNS 서버는 선택 사항이며 네트워크에서 사용 가능한 경우에 사용됩니다. 더욱이, 장치는 네트워크에 원치 않는 상태를 남기지 않고 자연스럽게 자동으로 네트워크 연결에서 분리될 수 있습니다.

UPnP는 인터넷의 성공 비결을 통해 이루어졌으며 IP, TCP, UDP, HTTP 및 XML을 포함한 인터넷 구성 요소를 많이 활용합니다. 많은 업체들이 UPnP에 사용되는 표준 장치 제어 프로토콜(DCP)을 제정하기 위해 협력하고 있습니다. 인터넷과 마찬가지로, 이러한 프로토콜은 XML로 선언 및 표현되고 HTTP를 통해 통신되는 유선 프로토콜을 기준으로 하는 규약입니다.

Q.
NAT란 무엇이며, 왜 필요합니까?
A.

NAT(Network Address translation)는 개인 네트워크(10.0.x.x, 192.168.x.x, 172.x.x.x 등의 개인 주소 범위 사용)에서 여러 PC 또는 장치가 전역적으로 라우팅 가능한 단일 IPv4 주소를 공유할 수 있도록 하기 위해 사용되는 IETF(Internet Engineering Task Force) 표준입니다. NAT가 많이 사용되고 있는 주된 이유는 현재의 인터넷 주소 방식인 IPv4 주소가 별로 남아 있지 않기 때문입니다.

NAT는 공용 인터넷과 개인 LAN 사이의 경계를 형성하는 게이트웨이 장치에서 사용됩니다. 개인 LAN의 IP 패킷이 게이트웨이를 통과할 때, NAT가 개인 IP 주소와 포트 번호를 공용 IP 주소와 포트 번호로 변환함으로써 개인 세션을 그대로 유지합니다. Microsoft Windows XP 및 Windows Me 운영 체제의 인터넷 연결 공유 및 기타 많은 인터넷 게이트웨이 장치에서 NAT를 사용하고 있으며, 특히 DSL이나 케이블 모뎀을 통한 초고속 네트워크 공유를 위해 사용됩니다. 점점 더 많은 가정과 소규모 기업에서 PC를 네트워크로 연결하고 인터넷을 공유함에 따라 NAT 사용이 크게 증가되고 있습니다.

Q.
NAT를 사용할 경우 어떠한 문제가 발생합니까?
A.

간단히 말하자면, NAT를 사용할 경우, 점점 더 많은 사람들이 가정이나 소규모 기업에서 인터넷을 사용하도록 만드는 멀티 플레이어 게임, 실시간 통신 및 기타 피어-투-피어 서비스와 같은 최신 기술과 혁신적인 PC 및 홈 네트워킹 경험을 체험하지 못할 수 있습니다. 이러한 응용 프로그램은 공용 인터넷의 개인 주소를 사용하거나 동일한 포트 번호를 동시에 사용할 경우 제대로 작동하지 않습니다. 응용 프로그램에서는 공용 주소를 사용해야 하고, 각 세션에 대해 고유한 포트 번호가 있어야 합니다. 대기업과 같은 경우는 IT 전문가를 두어 기업용 응용 프로그램이 NAT를 사용하면서도 잘 작동하도록 조치를 취할 수 있지만, 소규모 기업이나 가정에서는 그럴 만한 여력이 없습니다. UPnP NAT traversal은 NAT 사용해 응용 프로그램에 발생하는 여러 가지 문제를 자동으로 해결함하는 소규모 기업과 가정에서 활용할 수 있는 이상적인 솔루션입니다.

Q.
NAT traversal 솔루션은 어떻게 이루어졌습니까?
Q.

NAT traversal 문제를 해결하는 다른 방법은 없습니까? 방법이 있다면 UPnP를 사용하는 것이 어떠한 이유로 최선의 선택이 될 수 있습니까?

A.

물론, 이러한 문제를 해결할 수 있는 다른 방법이 있습니다. 하지만, 현재 일반 사용자를 위해 이러한 문제를 자동으로 해결하고 개발자가 폭넓게 적용 가능한 업계 표준은 UPnP 이외에는 없습니다. 다른 메커니즘의 경우 특정 응용 프로그램에서 발생하는 NAT 사용 문제를 해결하기 위해서는, 사용자가 직접 개입하거나 인터넷 게이트웨이 장치 개발업체나 소프트웨어 개발자가 특별한 노력을 기울여야 합니다. 결국, UPnP만이 이러한 문제를 일반적인 방법으로 해결할 수 있습니다.

일반 사용자의 작업이 필요합니다. NAT 문제를 직접 해결하기 위해서는 일반 사용자가 브라우저를 통해 그래픽 사용자 인터페이스 기반의 도구나 명령줄 인터페이스 도구를 사용하여 가정에 있는 인터넷 게이트웨이 장치의 일부 설정을 변경해 주어야 합니다. 이러한 작업을 많이 해 본 경험이 있거나 관심 있는 사용자는 별다른 어려움 없이 수행할 수 있겠지만, 대부분의 일반 사용자는 이러한 작업을 꺼려합니다. 더욱이, 많은 일반 사용자들은 NAT를 사용함으로써 인터넷에서 응용 프로그램이나 서비스를 이용할 때 문제가 발생할 수 있다는 사실조차 모르고 있습니다. 사용자는 멀티 플레이어 게임을 하거나 피어-투-피어 서비스를 이용하려고 하지만 어떤 이유로 접속할 수 없다는 사실을 알게 됩니다. 이에 따라, 여러 가지 문제 해결 방법을 시도하고 A/S 센터에 문의도 하지만, 결국 사용자의 불만이 쌓이게 되고 새로운 서비스나 미래의 혁신적인 경험을 시도하지 않게 될 수도 있습니다.

개발자의 작업이 필요합니다. 일반 사용자가 이러한 NAT 사용 문제를 직접 해결하지 않도록 하기 위해, 일부 인터넷 게이트웨이 장치 개발업체의 경우 응용 프로그램 계층 게이트웨이 지원 기능을 만들어 게이트웨이 장치에 포함시키기도 합니다. 이 응용 프로그램 계층 게이트웨이 소프트웨어는 특정 응용 프로그램을 염두에 두고 만들어집니다. 즉, 장치 개발업체에서는 특정 응용 프로그램의 NAT 문제를 자동으로 해결하는 코드를 작성하고 테스트합니다. 하지만, 이러한 응용 프로그램 소프트웨어가 업데이트될 경우, 장치 개발업체에서 작성한 응용 프로그램 계층 코드도 업데이트하거나 다시 테스트해야 합니다. 이와 같이, NAT 사용 문제를 한 번에 하나씩 해결하는 방법은 NAT 문제를 고려해야 할 피어-투-피어 또는 관련 응용 프로그램이 얼마 되지 않을 경우에는 크게 문제가 되지 않지만, 이러한 응용 프로그램의 수가 수백 또는 수천 개에 이를 경우 문제 해결을 위해서는 많은 비용이 들고 이러한 각 응용 프로그램이 어떻게 작동하는지에 대한 폭넓은 지식도 필요합니다. 이러한 문제를 해결하는 더 좋은 방법은 장치 제공업체에서 해당 장치가 UPnP를 이해하도록 소프트웨어나 펌웨어를 한 번만 추가하고, 다른 장치와 소프트웨어에서도 동일한 기술을 사용하여 NAT 장치와 통신할 수 있도록 하는 것입니다. 현재 이러한 역할을 충분히 수행할 수 있는 기술은 UPnP밖에 없습니다.

Q.
UPnP NAT traversal 솔루션은 무슨 역할을 합니까?
A.

UPnP 지원 NAT traversl은 다음과 같은 사용 문제를 해결할 수 있습니다.

  • 멀티 플레이어 게임
  • 피어-투-피어 연결
  • 실시간 통신
  • 원격 지원(Windows XP의 기능)

IHV의 경우, 이 솔루션을 사용함으로써 NAT 문제 해결을 위해 응용 프로그램 계층 게이트웨이(ALG) 데이터베이스를 작성하거나 관리할 필요가 없어집니다. 이 솔루션은 Windows XP 및 Windows 내의 프로그래밍 리소스인 Direct Play에서 모두 지원하므로, DPlay에 대해 작성된 소프트웨어 응용 프로그램은 NAT에서 자동으로 UPnP 솔루션을 사용하게 됩니다.

UPnP Forum의 IGD 사양은 다음과 같은 방식을 통해 자동으로 NAT traversal을 구현합니다.

  • 공용 IP 주소 얻기
  • 기존의 포트 매핑 열거
  • 포트 매핑 추가 및 제거
  • 매핑에 임대(사용) 시간 할당
Q.
어떤 업체들이 UPnP NAT traversal 솔루션을 구현하고 있습니까?
Q.
일반 사용자들이 UPnP 지원이 되는 인터넷 게이트웨이 장치가  무엇인지 어떻게 알 수 있습니까?
A.

사용자들은 해당 인터넷 게이트웨이 장치 업체의 웹 사이트를 방문하거나 제품 상자에 쓰여진 문구를 보고 UPnP 기능이 포함되어 있는지 확인할 수 있습니다. 소매업체에서도 앞으로 몇 개월 이내에 이러한 사실을 알게 될 것입니다. 몇 개월 후에 UPnP Forum에서는 인터넷 게이트웨이 장치가 UPnP Forum의 테스트 요구 사항을 만족하는지 여부를 표시하기 위해 제품 상자, 마케팅 자료 또는 제품 자체에 부착할 수 있는 UPnP 로고를 제공할 예정입니다.

Q.
개발자들이 이 솔루션을 구현하는데 필요한 리소스가 있습니까?
A.

일반 문서에서 호환성 테스트 자료(PlugFests)에 이르기까지 많은 리소스가 있습니다. 기술 문서를 보려면 http://www.upnp.org/resources/  을 방문하고, 앞으로 개최될 이벤트 정보는http://www.upnp.org/events/  을 참조하십시오. Microsoft는 MSDN Online에서 Windows XP에 대한 개발자 정보를 제공하고 있습니다.

Q.
그 밖의 정보는 무엇입니까?
A.