KR101696795B1 - 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템 - Google Patents

범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101696795B1
KR101696795B1 KR1020100077239A KR20100077239A KR101696795B1 KR 101696795 B1 KR101696795 B1 KR 101696795B1 KR 1020100077239 A KR1020100077239 A KR 1020100077239A KR 20100077239 A KR20100077239 A KR 20100077239A KR 101696795 B1 KR101696795 B1 KR 101696795B1
Authority
KR
South Korea
Prior art keywords
local
response message
port number
band communication
soap
Prior art date
Application number
KR1020100077239A
Other languages
English (en)
Other versions
KR20120015035A (ko
Inventor
김병재
박성수
김근영
안정균
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020100077239A priority Critical patent/KR101696795B1/ko
Publication of KR20120015035A publication Critical patent/KR20120015035A/ko
Application granted granted Critical
Publication of KR101696795B1 publication Critical patent/KR101696795B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2535Multiple local networks, e.g. resolving potential IP address conflicts

Abstract

로컬 네트워크의 홈 게이트웨이(home gateway)가 로컬 네트워크 상의 서비스를 원격 네트워크 상의 원격 단말에게 제공하는 방법이 제공된다. 상기 원격 단말로부터 상기 서비스에 대한 SOAP(Simple Object Access Protocol) 요청 메시지를 수신하고, 상기 수신된 SOAP 요청 메시지를 로컬 UPnP 단말로 전달하는 요청 메시지 전달 단계, 상기 전달된 SOAP 요청 메시지에 대응되는 SOAP 응답 메시지를 상기 로컬 UPnP 단말로부터 수신하는 응답 메시지 수신 단계, 상기 SOAP 응답 메시지 내에 대역 외 통신용 접속 정보가 포함되어 있는지 여부를 판단하는 대역 외 통신 판단 단계, 상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함된 경우, 상기 로컬 UPnP 장치의 대역 외 통신용 포트 번호를 포트 포워딩용 내부 포트 번호로 지정하고, 기 설정된 외부 포트 번호를 포트 포워딩용 외부 포트 번호로 할당하는 포트 포워딩 기능을 상기 홈 게이트웨이에 설정하는 단계, 상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함된 경우, 상기 대역 외 통신용 접속 정보 내의 상기 로컬 UPnP 장치의 IP 주소와 상기 대역 외 통신용 포트 번호를 각각 상기 홈 게이트웨이의 공인 IP 주소와 상기 포트 포워딩용 외부 포트 번호로 변경하여 상기 SOAP 응답 메시지를 수정하는 단계, 및 상기 수정된 SOAP 응답 메시지를 상기 원격 단말로 전송하는 응답 메시지 전송 단계를 포함하며, 상기 원격 단말은 상기 수정된 SOAP 응답 메시지에 기초하여, 상기 로컬 네트워크 상의 서비스를 제공받는다.

Description

범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING REMOTE ACCESS SERVICE TO UPNP DEVICES USING PORT FORWARDING}
본 발명은 범용 플러그 앤 플레이 네트워크 상에서 원격의 장치에게 서비스를 제공하는 방법 및 시스템에 관한 것이다. 특히 본 발명은 사설 네트워크로 이루어진 UPnP 네트워크에서 원격 장치에게 포트 포워딩을 이용하여 서비스를 제공하는 방법 및 시스템에 관한 것이다.
범용 플러그 앤 플레이(Universal Plug and Play, 이하, UPnP)는 정보 가전, 무선 통신 장치, PC 관련 장비 등 여러 장소에 분산되어 있는 장치와 서비스 간의 쉽고 편리한 통신 방법을 제공하기 위한 네트워크 프로토콜의 집합이다. UPnP를 지원하는 단말들은 언제나 쉽게 네트워크에 접속을 하여, UPnP 네트워크 상의 다른 단말들에게 자신을 알리고 통신을 하거나 제어를 할 수 있으며, 장치가 더 이상 사용되지 않을 경우에는 UPnP 네트워크에서 쉽게 제거할 수 있다.
특히 댁내 단말간의 미디어 콘텐츠 공유를 위해 제정된 UPnP A/V(Audio/Video) 아키텍처에 따르면 댁내 단말은 미디어 콘텐츠를 저장하고 공급해주는 소스 역할을 담당하는 미디어 서버(Media Server)와, 미디어 콘텐츠를 재생하는 미디어 렌더러(Media Renderer)와, 미디어 서버와 미디어 렌더러 간의 미디어 스트림을 제어하고 사용자 인터페이스(UI)를 제공하는 콘트롤 포인트(Control Point)로 구분된다. 이를 통해 사용자는 홈 네트워크 상에서 미디어 서버에 저장된 콘텐츠를 콘트롤 포인트의 사용자 인터페이스 조작을 통해 미디어 렌더러로 플레이시킬 수 있게 된다.
예를 들어, Wi-Fi 휴대 단말을 콘트롤 포인트로 활용하여 미디어 서버인 PC에 저장된 동영상을 미디어 렌더러인 셋톱박스로 전송하여 TV를 통해 감상할 수 있다.
UPnP 네트워크는 원격 네트워크 상의 단말에 서비스를 제공하기 위해 UPnP RA(Remote Access) 기술 표준을 따른다. UPnP RA 표준 아키텍처에 따르면, 댁내에는 원격 접속 서버(remote access server, 이하 RAS) 기능이 필요하고, 원격 단말에는 원격 접속 클라이언트(remote access client, 이하 RAC) 기능이 필요하다. 통상적으로 RAS 기능은 댁내 망과 외부 망을 연결시키고 댁내 단말에 대한 사설 IP 주소 할당 기능을 담당하는 통신 장치인 홈 게이트웨이(home gateway)에 구현된다.
UPnP RA 표준은 외부 망에 위치한 원격 통신 단말이 댁내에 위치한 RAS로의 접속을 통해 댁내에 위치한 UPnP 디바이스들의 서비스를 제공받을 수 있도록 하고 있다. 이때 댁내에 위치한 UPnP 디바이스들은 단순 서비스 발견 프로토콜(Simple Service Discovery Protocol, 이하 SSDP)을 이용하여 자신의 존재를 RAS에 알리고, RAS는 이를 AddRemoteDevices()와 같은 RADASync 서비스 액션을 이용해 원격 통신 단말에 전달하게 된다.
원격 네트워크 상의 UPnP 단말에게 댁내 단말과 동일한 서비스를 제공하기 위해서는 UPnP RA 표준 아키텍처를 따라야 한다. 이 경우, 원격 랜 상의 원격 단말들도 RAS가 속한 로컬 랜 상의 UPnP 디바이스들이 제공하는 서비스를 동일하게 제공받을 수 있다.
그러나, 원격 랜과 RAS가 속한 로컬 랜이 사설 IP 대역을 활용하는 사설망 환경인 경우에는 원격 랜의 장치와 RAS가 속한 로컬 랜의 장치가 동일한 IP 주소를 사용하고 있는 경우가 있으며, 이 경우, IP 주소 충돌 문제가 발생할 수 있으므로 정상적인 통신 서비스의 제공이 불가능해지는 문제가 발생한다.
UPnP RA 표준에서는 원격 단말과 RAS가 속한 랜 간의 접속을 VPN(virtual private network)을 통해 구현하는 내용이 명시되어 있으나, VPN을 설정한 경우, 원격 단말이 속한 랜과 RAS가 속한 로컬 랜이 논리적으로 동일한 네트워크로 묶여져서 하나의 랜으로 구성되는 결과를 가져오게 되므로, 상기의 IP 주소 충돌 문제를 해결할 수 없게 된다.
이러한 문제를 해결하기 위해, 응용 계층 게이트웨이(Application Level Gateway, 이하 ALG)방식이 제안되었다. 이하, 도 1을 참고하여 ALG 방식을 설명하면, 일반적으로 ALG 방식은 RAS 기능이 탑재된 홈 게이트웨이 장치에서 구현된다. 먼저 홈 게이트웨이의 RAS가 로컬 랜 상의 로컬 UPnP 장치로부터 SSDP / alive 메시지를 수신한 경우에 해당 SSDP 메시지로부터 UPnP 접속정보를 추출한다(S100).
추출된 접속정보는 통상적으로 예를 들어 “http://192.168.1.1:9000” 와 같이 로컬 UPnP 장치의 사설 IP 주소(192.168.1.1)와 접속 포트번호(9000), 접속시 사용할 프로토콜(http) 정보를 포함하고 있다.
RAS는 로컬 랜 상의 로컬 UPnP 장치가 제공하는 서비스를 원격지에 제공하기 위하여 홈 게이트웨이에 별도의 TCP 소켓을 생성하고, 상기 접속정보를 홈 게이트웨이의 공인 IP 주소와 생성된 TCP 소켓의 포트 번호로 변경하여 원격 단말에 전달하게 된다(S102). 예를 들어, 홈 게이트웨이의 공인 IP 주소가 100.100.100.1이고 생성된 TCP 소켓의 포트 번호가 10000이라면 댁내 UPnP 장치의 접속정보는 “http://100.100.100.1:10000”로 변경되어 원격 단말로 전달된다(S104).
원격 단말은 서비스를 제공하는 로컬 랜 상의 UPnP 장치의 사설 IP 주소와 포트 번호 대신, 홈 게이트웨이에 생성된 TCP 소켓의 포트 번호와 홈 게이트웨이의 공인 IP 주소를 이용하여 통신을 수행하므로 IP 주소 충돌이 일어나지 않게 된다.
하지만, 이러한 경우에 로컬 랜 상의 UPnP 장치가 제공하는 서비스가 별도의 대역 외(out-of-band) 방식으로 제공될 경우에는 대역 외 접속 포트 번호가 상기 로컬 랜 상의 UPnP 장치의 UPnP 접속 포트 번호와 상이한 경우가 발생하며 이 때는 앞서 제안된 ALG 방식이 정상 동작하지 않는 문제점이 있다.
대역 외 방식으로 서비스를 제공하는 경우는 SSDP 메시지에서 추출된 접속 포트번호와는 다른 포트 번호 또는 다른 종류의 프로토콜을 이용하여 서비스가 제공되는 경우를 말한다. 이러한 경우는 UPnP Remote UI(User Interface)와 같이 일반적으로 http가 아닌 별도의 프로토콜을 사용하는 경우에 흔히 볼 수 있다.
대역 외 방식으로 제공되는 서비스의 접속 정보는 예를 들어 "vnc://192.168.1.1:9001"의 형태를 가지며, 이는 192.168.1.1 주소를 가진 로컬 랜 상의 UPnP 장치는 9001번 TCP 포트와 VNC 프로토콜을 이용하여 대역 외 서비스를 제공함을 의미한다.
기존 ALG 방식에서는 홈 게이트웨이에 원격 접속 지원을 위한 TCP 소켓이 생성되는 시점이 댁내 UPnP 장치로부터 SSDP 메시지를 수신하는 시점으로 제한되므로 대역 외 통신을 위한 접속 정보가 확인되는 시점과는 거리가 있다. 대역 외 통신에 대한 접속 정보는 UPnP 접속을 통한 SOAP 요청의 응답 메시지 수신과정에서 확인되므로 이에 대한 포트 포워딩 처리 및 그 결과를 활용한 ALG 처리가 필요하다.
본 발명은 상술한 종래의 문제점을 극복하기 위한 것으로서, 본 발명의 목적은 원격 단말에게 사설 IP 주소를 사용하는 로컬 랜 상의 UPnP 장치가 제공하는 서비스를 공급하기 위한 포트 포워딩 방법 및 시스템을 제공하는 것으로써, 특히 로컬 랜 상의 UPnP 장치가 대역 외 통신 방식의 서비스를 제공하고 ALG 방식을 적용하는 경우를 대상으로 한다.
상기한 본 발명의 목적을 달성하기 위한 본 발명의 제 1 측면에 따른 로컬 네트워크의 홈 게이트웨이(home gateway)가 로컬 네트워크 상의 로컬 UPnP 장치가 제공하는 서비스를 원격 네트워크 상의 원격 단말에게 제공하는 방법은, 상기 원격 단말로부터 상기 서비스에 대한 SOAP(Simple Object Access Protocol) 요청 메시지를 수신하고, 상기 수신된 SOAP 요청 메시지를 로컬 UPnP 단말로 전달하는 요청 메시지 전달 단계, 상기 전달된 SOAP 요청 메시지에 대응되는 SOAP 응답 메시지를 상기 로컬 UPnP 단말로부터 수신하는 응답 메시지 수신 단계, 상기 SOAP 응답 메시지 내에 대역 외 통신용 접속 정보가 포함되어 있는지 여부를 판단하는 대역 외 통신 판단 단계, 상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함된 경우, 상기 로컬 UPnP 장치의 대역 외 통신용 포트 번호를 포트 포워딩용 내부 포트 번호로 지정하고, 기 설정된 외부 포트 번호를 포트 포워딩용 외부 포트 번호로 할당하는 포트 포워딩 기능을 상기 홈 게이트웨이에 설정하는 단계, 상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함된 경우, 상기 대역 외 통신용 접속 정보 내의 상기 로컬 UPnP 장치의 IP 주소와 상기 대역 외 통신용 포트 번호를 각각 상기 홈 게이트웨이의 공인 IP 주소와 상기 포트 포워딩용 외부 포트 번호로 변경하여 상기 SOAP 응답 메시지를 수정하는 단계, 및 상기 수정된 SOAP 응답 메시지를 상기 원격 단말로 전송하는 응답 메시지 전송 단계를 포함하며, 상기 원격 단말은 상기 수정된 SOAP 응답 메시지에 기초하여, 상기 로컬 네트워크 상의 서비스를 제공받는다.
전술한 본 발명의 과제 해결 수단에 의하면, 로컬 랜 상의 UPnP 장치가 제공하는 서비스가 대역 외 통신을 이용하는 경우라도 IP 주소 충돌 문제를 일으키지 않고 원격 단말에게 서비스를 제공할 수 있다.
도 1은 종래 기술인 ALG 방식을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른, 포트 포워딩을 이용한 UPnP 서비스 제공 시스템의 전체 개요도이다.
도 3은 본 발명의 일 실시예에 따른, 포트 포워딩을 이용하여 원격 단말에게 로컬 랜 상의 로컬 UPnP 장치의 서비스를 제공하는 방법을 설명하기 위한 세부 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른, 포트 포워딩을 이용한 UPnP 서비스 제공 시스템의 전체 개요도이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 포트 포워딩을 이용한 범용 플러그 앤 플레이(Universal Plug and Play, 이하 UPnP) 서비스 제공 시스템(10)은 RAS(Remote Access Server)기능을 담당하는 로컬 홈 게이트웨이(110)와 로컬 UPnP 장치(120)를 포함하는 로컬 네트워크(100), RAC(Remote Access Client)기능을 담당하는 원격 홈 게이트웨이(220)와 원격 단말(210)을 포함하는 원격 네트워크(200), 로컬 네트워크(100)와 원격 네트워크(200)을 연결하는 인터넷 망(300)을 포함할 수 있다.
또한, 로컬 네트워크(100) 및 원격 네트워크(200)가 함께 UPnP 네트워크를 구성할 수 있다.
참고로, 본 발명의 일 실시예에서는 로컬 네트워크(100)에 위치한 로컬 UPnP 장치(120)가 제공하는 서비스를 원격 네트워크(200)의 원격 단말(210)이 이용하는 경우를 예로서 설명하고자 한다.
로컬 홈 게이트웨이(110)는 로컬 네트워크(100)와 원격 네트워크(200) 간의 원격 접속을 지원한다. 구체적으로, 로컬 홈 게이트웨이(110)의 RAS 모듈은 원격 접속 서버(remote access server)로서 기능하며, 후술할 원격 홈 게이트웨이(220)의 RAC 모듈과 통신하여, 로컬 네트워크(100) 상의 로컬 UPnP 장치(120)가 제공하는 서비스를 원격 네트워크(200)에서 공유할 수 있다.
또한, 로컬 홈 게이트웨이(110)는 로컬 UPnP 장치(120)가 제공하는 서비스가 대역 외 통신을 이용하는 경우에, 해당 서비스에 대해 포트 포워딩을 설정하고, 원격 단말(210)이 상기 포트 포워딩 설정 정보를 이용하여 해당 서비스를 제공받을 수 있도록 한다. 참고로, 포트 포워딩(port forwarding)이란, 원격 네트워크의 외부로부터 특정 포트 번호로 들어오는 패킷을 특정한 내부 단말 또는 포트 번호로 변경하여 로컬 네트워크 내부로 전달하는 기능이다. 대역 외 통신에 사용된 포트 번호를 내부 포트 번호로 지정하고 로컬 홈 게이트웨이(110) 장치에 내부 포트 번호에 대응하는 임의의 외부 포트를 할당하도록 포트 포워딩을 설정할 수 있다.
로컬 UPnP 장치(120)는 UPnP 네트워크 상에 연결되어 서비스를 제공한다. 구체적으로, 로컬 UPnP 장치(120)는 로컬 네트워크(100)에 연결되어 로컬 네트워크(100)에서 서비스를 공유할 수 있으며, 로컬 홈 게이트웨이(110)를 통하여 원격 네트워크(200)에 서비스를 제공하여 공유할 수 있다.
또한, 로컬 UPnP 장치(120)가 제공하는 서비스는 정보 가전, PC, 스캐너, 프린터, 웹캠, 화상 전화, 저장 장치, 유무선 랜 등의 장치의 공유, 원격 조종(remote control), 또는 동영상, 음악 등의 미디어 콘텐츠 공유 등을 포함할 수 있다.
원격 단말(210)은 원격 네트워크(200) 상에서 로컬 네트워크(100) 상의 서비스를 이용한다. 구체적으로, 원격 단말(210)은 원격 홈 게이트웨이(220)를 통하여 로컬 네트워크(100)에 접속하여 로컬 UPnP 장치(120)가 제공하는 서비스를 제공받아 이용할 수 있다.
원격 홈 게이트웨이(220)는 로컬 홈 게이트웨이(110)와 통신하며 원격 네트워크(200)에서 로컬 네트워크(100)로의 원격 접속을 지원한다. 구체적으로, 원격 홈 게이트웨이(220)의 RAC 모듈은 원격 접속 클라이언트(remote access client)로서 기능하며, 로컬 홈 게이트웨이(110)의 RAS 모듈과 통신하고, RAS 모듈에서 전송하는 서비스 정보를 수신하여 원격 단말(210)에게 제공할 수 있다.
이하에서, 도 3을 이용하여 본 발명의 일 실시예에 따른, 포트 포워딩을 이용하여 원격 네트워크 상의 원격 단말에게 로컬 네트워크에 위치한 로컬 UPnP 장치의 서비스를 제공하는 방법을 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른, 포트 포워딩을 이용하여 원격 단말에게 로컬 랜 상의 로컬 UPnP 장치의 서비스를 제공하는 방법을 설명하기 위한 세부 흐름도이다.
도 3에 도시된 바와 같이, 먼저, 로컬 네트워크(100)에 위치하는 로컬 UPnP 장치(120)는 자신이 제공하는 서비스 및 디바이스 정보를 단순 서비스 발견 프로토콜(Simple Service Discovery Protocol, 이하, SSDP) 메시지를 통해 로컬 네트워크(100) 상에 멀티캐스트 방식으로 송신한다. 참고로, SSDP는 UPnP 네트워크 상의 서비스를 찾기 위한 프로토콜이다.
다음, 로컬 홈 게이트웨이(110)는 로컬 UPnP 장치(120)로부터 송신된 SSDP 메시지를 수신한다(S200). 상기 SSDP 메시지에는 로컬 UPnP 장치(120)가 가용 상태임을 알리는 “SSDP / alive” 값이 포함될 수 있다.
다음, 로컬 홈 게이트웨이(110)는 로컬 UPnP 장치(120)에 대한 원격 접속을 지원하기 위하여 로컬 홈 게이트웨이(100)상에 별도의 TCP 소켓을 생성하고(S202), 로컬 홈 게이트웨이(110)의 IP 주소와 생성된 TCP 소켓의 포트 번호를 디바이스 추가 호출에 기재하여 원격 홈 게이트웨이(220)로 전송한다(S204). 이때, 디바이스 추가 호출은 AddRemoteDevices() 호출 메시지를 통해 이루어진다.
전송된 디바이스 추가 호출 메시지는 원격 홈 게이트웨이(220)에서 수신되고 원격 홈 게이트웨이(220)는 상기 디바이스 추가 호출 메시지로부터 로컬 네트워크(100)에 위치한 로컬 UPnP 장치(120)에 대한 접속 정보를 추출한다. 이 때, 추출된 접속 정보는 로컬 홈 게이트웨이(110)의 IP 주소와 로컬 홈 게이트웨이(110)에 설정된 상기 TCP 소켓의 포트 번호로 구성된다. 추출된 상기 접속 정보는 SSDP 메시지의 형태로 원격 네트워크(200) 상의 원격 단말(210)로 멀티캐스트 송신된다(S206).
이후, 원격 단말(210)은 원격 홈 게이트웨이(220)로부터 수신한 SSDP 메시지를 통해 로컬 UPnP 장치(120)에 대한 접속 정보를 확인하고 해당 접속정보로 기술 정보(description documents) 요청 메시지를 송신한다(S208). 이 때, 기술 정보 요청 메시지는 HTTP GET 명령을 통해서 수행될 수 있다. 예를 들어, 로컬 UPnP 장치(120)의 기술 정보 문서가 “description.xml” 인 경우, 기술 정보 요청 메시지는 “HTTP GET description.xml” 이 될 수 있다.
참고로, UPnP 장치에 대한 기술 정보 문서는 xml로 표현되며, 모델명, 모델 번호, 시리얼 번호, 제조자명, 벤더 종속적인 웹사이트의 URL 등의 정보를 포함할 수 있다. 또한, 기술 정보 문서는 제어, 이벤팅, 프리젠테이션을 위한 URL, 내장된 디바이스 및 서비스의 리스트를 포함할 수 있다. 또한, 각 서비스에 대한 기술 정보 문서는 그 서비스가 응답할 명령 또는 액션, 각 명령에 대한 매개변수 리스트를 포함한다.
다음, 로컬 홈 게이트웨이(110)가 원격 단말(210)로부터 기술 정보 요청 메시지를 받게 되면, 로컬 홈 게이트웨이(110)는 로컬 UPnP 장치(120)에게 TCP 연결을 통하여 상기 기술 정보 요청 메시지를 전송한다(S210).
이후, 로컬 UPnP 장치(120)는 전송 받은 메시지에서 요청한 기술 정보 문서에 대한 응답 메시지를 로컬 홈 게이트웨이(110)에 송신할 수 있다(S212). 이 때, 로컬 UPnP 장치(120)가 송신하는 기술 정보 응답 메시지에는 상기 요청 받은 기술 정보 문서, 예를 들어, “description.xml”이 포함되어 송신될 수 있다.
다음, 로컬 홈 게이트웨이(110)는 해당 기술 정보 응답 메시지에 기재되어 있는 로컬 UPnP 장치(120)의 IP 주소와 포트 번호를 로컬 홈 게이트웨이(110)의 IP주소와 상기 S202 단계에서 생성된 TCP 소켓의 포트 번호로 변경하여(S214), 원격 단말(210)로 전송할 수 있다(S216).
이와 같이, UPnP 장치의 IP 주소와 포트 번호를 홈 게이트웨이(110)의 IP주소와 TCP 소켓의 포트 번호로 변환하여 전송하는 것을 ALG(Application Level Gateway, 이하, ALG) 방식이라고 하며, 이러한 ALG 방식을 이용함으로써, 원격 단말(210)은 로컬 UPnP 장치(120)의 사설 IP 주소를 직접 수신하지 않고 로컬 홈 게이트웨이(110)의 공인 IP 및 포트 번호를 수신하게 되므로 사설망에서의 IP 주소 충돌 문제를 해결할 수 있다.
이후, 원격 단말(210)은 전송 받은 기술 정보 문서를 참조하여 로컬 UPnP 장치(120)의 서비스를 호출할 수 있다. 이러한 서비스 호출 명령은 SOAP(Simple Object Access Protocol) 요청 메시지를 통해 전달된다. 원격 단말(210)로부터 SOAP 요청 메시지가 수신되면(S218), 로컬 홈 게이트웨이(110)는 로컬 UPnP 장치(120)와 연결된 TCP 연결로 해당 메시지를 전송할 수 있다(S220). 이때, SOAP 요청 메시지의 필드값은 “HTTP POST / control” 이 될 수 있다. 참고로, SOAP은 한 디바이스가 다른 디바이스에게 제어 명령을 보내기 위해 사용하는 프로토콜이다.
이후, 로컬 UPnP 장치(120)로부터 해당 요청에 대한 SOAP 응답 메시지를 수신하면(S222), 로컬 홈 게이트웨이(110)는 ALG 방식을 이용하여 해당 SOAP 응답 메시지에 포함된 UPnP 접속 정보를 변경한다(S224). 구체적으로, SOAP 응답 메시지 내에 포함된 로컬 UPnP 장치(120)의 사설 IP 주소 및 UPnP 접속 포트 번호를 로컬 홈 게이트웨이(110)의 공인 IP 주소 및 (S202) 단계에서 할당한 TCP 소켓의 포트 번호로 변환한다.
다음, 로컬 홈 게이트웨이(110)는 상기 SOAP 응답 메시지가 대역 외 통신을 위한 접속 정보를 포함하고 있는지 여부를 판단할 수 있다(S226).
구체적으로, 로컬 홈 게이트웨이(110)는 SOAP 응답 메시지의 내용을 검사하여, 로컬 UPnP 장치(120)가 통상의 로컬 UPnP 장치(120)의 접속 정보 이외에 별도의 프로토콜 또는 포트 번호를 사용하여 서비스를 제공하는지 여부를 검사할 수 있다.
예를 들어, UPnP 접속 정보로는 “http://192.168.1.1:9000/”을 사용하지만 서비스 제공 용도로는 “vnc://192.168.1.1:10000/”와 같이 별도의 접속정보를 사용하는 경우가 대역 외 통신에 해당된다.
참고로, 대역 외 통신이란, 통상의 SSDP 메시지에 명시된 접속 정보 이외의 프로토콜 또는 포트 번호를 이용하여 통신하는 경우를 말하며, UPnP Remote UI(원격 사용자 인터페이스) 서버 등의 UPnP 장치에서 많이 사용된다.
이와 같은 대역 외 통신에 대한 접속 정보는 UPnP 접속을 통한 SOAP 요청의 응답 메시지 수신 과정에서 확인될 수 있다.
대역 외 통신을 위한 접속 정보가 포함된 경우에는, 상기 SOAP 응답 메시지에서 대역 외 통신에 사용되는 IP 주소 및 포트 번호를 추출한 후(S230), 해당 정보를 이용하여 로컬 홈 게이트웨이(110)에서 포트 포워딩을 설정할 수 있다(S232).
참고로, 포트 포워딩이란 로컬 네트워크 외부로부터 특정 포트 번호로 들어오는 패킷을 특정한 내부 단말 또는 포트 번호로 변경하여 로컬 네트워크 내부로 전달하는 기능이다.
로컬 홈 게이트웨이(110)는 대역 외 통신용 로컬 UPnP 장치(120)의 포트 번호를 내부 포트 번호로 적용한 포트 포워딩 기능을 설정할 수 있다. 예를 들어, 로컬 홈 게이트웨이(110)는 대역 외 통신에 사용된 포트 번호를 포트 포워딩용 내부 포트 번호로 지정하고, 임의의 외부 포트 번호를 포트 포워딩용 내부 포트 번호에 대응하는 포트 포워딩용 외부 포트 번호로 할당하여, 로컬 홈 게이트웨이(110) 상에 포트 포워딩 기능을 설정할 수 있다.
또한, 로컬 홈 게이트웨이(110)는 포트 포워딩에 사용된 외부 포트 번호와 로컬 홈 게이트웨이(110)의 공인 IP 주소를 이용하여 해당 SOAP 응답 메시지에 포함된 대역 외 통신을 위한 접속 정보를 변경한다. 예를 들어, 로컬 UPnP 장치의 대역 외 통신용 접속 정보가 “vnc://192.168.1.1:10000”이고 외부에 연결된 공인 IP의 주소가 100.100.100.1인 로컬 홈 게이트웨이(110)에서, 내부 포트 번호 10000에 대해 외부 포트 번호 20000으로 포트 포워딩이 설정된 경우, SOAP 응답 메시지에 포함된 대역 외 통신용 접속 정보는 “vnc://100.100.100.1:20000” 형태로 변경될 수 있다.
따라서, 대역 외 통신을 이용하는 서비스를 포트 포워딩 방식을 이용하여 IP 주소의 충돌없이 원격 단말(210)로 제공하는 것이 가능하다.
로컬 홈 게이트웨이(110)는 상기와 같은 처리 과정을 통해 SOAP 응답 메시지를 수정하고, 수정된 SOAP 응답 메시지는 원격 단말(210)로 전송된다(S234).
이후, 원격 단말(210)이 수신된 대역 외 통신을 위한 접속 정보를 이용하여 서비스를 요청하면(S236), 로컬 홈 게이트웨이(110)에 설정된 포트 포워딩 경로를 통하여 로컬 UPnP 장치(120)의 서비스에 접속할 수 있다(S238).
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비 휘발성 매체, 분리형 및 비 분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비 휘발성, 분리형 및 비 분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (5)

  1. 로컬 네트워크의 홈 게이트웨이(home gateway)가 로컬 네트워크 상의 로컬 UPnP 장치가 제공하는 서비스를 원격 네트워크 상의 원격 단말에게 제공하는 방법에 있어서,
    상기 원격 단말로부터 상기 서비스에 대한 SOAP(Simple Object Access Protocol) 요청 메시지를 수신하고, 상기 수신된 SOAP 요청 메시지를 로컬 UPnP 단말로 전달하는 요청 메시지 전달 단계,
    상기 전달된 SOAP 요청 메시지에 대응되는 SOAP 응답 메시지를 상기 로컬 UPnP 단말로부터 수신하는 응답 메시지 수신 단계,
    상기 SOAP 응답 메시지 내에 대역 외 통신용 접속 정보가 포함되어 있는지 여부를 판단하는 대역 외 통신 판단 단계,
    상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함된 경우, 상기 로컬 UPnP 장치의 대역 외 통신용 포트 번호를 포트 포워딩용 내부 포트 번호로 지정하고, 기 설정된 외부 포트 번호를 포트 포워딩용 외부 포트 번호로 할당하는 포트 포워딩 기능을 상기 홈 게이트웨이에 설정하는 단계,
    상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함된 경우, 상기 대역 외 통신용 접속 정보 내의 상기 로컬 UPnP 장치의 IP 주소와 상기 대역 외 통신용 포트 번호를 각각 상기 홈 게이트웨이의 공인 IP 주소와 상기 포트 포워딩용 외부 포트 번호로 변경하여 상기 SOAP 응답 메시지를 수정하는 단계, 및
    상기 수정된 SOAP 응답 메시지를 상기 원격 단말로 전송하는 응답 메시지 전송 단계를 포함하며,
    상기 원격 단말은 상기 수정된 SOAP 응답 메시지에 기초하여, 상기 로컬 네트워크 상의 서비스를 제공받되,
    상기 수신된 SOAP 요청 메시지를 로컬 UPnP 단말로 전달하는 요청 메시지 전달 단계 전에, 상기 로컬 UPnP 장치로부터 상기 로컬 UPnP 장치가 이용 가능 상태임을 알리는 SSDP(Simple Service Discovery Protocol) 메시지를 수신하는 단계를 더 포함하며,
    상기 대역 외 통신 판단 단계는, 상기 수신된 SOAP 응답 메시지에 기초하여, 상기 로컬 UPnP 장치가 상기 SSDP 메시지에 포함된 UPnP 접속정보와는 다른 별도의 프로토콜 또는 포트 번호를 사용하여 상기 서비스를 제공하는지 여부를 판단하는 것인, 로컬 네트워크 상의 서비스를 원격 단말에게 제공하는 방법.
  2. 제 1 항에 있어서,
    상기 로컬 네트워크 상의 로컬 UPnP 장치와 상기 원격 네트워크 상의 원격 단말과의 접속을 제공하기 위한 TCP 소켓을 생성하는 TCP 소켓 생성 단계, 및
    상기 SOAP 응답 메시지에 포함된 상기 로컬 UPnP 장치의 IP 주소 및 포트 번호를, 상기 홈 게이트웨이의 공인 IP 주소 및 상기 생성된 TCP 소켓의 포트 번호로 변경하는 ALG(Application Level Gateway) 변환 단계를 더 포함하며,
    상기 SOAP 응답 메시지 내에 상기 대역 외 통신용 접속 정보가 포함되지 않은 경우, 상기 원격 단말은 상기 ALG 변환된 SOAP 응답 메시지에 기초하여 상기 로컬 네트워크 상의 서비스를 제공받는 것인, 로컬 네트워크 상의 서비스를 원격 단말에게 제공하는 방법.
  3. 제 1 항에 있어서,
    상기 대역 외 통신용 접속 정보는, 프로토콜 정보, 상기 로컬 UPnP 장치의 IP 주소 및 상기 대역 외 통신용 포트 번호를 포함하는 것인, 로컬 네트워크 상의 서비스를 원격 단말에게 제공하는 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 원격 단말로부터 상기 로컬 UPnP 장치의 기술 정보(description documents) 문서 요청 메시지를 수신하고, 상기 기술 정보 문서 요청 메시지를 상기 로컬 UPnP 장치에게 제공하는 단계, 및
    상기 기술 정보 문서 요청 메시지에 대응되는 기술 정보 문서를 상기 로컬 UPnP 장치로부터 수신하여, 상기 원격 단말에게 제공하는 단계
    를 더 포함하며,
    상기 원격 단말은 상기 수신된 기술 정보 문서에 기초하여, 상기 로컬 UPnP 장치의 서비스를 호출하는 것인, 로컬 네트워크 상의 서비스를 원격 단말에게 제공하는 방법.
