




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UPnP:自动化网路设定 2010-12-11 14:31:06| 分类: DLNA | 标签:upnp nat traversal 自动化 网络 |字号大中小 订阅 摘:讲到网路自动化设定首先想到就是DHCP,但是DHCP 只是能提供网路位址自动设定,其他设定还是要自己来。因此为了要达到免一切免设定的理想,微软提出了UPnP 的构想,UPnP 并不是取代DHCP,而是延伸DHCP。蔡孟甫 曹世强 林盈达国立交通大学资讯科学系新竹市大学路 1001 号TEL:(03)5712121 EXT. 56667E-MAIL:.tw,weafoncis.nctu.ed
2、u.tw,.tw摘要讲到网路自动化设定首先想到就是DHCP,但是DHCP 只是能提供网路位址自动设定,其他设定还是要自己来。因此为了要达到免一切免设定的理想,微软提出了UPnP 的构想,UPnP 并不是取代DHCP,而是延伸DHCP。 UPnP 能让所有UPnP装置只要一接上网路,马上便能使用,一切都不需要设定,而且这些装置之间彼此能发现彼此的存在,进而互相沟通,最后的终极目标就是能连结、控制各种装置且一切都不用设定。 UPnP 是使用现有的标准通讯协定,因此能轻易相容于目前网路,也跟使用平台无关了。当有了UPnP 后,如果闸道器的产品支援UPnP,那我们似乎
3、可以利用UPnP 解决许多目前NAT 的问题,因此微软提出了一组有趣的API:NAT Traversal,搭配UPnP 闸道器解决了目前NAT大部分的问题。在文章最后,我们会看看目前有哪些UPnP 产品,并归纳出一些结论。关键字:UPnP,NAT Traversal1.简介 UPnP1.1什么是UPnPUPnP 全名是Universal Plug and Play,主要是微软在推行的一个标准。简单的来说,UPnP 最大的愿景就是希望任何设备(注意,是任何设备,像是电视,电脑,音响,冰箱,闹钟,电灯.等)只要一接上网路,所有在网路上的设备马上就能知道有新设备加入,这些设备彼此之间能互相沟通,更能
4、直接使用或控制它,一切都不需要设定,完全的Plug an Play。举个例子来说:以前如果家中买了一台印表机,当你想要让这台印表机家中的电脑都能用的时候,你需要先安装印表机,然后需要设定印表机共享,然后在去其他台电脑安装这台网路共享印表机,是不是很麻烦?如果你有台电脑,想想看每台都要去设定的话,是不是很恐怖呢。现在,有了UPnP 后,只要你家的电脑跟印表机都支援UPnP,当你一将新买的印表机接上去的时候,所有在网路上的电脑都会发现有一台印表机可用,一切的设定都不需要,马上就能直接用了,完全Plug and Play!听起来是不是很棒,这就是UPnP 希望打造的环境,让一切简化,提升我们的生活品
5、质,因此UPnP 主要的诉求是打造家庭网路(Home Network)的设定自动化。1.2 UPnP基本组件UPnP 听起来很神奇,在了解他是怎么运作前,先看看UPnP 基本组件,UPnP 基本组件有装置(Device),服务(Service)与控制点(Control Point)。图1 是这三个基本组件之间的关系,有些彼此之间会是巢状关系。服务(Service):服务是UPnP 中最小的控制单位,服务提供操作动作还有一组状态变数记录目前此服务的情况,例如一图1 个时间服务可能包含一个状态变数:目前时间,然后有两个操作动作:设定时间,取得时间。装置(Device):UPnP 的装置是包含服务的
6、设备,例如一台印表机有提供列印这样服务,一台电视有提供收讯的服务,这些设备都属于装置。控制点(Control Point):控制点可以控制UPnP 网路上的找到的装置,控制点主要做的事情有:? 取得装置描述与取得相关服务列表? 取得有兴趣的服务的服务描述? 传送动作讯息来控制服务? 向有兴趣的服务坐订阅的动作,每当订阅的服务的状态变数改变时,会送回一个事件讯息1.3 UPnP的协定堆叠图2 是UPnP 使用到的协定堆叠,为了相容于目前的网路通讯协定,UPnP 使用许多已经成为标准的通讯协定,因此UPnP 能很轻易的相容于目前的网路世界,而且因为是采用标准通讯协定,所以UPnP 是能轻易跨平台的
7、。除了TCP,UDP,IP,HTTP 这些耳熟能想的外,我们简介一下其他是在做什么用的:HTTPU/HTTPMU:HTTPU/HTTPMU只是HTTP的延伸而已,定义使用UDP/IP 来传送讯息而不是用TCP/IP,这个通讯协定会被SSDP 所使用。SSDP:简单服务发现协定(Simple Service Discovery Protocol:SSDP)是内建在HTTPU/HTTPMU 里,定义如何让网路上有的服务被发现的协定。包括控制点如何发现现在网路上有哪些服务,并取得这些服务的资讯,还有装置本身宣告他提供能些服务。GENA:一般事件通知架构(Generic Event Notificat
8、ion Architecture:GENA)是用来处理如何传送订阅讯息并如何接收通知讯息用的。SOAP:简易物件存取协定(Simple Object Access Protocol:SOAP)定义如何使用XML 与HTTP 来执行远端程序呼叫(Remote Procedure Call)1.4 UPnP如何运作稍微了解有哪些通讯协定后,我们来看UPnP 是如何运作的。图3 是UPnP的运作流程,我们先简介各部分在做什么,之后在详细介绍:0. 控制点跟装置都先需取得IP 位址才能作之后的沟通1. 控制点寻找整个网路上的UPnP 装置,而装置要宣告他本身的存在2. 控制点取得装置的描述,这包括装置
9、提供什么功能3. 控制点发出动作讯息给装置4. 控制点监听装置的状态,当状态改变时做出对应处理动作5. 控制点利用HTML 介面控制装置并监看装置状态定址(Addressing):这是UPnP 最基本的一步,在网路上的装置想彼此沟通都需要有网路位址,UPnP 也不例外。 UPnP 装置会先看是否有DHCP 伺服器存在,如果有,就直利用图3DHCP 取得IP 位址,如果没有,就使用自动IP 设定(Auto IP)*。如果使用自动IP 设定,UPnP 装置还是会持续监看是不是网路上有DHCP 伺服器出现,如果有就会改用DHCP。发现(Discovery):当定址完后,就要进行这一步了,这边可以分为
10、两个角度来看:? 控制点加入网路:(图4)当控制点加入网路时,可以传送搜寻有兴这类趣的装置类别讯息,当属于这类别的装置收到时,会回传一个讯息。? 装置加入网路:(图5)当装置加入网路时,会送出一个通知讯息,告知网路上的控制点他的存在。 以上传送讯息皆是使用SSDP 透过HTTP/HTTPMU 来完成的,传送的讯息内容包括本身的类别,辨识码,还有自己本身的XML 描述文件位址等。描述(Description):(图6)当控制点知道有装置在网路上后,控制点对装置的了解非常少,为了了解装置的功能和跟装置互动,控制点利用在发现步骤中得到的装置XML 位址,取得描述装置的XML文件。这份XML文件包含的
11、资讯有装置名称、序号、制造厂商,这个装置提供的动作与状态变数,还有一个控制此装置的URL 网址(许多UPnP 装置都内建HTTP Server)等。控制(Control): (图7)当有了装置的详细资料后,控制点就能知道怎么控制装置了,控制点首先先传送一个动作讯息,这个讯息也是使用XML,然后利用SOAP 传送。当装置收到讯息后,会产生动作并改变对应的状态变数,然后将改变的状态变数传回,如果失败就会传回一个错误码事件(Event): (图8)控制点可以对有兴趣的装置的状态变数做订阅的动作,当装置上的状态变数改变时,会发出一个事件讯息,此事件讯息也是使用XML,然后利用GENA 传送。图八是一个
12、 PDA、PC与电视互动的例子。呈现(Presentation): (图9)如果装置致有提供呈现资讯的页面网址,则控制点可以直接利用浏览器直接浏览控制网页,从控制网页中可以知道目前状态变数,也能直接从控制网页控制装置。 以上就是UPnP 整个的运作过程,在了解怎么运作后,我们来看看使用UPnP 有什么好处。 1.5 UPnP的好处:之前提到的方便都是对使用者而言,那对厂商而言,发展UPnP 产品有什么好处? 好处如下:1. 整个UPnP 使用到的通讯协定堆叠再加上嵌入式HTTP 伺服器,整个档案很小,再加上现有免费OS 可以全部塞到一颗ROM 里面,而且因为都是标准协定,所以使用UPnP 不需
13、要权利金。2. 厂商不需要发展软体,因为控制装置都可以透过浏览器,发展、维护客户端应用程式的成本可以省下来,而因为使用标准HTTP 协定,保证跨平台,而且因为使用HTTP 控制,对于远端控制装置更是如鱼得水。3. 因为一切设定自动化,顾客更愿意购买,没有那个顾客喜欢需要设定繁杂的设备,也因为一切自动化,可以节省许多客户支援的部分 以上就是对于UPnP 的一个基本介绍,在了解UPnP 后,我们要来看看UPnP 的一组有趣API:NAT Traversal2. NAT Traversal由于IP 位址的不足,NAT(Network Address Translation)被广泛的使用,然而NAT
14、遭遇许多问题,在微软提出UPnP 时,也提出了一套API 搭配UPnP 来解决NAT 的问题,让我们来看看这套有趣的API:NAT Traversal 解决哪些问题 2.1 NAT 目前遭遇的问题在了解NAT Traversal 解决哪些问题之前,我们先来看看NAT 遭遇哪些主要问题,在介绍这些问题前,我们假设读者已对NAT 有所认识:? 在NAT下提供网际网路服务当在NAT 下提供网际网路服务时,最大的问题就是NAT 伺服器需设定连接埠对应(port-mapping),否则网际网路上的电脑无法与提供服务的主机连线。然而,设定连接埠对应需要手动设定,这点造成非常大的困扰,如果NAT下有几百台电
15、脑,那设定、修改连接埠对应可不是件容易的事。? 嵌入式IP位址许多应用程式会假设客户端是使用真实IP,在传送资料到伺服器时,会将IP 嵌入到应用程式封包表头,当伺服器收到后直接以表头内的IP 位址回传资讯,如果客户端在NAT 下,由于私有IP(Private IP)无法透过网际网路传送,因此会造成伺服器端无法回传资料到客户端的情形。? 应用程式使用不同连接埠传送有些网路应用程式使用连接埠x传送资料,但是预期用连接埠y 接收资料,NAT 伺服器看到从x 连接埠流出封包,因此替x 作port-mapping,但却不知道是要用连接埠y 接受封包,因此会把流向连接埠y 的封包丢弃。2.2 NAT Tr
16、aversal 的解决方案在有了UPnP 后,如果我们的闸道器有支援UPnP(微软对支援UPnP 的闸道器统称IGD:Internet Gateway Device),那我们想想,既然UPnP 可以让我们知道装置资讯,设定状态变数,那我们不就能利用这些资讯来知道我们是不是在NAT 下,进而自己设定连接埠对应这类动作来解决一些NAT 的问题,因此,微软体出了NAT Traversal 这套API,NAT Traversal 可以:? 确认 NAT 是否存在? 从他处(例如闸道器)取得IP 位址? 取得静态连接埠的对应资讯? 加入静态连接埠的资讯,除非之前已经设定了外部连接埠? 在不删除连接埠的情
17、形下,启用或停用该连接埠? 为静态连接埠设定一个名称? 删除静态连接埠的对应资料? 从区域网路上取得静态连接埠的清单有了这套API 后,我们可以知道,设定连接埠对应这件事完全可以由应用程式自动化完成了,应用程式可以自己指定他所需的连接埠对应资讯。因此,许多NAT 衍生的问题都能透过NAT Traversal 解决了。虽然NAT Traversal 听起来很吸引人,但是有几点我们要注意一下:1. 管理连接埠对应的责任落到应用程式身上,闸道器只是负责支援而已。因此如果闸道器不支援UPnP,NAT Traversal 也无用武之地。也因为责任在应用程式身上,所以连接埠设定冲突的情况要由应用程式负责。
18、2. UPnP 只能让IGD,以不限时的方式,开启连接埠。这表示路由器无法控制连接埠的开启时间,也表示IGD 没有聪明到可以侦测僵尸连接埠,也就是应用程式若不正常终止,它所开启的连接埠会一直开启,不会关闭。如果使用UPnP NAT Transversal 功能的应用程式当掉,其连接埠将会保持开启状态,直到下一次执行该应用程式,再正常结束为止。3. 是否有潜在安全性问题?木马类程式如果再加上NAT Traversal,这样的威?似乎很惊人但是微软对于NAT Traversal 的安全性并没有提出说明。扣除安全性的部分外,NAT Traversal 搭配IGD 似乎太棒了!闸道器厂商再也不需要说它支援哪些软体了,闸道器厂商的产品只要符合IGD 规格,后续责任就在软体身上了,如果软体也使用NAT Traversal,那大部分的NAT 问题都解决了。表一列出想要享受NAT Traversal 带来的方便需要改变的部分:3.UPnP产品一览UPnP 协会提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年离合器:离合器从动盘合作协议书
- 人教版音乐课程特色教学计划
- 一年级上学期节日庆祝劳动教学计划
- 部编版四年级下册《道德与法治》家校合作计划
- 西师版二年级数学上册线上教学计划
- 初三第一学期班级读书活动推广计划
- 提升七年级音乐素养的教学计划
- 2025学年幼儿园家长开放日计划
- 一年级语文上册语音教学计划
- 各类企业宣传活动接送服务协议
- 2022版500kV及以上输变电工程基建停电施工工期管理导则
- 小学综合实践活动-《神奇的声光感知LED灯》教学设计学情分析教材分析课后反思
- 火灾调查询问笔录模板范文
- 国开电大《小学数学教学研究》形考任务4答案
- 公立医院提升财政专项资金预算执行率研究
- 搅拌车运输施工方案
- 环境保护概论(新)课件
- β内酰胺类抗菌药物皮肤试验指导原则(2021年版)解读
- 防洪防汛主题安全教育
- 外研版英语八年级下Module4-Unit1课件(共31张ppt)
- 左宗棠课件完整版
评论
0/150
提交评论