毕业设计论文UPNP协议的分析及实现.doc
《毕业设计论文UPNP协议的分析及实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文UPNP协议的分析及实现.doc(38页珍藏版)》请在三一办公上搜索。
1、分类号:TN915 U D C:D10621-408-(2010)0951-0密 级:公 开 编 号:2006101138成都信息工程学院学位论文UPnP协议的分析及实现论文作者姓名:申请学位专业:通信工程申请学位类别:工学学士指导教师姓名(职称):论文提交日期:2010年06月4日UPnP协议的分析及实现摘要随着计算机产业以及计算机网络技术的迅猛发展,使得嵌入式系统和家庭网络通信成为了热门的研究领域。由于越来越多的嵌入式设备的出现和家庭网络的发展,实现家庭网络中的各种嵌入式设备互联互通已经成为人们的迫切需求。而实现家庭网络的关键是家庭网络中间件技术。现今世界各著名设备厂商纷纷提出了各自的新技
2、术和解决方案,其中,微软提出的UPnP技术最有发展前途,得到了最广泛的支持,是当今各国研究的热点。UPnP是通用即插即用(Universal Plug and Play)的缩写,它主要用于实现设备的智能互联互通。使用UPnP协议不需要设备驱动程序,它可以运行在几乎所有的操作系统平台之上,使得在办公室、家庭和其它公共场所方便地构建设备相互联通的网络环境。本文介绍了UPnP所使用的基本协议(如SSDP、GENA、SOAP等),重点分析了UPnP实现的基本工作流程。然后,论文在剖析了当前最常用的Intel SDK的结构和功能后,以TV控制点和TV设备的开发为例,给出了如何应用该SDK实现UPnP设备
3、和控制点的设计开发技术。最后,利用WiresharkPortable工具捕获数据包,对各流程传递的消息包进行了详尽分析。关键词:UPnP;家庭网络;XMl;工作流程;Intel SDK;数据包Analysis and realization of UPnP protocolAbstractWith the great development of computer industry and computer network technology,embedded system and the home networking communication is becoming a popular
4、 research field nowAt the same time, due to the development of home networking and the more embedded devices in use,it is urgent to explore a new way to connect all kinds of embedded devices in the home networkingThe key of home network realization is the home network middleware technologyMany famou
5、s information device corporations have provided their own new technology and new means to resolve it, Especially, UPnP provided by Microsoft, the hot spot of research in every country now, gets the most extensive support and posseses the enormous develop prospect. UPnP is the abbreviation of Univers
6、al Plug and PlayIt is mostly used for implementing intellectual interconnecting between devicesUsing UPnP protocol doesnt need the device driving programsIt can run over almost all operating systems UPnP will make it easy to build the network environment for devices interconnecting in the office or
7、homeFirstly, the paper introduces on the protocols UPnP refers to (such as SSDP, GENA, SOAP) and focuses on the analysis of the technological process to implement UPnP. Secondly, based on the analysis of the structure and functionality of the most commonly used Intel SDK,the paper summarizes the des
8、ign and development techniques for UPnP device and control point using this SDK with the example of developing TV control point and TV deviceFinally, utilizing the data packets caught by the WiresharkPortable, the paper analyses exhaustively the message packets of every process . Key words: UPnP; ho
9、me network; XML; work process; Intel SDK; data packets目 录论文总页数:33页1 引言12 UPNP的结构规范12.1 UPnP的基本组件12.2 UPnP部分术语22.3 UPnP设备协议栈32.3.1 SSDP协议32.3.2 SOAP协议32.3.3 GENA协议32.4 基于XML的upnp描述42.4.1 XML简介242.4.2 TV设备的设备描述编写53 UPNP实现的工作流程73.1 寻址(Addressing)83.2 发现(Discovery)83.3 描述(Description)93.4 控制(Control)103
10、.5 事件(Eventing)103.6 展示(Presentation)114 基于LINUX的UPNP协议实现的源代码模块124.1 设备/控制点124.2 UPnP软件开发包API(upnp SDK API)124.3 WEB Server134.4 库模块134.4.1 XML解析模块134.4.2 SDK中的线程库134.4.3 HTTP解析器134.4.4 微型服务器(Mini Server)135 TV控制点及设备的代码实现145.1 TV控制点的代码实现145.1.1发现、描述的代码实现145.1.2 订阅服务的代码实现175.1.3 控制服务的代码实现185.1.4 退出20
11、5.2 TV设备的代码实现215.2.1 设置和初始化设备215.2.2 处理异步请求225.2.3 发送事件通知235.2.4 关闭设备246 UPNP协议消息分析246.1 发现设备的消息分析246.1.1 SSDP发现请求246.1.2 SSDP存在宣告256.2 描述数据包分析256.2.1 获取设备描述的请求消息256.2.2 TV设备的设备描述消息266.3 事件数据包分析266.3.1 订阅请求的消息分析266.3.2 续订请求的消息分析276.3.3 NOTIFY事件通知消息分析276.4 控制数据包分析286.4.1 动作调用的消息分析286.4.2 查询变量的消息分析29参
12、考文献31致 谢32声 明331 引言UPnP 全名是Universal Plug and Play,主要是微软在推行的一个标准。简单的来说,UPnP 最大的愿景就是希望任何设备只要一接上网络,所有在网络上的设备马上就能知道有新设备加入,这些设备彼此之间能互相沟通,更能直接使用或控制它,一切都不需要设定,完全的Plug and Play。举个例子来说:Mary在她的计算机中存储了大量数码相机拍摄的照片。当朋友Karen 来拜访时, Mary在起居室拿起与等离子电视机配套的红外线(IR)遥控器,从电视所显示的列表中挑选她感兴趣的照片,向Karen在电视屏幕上展示一下这些照片。这过程中就使用了UP
13、nP协议。2 UPnP的结构规范2.1 UPnP的基本组件服务、设备和控制点是UPnP网络的基本组件。其组件图如图1所示:图1 UPnP组件图 服务(Service)在UPnP网络中,最小的控制单元就是服务。服务描述的是设备在不同的情况下的活动和设备的状态。例如,时钟服务可以表述为时间变化(状态变化)、当前的时间(时钟的状态)以及设置时间和读取时间两个活动,通过这两个活动你就可以控制服务。 设备(Device)UPnP网络中定义的设备具有很广泛的含义,各种各样的家电、电脑外设、智能设备、无线设备、个人电脑等等都可以成为其中一员。一个UPnP设备可以是多个服务的载体和多个子设备的嵌套集。例如一台
14、印表机有提供列印这样的服务;一台电视有提供收讯的服务,这些都属于设备。 控制点(ControlPoint)在UPnP网络中,控制点指的是可以发现并控制其它设备的控制设备。在UPnP网络中,设备可以和控制点合并。也就是说,同一个设备,可以同时具有设备的功能和控制点的功能,即可以作为设备提供服务,也可以作为控制点发现和控制其它设备。2.2 UPnP部分术语 UUIDUUID含义是通用唯一识别码(Universally Unique Identifier),其目的是让分布式系统中的所有元素,都有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。其格式为xxxxxxxx-xxxx-xxxx-x
15、xxxxxxxxxxxxxxx(8-4-4-16),分别为当前日期和时间,时钟序列,全局唯一的IEEE机器识别号,如果有网卡,从网卡mac地址获得,没有网卡以其他方式获得。 UDN单一设备名(Unique Device Name),基于UUID,表示一个设备。在不同的时间,对于同一个设备此值应该是唯一的。 URI Web上可用的每种资源 - HTML文档、图像、视频片段、程序等 - 由一个通用资源标志符(Universal Resource Identifier, 简称URI)进行定位。 URI一般由三部分组成:访问资源的命名机制;存放资源的主机名;资源自身的名称,由路径表示。考虑下面的URI
16、,它表示了当前的HTML 4.0规范: URLURL是URI命名机制的一个子集,URL是Uniform Resource Location的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种www客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。 URNURN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)。唯一标识一个实体的标识符,但是不能给出实体的位置。标识持久性 Internet 资源。URN可以提供一种机制,用于查找和检索定义特定命名
17、空间的架构文件。尽管普通的URL可以提供类似的功能,但是在这方面,URN 更加强大并且更容易管理,因为 URN 可以引用多个 URL。2.3 UPnP设备协议栈UPnP定义了设备之间、设备和控制点、控制点之间通讯的协议。完整的UPnP由设备寻址、设备发现、设备描述、设备控制、事件通知和基于Html的描述界面几部分构成。UPnP设备协议栈如下图所示:图2 UPnP协议栈1UPnP协议结构最底层的TCP/IP协议是UPnP协议结构的基础。IP层用于数据的发送与接收。对于需要可靠传送的信息,使用TCP进行传送, 反之则使用UDP。UPnP对网络物理设备没有要求,可以使用以太网、无线网、IEEE139
18、4、红外进行连接, 只要支持IP协议即可。同时UPnP还可以使用TCP/IP协议族中的其他协议, 如ARP、IGMP、DHCP、DNS等。构建在TCP/IP协议之上的是HTTP协议及其变种,这一部分是UPnP协议的核心部分, 所有UPnP消息都被封装在HTTP协议及其变种之中。HTTP协议的变种是HTTPU和HTTPMU, 这些协议的格式沿袭了HTTP协议,只不过与HTTP协议不同的是它们通过UDP而不是TCP来发送消息,并且可以用于多播通信。2.3.1 SSDP协议简单服务发现协议(Simple Service Discovery Protocol:SSDP),内建在HTTPU/HTTPMU
19、 里,定义如何让网络上有的服务被发现的协议。包括控制点如何发现网络上有哪些服务,并取得这些服务的资讯,还有装置本身宣告他提供哪些服务。该协议运用在UPnP工作流程的设备发现部分。2.3.2 SOAP协议简易对象访问协议(Simple Object Access Protocol:SOAP)定义如何使用XML与HTTP来执行远端程序呼叫(Remote Procedure Call)。包括控制点如何发送命令消息给设备,及设备接收到命令消息后如何发送响应消息给控制点。该协议运用在UPnP工作流程的设备控制部分。2.3.3 GENA协议一般事件通知架构(Generic Event Notificati
20、on Architecture:GENA)定义在控制点想要监听设备的某个服务状态变量的状况时,控制点如何传送订阅讯息并如何接收通知讯息用的。该协议运用在UPnP工作流程的事件订阅部分。2.4 基于XML的UPnP描述2.4.1 XML简介2XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的
21、标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。与HTML类似,XML描述的内容封装在开始标签和结束标签之间,一对标签及其封装的内容,如Gone with the Wind,被称为一个元素。元素可以嵌套,一个XML文档正是由许多这样的元素嵌套而成的。元素可以有属性,可赋予属性值。在实际应用中,人们常常根据需要自定义元素名和属性名,这些名字具有明确易懂的含义。但是由于应用的繁多,所定义的名字很有可能发生冲突,为此XML引入了命名空间(namespace)的概念,它给出元素名和属性名定义的来源处,允许不同应用使用相同的
22、名字,不致引起混淆。XML命名空间采用“两段式命名法”定义所谓的“合法名称”,例如“学生:姓名”。其中第一段是指代特定命名空间的“命名空间前缀”,第二段是元素或属性的名字,两段之间用西文冒号“:”分隔。需要注意的是,“学生:姓名”和“班主任:姓名”虽然名称都是“姓名”,但却是两个不同的元素名,因为它们分别由“学生”和“班主任”命名空间定义。命名空间用URI标识,具有唯一性和持久性,所谓命名空间前缀就是命名空间的缩写表示,XML采用下述“命名空间声明来绑定命名空间前缀和命名空间:xmlns:【命名空间前缀】=【命名空间名】其中,xmlns就是XML命名空间的缩写。例如:xmlns:学生=xmln
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 UPNP 协议 分析 实现

链接地址:https://www.31ppt.com/p-4859886.html