网站大量收购独家精品文档,联系QQ:2885784924

UPNP端口映射全过程.pdf

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UPNP 端口映射全过程 UPNP 的全称是 Universal plug-and-play( 通用即插即用 ).UPnP 是针对智能家电、无线设备以及各种 外观尺寸的个人电脑的普遍对等 (peer-to-peer )网络连接而设计的一种架构。 它旨在为家庭、 小型企业、 公共场所中或连接到互联网的 ad-hoc 网或未管理网络提供易于使用、 灵活且基于标准的连接。 ( 引自这里 .) 我们这里用到的自动端口映射只是 UPNP 的一个小应用。按照 UPNP 的相关规范, UPNP 网络的第0 步是寻址(获得一个 IP 地址,在我要解决的问题中这不是一个问题。 ) 第1步是发现,控制点在网上搜索感兴趣的设备,而设备向网络中的控制点宣告其服务。对于自动端 口映射来说就是发现带 UPNP 功能的路由器。 发现这个过程主要有两步。第一,使用数据报套接字向 50:1900 ,发送一条多播请求, 格式如下 M-SEARCH * HTTP/1.1 HOST: 50:1900 MAN:ssdp:discover MX:3 ST:UPnP:rootdevice 这个多播请求的含义如下: M-SEARCH SSDP 协议定义的搜索请求方法。 HOST 必须是这个多播地 址。 MAN 的值也必须是 ssdp:discover 不可少了双引号。 MX 的含义是最长等待时间,可以自己设置。 ST 表示 search target 搜索目标。我们在这里用找根设备。 另外在编程中我们要在每一行后面加上 rn 表 示换行。 (详见源码 UPNPNAT .discovery()). 第二步, 如果你的网络存在一个 UPNP 设备的话, 为了被找到, 设备必须向发送查找请求的多播通道 的源 IP 地址与端口发送响应信息。所以你可以从 50:1900 这个地址接收到响应消息。 类似下面的消息。 HTTP/1.1 200 OK CACHE-CONTROL: max-age=100 DATE: Sun, 15 Jan 2006 06:51:02 GMT EXT: LOCATION: :1900/igd.xml SERVER: TP-LINK Wireless Router WR541G/5, UPnP/1.0 ST: upnp:rootdevice USN:uuid:upnp-InternetGatewayDevice-192168141678900001::upnp:rootdevice 接下来我们要从里面获得我们要的消息。首先,我们必须找到 200 OK , 说明没有错误发生,否则 一切免谈。接着,我们要找到 LOCATION 项,获得设备描述 URL 。(程序中的处理归根到底就是一个子字 符的查找。) 到这里,我们的第一步 “发现 ”完成。 第2步是描述。在第1步中我们往往能获得一个设备的描述 URL, 在第2步中我们要通过一个 URL ,下 载一个 XML 文件。并从中找到有关设备的类型,服务类型,控制 URL, 事件触发 URL 等。 我们同样分两步进行,首先下载设备描述文件。 (请看源码中 UPNPNAT::get_description() 函数) 1. 解析描述文件的 URL ,获得主机 (host) 、端口 (port) 、路径 (path).(parseUrl 函数) 2. 连接到 host:port (tcp_connect 函数 ) 3. 构造类似 GET path HTTP/1.1

文档评论(0)

lh2468lh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档