KR1020100077239A 2010-08-11 2010-08-11 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템 KR101696795B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100077239A KR101696795B1 (ko) 2010-08-11 2010-08-11 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100077239A KR101696795B1 (ko) 2010-08-11 2010-08-11 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20120015035A KR20120015035A (ko) 2012-02-21
KR101696795B1 true KR101696795B1 (ko) 2017-01-16

Family

ID=45837893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100077239A KR101696795B1 (ko) 2010-08-11 2010-08-11 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101696795B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363083B (zh) * 2022-01-13 2023-10-03 中国联合网络通信集团有限公司 智能网关的安全防范方法、装置、设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940813B1 (ko) * 2003-10-11 2010-02-05 엘지전자 주식회사 유피엔피(UPnP) 기반 네트워크 시스템의 UPnP AV 디바이스 연동 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100040658A (ko) * 2008-10-10 2010-04-20 삼성전자주식회사 UPnP 네트워크의 원격 접속 서비스에서 아이피 주소 충돌 해결 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940813B1 (ko) * 2003-10-11 2010-02-05 엘지전자 주식회사 유피엔피(UPnP) 기반 네트워크 시스템의 UPnP AV 디바이스 연동 방법

Also Published As

Publication number Publication date
KR20120015035A (ko) 2012-02-21

