실시간 뉴스



[이현규의 홈 네트워킹 대해부 - 7] 미들웨어 - UPnP


 

이번 호에서는 홈 게이트웨이용 미들웨어 중에서 UPnP를 다루도록 하겠다. UPnP(Universal Plug and Play)는 정보가전, 무선통신장치, PC 관련 장비 등 여러 장소에 분산돼 있는 장치와 서비스 간의 쉽고 편리한 통신방법을 제공하기 위해 탄생했다. 그 이름에서 느낌이 오듯이 UPnP는 마이크로소프트사에서 MS 윈도의 주변장치 접속을 위해 채택한 PnP (Plug and Plag - 꽂으면 동작한다)를 보다 다양한 장비에 적용할 수 있도록 확장한 기술이다.

UPnP는 가정이나 작은 사무실과 같이 관리자가 없는 네트워크 환경에서 사용자의 작업 없이 표준화된 방법으로 쉽게 장비간의 연결이나 장비와 인터넷의 연결 방안을 제공한다. 즉, 각 장비들은 언제나 쉽게 네트워크에 접속해 다른 장비들에게 자신의 기능을 알리고 통신을 하거나 제어를 할 수 있도록 해주며, 더 이상 사용하지 않을 경우에는 네트워크에서 쉽게 제거시킬 수 있도록 해준다.

UPnP는 장비간의 1대1 통신(Peer-to-Peer)을 기반으로 하고 있으며 현존하는 인터넷 표준 프로토콜(TCP/IP)을 이용해 그 구조를 정의하고 있다. 그러나, 이로 인해 장비마다 IP를 부여하고 동적으로 IP를 할당 받아야 하기 때문에 DHCP(자동으로 IP 주소를 할당하는 기능)와 같이 가정내의 장비의 동적인 IP 할당방안을 제공하거나 IP 주소의 크기를 늘인 IPv6를 필요로 한다 점은 UPnP 확산에 부담으로 작용하고 있다.

UPnP 모임은 MS, Intel을 주축으로 하여 정보, 가전중심의 250개 이상의 회사들이 회원으로 가입이 되어 있으며 현재 활발한 활동을 진행 중이다.

UPnP의 특징으로는 소규모에서 대규모 네트워크로 확장이 용이하고, PnP를 지원해 장비 접속과 분리를 자동 인지하는 것. 개발이 용이하고, 작은 리소스로도 이용이 가능하며, 가전장비와 같이 IP가 없는 장비에 대해서는 단순한 기능을 가진 SCP라는 프로토콜을 브릿지(Bridge; 네트워크 프로토콜 변환기)로 연결할 수 있도록 지원하다.

UPnP는 장비에 관계없이 공통적인 인터페이스를 제공한다[그림 1]. 따라서 홈 서비스용 응용 프로그램 입장에서는 UPnP를 지원하는 장비들의 구체적인 사항에 대한 고려를 하지 않아도 통신이 가능하며, 장비의 입장에서도 UPnP만을 지원하면 이를 지원하는 모든 서비스용 응용 프로그램과 연결이 가능하게 된다.

위의 그림에서 SSDP(Simple Service Discovery Protocol)는 네트워크에 연결돼 있는 장비와 사용 가능한 서비스를 검색하기 위한 프로토콜이고, Mini Web Server는 장비간의 기능 및 상태정보를 주고 받기 위해서 사용된다. GENA는 장비간의 이벤트(상태 변화 등) 교환을 위해서 사용되며, SOAP은 XML 문법을 이용하여 장비에 제어 명령 등을 전달할 때 사용된다.

UPnP를 지원하는 장비는 제어의 주체가 될 수 있느냐에 따라 제어기(Control Point)와 피제어기(Controlled Device)로 구분된다. 제어기는 다른 장비를 검색하거나 제어하며, 피제어기는 제어기에서 전달되는 명령을 수행한다.

[그림 2]는 UPnP 네트워크 상에서 장비들간의 관계와 동작을 보여주고 있다. 제어기는 다른 피제어기들을 찾아주고 이 장비들을 제어한다. 피제어기는 장비 내부에 여러 가지 서비스를 내장하고 있으며, 제어기에서 명령이 오면 이에 대응하는 서비스를 수행한다. 또한, UPnP를 지원하지 않는 장비들에 대해서는 브릿지라는 프로토콜 변환기를 통하여 UPnP 네트워크에 접속할 수 있도록 고려했다.

