IETF Internet draft
(http://quimby.gnus.org/internet-drafts/draft-cai-ssdp-v1-03.txt)에 기술되었으며 uPnP의 탐색을 구현하기 위한 기반이 됩니다.
RFC2616: Hypertext Transfer Protocol -- HTTP/1.1
(http://www.ietf.org/rfc/rfc2616.txt))을 UDP로 전송하는 형태의 Protocol입니다. 여기서 UDP는 Unicast와 Broadcast 및 Multicast가 사용될 수 있습니다.
RFC2616: Hypertext Transfer Protocol -- HTTP/1.1
(http://www.ietf.org/rfc/rfc2616.txt)) 의 4.1 "generic message"를 준수한 header field format 부분을 이용하여 정의되며 TCP대신에 UDP를 사용합니다. (이 문서에서는 UDP를 사용하는 HTTP Protocol을 HTTPU라고 부르기로합니다. -
Multicast and Unicast UDP HTTP Messages
(https://tools.ietf.org/id/draft-goland-http-udp-00.txt)) 또한 message body는 사용하지 않지만 만약에 message body가 수신된다면 이를 무시할수 있도록 정의합니다.
NOTIFY * HTTP/1.1\r\n M-SEARCH * HTTP/1.1\r\n HTTP/1.1 200 OK\r\n
field-name = token “.” domain-name
Example vendor-defined SSDP header fields:
myheader.philips.com: “some value” myheader.sony.com: “other value”
[local administrative scope])
LG의 UDAP protocol
(http://developer.lgappstv.com/TV_HELP/index.jsp?topic=%2Flge.tvsdk.references.book%2Fhtml%2FUDAP%2FUDAP%2FM+SEARCH+Request.htm)에서
확장
(http://developer.lgappstv.com/TV_HELP/topic/lge.tvsdk.references.book/html/UDAP/UDAP/Extensions%20B%20SEARCH.htm?path=4_0_0_1_2#_Toc353804387)으로써 정의하고 있습니다.)
참고
(http://support.microsoft.com/default.aspx?scid=kb;en-us;832017))
| uPnP (Universal Plug and Play) Vendor |
| uPnP (Universal Plug and Play) Forum |
| uPnP (Universal Plug and Play) Device Architecture |
| SSDP |
| UDP |
| IP |
M-SEARCH * HTTP/1.1\r\n HOST: 239.255.255.250:1900\r\n MAN: "ssdp:discover"\r\n MX: <호스트로부터 응답에 응할수 있는 초단위의 최대 시간을 지정합니다. 일반적으로 3초 이상을 권장합니다.>\r\n ST: <검색에 대응하는 서비스를 URN형식으로 지정합니다.>\r\n USER-AGENT: <OS>/<version> UPnP/1.1 <product>/<version>\r\n \r\n
ssdp:all
Search for all devices and services.
upnp:rootdevice
Search for root devices only.
uuid:device-UUID
Search for a particular device. device-UUID specified by UPnP vendor. See section 1.1.4, “UUID format and
RECOMMENDED generation algorithms” for the MANDATORY UUID format.
urn:schemas-upnp-org:device:deviceType:ver
Search for any device of this type where deviceType and ver are defined by the UPnP Forum working committee.
urn:schemas-upnp-org:service:serviceType:ver
Search for any service of this type where serviceType and ver are defined by the UPnP Forum working committee.
urn:domain-name:device:deviceType:ver
Search for any device of this type where domain-name (a Vendor Domain Name), deviceType and ver are defined
by the UPnP vendor and ver specifies the highest supported version of the device type. Period characters in the
Vendor Domain Name MUST be replaced with hyphens in accordance with RFC 2141.
urn:domain-name:service:serviceType:ver
Search for any service of this type where domain-name (a Vendor Domain Name), serviceType and ver are defined
by the UPnP vendor and ver specifies the highest supported version of the service type. Period characters in the
Vendor Domain Name MUST be replaced with hyphens in accordance with RFC 2141.
NOTIFY * HTTP/1.1\r\n HOST: 239.255.255.250:1900\r\n CACHE-CONTROL: max-age=120\r\n DATE: Wed, 24 Aug 2016 10:58:00 GMT\r\n LOCATION: http://192.168.13.110:8888/descriptor.xml\r\n SERVER: Linux/2.6.29.6 UPnP/1.1 mzloader/5.0.1.3\r\n NT: urn:schemas-upnp-org:device:MediaServer:1\r\n USN: uuid:2cc2176e-699e-11e6-ef59-ec438b0186a6::urn:schemas-upnp-org:device:MediaServer:1\r\n NTS: ssdp:alive\r\n \r\n
M-SEARCH * HTTP/1.1\r\n HOST: 239.255.255.250:1900\r\n MAN: "ssdp:discover"\r\n MX: 3\r\n ST: ssdp:all\r\n USER-AGENT: Linux/3.0.0 UPnP/1.1 HWPORT-CLIENT/1.0.0\r\n \r\n
HTTP/1.1 200 OK\r\n CACHE-CONTROL: max-age = <호스트의 정보가 유효할수 있는 최대 초단위의 시간이며 172800 보다 크게 지정하도록 한다.>\r\n DATE: <호스트가 응답할때 시점의 시간>\r\n EXT: \r\n LOCATION: <자세한 정보를 제공하는 HTTP접속주소>\r\n SERVER: <OS>/<version> UPnP/1.1 <product>/<version>\r\n ST: <요청받았던 ST내용>\r\n USN: <호스트의 서비스에 대응하는 UUID와 ST의 조합>\r\n \r\n
HTTP/1.1 200 OK\r\n CACHE-CONTROL: max-age=172800\r\n DATE: Wed Jul 15 10:10:00 2014 GMT\r\n EXT: \r\n LOCATION: http://192.168.13.110:80/upnp/descriptor?target=this.xml\r\n SERVER: Linux/3.0.0-r1 UPnP/1.1 HWPORT-DEVICE/1.0.0\r\n ST: upnp:rootdevice\r\n USN: uuid:862c2cba-65a7-11e4-ad55-000c293e0367::upnp:rootdevice\r\n \r\n
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<URLBase>http://192.168.13.110:8888/</URLBase>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
<presentationURL>/</presentationURL>
<friendlyName>HWPORT-STB(100006)</friendlyName>
<manufacturer>HWPORT DevGroup</manufacturer>
<manufacturerURL>http://www.hwport.com/</manufacturerURL>
<modelDescription>HWPORT-STB Product</modelDescription>
<modelName>HWPORT-STB MODEL</modelName>
<modelNumber>HWPORT-STB Series</modelNumber>
<modelURL>http://www.hwport.com/</modelURL>
<serialNumber>100006</serialNumber>
<UDN>uuid:502245a8-698f-11e6-f089-ec438b0186a6</UDN>
<serviceList>
<!-- Service description ... -->
</serviceList>
</device>
</root>

IETF draft: Simple Service Discovery Protocol/1.0
(https://tools.ietf.org/html/draft-cai-ssdp-v1-03)
RFC2616: Hypertext Transfer Protocol -- HTTP/1.1
(http://www.ietf.org/rfc/rfc2616.txt)
Multicast and Unicast UDP HTTP Messages
(https://tools.ietf.org/id/draft-goland-http-udp-00.txt)
http://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol
http://support.microsoft.com/default.aspx?scid=kb;en-us;832017
http://quimby.gnus.org/internet-drafts/draft-cai-ssdp-v1-03.txt
http://developer.lgappstv.com/TV_HELP/index.jsp?topic=%2Flge.tvsdk.references.book%2Fhtml%2FUDAP%2FUDAP%2FM+SEARCH+Request.htm