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]XML(Extensible Markup Language). W3C recommendation.[]
  • DNS (Domain Name System)
  • DHCP (Dynamic Host Configuration Protocol)
  • [http]RFC2279: UTF-8, a transformation format of ISO 10646[]
  • UUID (Universally Unique IDentifier)
  • SSDP(Simple Service Discovery Protocol)
  • [http]SOAP (Simple Object Access Protocol)[]
  • 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를 제공합니다.




/*
[ FrontPage | PrintView | RawView | RSS ]

Copyright ⓒ MINZKN.COM
All Rights Reserved.

MINZKN
*/