2012年05月30日 18:02 来源:电子发烧友 作者:灰色天空 我要评论(0)
标签:upnp失败(1)UPnP(2)UPnP是什么
UPnP是各种各样的智能设备、无线设备和个人电脑等实现遍布全球的对等网络连接(P2P)的结构。UPnP 是一种分布式的,开放的网络架构。UPnP 是独立的媒介。在任何操作系统中,利用任何编程语言都可以使用 UPnP 设备。
中文译名:通用即插即用
UPnP协议统一即插即用英文是Universal Plug and Play,缩写为UPnP。要说计算机外设的即插即用(Plug and Play(缩写PnP)),大家可能很熟悉,但对通用即插即用,多数人会感到是一头雾水。由于windows xp加入对UPnP的支持,并且被查出存在很严重的安全问题,所以,一时间,使得UPnP名声大噪。巧的是,本人原来查阅过关于UPnP的技术白皮书,而且也较为详细地看了关于此次发现的安全缺陷的介绍。因此,趁着这个机会,将UPnP以及引起安全缺陷的详情披露出来。
UPnP 的应用范围非常大,以致足够可以实现许多现成的、新的及令人兴奋的方案,包括家庭自动化、打印、图片处理、音频 / 视频娱乐、厨房设备、汽车网络和公共集会场所的类似网络。它可以充分发挥 TCP/IP 和网络技术的功能,不但能对类似网络进行无缝连接,而且还能够控制网络设备及在它们之间传输信息。在 UPnP 架构中没有设备驱动程序,取而代之的是普通协议。
UPnP 并不是周边设备即插即用模型的简单扩展。在设计上,它支持0设置、网络连接过程“不可见”和自动查找众多供应商提供的多如繁星的设备的类型。换言之,一个 UPnP 设备能够自动跟一个网络连接上、并自动获得一个 IP 地址、传送出自己的权能并获悉其它已经连接上的设备及其权能。最后,此设备能自动顺利地切断网络连接,并且不会引起意想不到的问题。
UPnP 推动了因特网技术的发展,包括 IP、TCP、UDP、HTTP、SSDP和 XML 等技术。在因特网上契约以有线应用协议为基础,而该协议是说明性的、利用 XML 进行表述和 HTTP 进行传输的。与此相同的是,UPnP 的明确设计目标就是提供这样的环境。再者,当成本、技术或经费等方面的因素阻止了在某种媒介里或接入其中的设备上运用 IP 时,UPnP 能够通过桥接的方式提供非 IP 协议的媒体通道。UPnP 不会为应用程序指定 API,因此供应商们就可以自己创建 API 来满足客户的需求。
经典应用
网络地址转换
在数量以百万计而且数目仍然在继续增长的家庭网络出现很久以前,Internet上的寻址系统就已经开发出来了。实际上,在Internet尚处于幼年的时候所开发的这个寻址系统到目前为止仍然能够正常工作真可以说是一个奇迹。
因为Internet地址资源正在迅速被耗尽,大多数的家庭网络都使用网络地址转换(NAT)技术建立了一个网关。NAT是Internet工程任务组(IETF)制订的一种标准,它允许私有网络中的多台PC或设备共享一个全球唯一的公共地址(所使用私有地址的范围为10.0.0.0/8、192.168.0.0/16和172.0.0.0/11)。作为对IP地址短缺的一种临时补救措施,NAT可以很好地完成很多工作--例如Windows XP的Internet连接共享就使用NAT,就像很多网关设备(例如DSL和线缆调制解调器)所做的一样。
但问题是:NAT希望所有的网络应用程序都以一种标准方式(即在数据包头中使用IP地址)进行通信,但是有些网络程序预计到NAT的存在。他们使用了NAT无法转换的嵌入式IP地址。
NAT 穿越技术
NAT穿越技术允许网络应用程序对它们是否位于一个具有UPnP能力的NAT设备之后进行检测。然后,这些程序将获得共享的全球可路由IP地址,并且配置端口映射以将来自NAT外部端口的数据包转发到应用程序使用的内部端口上--所有这一切都是自动完成的,用户无需手动映射端口或者进行其它工作。NAT穿越技术允许网络设备或者点对点应用程序通过动态开启和闭合与外部服务之间的通信端口穿过NAT网关与外界通信。
|||upnp_upnp是什么意思(2)
2012年05月30日 18:02 来源:电子发烧友 作者:灰色天空 我要评论(0)
标签:upnp失败(1)UPnP(2) 实际应用网络发展到现在,我们已经实现的有很多,但还有许多目标没有达到。例如在网络上,像平时用遥控器那样,操作家用电器或网络远端的电器设备等等。实现诸如此类的效果,将是有巨大需求的应用技术。如果实现通过网络用UPnP控制家用设备,将给我们的生活带来很大的方便和很多新的体验。所以windows系统也加入了UPnP协议,因为UPnP是一个协议,UPnP的使用可跨越各种操作系统平台,开发应用程序也没有开发语言的局限。可工作于各种形式的网络结构。且仅以现在的网络设施为基础,仅仅加上这个UPnP协议,既不用添加新的设施,也不用重新架设网络介质就可以投入使用!
仅现在而言,UPnP已经可以实现好多看似科学幻想的操作了,只是这些操作还未普及而已。
1.在下班之前,或在回去的路上,就可以先打开家里的空调器和厨房设备,等进入家门,立刻就是一个温度宜人的环境――厨房里的饭也做好了。房间温度的高低和厨房内煮饭的过程,都是根据事先设计好的“脚本”程序进行的,绝对可靠。
2.使用上UPnP,将根据用户习惯调整音响音量、灯光亮度、音箱的高度等等,以你认为最佳的参数写到执行脚本中,以后可以都以此为准。
3.当用户在公司用上UPnP,只要在家里安装摄像头,建立好与网络的连接。在办公室内,启用桌面电脑的WEBTV,连通网络后,可以即时看到家里的一举一动。
4.UPnP是因特网及LAN中使用的以TCP/IP协议为基础的技术。通过无线网络上网的用户都是处于内网,为了保证像BT这样的P2P软件正常工作,开启UPnP是必须的,而目前大多数无线路由器都具有此功能。(大多数无线路由器的UPnP默认为关闭,用户可手动开启该功能,重启路由器后即可生效)
特色
1. 以网络为应用环境,不考虑“孤岛”中的计算机。
2. 以TCP/IP和整个Internet为基础。这样是“中立”的,不依附于任何操作系统或应用程序,不使用特定的API函数,不受程序设计语言的局限。可以无缝地接入传统网络。
3. 设备可以动态地进入网络中,随后获得IP地址,“学习” 或查找自己应当进行的操作和服务的信息;“感知”别的设备是否存在以及它们的作用和当前的状态 。所有这些,都应当是可自动完成的。
4. 每个设备都可读取属于自己的、特定的状态和参数;完成控制操作后应当发出“操作完成”的响应信号。如果失败,则应发出控制失败的信号。
设置
如何设置UPnP支持
UPNP的英文全称是Universal Plug and Play,即通用即插即用协议,是为了实现电脑与智能的电器设备对等网络连接的体系结构。而内网地址与网络地址的转换就是基于此协议的,因此只要我们的路由器支持upnp,并且我们使用支持此协议的xp操作系统,那么我们就可以借此提高点对点传输速度。
进入路由器的设置界面,如果你的路由器支持upnp的话那么在转发规则选项卡下就会看到upnp设置选项(不同路由器可能会有不同),在此选项中,我们选择启用upnp,然后我们重启一下路由器。这样我们就完成了路由器的设置。
启用UPnP用户界面
在某些情况下,Windows XP可以发现UPnP设备,并且提供它自己的用户界面控制这些设备。一个很好的例子便是"网络连接"文件夹中UPnP住宅网关设备的用户界面(UI)。市场上流行的Linksys BEFSR41W无线路由器在安装完毕后,会自动显示在"网络连接"文件夹中,因为Windows XP已经内置了一个相关的应用程序。
除此之外,你可以使用以下步骤安装可选的UI组件。该UI组件会在系统发现新的设备后显示一个"气球"通知,并且在"网上邻居"文件夹中为每个设备防止一个图标。为了启用UPnP UI,请按照以下步骤操作:
1.点击"开始",点击"控制面板",然后点击"添加或删除程序"。
2.在"添加或删除程序"对话框中,点击"添加/删除Windows组件"。
3.在"Windows组件向导"中,点击"网络服务",点击"详细",然后选择"通用即插即用"复选框。
4.点击"确定",然后点击"Windows组件向导"对话框中的"下一步"。您可能需要提供您的Windows XP安装CD。
UPnP映射失败的原因
1.系统服务中禁止了SSDP服务(用于寻找upnp设备)
2.开启了XP下的SP1的ICF(网络连接防火墙)。(XP的ICF与UPnP设备发现有冲突,SP2修复了这个问题,但是仍然需要在防火墙设置中允许例外:UPnP 框架。)
3.路由器不支持UPnP,请向制造商询问。
|||upnp_upnp是什么意思(3)
2012年05月30日 18:02 来源:电子发烧友 作者:灰色天空 我要评论(0)
标签:upnp失败(1)UPnP(2)工作过程UPnP在控制指针和被控制设备之间提供通讯功能。而网络介质、TCP/IP协议、HTTP仅提供基本的连接和IP地址分配。整个工作过程需要处理六个方面的内容,即设备寻址、发现设备、对设备的描述、设备控制、设备事件、设备表达。
设备寻址:
地址是整个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设备更好地融入现有网络。