Zeroconf 与 UPnP 技术研究.doc
《Zeroconf 与 UPnP 技术研究.doc》由会员分享,可在线阅读,更多相关《Zeroconf 与 UPnP 技术研究.doc(5页珍藏版)》请在三一办公上搜索。
1、精品论文Zeroconf 与 UPnP 技术研究李志鹏1 曹艺坪2 温向明11北京邮电大学信息与通信工程学院,北京 (100876)2信息产业部电信研究院,北京 (100083)E-mail:zhpengli摘 要:网络设备的大量出现在带给我们很大方便的同时也带来了网络终端配置复杂的问题,Zeroconf 技术与 UPnP 技术的出现正是为了解决这个问题,通过使用 Zeroconf 或 UPnP 技术可 以实现终端在不需要人工干预的情况下接入网络并自动进行诸如 IP 地址配置、相关服务的发现 等操作,从而达到网络终端设备的零配置目的。本文将对二者的协议结构、工作过程等方面做 以详细研究及对比,
2、并在此基础上给出结论。关键字:ZeroconfUPnP零配置服务发现 中图分类号:TP3931.引言随着网络技术的发展,越来越多的网络设备大量出现,但是网络设备普遍存在的配置复杂 的问题却在一定程度上限制了设备更大范围的应用。那么一台网络设备能否像台灯那样,接上 电源,打开开关后就能够正常工作呢?这就需要有一种自动配置或者是零配置技术的出现。2.零配置技术介绍当前终端的零配置技术主要有IETF零配置工作组提出的Zeroconf技术1、Sun公司提出的Java智能网络基础设施(Jini)技术2以及UPnP论坛提出的通用即插即用(UPnP)技术3等。IETF 为实现网络的零配置目标而于 1999
3、年 9 月成立了零配置工作组,并于当年 11 月份召 开了第一次工作组官方会议,Zeroconf 技术正是由该工作组提出的, 其目标是在网络设备不需要进行任何手工操作以及其它服务(DHCP、DNS)等的支持下,通过自动配置自动组网并正常工作。UPnP 技术是由 UPnP 论坛制定,该论坛是由微软、英特尔等公司于 1999 年 10 月份发 起创建,UPnP 技术是针对局域网范围内的对等设备互联而设计的一种技术,其目的与 Zeroconf技术类似,是为家庭、小型企业、公共场所提供基于 IP 技术、易于使用的网络服务自动发现机 制,同时提供互连设备的远程操作控制和信息共享。Jini 技术基本思想是
4、将 Java 应用环境从单一主机的虚拟机向网络化发展,通过由 Java 语言定义的接口来实现编程,其更接近于一种分布 式的应用程序接口及对象应用环境,这里不再对其进行详细分析。接下来,本文将会对 Zeroconf和 UPnP 技术的做进一步的研究,并在此基础上对二者做以比较在最后给出结论。3.Zeroconf技术3.1 结构Zeroconf技术是IETF Zeroconf工作组专门提出的用于终端零配置的技术,从功能上来讲, 它可以被划分为三个部分,即本地IP地址的自动获得、多播DNS技术(mDNS)4、基于DNS 的服务发现技术(DNS-SD)56等。其中,mDNS和DNS-SD被用于实现服务
5、发现与定位。3.2 工作过程简单来讲,Zeroconf 技术通过两个过程就可以实现零配置组网的目标:本地 IP 地址的自动 获得、服务的发现与定位,其中服务发现与定位过程使用了 DNS-SD 来完成服务的发现,使用了 mDNS 来完成域名到 IP 地址的转换即服务的定位。第一步:本地 IP 地址的自动获取。为了自动获取 IP 地址,Zeroconf 并不要求网络中有 DHCP 服务器。在没有 DHCP 服务器的情况下,设备可以使用链路-本地 IP 地址,首先设备会使用一 定的算法选择一个 169.254.1.0 到 169.254.254.255 范围内的 IP 地址,选定 IP 地址之后,设
6、备通5精品论文过发送一个 ARP 探测消息来检查该 IP 地址是否已经有人使用。这个 ARP 探测消息是一个 ARP 请求,在这个请求中源 MAC 地址使用该设备的 MAC 地址,把源 IP 地址和目标 MAC 置为空, 把目标 IP 置为这个刚刚选中的 IP 地址,之后设备开始侦听是否有别的设备已经使用了该 IP 地 址。如果设备侦听到一个源 IP 地址是该所选择地址,但是源 MAC 地址与自己的 MAC 地址不 同时,这意味着已经有别的设备使用了该地址。这时该设备可以通过:1,立即换用别的本地链路 IP;2,如果此时设备已经建立 TCP 连接或由于其他原因需要继续使用这个 IP 地址,那么
7、它就 需要在收到 IP 冲突的 ARP 消息一段时间后通过广播一个源 MAC 是自己 MAC 地址,源 IP 是自己想保留的 IP 地址的 ARP 消息来尝试保留这个 IP 地址。如果设备在这之后又收到了 IP 冲突 的 ARP,则该设备必须立即更换一个新的本地链路 IP 地址。在选定使用某个 IP 地址后,设备再通过发送源 IP 地址和目标 IP 地址都是这个已选定的 IP 的 ARP 消息来告知其他设备不要再尝 试使用这个地址,并且这样做也可以告知其他设备来更新他们的 ARP 表。第二步:服务发现与定位。Zeroconf使用mDNS4来实现域名到IP地址的转换。首先,在局 域网内的设备具有
8、了本地链路IP地址之后,设备就可以使用一个以.local.为前缀的本地域名,这个本地域名只是在设备所在的局域网内有效,而且只是在当前时刻有效。如果在其他LAN内或 者在本LAN内的不同时间见到同样一个本地域名,这都不代表这个设备与之前见到的设备有任何关系。本地链路上的每一台设备在多播DNS端口 53537侦听,而需要查询本地域名的设备则向多 播DNS地址 224.0.0.251(IPv4)7/FF02:FB(IPv6)8发送mDNS查询包,如果所查询的本地域名与正 在侦听的某台设备一致,则这台设备就会回应。由于本地域名可能会改变,在某一时刻得到的 查询结果可能已经不是最新的了,所以查询设备时还
9、需要通过不断的发送mDNS查询包来实时 更新查询结果。为了防止发送大量的mDNS查询包引起网络的拥塞,要求mDNS查询包发送时间 间隔要长,比如一个小时发送一次。但是这样的话,如果有了新的设备在本次查询刚刚结束时 增加进来,下一次查询将会是在一小时之后,这样这台新加入的设备必须在一小时之后才能被 发现,这样做肯定不行。所以每台新加入网络的设备需要在加入网络后通过多播一个mDNS响 应消息来宣告自己进入网络。另外,mDNS查询及响应都使用的是多播,这样看似增加网络的 流量,但实际上对于多播回应,网络中其他设备都会收到,并且记录结果,在以后需要的时候 就不必再进行查询了。Zeroconf 使用了
10、DNS-SD 来实现服务的发现。DNS-SD 并不是一个专门的协议,它的消息 结构与普通 DNS 消息一样,只是 DNS-SD 查询消息中并不是使用的“Type=A”这样的查询类 型,而是使用了 SRV 与 PTR 的查询类型。DNS-SD 通过查询某一服务类型来获取所有关于该类 服务的信息,服务类型使用的是 IETF RFC2782 中所定义的 SRV 类型,设备通过发送查询请求 类型为 PTR 的 DNS 查询请求,来得到关于某个服务类型的所有 PTR,每个 PTR 指向一个提供 某项服务的 DNS 记录。通过使用该 DNS 消息就可以实现查询某个服务类型的目的。首先DNS-SD 客户端发
11、出 PTR 查询消息来查询某种服务类型,例如:_http._tcp.local 或_http._tcp.dns-sd.org如果网络上有所查询的服务,则会返回一条或多条 PTR 记录,例如:032Zeroconf._http._tcp.dns-sd.orgDNS-SD 中服务类型可以有子类型,比如可以通过使用查询:_news._sub ._http._tcp.dns-sd.org来更精确的查找一个符合更多条件的服务。另外,Zeroconf还利用了动态DNS-UL、DNS-LLQ以及NAT-PMP等1技术来支持WAN范围 内的零配置机制。4.UPnP技术4.1 结构UPnP(Universal
12、Plug and Play)39技术扩展了应用于计算机外设中Plug and Play(PnP)技术, 它将网络中的设备包括了进来。支持UPnP技术的网络设备可以实现动态地加入一个网络并自动 获得IP地址、告知别的设备自己的能力和服务并且获知网络上其他设备的能力和服务等。UPnP 技术是建立在TCP/IP协议之上的,使用了IP、UDP、TCP、HTTP、XML、SOAP、GENA等网 络协议与技术,使用UPnP建立起来的网络不需要设备驱动,不使用特定的API,与介质无关。 UPnP 结构中包括了控制点、服务和设备,服务和控制点属于逻辑上的概念,一台设备可能会包含有零或多个服务,也可以包括控制点
13、,它的协议栈如下表所示:表 1 UPnP 协议栈UPnP 设备商自己的定义UPnP 论坛专业委员会的设备定义UPnP 设备体系定义SSDPSOAPGENAHTTPMUHTTPUHTTPHTTPUDPTCPIP 层其中,第一层是 IP 层,所有的消息都是基于 IP 传送的,第二层和第三层属于传送层,传送的内容经过 XML 封装后使用 UDP 之上的 HTTPU/HTTPMU 协议或 TCP 之上的 HTTP 协议传送, 而第四层中的 SSDP、SOAP、GENA 正是所传送内容的数据格式;再上一层则是 UPnP 论坛专业委员会定义的厂商相关信息;设备体系定义是一个抽象的公用模型,所有的设备都要使
14、用到 这一层;最上层则是 UPnP 设备制造商的自己进行的一些定义,包括特定的厂商信息等。下面一节中将会对 UPnP 的详细工作过程做以说明。4.2 工作过程UPnP整个工作过程分为六个阶段9,包括设备IP寻址、服务发现、设备和服务的描述、设 备控制、事件和服务呈现。第一步,获取 IP 地址。IP 地址是 UPnP 的基础,一台网络设备可以通过 DHCP 来获取一个IP 地址,设备进入网络后,首先尝试使用 DHCP 方式获取 IP 地址,如果 DHCP 获取方式失败, 设备就开始使用 Auto-IP 技术来获取一个链路-本地 IP 地址。Auto-IP 技术与上述的 Zeroconf 中链路-
15、本地 IP 地址自动获得过程是一样的,这里就不再赘述。第二步,服务发现。获取 IP 地址之后就开始发现过程,UPnP 使用 SSDP 来进行服务发现,SSDP 是 UPnP 提出的专门用于服务发现的一个协议。SSDP 使用了两种方法:M-SEARCH 和NOTIFY,在 HTTP 请求中,M-SEARCH 被用来发现设备或者控制点,NOTIFY 方法被用来告 知设备或控制点的加入网络或离开网络。当有设备加入网络或离开网络时,设备的 SSDP 服务通过向网络多播发送一个 NTS 值为ssdp:alive 或 ssdp:byebye 的 NOTIFY 消息来告知网络中其他设备。当有控制点进入网络时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Zeroconf UPnP 技术研究
链接地址:https://www.31ppt.com/p-5194402.html