基于UPNP的无线路由器开发

上传人:lcm****801 文档编号:47705624 上传时间:2018-07-04 格式:PDF 页数:7 大小:249.55KB
返回 下载 相关 举报
基于UPNP的无线路由器开发_第1页
第1页 / 共7页
基于UPNP的无线路由器开发_第2页
第2页 / 共7页
基于UPNP的无线路由器开发_第3页
第3页 / 共7页
基于UPNP的无线路由器开发_第4页
第4页 / 共7页
基于UPNP的无线路由器开发_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于UPNP的无线路由器开发》由会员分享,可在线阅读,更多相关《基于UPNP的无线路由器开发(7页珍藏版)》请在金锄头文库上搜索。

1、http:/ -1- 基于基于 UPnP 的无线路由器开发的无线路由器开发 张鑫,唐友喜 电子科技大学通信抗干扰技术国家级重点实验室,成都 (610054) E-mail: 摘摘 要要:本文介绍了一种网络协议(UPnP),阐述了 UPnP 协议以及寻址、发现、描述、控制、 事件处理和展示等工作过程。 并以一个支持 UPnP 的无线路由器的程序设计开发为例说明了 如何开发一个 UPnP 设备程序。 关键词关键词:通用即插即用;控制点;设备;服务;无线路由器 1引言引言 随着网络和电子消费产品的发展, 越来越多的设备能够接入网络, 对于共享设备以及共享设备所提供的资源和服务的需求也越来越强烈。 为

2、了实现设备和资源的共享, 往往需要进行一些设置工作, 这种设置工作会由于网络结构的复杂和软件的复杂而变得繁琐起来。 所以,透明的访问各种接入网络的资源成了一项很复杂的任务。因此,早在 1999 年微软公司就开始大张旗鼓的宣传下一代即插即用技术UPnP,并且获得了广泛的支持。 借助 UPnP 技术,设备可以动态加入到网络中并获得 IP 地址、传达功能以及了解其他设备的存在和性能, 而且上述过程都是自动进行的, 从而使“零”配置的网络真正成为可能。 此后,设备之间可以直接通讯,从而进一步的实现了对等网络功能。 目前宽带路由器中也大多采用了此项技术。 有了这个技术支持后, 那么对于内网主机来说就可以

3、实现“端口映射”(PORT-MAPPING)。端口映射即:网络软件在宿主机上占用一个端口, 而这个端口直接与路由器上自定义开放的一个端口连接, 这样内网数据与公网数据的就可以直接交换,从而达到提高网络数据交换的速度。 本文详细阐述了 UPnP 的基本概念、工作原理,并以基于 UPnP 的路由器程序设计开发为例对 UPnP 的开发步骤进行了详细说明。 2UPnP简介简介 UPnP 是通用即插即用(Universal Plug and Play)0的缩写,它主要用于实现设备的只能互联互通。使用 UPnP 协议不需要设备驱动程序,因此使用 UPnP 建立的网络是介质无关的,它可以运行在几乎所有的操作

4、系统平台之上,可以使用 C、C+、JAVA 和 VB 等开发语言,使得在办公室、家庭和其他公共场所方便的构建设相互连通的网络环境。 2.1 UPnP 网络的组成网络的组成 UPnP 网络由设备(device)、服务(service)和控制点(control point)三种逻辑构件组成,它们之间的关系如图 1 所示0。 http:/ -2- 控制点服务1服务NL嵌入式设备设备服务服 务控 制 服 务 器事 件 服 务 器状 态 列 表图 1 UPnP 的控制点、设备和服务 设备是一个逻辑概念, 它可以包含多个服务和嵌入设备。 不同类别的设备包含不同的服务集合和嵌入设备。一个设备包含的服务和嵌入