[그림 3]에서는 UPnP가 실제로 동작하는 과정을 보여주고 있다. 각 단계별로 설명을 하면 다음과 같다.

- 주소지정(Addressing) : UPnP는 IP기반의 네트워크이므로 장비들마다 IP가 필요하며, 이를 위해 IP의 할당이 제일 먼저 수행 된다. 장비가 처음 네트워크에 접속할 때 DHCP서버를 검색하여 IP를 할당 받으며, 이때 각 장비들은 모두 DHCP Client가 된다

- 장비 검색(Discovery) : 주소지정을 통해 각 장비들이 IP를 부여 받게 되면, 그 다음에는 제어하고자 하는 장비들을 검색하는 것이 필요하다. 이를 위해 제어기에서는 SSDP라는 프로토콜을 사용하여 장비를 검색한다. 제어기는 관심 있는 장비들을 검색하고 피제어기는 이에 응답한다. 피제어기에서는 자신이 네트워크에 접속하는 경우, 자동으로 타 장비들에게 접속된 사실을 알려주고 주기적으로 접속의 지속여부를 알려준다.

- 장비 명세(Description) : 장비를 발견하게 되면 각 장비마다 수행할 서비스가 무엇이 있는가를 알아야 한다. 이를 위해 제어기에서 피제어기를 발견하면, 피제어기에서는 장비에 대한 명세가 들어 있는 URL을 보내고, 제어기는 피제어기에서 XML 문서로 된 장비 명세를 가져온다. 이 문서에는 제조사 정보, 제품정보(모델, 시리얼 번호,…), 서비스 목록 등이 담겨있다.

- 제어(Control) : 제어기는 피제어기에서 장비 명세를 가져와 기술되어 있는 장비의 서비스를 분석한 후, 피제어기에게 적절한 명령어(action)를 보내어 제어한다. 이 때 사용되는 프로토콜은 XML/SOAP이다.

- 이벤트 처리(Eventing) : 홈 네트워크에서는 주변 환경에 따라서 장비의 상태가 변하는 경우가 빈번하다. 때로는 이러한 변화가 사용자에게는 중요한 정보가 될 수도 있기 때문에 UPnP에서는 이벤트를 정의하고 있다. 제어기는 피제어기의 상태가 변화하는 것에 주목을 하고 있고, 피제어기는 자신의 상태가 변할 때 제어기에게 이벤트 메시지를 전달한다. 이벤트는 (이름, 값)의 쌍으로 되어 있으며, 이벤트에서 사용되는 프로토콜은 XML형식의 GENA라는 프로토콜이다.

- 장비의 사용자 인터페이스(Presentation) : 제어기에서는 피제어기의 HTML Page를 읽어 들일 수 있다. 이 HTML Page는 장비 사용에 관련된 사용자 인터페이스를 보여주며, 이를 통하여 장비를 제어하거나 상태를 보여주기도 한다.

마지막으로 UPnP의 장단점을 살펴보자. 먼저 장점으로는 범용의 인터넷 기반의 프로토콜이기 때문에 개발자들에게 친숙하며 개발이 쉽고 유지보수가 용이하다. 또한 웹 기반의 프로토콜이기 때문에 운영체제와 무관하게 사용할 수 있다. 단점으로는 TCP/IP기반의 프로토콜을 사용하므로 사용 모듈의 크기와 수행에 따른 CPU의 부담이 크다.

따라서 PC와 같은 고급 장비에 어울리는 미들웨어이다. 현재 마이크로소프트에서는 이러한 단점을 보완하기 위하여 가전장비와 같은 저급의 CPU에서 사용이 가능한 SCP(Simple Control Protocol)라는 가전장비 제어용 프로토콜을 정의하고, SCP와 UPnP의 호환성을 위한 브릿지를 사용하는 방법을 제안하고 있다.

/이현규 아이크로스테크놀러지 대표 hklee@icrosstech.com








alert

댓글 쓰기 제목 [이현규의 홈 네트워킹 대해부 - 7] 미들웨어 - UPnP

댓글-

첫 번째 댓글을 작성해 보세요.

로딩중
포토뉴스