没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
32页
基于UPnP可以双向穿越Full Cone NAT,让外网主机主动访问内网主机(如FTP、HTTP服务)。 基于UPnP可以支持数据包中包含后继会话的新地址端口的通信穿越NAT,这样就可以支持SIP、H.323等协议穿越NAT。 基于UPnP的方法不能穿越多级NAT,因为UPnP Internet Gateway Device V1.0(IGD)目前不支持多级NAT 基于UPnP的方法需要NAT设备和内网主机的应用程序支持UPnP,不需要另外添加服务器或代理。
资源推荐
资源详情
资源评论
基于 UPnP 的穿越 NAT 的技术
作者 唐善成
撰写时间 2005 年 9 月 7 日
文档类型 研究小结
文档状态 草稿
目 录
1、NAT 原理......................................................................................................................................4
1.1、概述....................................................................................................................................4
1.2、分类....................................................................................................................................4
1.2.1、传统 NAT................................................................................................................5
1.2.2、双向 NAT................................................................................................................5
1.2.3、两次 NAT................................................................................................................5
1.2.4、多宿主 NAT............................................................................................................6
1.3、工作机理............................................................................................................................6
1.3.1、Full Cone NAT........................................................................................................6
1.3.2、Restricted Cone NAT..............................................................................................7
1.3.3、Port Restricted Cone NAT......................................................................................7
1.3.4、Symmetric NAT......................................................................................................7
1.3.5、抽象原理.................................................................................................................8
1.4、应用....................................................................................................................................8
2、穿越 NAT 的障碍..........................................................................................................................9
3、现有穿越 NAT 的方法...............................................................................................................10
3.1、外网服务器法..................................................................................................................10
3.2、协议扩展法......................................................................................................................10
3.3、DNS-ALG........................................................................................................................11
3.4、隧道法..............................................................................................................................11
3.5、ALG..................................................................................................................................12
3.6、MIDCOM.........................................................................................................................13
3.7、STUN(Simple Traversal of UDP Through Network Address Translators)................13
3.8、TURN(Traversal Using Relay NAT)..........................................................................14
3.9、Full Proxy.........................................................................................................................14
3.10、UPnP...............................................................................................................................15
3.11、UDP 封装法...................................................................................................................15
3.12、穿越 NAT 的方法的比较..............................................................................................15
4、UPnP 原理...................................................................................................................................17
4.1、概述..................................................................................................................................17
4.2、UPnP 网络中的部件........................................................................................................17
4.3、UPnP 技术使用的协议....................................................................................................18
4.4、UPnP 网络工作步骤........................................................................................................19
4.4.0、寻址(Addressing)............................................................................................19
4.4.1、发现(Discovery)..............................................................................................19
4.4.2、描述(Description)............................................................................................19
4.4.3、控制(Control)..................................................................................................20
4.4.4、事件(Eventing)................................................................................................20
4.4.5、展示(Presentation)...........................................................................................20
5、基于 UPnP 穿越 NAT 的技术....................................................................................................20
5.1、概述..................................................................................................................................20
5.2、IGD 技术的特点..............................................................................................................20
5.3、基于 UPnP 穿越 NAT 的原理.........................................................................................21
6、实现基于 UPnP 穿越 NAT 的技术............................................................................................22
6.1、开发 IGD..........................................................................................................................22
7、实验目的.....................................................................................................................................24
8、实验方案.....................................................................................................................................24
9、实验平台.....................................................................................................................................24
10、实验过程和实验结果...............................................................................................................25
10.1、外网主机主动访问内网主机........................................................................................25
10.2、内网主机在数据包中包含后继会话的新地址端口...................................................25
11、实验结果分析...........................................................................................................................31
12、实验结论...................................................................................................................................31
参考文献...........................................................................................................................................32
1、NAT 原理
1.1、概述
RFC1631、RFC3022 以及相关 RFC 定义的 NAT(Network Address Translator)是一种
将 IP 地址从一个编址域映射到另一个编址域的方法,典型的应用是把 RFC1918 定义的私
有 IP 地址映射到 Internet 所使用的公有 IP 地址。NAT 与网络中其它计算设备的关系如图
1.1。虽然 NAT 技术已经得到广泛应用,但它是一把双刃剑,在带来节省 IPv4 地址空间等
好处的同时,破坏了 Internet 最基本的“端到端的透明性”的设计理念,增加了网络的复杂性,
阻碍了业务的创新。
IETF 一直主张利用 IPv6 技术解决地址短缺问题,因此 IETF 虽然出版了几个与 NAT 相
关的 RFC,但对 NAT 技术(尤其是穿越问题)一直没有系统的标准工作,如 SIP 和 Mobile
IP 就是 NAT 出现后设计的一些协议,都未考虑到 NAT 的穿越问题。现在业界意识到
Internet 在 短 期 内 不 可 能 过 渡 到 IPv6 , IPv4 和 IPv6 将 长 期 共 存 , NAT 以 及 NAT-
PT(Network Address Translation - Protocol Translation)将继续得到长期应用,因此 NAT 相
关 问 题 开 始 引 起 IETF ( Internet Engineering Task Force ) 和 ITU-T ( International
Telecommunication Union)等相关国际标准化组织的关注。中国通信标准化协会 IP 与多媒
体工作委员会也正在积极参与 ITU-T SG16 组的相关活动,加紧制定中国多媒体业务 NAT
穿越标准[1]。
1.2、分类
从功能上看,主要有以下几种典型的 NAT(RFC2663),如图 1.2)。
ICD
H.323
FTP
NAT
外网 /
Internet
OCD
H.323
FTP
图 1.1 NAT 与计算设备的关系
说明:
ICD : Inner Computing Device ,内部计算设备,内部主机,内网主机
OCD : Outer Computing Device ,外部计算设备,外部主机,外网主机
ICD 和 OCD 是相对而言的, OCD 也可能在 1 个或多个 NAT 后面
NAT
传统 NAT 双向 NAT 两次 NAT 多宿主 NAT
静态 NAT 动态 NAT
基本 NAT
NAPT
说明:
动态 NAT 也可以称作 NAT 池( pooled NAT )
NAPT : Network Address Port Translation
图 1.2 NAT 的分类
1.2.1、传统 NAT
在 多数 情 况 下 , 传 统 NAT ( Traditional NAT ) 允 许 位 于 内 部 网 络 的 主 机 ( 采 用
RFC1918 地址)透明地访问外部网络中的主机,把从外部网络到内部网络的访问作为一种
特例。有关传统 NAT 的详细描述见 RFC1631 和 RFC3022。传统 NAT 包括基本 NAT 和
NAPT 两大类。
(1) 基本 NAT
基本 NAT 可以分为两类:静态 NAT 和动态 NAT。静态 NAT 的工作原理是将内部网络
中的每个 IP 地址(可以是私有 IP 地址、公有 IP 地址)永久映射成外部网络中的某个 IP 地
址。动态 NAT 的工作原理则是在外部网络中定义了一系列的 IP 地址,采用动态分配的方
法映射到内部网络中的 IP 地址。
采用动态 NAT 意味着可以在内部网中定义很多的内部用户,通过动态分配的办法,共
享很少的几个外部 IP 地址。而静态 NAT 则只能形成一一对应的固定映射方式。需要注意
的是,动态 NAT 中动态分配的外部 IP 地址全部被占用后,后续的 NAT 申请将会失败,不
过许多 NAT 有超时配置功能,可以在一定程度上提高外部 IP 的利用率和用户满意度。
(2) NAPT
NAPT(Network Address Port Translation)把基本 NAT 的概念延伸了一步,在翻译 IP
地址的同时也翻译传输层标识(如 TCP/UDP 的端口号,ICMP 的查询 ID),从而把多个内
网主机的传输层标识映射到一个外部 IP 地址。NAPT 可以使一组主机共享一个外部 IP 地址。
在实际使用中可以把 NAPT 和基本 NAT 结合起来。
对于从内部网络向外的数据包,NAPT 翻译源 IP 地址、源传输层标识以及相关字段,
如 IP、TCP、UDP 和 ICMP 头校验和。对于进入内部网络的数据包,翻译目的 IP 地址、目
的传输层标识以及相关字段。传输层标识可以是 TCP/UDP 端口号或 ICMP 查询 ID 中的任
意一种。
1.2.2、双向 NAT
双向 NAT(Bi-directional Nat、Two-way NAT)支持从内部网络向外部网络发起会话请
求,也支持从外部网络向内部网络发起会话请求。当在外出或进入任何一个方向上建立连
接时,把内部网络 IP 地址静态或动态地映射到一个外部 IP 地址上。这里假设位于内部网
络和外部网络之间的名字空间(FQDN,Fully Qualified Domain Names)是端到端唯一的,
因为只有这样才能使得位于外部编址域的主机能利用域名系统(DNS)访问内部网络的主
机 。 在 双 向 NAT 上 必 须 部 署 DNS-ALG ( DNS-Application Level Gateway , 参 阅
RFC2694),以处理名字到地址的映射。当一个 DNS 包需要穿越内部和外部编址域时,
DNS-ALG 必须能够将 DNS 查询和响应消息中的内部地址翻译成外部地址,或把外部地址
翻译成内部地址。
1.2.3、两次 NAT
两次 NAT(Twice NAT)是 NAT 的一个变种,它同时修改源和目的 IP 地址。这与传统
NAT 和双向 NAT 不同(二者仅翻译源或目的地址/端口)。当位于同一 NAT 之后的两台内
网主机之间以各自的公网地址进行连接时,这时 NAT 要做两次转换,先将包中来源主机的
内网地址转换为公网地址,再将包中目的主机的公网地址转换为内网地址,最后将包转发
给目的主机,上述的 NAT 转换过程也称之为回环转换(Loopback Translation)。
两次 NAT 在内部编址域和外部编址域存在冲突时非常有用。典型例子之一是当一个站
点(不恰当地)使用已分配给其它机构的公有 IP 地址对其内网主机进行编址时;例子之二
是当一个站点从一家运营商换到另一家运营商,同时希望在内部保留前一家运营商分配的
地址时(而前一家运营商可能在一段时间后将这些地址重新分配给其它人使用)。在这些
情况下,非常关键的一点就是外部网络的主机可能会分配得到以前已经分配给内网主机的
剩余31页未读,继续阅读
资源评论
- hik_zxw2017-01-02upnp应用的一个例子
- jdyouh2015-05-09该方法很好,谢谢。。。。
红色爆破者
- 粉丝: 4
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mybatis动态sql及其JAVA示例
- 微软常用运行库 游戏运行库 VC++各个版本
- 微信小程序开发教程.pptx
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 锐捷网络认证中心网络管理.pdf
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- SD8233LF是一款用于单按键触摸及接近感应开关,其用途是替代传统的机械型开关芯片IC
- 基于YOLOv5的烟雾火焰检测算法研究
- 基于STM32的联合调试侦听设备解决方案原理图PCB源文件调试工具视频(大赛作品)
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功