Similar Documents

Publication Publication Date Title
US11115507B2 (en) Service discovery
KR101366807B1 (ko) 네트워크 상에서 원격으로 장치에 엑세싱하는 방법 및시스템
US20080235358A1 (en) Proxy Device, Network System, and Communication Method
JP4041118B2 (ja) ゲートウェイ装置、ネットワークシステム、通信プログラム及び通信方法
KR101410927B1 (ko) 범용 플러그 앤 플레이 디바이스에 원격 액세스하는 방법및 시스템
KR100803610B1 (ko) 인터넷을 통해 UPnP 홈 네트워크에 접속된 디바이스를제어하는 방법 및 이를 위한 시스템 및 장치
KR101271261B1 (ko) 분산된 스테이션의 네트워크에서 디바이스의 활동을 검출하는 방법과, 그러한 방법을 수행하기 위한 네트워크 스테이션
US8526352B2 (en) Method of controlling an entity of a remote network from a local network
CN105409183A (zh) 用于在html5应用中实现任何网络功能客户端或服务器的系统和设备
JP6511624B2 (ja) マルチメディア共有方法、登録方法、サーバー及びプロキシサーバー
CN102763373A (zh) 基于远程访问使用本地网络装置的服务的方法和设备
WO2018113693A1 (zh) 局域网设备通信管理方法、系统及网关设备
US8711869B2 (en) Message transfer apparatus, output method, and computer program product
US9531561B2 (en) Apparatus and method for extending network area
US20050111486A1 (en) Device and method for controlling network devices located within private networks
JP5142216B2 (ja) ホームネットワーク内の端末から広域ネットワークへコンテンツを送信するコンテンツ送信方法及びシステム
US20090254671A1 (en) Remote control of a device by a terminal
US9325518B2 (en) Controlling a device of a remote network from a local network
US9025552B2 (en) Cross-domain multi-media resource identification system and method thereof
KR101696795B1 (ko) 범용 플러그 앤 플레이 네트워크 상의 서비스를 포트 포워딩을 이용하여 원격 디바이스에게 제공하기 위한 방법 및 시스템
CN104168302A (zh) 设备操控实现方法、系统和代理网关
KR100455125B1 (ko) 유피엔피(UPnP) 네트워크 상의 컨트롤 포인트 기능분산 시스템
JP5191878B2 (ja) ホームネットワーク内の端末から広域ネットワークへコンテンツを送信するコンテンツ転送方法及びシステム
US20120059885A1 (en) METHOD AND APPARATUS FOR SHARING A MEMO USING UPnP TELEPHONY
TWI444046B (zh) 多媒體內容播放系統以及介面控制點裝置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 4