UPnP在控制指针和被控制设备之间提供通讯功能。而网络介质、TCP/IP协议、HTTP仅提供基本的连接和IP地址分配。整个工作过程需要处理六个方面的内容,即设备寻址、发现设备、对设备的描述、设备控制、设备事件、设备表达。
UPnP工作过程
原创
©著作权归作者所有:来自51CTO博客作者Daozy极限编程的原创作品,请联系作者获取转载授权,否则将追究法律责任
设备寻址:
地址是整个UPnP系统工作的基础条件,每个设备都应当是DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)的客户。当设备首次与网络建立连接后,利用DHCP服务,使设备得到一个IP地址。这个IP地址可以是DHCP系统指定的,也可以是由设备选择的。当局域网内没有提供DHCP服务时,UPnP设备将按照Auto-IP的协议,从169.254/169.16地址范围获取一个局域网内唯一的IP地址。设备还能使用昵称(friendly name),这就需要域名解析服务(DNS)来解决。
发现设备:
可分成两种情况,一种是在有控制请求之后,在当前的网络中查找有无对应的可用设备;另一种情况是某一设备接入网络、取得IP地址之后,就开始向网络“广播”自己已经进入网络,即寻找控制请求。
设备的描述:
简单说,这是声明“自己”是什么样的设备,例如名称、制造厂商、序列号码等等。刚开始“发现”设备后,控制指针对这个设备的“了解”还很少,需要依据URL找到该设备的描述文件,从这些文件中读取更多的描述信息。描述信息的范围很广,一般都是由设备的制造厂商提供的。主要的描述项目有:控制的模式名称和模式号码、设备序列号、制造厂商名称、厂商的WEB的URL……等等。这些一般都存放在特定的XML文件中。
设备控制:
控制指针找到设备描述之后,会从描述中“提炼”出要进行的操作并获悉所有的服务;对每个UPnP设备来说,这些描述必须是很确切、很详细的,描述中可能包含有命令或行为列表、服务响应信息、用到的参数等等。对于服务的每个行为,也伴有描述信息:主要是整个服务进行期间的变量、变量的数据类型、可用的取值范围和事件的特征。
要控制某个设备,控制点必须先发送一个控制行为请求,要求设备开始服务,然后再按设备的URL发送相应的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服务会返回响应信息,指出服务是成功或是失败。
设备事件:
在服务进行的整个时间内,只要变量值发生了变化或者模式的状态发生了改变,就产生了一个事件,系统将修改上述提到的事件列表的内容。随之,事件服务器把事件向整个网络进行广播。另一方面,控制点也可以事先向事件服务器订阅事件信息,保证将该控制点感兴趣的事件及时准确地传送过来。
广播或订阅事件,传送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA。
设备投入工作之前的准备―――初始化过程,也是一个事件,初始化需要的各种信息也是用事件消息传送的。包括的内容主要是:变量初始值,模式的初始状态等等。
设备表达:
只要得到了设备的URL,就可以取得该设备表达的URL,然后可以将此表达纳入用户的本地浏览器上。这部分还包括与用户对话的界面,以及与用户进行会话的处理。
简要介绍下UPnP的工作流程:设备加入网络后通过设备寻址就可自动获得IP地址,通过设备发现,控制点就可知道网络上存在哪些设备,通过设备描述控制点就可知道设备详细信息以及设备提供哪些服务,通过设备控制控制点可以使用设备的服务,通过设备事件设备就可以将其状态变化及时告诉给感兴趣的控制点,通过设备表达控制点可以用浏览器察看设备状态和控制设备。通过上述的六个方面,UPnP设备可以做到在“零配置”的前提下提供了联网设备之间的自动发现、自动声明、“直接”信息交换和互操作等功能,真正实现“设备即插即用”。
UPnP所用到的主要协议还有:SSDP(Simple Service Discovery Protocol 简单服务发现协议)、GENA(Generic Event Notification Architecture 通用事件通知结构)、SOAP(Simple Object Access Protocol 简单对象访问协议)、XML(Extensible Markup Language 可扩张标记语言)。采用IP协议来保证UPnP独立与网络传输的物理介质,SOAP协议来保证UPnP设备具有互操作能力,XML来对设备和服务进行统一的描述,HTTP协议来进行UPnP设备的信息交互。采用这些现存的、广泛应用的协议能减少开发UPnP设备的工作量,使UPnP设备更好地融入现有网络。
上一篇:UPnP之NAT 穿越技术
下一篇:UPnP之NAT 穿越技术

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
UPnP端口映射实现过程(一)
第一步是发现控制点再往上搜索感兴趣的设备,而设备
url 路由器 xml 网络 date -
UPnP端口映射实现过程(二)
#define UPNPPORTMAP0 "WANIPConnection"#define UPNPPORT
tokenize string socket action soap -
DHCP交互过程
DHCP交互过程
DHCP交互 网络