5、设备等信息通过 XML 格式的设备描述文件来描述。 服务是 UPnP 网络的最小控制单元。它通过状态变量列表来记录自己的状态,并提供多种操作供控制者进行控制。图 1 中,服务包含控制服务器和事件服务器。控制服务器用于接收和处理控制请求; 事件服务器的作用是当状态变量改变时, 通过事件来通知事件的订阅者。一个服务包含的状态变量和操作等信息通过 XML 格式的服务描述文档来描述。 控制点是 UPnP 网络中的控制者,它具有发现设备和服务并对其进行控制的能力。发现了设备后, 控制点可以获取受控设备和服务的描述, 通过发起适当的操作来对服务进行控制。控制点还可以向服务订阅事件,当服务的状态改变时,就通

6、知订阅的控制点。 2.2 UPnP 的协议栈的协议栈 UPnP 利用了多种现有的协议标准。使用这些标准化的协议有助于确保供应商实现之间的互操作性。 由于相同的协议已在使用之中因此 UPnP 设备可以很方便的在现有网络环境中工作。下文将概述一些用于实现 UPnP 的协议,图 2 为 UPnP 协议集0。 http:/ -3- UPnP设备制造商定义UPnP设备定义的结构UPnP论坛定义SSDPGENAHTTPMU发现SSDPHTTPU发现SOAP控制UDPTCPIPHTTP描述SSDP事件HTTP图 2 UPnP 协议栈 2.3 UPnP 的工作过程的工作过程 ? 寻址寻址 UPnP 网络互联的

7、基础是 IP 寻址。每台设备必须分配 有动态主机配置协议 (DHCP)客户端,并在设备首次与网络连接时搜索 DHCP 服务器。如果 DHCP 服务器可用,即网络处于管理状态,则设备必须采用分配给它的 IP 地址,否则设备必须利用 AutoIP 来获取一个地址。此时,设备依据情况,采取特定算法选取一个 IP 地址,接着采用地址解析协议(ARP)来进行探测,监听对于该 ARP 探测。或同一 IP 地址的其他 ARP 探测所做出的响应。如果发现任意 ARP 数据包,则尝试一个新地址。 ? 发现发现 如果获得了一个 IP 地址,则设备就会进行发现操作。在一个设备被添加到网络上以后,它会多播大量的发现消

8、息来宣告其嵌入式设备和服务。 所有感兴趣的控制点均能监听标准的多播地址,以获得宣布新能力可用的通知。同样,当一个新控制点被添加网络以后,它会多播一条发现消息来搜索感兴趣的设备。 所有设备必须监听这些消息的标准的多播地址, 做出相应的相应。 ? 描述描述 控制点在发现一个设备以后仍然对其知之甚少。为了让控制点更多的了解设备及其功能,或者与设备交互,控制点必须从发现消息中得到设备描述 URL,并通过 URL 取得设备描述。对于一个设备的 UPnP 描述一般分两个部分:设备描述以及一个或多个服务描述。 UPnP 设备描述包括厂商、制造商信息。对于设备中的每种服务,设备描述都包含服务类型、服务描述 U

9、RL、控制 URL 等。 UPnP 服务描述包括一系列命令、动作、服务的响应以及每种动作的参数。服务描述还包括一系列变量。这些变量描述了服务运行的状态。 http:/ -4- ? 控制控制 在接收设备的服务描述以后, 控制点可以向这些服务发出动作, 同时控制点也可以轮询服务的状态变量值。 发出的动作实际上是一种远程过程调用, 这一般由控制点向服务的控制URL 地址发送一个适当的控制信息。而服务则会对此动作做出响应,返回相关结果或错误。控制点轮询服务和发出动作的过程相似,控制点向服务的控制 URL 发送查询信息,而服务则返回响应的变量值。 ? 事件处理事件处理 控制点发现设备和取得设备以及服务描

10、述以后,就拥有了事件出发的功能。一个 UPnP服务描述包括服务响应的动作列表和运行时描述服务状态的状态列表。 如果一个或者多个状态变量可以被事件出发,服务将会在这些变量变化时发布更新,控制点可以订阅此消息。些消息也是用XML表示的, 并使用通用事件通知结构(GENA)进行格式化。 事件消息通过HTTP协议传送。 ? 展示展示 如果设备拥有进行展示的 URL,控制点就可以通过次 URL 取得一个页面,在浏览器中加载该页面,并根据页面功能,支持用户控制设备或者浏览设备状态。展示 URL 包括在设备描述的 presentationURL 元素中。 3基于基于UPnP的路由器程序设计开发的路由器程序设

