uPnP (Universal Plug and Play)

대문 / 네트웍, 프로그래밍 / uPnP (Universal Plug and Play)

uPnP (Universal Plug and Play)

2. 개요

uPnP (Universal Plug and Play)는 오늘날 IPv4기반의 Network상황에서 Home networking을 위해서 많이 활용되고 있습니다. 그리고 DLNA의 수단으로써 좀더 강력한 사용자 접근성을 발휘합니다. 이 페이지는 그러한 uPnP (Universal Plug and Play)에 대해서 간략히 정리해보고자 합니다.

이 문서는 표준을 엄격히 서술하는 것이 아니며 통상적인 범용구현을 위하여 나름 재해석한 내용을 담고 있습니다. 표준과 다른 부분도 있을수 있으니 이점 유념하도록 합니다.

3. 이 글을 읽기전에 필요한 선행지식 요소

  • 용어정의
    • Action: Service 에 요청하는 명령. 하나 이상의 입력 또는 출력 인수를 사용할 수 있으며 반환 값도 가질 수 있습니다.
    • Control point: Device 및 Service 의 제공정보를 검색하고 이에 맞는 이벤트를 수집 및 제어를 수행를 담당하는 부분
    • Device: 논리적인 개념의 장치로 정의되며 또 다른 논리적인 개념의 Device 및 Service를 포함할수 있으며 Network 에 자신의 존재를 알리는 일련의 행위를 주도합니다.
    • RootDevice: 어떠한 논리적 Device에 속하지 않은 최상위의 Device를 말합니다.
    • Service: 논리적인 개념의 기능 단위로 정의되며 제어에 있어서 가장 작은 단위를 말합니다. Action과 Model들에게 상태 변수와 물리적 장치의 상태를 제공 할 수 있습니다.
  • IPv4, IPv6
  • UDP, TCP
  • [http]RFC2616: Hypertext Transfer Protocol -- HTTP/1.1[](http://www.ietf.org/rfc/rfc2616.txt)
  • [http]XML(Extensible Markup Language). W3C recommendation.[](http://www.w3.org/XML/)
  • DNS (Domain Name System)
  • DHCP (Dynamic Host Configuration Protocol)
  • [http]RFC2279: UTF-8, a transformation format of ISO 10646[](http://www.ietf.org/rfc/rfc2279.txt)
  • UUID (Universally Unique IDentifier)
  • SSDP(Simple Service Discovery Protocol)
  • [http]SOAP (Simple Object Access Protocol)[](http://www.w3.org/TR/soap/)
  • GENA (General Event Notification Architecture)

4. 개략적인 흐름

  • Protocol stack
    uPnP (Universal Plug and Play) Vendor
    uPnP (Universal Plug and Play) Forum
    uPnP (Universal Plug and Play) Device Architecture
    SSDP Multicast events SOAP GENA
    HTTP
    UDP TCP
    IP

  • 탐색 및 제어의 흐름
    ControlPointandDeviceInteraction.png
    [PNG image (25.2 KB)]


  • UPnP 의 실현단계
    • Step0: Device 와 Control Point 들간에 적절한 Network 주소체계를 부여하여 검색이 가능한 Network주소를 이용할수 있도록 하는 단계.
    • Step1: Control Point가 적절한 Device 를 찾고 이를 정돈하는 단계.
    • Step2: Device 의 자세한 기능을 Control Point가 수집하는 단계.
    • Step3: Control Point 가 Device로 적절한 명령 및 이벤트를 하달하는 단계.
    • Step4: Device가 제공하는 상태변화를 Control Point 가 인지하는 단계.
    • Step5: Device들의 사용자 Interface를 표시하는 단계.

5. 개발요소

  • DHCP Server
    • dhcpd
  • DHCP Client
    • dhclient, dhcpcd
  • HTTP Server (v1.1 support)
    • Apache
  • HTTP Client
    • cURL, wget
  • XML parser
  • UUID Generator
    • util-linux
  • SSDP(Simple Service Discovery Protocol)
  • SOAP
  • GENA (General Event Notification Architecture)

6. 동작요소

6.1. Addressing

6.2. Discovery

UPnP Device Architecture 1.1 문서에서 인용
[PNG image (40.14 KB)]
  • SSDP(Simple Service Discovery Protocol)를 사용하여 장비를 탐색합니다.
  • Control point는 장비를 탐색하는데 적극적이고 장비들은 이러한 탐색에 응답하게 됩니다.

6.3. Description

  • Control point는 장비를 탐색후 장비에 대한 제한적인 정보만을 가지고 있게 되는데 Description을 통해서 장치로부터 좀더 세부적인 정보를 XML형태로 취득합니다.

6.4. Control

  • 장비들에게 XML로 표현되는 형태의 SOAP으로 명령을 내릴 수 있습니다.

6.5. Event

  • 장비의 상태변화를 Control point에게 XML로 표현되는 형태의 GENA로 통지합니다.

6.6. Presentation

  • 장비가 URL을 제공하여 Control point가 이를 이용하여 특정 내용을 가져올 수 있도록 제공합니다. 내용에 따라서 사용자에게 제어할 수 있도록 Interface를 제공합니다.

7. 참고자료

Retrieved from https://www.minzkn.com:443/moniwiki/wiki.php/uPnP
last modified 2021-10-13 12:27:02