分享

谈谈uPnP

 dreamland 2006-04-27
统一即插即用英文是Universal Plug and Play,缩写为UPnP。要说计算机外设的即插即用(Plug and Play(缩写PnP)),大家可能很熟悉,但对统一即插即用,多数人会感到是一头雾水。由于windows xp加入对UPnP的支持,并且被查出存在很严重的安全问题,所以,一时间,使得UPnP名声大噪。

一、 UPnP是用来干什么的?

  网络发展到现在,已经可以使我们在网上冲浪、收发邮件、听到远方传送来的声音、搜索感兴趣的内容、下载软件、点播节目、即时聊天等等、等等……实现的功能好像已经不少,但,人的欲望无止境,享福人还想更享福,还有许多目标没有达到:例如,怎样才能使我们在网络上,像平时用遥控器那样,操作空调器、电风扇、厨房电器,或网络远端的电器设备呢?如何利用网络上的计算机资源,使这种“遥控”更具智能化?甚至,将一系列相关的控制写到一个脚本中,以便用户定制自己所喜爱的控制流程?……等等。实现诸如此类的效果,将是有巨大需求的应用技术。如果实现通过网络用UPnP控制家用设备,将给我们的生活带来很大的方便和很多新的体验。例如:

  1.你在下班之前,或在回去的路上,就可以先打开家里的空调器和厨房设备,等进入家门,立刻就是一个温度宜人的环境――厨房里的饭也做好了。房间温度的高低和厨房内煮饭的过程,都是根据事先设计好的“脚本”程序进行的,绝对可靠。
  2.你若是一位上档次的音乐发烧者,肯定对聆听音乐的环境要求很严:音箱位置高低、音量大小、灯光明暗、窗帘拉不拉上都有讲究。手动控制随好,毕竟不方便。你要使用上UPnP,一切都会为你代劳。还能将你习惯的音响音量、灯光亮度、音箱的高度等等,以你认为最佳的参数写到执行脚本中,以后可以都以此为准。如果你拥有自己的专门听音室,只要你打开听音室的门,上述的环境就会立刻设置好。曲终人散,只管放心离开好了,UPnP系统会自己关闭音响,熄灭电灯,拉上窗帘。
  3.你人在办公室,心里却放不下家里的孩子。用上UPnP,只要在家里安装摄像头,建立好与网络的连接。在办公室内,启用桌面电脑的WEBTV,连通网络后,可以即时监视孩子在家里的一举一动。

  凡此种种的方便和诱人之处还很多,不胜枚举。

  其实,这已经不是科学幻想、也不是专家预言。目前用UPnP协议就可以实现这些操作!这正是windows xp系统急于加入UPnP的原因。正因为UPnP是一个协议,UPnP的使用可跨越各种操作系统平台,开发应用程序也没有开发语言的局限。可工作于各种形式的网络结构。且仅以现在的网络设施为基础,仅仅加上这个UPnP协议,既不用添加新的设施,也不用重 新架设网络介质就可以投入使用!


UPnP协议具有下述特色:

  1. 以网络为应用环境,不考虑“孤岛”中的计算机。
  2. 以TCP/IP和整个Internet为基础。这样是“中立”的,不依附于任何操作系统或应用程序,不使用特定的API函数,不受程序设计语言的局限。可以无缝地接入传统网络。
  3. 设备可以动态地进入网络中,随后获得IP地址,“学习” 或查找自己应当进行的操作和服务的信息;“感知”别的设备是否存在以及它们的作用和当前的状态 。所有这些,都应当是可自动完成的。
  4. 每个设备都可读取属于自己的、特定的状态和参数;完成控制操作后应当发出“操作完成”的响应信号。如果失败,则应发出控制失败的信号。

