DLNA协议分析
DLNA基于UPNP协议,整个通信过程使用了SSDP和HTTP协议。
通信过程:
1. 控制点查找设备,广播ssdp discover请求
2. 设备返回响应,告知控制点设备的URI。以Windows Media Player为例,会返回两个设备,分别是
3. 控制点收到ssdp响应后,立即访问设备URI,设备返回XML格式的描述文件。拉取XML文件的请求都是HTTP GET,建立的HTTP连接都是长连接(Keep-Alive)。描述文件包含设备的信息和提供的服务
从返回的XML可知,设备1是PC,设备类型是MediaServer。设备2是wmp,其类型是MediaRenderer,该设备提供的service有DLNA投射需要的两个服务
其中,serviceList节点描述了设备提供的服务,每个子节点service描述一个服务,service中的controlURL用于发送控制指令,SCPDURL用于拉取服务信息。
4. 控制点按照设备返回的service信息,调用相应URL,实现对设备控制。控制请求都是POST,协议格式是HTTP+SOAP。以DLNA投射为例
返回的响应同样是HTTP+SOAP