11、计开发 下面将以一个支持 UPnP 的路由器为例来说明如何开发一个 UPnP 设备程序。控制点可以发出命令使路由器增加端口映射、删除端口映射,获得已有的端口映射信息等。 3.1 发现与描述发现与描述 Intel 公司提供了 Windows 平台下的 UPnP 开发工具包:Intel Tools for UPnP Technologies0,可以根据用户的输入信息自动生成 UPnP 应用程序框架以及相关的 XML 文档,便于程序的开发。 打开工具包中的工具 Device Spy,可方便的收到路由器发出的发现消息,如图 3 所示,从该发现消息中可以得到路由器的设备描述和服务描述。从图中看到,根设备

12、 TP-LINK Wireless Router WG340 下有服务与子设备,子设备下又有其服务与子设备。以子设备WANConnectionDevice 为例, 该子设备下有服务 WANIPConnection, 从该服务描述中显示的设备描述 URL,即 SCPDURL 中,可得到该子设备的动作列表及其参数等。 动作列表中 AddPortMapping,DeletePortMapping,GetGenericPortMappingEntry 等共十一个动作,每个动作又有其对应的参数。这些信息正是下面的控制阶段需要用到的信息。 http:/ -5- 图 3 路由器发出的发现消息 3.2 控制控

13、制 控制点会向设备的服务发出动作,并接收结果或错误返回。该动作、结果和错误密封在SOAP 中,通过 HTTP 发送,并通过 HTTP 响应接收。 如图 4 示,控制点可向子设备 WANConnectionDevice 中的 AddPortMapping、DeletePortMapping、GetGenericPortMappingEntry 等服务发出动作。发出动作实质上是一种远程过程调用。控制点将动作发送到设备服务,在动作完成后,服务返回响应的结果。 根设备TP-LINK Wireless Router WG340服务:AddPortMappingDeletePortMappingGetGe

14、nericPortMappingEntry子设备WANConnectionDeviceL服务:动作请求结果控 制 点LLL图 4 控制点对服务的调用 参考文献 0 中定义了详细的控制命令发送格式,以发送动作 AddPortMapping 为例,利用在描述阶段得到的信息,实际程序中使用如下代码: POST /control?WANIPConnection HTTP/1.1 HOST:192.168.0.1:1780 SOAPACTION:“urn:schemas-UPnP-org:service:WANIPConnection:1#AddPortMapping“ CONTENT-TYPE: te

15、xt/xml ; charset=“utf-8“ Content-Length: 594 http:/ -6- 3896 udp 3890 192.168.0.100 1 upnp port-mapping 0 其他控制如删除、查询等原理都是一样的,只是所发送的参数不同而已。 3.3 调试结果调试结果 该程序可实现对 UPnP 路由器增加端口映射,删除端口映射,以及显示目前路由器中所有端口映射的功能。图 5、图 6、图 7 分别为执行各项功能后的程序输出。 图 5 增加端口映射 图 6 删除端口映射 图 7 显示目前所有端口映射 4结论结论 本文介绍了网络协议通用即插即用(UPnP)和 UPnP 设备程序开发方法。UPnP 提供了一个解决网络设备即插即用的途径, 由于它的网络介质无关性和操作系统无关性, 在日趋网络化的智能设备中,能够迅速支持该功能。“零”配置和“隐性”联网的过程,使得智能设备的互联更加方便。 目前的许多专门的 UPnP 开发工具也使得对 UPnP 设备的开发更加的简易方便。 http:/ -7- 参考文献参考文献 1 UPnP Forum, http:/www.UPnP.org. 2 UPnP Forum, UPnP device architecture 1.0, Dec 2003. 3 http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号