二、UPnP协议的层:

  UPnP协议的最终目的,是建立一个可用的设备模型, 因篇幅这里不对整个结构进行详细的分析,但你应当记住下面的主要特征:

  1. UPnP是一个多层协议构成的框架体系,每一层都以相邻的下层为基础,同时又是相邻上层的基础。直至达到应用层为止。该图中的最下面是就是IP和TCP,共两层,负责设备的IP地址。
  2. 三层是HTTP、HTTPU、HTTPMU,这一层,大家应当是熟悉的,属于传送协议层。传送的是内容都经过“封装”后,存放在特定的XML文件中的。对应的SSDP、GENA、SOAP指的是保存在XML文件中的数据格式。到这一层,已经解决了UPnP 设备的IP地址和传送信息问题。
  3. 第四层是UPnP设备体系定义,仅仅是一个抽象的、公用的设备模型。任何UPnP设备都必须使用这一层。
  4. 第五层是UPnP论坛的各个专业委员会的设备定义层,在这个论坛中,不同电器设备由不同的专业委员会定义,例如:电视委员会只负责定义网络电视设备部分,空调器委员会只负责定义网络空调设备部分……,依此类推。所有的不同类型的设备都被定义成一个专门的架构或者模板,供建立设备的时候使用。可以推知,进入这一层,设备已经被指定了明确用途。当然,这些都必须遵守标准化的规范。从目前看,UPnP已经可以支持大部分的设备:从电脑、电脑外设,移动设备和家用消费类电子设备等等,无所不包,随着这个体系的普及,将可能有更多的厂家承认这一标准,最终,可能演化为公认的行业标准。
  5. 最上层,也就是应用层,由UPnP设备制造厂商定义的部分。这一层的信息是由设备制造厂商来“填充” 的,这部分一般有设备厂商提供的、对设备控制和操作的底层代码,然后,就是名称序列号呀,厂商信息之类的东西。


  使用ADSL宽带路由器的朋友会发现,他家的猫竟然也支持UPNP功能,但是普通的猫上面的UPNP功能能够给他ADSL上网带来什么好处呐?

  目前宽带路由器出现了一种新的动向——支持通用即插即用(UPnP)的产品相继问世。在已经开始供货的产品中,有些已开始通过更换固件来支持UPnP。厂商们为何对支持UPnP这样积极呢?下面就来看一下这种路由器的结构及功能。

  首先来看一下何为通用即插即用(UPnP)。这是一种由计算机自动识别接入网络的家电产品等,并通过遥控器对家电产品进行设置的机制,由美国微软设计开发。

  那么,厂商为什么要推出可支持家电的宽带路由器呢?这是由于UPnP规格中具有“NAT Traversal”功能,使用该功能可以使WindowsXP中标准安装的聊天软件“Windows Messenger”在运行中不会出现任何问题。所谓的NAT(network address translation),是指在因特网中使用的全球IP地址可以同在LAN内使用的私人IP地址互换的功能。所谓连续Traversal,则意味着“完全搜索”。

  Windows Messenger虽然具有IP电话及视频聊天功能,但这种功能无法经由使用NAT的宽带路由器使用。这是由于在使用此项功能时,Windows Messenger在数据部分也嵌入了IP地址的缘故。在NAT功能中,虽然位于IP数据包头部的收信方及发信方的IP地址可以更换,但数据内的地址无法更换,因此前后不统一,无法进行通信。

  NAT Traversal由路由器将服务提供商分配的全球IP地址等信息通知给LAN内的计算机。LAN内的个人电脑收到来自路由器的信息后,可以向因特网应用方传送WAN方面的IP地址等信息。如果因特网应用方采用这一结构,可以在一开始就将WAN方面分配到的IP地址写入分组的数据中,所以在通过NAT进行通信时,IP数据包头部和数据部可以使用相同的全球IP地址,从而便可以进行通信。

  有了它,就无需对语音、视频等多端口配置复杂的NAPT规则了。
  同时,需要您的操作系统也支持UPNP功能,目前WINDOWS XP是默认开启这个服务的。
  但是由于UPNP其中有一个缺陷是对缓冲区(Buffer)的使用没有进行检查和限制。外部的攻击者,可以通过这里取得整个系统的控制特权!由于 UPnp功能必须使用计算机的端口来进行工作,取得控制权的攻击者,还有可能利用这些端口,达到攻击者的目的。这个缺陷导致的后果很严重,不论那个版本的windows 系统,只要运行UPnP,就都存在这个危险!
  所以许多为了安全考虑的用户都在WINDOWS服务中已经禁用了改功能。不过大家只要打了MS的针对UPNP的安全补丁就可以放心使用的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多