After starting this project, i realized that the specification of DLNA is not available for the public (It's 500 Dollars). So I started reverse engineering the protocol and I'm going to document my conclusions on this site. This documentation will not be perfect, but it should answer some questions for others, who are trying to develop DLNA applications too.
The following categories are available:
The following charts shows the general architecture of the Simple Service Discovery Protocol (SSDP). It is based on IP Multicast in the Multicastgroup 220.127.116.11 and UDP messages.
So, when a Universal Plug and Play (UPnP) enabled device joins a network, it joins the already mentionded Multicastgroup and sends out alive packets, with the information apparent in the chart below.
When another UPnP enabled device has received this message, it decides based on the information in the alive messages, whether it downloads the ServerDescription XML file from the device.
The second way to detect a UPnP enabled device, which another device is actually looking for, is to send out a M-SEARCH messages to the Multicastgroup 18.104.22.168. Another device, which receives that messages and is such a type of device (based on the information in the message) will send a response to the exact same UDP port the M-SEARCH message was sent. If the client is satisfied, it will download the ServerDescription XML file again.
The interessting fact about these SSDP messages is, that they are HTTP messages by definition. Those Unicast UDP HTTP messages (HTTPU) and Multicast UDP HTTP messages (HTTPMU) are described in .
to be completed ...