UPnP协议的分析及实现
摘要
随着计算机产业以及计算机网络技术的迅猛发展,使得嵌入式系统和家庭网络通信成为了热门的研究领域。由于越来越多的嵌入式设备的出现和家庭网络的发展,实现家庭网络中的各种嵌入式设备互联互通已经成为人们的迫切需求。
而实现家庭网络的关键是家庭网络中间件技术。现今世界各著名设备厂商纷纷提出了各自的新技术和解决方案,其中,微软提出的UPnP技术最有发展前途,得到了最广泛的支持,是当今各国研究的热点。UPnP是通用即插即用(Universal Plug and Play)的缩写,它主要用于实现设备的智能互联互通。使用UPnP协议不需要设备驱动程序,它可以运行在几乎所有的操作系统平台之上,使得在办公室、家庭和其它公共场所方便地构建设备相互联通的网络环境。
本文介绍了UPnP所使用的基本协议(如SSDP、GENA、SOAP等),重点分析了UPnP实现的基本工作流程。然后,论文在剖析了当前最常用的Intel SDK的结构和功能后,以TV控制点和TV设备的开发为例,给出了如何应用该SDK实现UPnP设备和控制点的设计开发技术。最后,利用WiresharkPortable工具捕获数据包,对各流程传递的消息包进行了详尽分析。
目录
1 引言 1
2 UPNP的结构规范 1
UPnP的基本组件 1
UPnP部分术语 2
UPnP设备协议栈 3
SSDP协议 3
SOAP协议 3
GENA协议 3
基于XML的upnp描述 4
XML简介[2] 4
TV设备的设备描述编写 5
3 UPNP实现的工作流程 7
寻址(Addressing) 8
发现(Discovery) 8
描述(Description) 9
控制(Control) 10
事件(Eventing) 10
展示(Presentation) 11
4 基于LINUX的UPNP协议实现的源代码模块 12
设备/控制点 12
UPnP软件开发包API(upnp SDK API) 12
WEB Server 13
库模块 13
XML解析模块 13
SDK中的线程库 13
HTTP解析器 13
微型服务器(Mini Server) 13
5 TV控制点及设备的代码实现 14
TV控制点的代码实现 14
、描述的代码实现 14
订阅服务的代码实现 17
控制服务的代码实现 18
退出 20
TV设备的代码实现 21
设置和初始化设备 21
处理异步请求 22
发送事件通知 23
关闭设备 24
6 UPNP协议消息分析 24
发现设备的消息分析 24
SSDP发现请求 24
SSDP存在宣告 25
描述数据包分析 25
获取设备描述的请求消息 25
TV设备的设备描述消息 26
事件数据包分析 26
订阅请求的消息分析 26
续订请求的消息分析 27
NOTIFY事件通知消息分析 27
控制数据包分析 28
动作调用的消息分析 28
查询变量的消息分析 29
参考文献 31
致谢 32
声明 33
1 引言
UPnP 全名是Universal Plug and Play,主要是微软在推行的一个标准。简单的来说,UPnP 最大的愿景就是希望任何设备只要一接上网络,所有在网络上的设备马上就能知道有新设备加入,这些设备彼此之间能互相沟通,更能直接使用或控制它,一切都不需要设定,完全的Plug and Play。
举个例子来说:
Mary在她的计算机中存储了大量数码相机拍摄的照片。当朋友Karen 来拜访时, Mary在起居室拿起与等离子电视机配套的红外线(IR)遥控器,从电视所显示的列表中挑选她感兴趣的照片,向Karen在电视屏幕上展示一下这些照片。这过程中就使用了UPnP协议。
2 UPnP的结构规范
UPnP的基本组件
服务、设备和控制点是UPnP网络的基本组件。其组件图如图1所示:
图1 UPnP组件图
●服务(Service)
在UPnP网络中,最小的控制单元就是服务。服务描述的是设备在不同的情况下的活动和设备的状态。例如,时钟服务可以表述为时间变化(状态变化
毕业设计(论文)-基于DLNA的UPNP协议的分析及实现 来自淘豆网www.taodocs.com转载请标明出处.