——————————————————————————————————————————-
扩展阅读I: UPnP的工作过程
UPnP的工作过程分为6步:
(1)寻址(Addressing)。
地址是整个UPnP系统工作的基础条件,每个设备都应当是DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)的客户。当设备首次与网络建立连接后,利用DHCP服务,使设备得到一个IP地址。这个IP地址可以是DHCP系统指定的,也可以是由设备选择的。当局域网内没有提供DHCP服务时,UPnP设备将按照Auto-IP的协议,从169.254/169.16地址范围获取一个局域网内唯一的IP地址。设备还可以使用friendly name,这就需要域名解析服务(DNS)来转换name和IP。这个过程用到的东西都是现存的,而且是很普及的,市面上买的路由器都会有。
(2)发现(Discovery)。
发现是 UPnP工作第一步。 当一个设备被添加到网络后,UPnP的发现协议允许该设备向网络上的Control Points(CPs)通知(advise)自己拥有的服务。同样,当一个CP被添加到网络后,UPnP发现协议允许该CP搜索网络上可用的设备。这两种情况下的组播消息一般是设备和服务的基本信息,如它的类型,唯一标识符,当前状态参数等等。要注意设备信息和服务信息都是要组播出去的。发现的过程可以用下面Figure 1-1来描述。

下面详细叙述UPnP发现设备用到的协议:SSDP(Simple Service Discovery Protocol,简单服务发现协议),说明设备是怎样向网络通知或者撤销自己可以提供的服务;CP是如何搜索设备以及设备是如何回应搜索的。
SSDP格式套用HTTP1.1的部分消息头字段,但是和HTTP不同,SSDP是采用UDP传输的,而且SSDP没有Message Body,就是说SSDP只有信头而没有信件内容的。
SSDP第一个要填充的字段是star - line,说明这是个什么类型的消息。
比如填”NOTIFY * HTTP/1.1/r/n”,就说明这个SSDP消息是个通知消息,一般设备加入网络或者离开网络都要NOTIFY,更新自己的服务后也要NOTIFY一下。别的设备看见这个消息的star - line就知道有设备状态变了,自己就打开这个消息看一下有没有需要更新的。如果填”NOTIFY * HTTP/1.1/r/n”,就要填LOCATION字段,填一个description URL,CP可以通过这个地址来取得设备的详细信息。
填”M-SEARCH * HTTP/1.1/r/n”就是要搜索了;respone别人的搜索就填”HTTP/1.1 200 OK/r/n”。
SSDP第二个要填充的字段是目的地址HOST。比如填上”HOST: 239.255.255.250:1900”,就是组播(multicast)搜索,这里239.255.255.250是组播地址,就是说这条消息会给网络里面该组地址的设备发,1900是SSDP协议的端口号。如果HOST地址是特定地址,那这就是单播(unicast)。Respone不填这个字段,他会在ST字段里面填respone address,就是发来搜索信息的设备的地址,Respone消息的话还会发送一个包含自己地址URL的字段,Respone的意思就是跟Searcher说:我好像是你要找的人,我的电话是XXX,详细情况请CALL我。Respone也是UDP单播。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-69463-5.html
有没有人更新了指纹进不去