P2P网络“自由”穿越NAT的“秘密”

合集下载

混合式P2P网络UDP下NAT穿越方案的研究与设计

混合式P2P网络UDP下NAT穿越方案的研究与设计

( t r n omainCe tr Newok I fr t ne ,Ha bnUnv riyo ce c n c n lg ”,Ha bn 1 0 8 ) o ri ie st fS in ea d Te h oo y r i 5 0 0 ( gn eigTr iig C n e ,Habn Isi t fTe h oo y ,Ha bn 1ห้องสมุดไป่ตู้0 0 ) En iern ann e tr r i n t u eo c n lg e t r i 5 0 1
总第 26 4 期
计算 机 与 数 字 工程
Co ue mp tr& Diia gn eig gtl En ie r n
Vo. 8 No 4 13 .
14 0
21 0 0年第 4期
混合 式 P P网络 U P下 N T 穿越 方 案 的研 究 与设计 2 D A
孙 名松
( 哈尔滨理工大学网络信息中心” 哈尔滨
段志 鸣
王湛 昱
10 0 ) 50 1
10 8 )哈尔滨工业大学机 电工程学院工程训练 中心 哈尔滨 50 0 (


随 着 P P 网络技 术 的迅 速 发 展 , 给 用 户 带 来 了 巨大 的 便 利 和 效 益 , 2 2 它 P P充 分 利 用 了 网 络 带 宽 , 大 提 高 了 大
Re e r h a d De i n o s a c n s g f NAT a e i c m e Tr vs rng S he
Ba e n Co p s t P e wo k o s d o m o ie P2 N t r n UD P
S i gs g un M n on D ua hi i g W a g nZ m n ’ n Zha u2 ny ’

P2P网络的NAT穿越技术研究

P2P网络的NAT穿越技术研究
S U 的 能力 。 T N
定机 制 ,有 四种NA 类 型 。 T () 1 F lC n ul oe对 任何 一 个发 出 的数据 包 , 不考 虑 目的地
址和 端 口,一 个F lC n N T u o e A 映射 一 个 内部I 地址 和端 口到相 l P
同的公 网外 部I地 址和 端 口。另 外 ,通过 映 射 的外 部地 址 ,任 P
为确 定 建立 最合 适 的连接 方 式 ,对 阻塞 的NA 按外 部连 接 T 形式 分类 。S U q T N L 别 为U P C 提 供这 种检 测 T N[和S U T2 分 D 和T P
和 分 类 能 力 。该 文 第2 讨 论 了它 们提 供 的各种 分 类 , 并说 明 节
1 T检 测及 分类 NA
R C 02 F 3 2 概述 了传 统 的N T 为 一个 系 统 ,允 许专 网 内 A 作
包 头 中的源 主机 地址 ,当其 与 内部某 主机 所 访 问的 目的主机 的 I地 址 一致 时 ,才转 发此 数据 。 P r) P r R sie o e该 类 型 N )I 过 滤 经 过 的 3 ot etc d C n rt ATJ强 I :
消 息 的UD 头 部的源 I地 址和 端 口域 。 P P 夹 又是 个 问题 , 当在 同一私 有 网络 内的 两个 客户端 试 图通
NT A
图 1独立 的N AT
过 一个NA 设备在 公共 网络 上 建立 一个 连接 时会 发生夹 叉 。打 T 洞 通过 让服 务 器发送 私 有 网络地 址给 各 自的 客户 修正该 问题 。 客 户 首先试 图使用 这些 私有 网络 地址 建立 一个 连接 ,由此 避免 夹 叉 问题 。为在 节 点 A和 B两端 通过 公共 汇合 服 务器建 立 一个

ipsec nat穿越原理

ipsec nat穿越原理

IPsec NAT穿越原理什么是IPsec?IPsec(Internet Protocol Security)是一种网络协议,用于在IP网络上提供安全的数据传输。

它通过加密和认证机制来保护数据的完整性、机密性和身份验证。

IPsec可以在两个主机之间或两个子网之间建立安全的通信链路。

它可以用于远程访问VPN(Virtual Private Network)连接、站点到站点VPN连接以及移动设备的安全通信。

为什么需要NAT穿越?NAT(Network Address Translation)是一种网络技术,用于将私有IP地址转换为公共IP地址,以实现多个设备共享同一个公网IP地址。

然而,由于NAT会改变IP头部信息,导致加密后的数据包无法正确解析。

这就给使用IPsec进行加密通信的应用程序带来了困扰。

因此,需要一种方法来克服NAT 对IPsec的限制,实现安全的通信。

IPsec NAT穿越原理1. NAT Traversal为了解决NAT对IPsec的限制问题,提出了NAT Traversal技术。

NAT Traversal 允许在经过NAT设备时建立和维护安全通道。

a. UDP封装NAT Traversal使用UDP封装技术将原始的IPsec数据包封装在UDP数据包中。

由于UDP是一种无连接的协议,它可以通过NAT设备传输到目标主机。

在发送IPsec数据包之前,发送方会将IPsec数据包封装在UDP数据包中,并将目的端口设置为特定的值(通常是4500)。

这样,NAT设备就会将整个UDP数据包转发到目标主机。

b. NAT检测NAT Traversal还引入了一种称为”keepalive”的机制来检测是否经过了NAT设备。

当IPsec设备与对等方建立连接时,它会周期性地向对等方发送keepalive消息。

如果对等方收到了keepalive消息,则说明没有经过NAT设备。

如果对等方未收到keepalive消息,则说明可能经过了NAT设备,并且需要使用UDP封装技术。

P2P网络通信中穿越NAT方案研究

P2P网络通信中穿越NAT方案研究
方法 , 这种 通信 模 式 与 C S结构 的通 信模 式类 / 式. 使用 转发 方式进 行通 信 时 , 个节 点不 进行 直 两 接 的点到点 连接 , 要 通 过 服务 器 来 转 发 节 点 的 主
l I I, 92 6N ~ 1:t I 0


C l cut A i
21 0 1年 6月
郧 阳 师 范 高等 专科 学校 学报
J u n l fYu y n a h r l g o r a n a g Te c e sCol e o e
第 3 卷 第 3期 1
J n 2 1 u. 0 1 Vo . 1 1 3 No 3 .
P P网络 通 信 中穿越 NAT 方 案 研 究 2
困 难. 对 P P 网络 通信 中 NA 穿越 的 问题 , 析 了 NA 设 备 对 P P网络 通 信 的 影 响 和 P P 网络 通信 穿越技 针 2 T 分 T 2 2
术, 在这些技 术的基础上提 出了一种有效的 N T 穿越方案 , A 该方案适合不 同 NA T环境 1 P网络通信. ' 2 [ 关键词] 2 NAT;打洞 ;UD ;公 网 P P; P
节点和被保护的节点 的通信. 1 图 显示了存在一
个 NAT设 备对 网络 的影 响.
3 P P网 络 通 信 穿 越 NAT 技 术 2
解 决 穿 越 NAT设 备 的 问 题 , 实现 的 主要 其 思想 是在第 三 方 服 务 器 的协 助 下 , 实现 节 点 之 间
[ 收稿 日期3 0 1 0 - 1 21- 3 6 [ 作者简介]王 焱( 9 0 ) 女 , 肃天水人 , 阳师范高等专科 学校物 理与 电子 工程 系讲 师, 18 - , 甘 郧 主要 从 事计算机应 用及

P2P通信原理与实现(C++),NAT,网络穿透原理

P2P通信原理与实现(C++),NAT,网络穿透原理

P2P通信原理与实现(C++),NAT,网络穿透原理1.简介当今互联网到处存在着一些中间件(MIddleBoxes),如NAT和防火墙,导致两个(不在同一内网)中的客户端无法直接通信。

这些问题即便是到了IPV6时代也会存在,因为即使不需要NAT,但还有其他中间件如防火墙阻挡了链接的建立。

当今部署的中间件大多都是在C/S架构上设计的,其中相对隐匿的客户机主动向周知的服务端(拥有静态IP地址和DNS名称)发起链接请求。

大多数中间件实现了一种非对称的通讯模型,即内网中的主机可以初始化对外的链接,而外网的主机却不能初始化对内网的链接,除非经过中间件管理员特殊配置。

在中间件为常见的NAPT的情况下(也是本文主要讨论的),内网中的客户端没有单独的公网IP 地址,而是通过NAPT转换,和其他同一内网用户共享一个公网IP。

这种内网主机隐藏在中间件后的不可访问性对于一些客户端软件如浏览器来说并不是一个问题,因为其只需要初始化对外的链接,从某方面来看反而还对隐私保护有好处。

然而在P2P应用中,内网主机(客户端)需要对另外的终端(Peer)直接建立链接,但是发起者和响应者可能在不同的中间件后面,两者都没有公网IP地址。

而外部对NAT公网IP和端口主动的链接或数据都会因内网未请求被丢弃掉。

本文讨论的就是如何跨越NAT实现内网主机直接通讯的问题。

详解,网络穿透,P2P,打洞的核心原理视频讲解:「链接」P2P丨网络穿透与NAT原理分析:「链接」2.术语防火墙(Firewall):防火墙主要限制内网和公网的通讯,通常丢弃未经许可的数据包。

防火墙会检测(但是不修改)试图进入内网数据包的IP地址和TCP/UDP端口信息。

网络地址转换器(NAT):NAT不止检查进入数据包的头部,而且对其进行修改,从而实现同一内网中不同主机共用更少的公网IP(通常是一个)。

基本NAT(Basic NAT):基本NAT会将内网主机的IP地址映射为一个公网IP,不改变其TCP/UDP端口号。

利用UDP穿越P2P网络中NAT的技术研究

利用UDP穿越P2P网络中NAT的技术研究

利用UDP穿越P2P网络中NAT的技术研究摘要:介绍了当前互联网主要应用技术P2P和NAT的工作方式,重点分析了NAT对P2P应用的影响,阐述了在P2P网络中如何利用UDP 打洞的方式实现NA T之间的穿越方法,并用C++代码实现了该方法的关键技术。

关键词:P2P网络;UDP;NAT;穿越1 NAT技术的产生目前的互联网是基于32位IP地址的,这意味着有效的IP地址数目约为四十亿个,由于IP地址使用方式的时效性,实际的数量会少得多。

随着可用IP地址越来越少,NAT技术出现。

NAT(Network Address Translators),网络地址转换。

网络地址转换的主要目的就是为了实现地址重用。

NAT技术通过将局域网里的主机地址映射为Internet上的有效IP地址,从而实现了网络地址的复用,NAT技术不仅隐藏了内部网络地址信息,使外界无法直接访问内部网络设备,保护了内部网络,同时也暂时解决了IPv4地址不足的问题。

NAT分为两大类,基本的NA T和NAPT(Network Address/Port Translator)。

一个NAT处在公用互联网与它所服务的局域网之间,重写数据包头部的IP地址和端口号以使所有的包看上去都像从一个NAT设备的公用IP地址发来(或接收)的,而不是发自(往)实际的源(目标)。

2P2P技术的特性P2P是一种网络模型,又称对等网。

在这种模型中,所有节点都是对等的(称为对等点),各节点具有相同的责任和能力,并协同完成任务。

对等点之间直接互连,共享信息资源、处理器资源、存储资源甚至高速缓存资源,无须依赖集中式服务器或资源就可完成。

这种模式与当今广泛使用的C/S模式形成鲜明对比,在C/S 模式中,服务器是网络的控制核心,P2P 模式的节点则具有很高的自治性和随意性。

随着Naster、Genuella等信息共享应用程序越来越流行,P2P技术更受人们的广泛关注。

3P2P网络中穿越NAT的必要性NAT技术使局域网的用户可以共享一个IP地址访问Internet,但NAT的存在给P2P应用带来问题。

P2P通信穿越NAT技术分析

P2P通信穿越NAT技术分析

B, 先 发送一 条信 息 给服务 器s 服务 器S 利用 初始 化 时 已经 A , 再
建 立 的连接 . 将信 息转 发给B。这一 方法 的优 势是 : 当两个 客户 端 都 与服 务端 保持 连 接 的时候 ,它将 始终 如 一 的正 常 工作 。 但 是它 的劣 势也很 明显 :它将 全 面依 赖并 消耗 服务 器 的资 源 、 性 能和 网络 带宽 ,两个 客户 端 的通信反 应 时间将 明显 增加 , 即 使 它们 与服务器 始终保 持着 连接 。
络 应用采用 了点 对点 ( 2 ) P P 的通信 模式 。 2 在P P通信 模式 中 , 主
机之 间通过 直接通 信实 现信息 的交 换 和资源 的共享 , 得 用户 使 之 间 的沟通 和 交互 变 得更 直 接 、 便 捷 。然 而 , 目前 的I v 更 在 P4 网 络环 境 中 , A n toka dest nlt ) 备 的广 泛 存 在 N T(ew r d rs as o 设 r ar 却使 得处 于不 同内部 私有 网络 中 的主机 直接 进 行 通信 变得 很 困难 , 这在 很大程 度上 限制 了P P应用 的发 展 。 2 因此 , 要在 目前 的 网络 环境 中进行 有效 的P P通信 , 2 就必 须研 究相 应 的方 案来
随着 网络技 术 的不断发 展 、 个人 计算 机性 能 的不 断 提高 以
及 边 缘 网 络 信 息 的 不 断 丰 富 , t nt 客 户 机— — 服 务 器 的 I e e中 nr
Se v r r e S
(81 1 1 1 8 3 ) 0
通信 模式 占统治 地位 的局 面 已经 被逐 渐被 打破 。 越来 越 多 的网
助 下建立 直接 P P连接任 务 ,即使 这两个 客 户端 都在N T 2 A 后

p2p网络中的NAT穿透技术----常见NAT穿越解决方案

p2p网络中的NAT穿透技术----常见NAT穿越解决方案

p2p⽹络中的NAT穿透技术----常见NAT穿越解决⽅案常见NA丁穿越解决⽅案NAT技术在缓解IPv4地址紧缺问题、构建防⽕墙、保证⽹络安全等⽅⾯都发挥了重要作⽤。

然⽽,NAT设备的⼴⼀泛存在却给Internet上的主机,特别是处于不同内⽹中的主机进⾏P2P通信带来了障碍,限制了P2P的应⽤。

NAT阻碍主机进⾏P2P通信的主要原因是NAT不允许公⽹主机主动访问内⽹主机,这使得Internet上具有公⽹IP地址的主机不能主动访问NAT之后的主机,⽽位于不同NAT之后的主机之间更是⽆法相互识别因⽽不能直接交换信息。

因此,要在⽬前的⽹络环境中进⾏有效的P2P 通信,就必须研究相应的⽅案来穿越NAT 。

针对⽹络中的NAT穿越问题,⽬前业界主要有如下解决⽅案:ALG⽅式、MII3COM⽅式、STUN⽅式、TURN⽅式、ICE⽅式、Full Proxy⽅式等。

1..应⽤层⽹关(ALG)⽅式应⽤层⽹关(ALG , Application Layer Gateway )是指能识别指定协议(如H.323和SIP等)的设备。

在⽹络中增加了ALG设备可以很好地配合NAT完成应⽤协议消息中的地址字段翻译。

NAT和NAPT只能对IP报⽂的头部地址和TCPILIDP头部的端⼝信息进⾏转换,对于报⽂的数据部分可能包含IP地址或端⼝信息的特殊协议(如H.323, SIP. MGCP等),则⽆法实现有效的转换,⽽许多应⽤中需要对数据包负载中的数据进⾏分析转换。

例如⼀个FTP服务器处于内⽹中,只有内⽹IP地址,该服务器在和公⽹主机建⽴会话的过程中,需要将⾃⼰的IP地址发送给对⽅,⽽这个地址信息放在IP报⽂的数据部分,现有的NAT设备是⽆法对它进⾏地址转换的,当公⽹主机接收到这个私有地址并使⽤它时,是不可能建⽴连接的。

增加应⽤层⽹关ALG 之后,就可以进⼀步分析数据包负载内的数据,即应⽤层的数据。

所以,当⽹络中使⽤了NAT设备来屏蔽内部IP地址时,应⽤层⽹关ALG就可以同时实⾏对业务流对NAT的穿越了。

NAT原理与P2P穿越技术

NAT原理与P2P穿越技术

NAT原理与P2P穿越技术2NAT诞生背景及作用NAT即Net Address Translation,网络地址转换,用于解决IPv4地址不足问题:NAT部署在网络出口的位置,位于内网跟公网之间,是内网和公网的桥梁,双向流量都经过NAT。

固定宽带与移动通信NAT功能分别由BRAS设备、PGW设备承载,NAT设备拥有公网IPNAT 是一项神奇的技术, 它的出现使IPv4起死回生。

在IPv4已经被认为行将结束历史使命之后近30年时间里, 人们几乎忘了IPv4的地址空间即将耗尽这样一个事实——在新技术日新月异的时代, 30年可算一段漫长的历史。

更不用说, 在NAT 产生以后, 网络终端的数量呈加速上升趋势, 对IP 地址的需求剧烈增加。

因此足见NAT 技术之成功, 影响之深远。

NAT 的神奇, 更因为NAT 给IP 网络模型带来了深远影响, 其身影遍布网络每个角落。

几乎所有的个人终端设备位于NAT 网关以内,包含家庭宽带网络、物联网、2G/3G/4G/5G 通信网络。

InternetPGW(承载NAT功能)eNodeB宽带网关手机OLT (承载NAT功能)SGW3NAT原理及特点NAT原理:内网主机向外网主机发送的报文,经NAT时,IP/PORT会被转换为NAT为该主机分配的公网IP/PORT;内网主机的本地地址对外界不可见,外网主机只能通过NAT为该内网主机分配的公网IP/PORT,向它发送报文。

通过PAT(Port Address Translation)端口多路复用,让NAT背后的多台内网主机共享一个公网IP,最大限度节省外网IP资源NAT 的几个关键特点:1.网络被分为私网和公网两个部分, NAT 网关设置在私网到公网的路由出口位置, 双向流量必须都要经过NAT 网关;2.网络访问只能先由私网侧发起, 公网无法主动访问私网主机;3.NAT 网关在两个访问方向上完成两次地址的转换或翻译, 出方向做源信息替换, 入方向做目的信息替换;4.NAT 网关的存在对通信双方是保持透明的;5.NAT 网关为了实现双向翻译的功能, 需要维护一张关联表,把会话的信息保存下来。

P2P网络环境下解决NAT穿越问题的关键技术研究

P2P网络环境下解决NAT穿越问题的关键技术研究

Ab ta t Th TUM eh d o Na s h me a n t rv r ig y s r c eS m to f t c e c n o ta e sn s mm erc NAT whih wiey s d rs n l i po ig S ti c d l u e p e e ty, m rvn TU N shy med sg Oo ec m et TU N a n tta esngs mm ercNAT ee t,s het r e e na hiv d t r v rig t ed bes m— c e e in t v ro heS c n o r v r i y ti d fcs o t a g tb e e e e o ta e sn h ou l y
孙 卫喜 苟 红 玲 。
(. 1渭南师范学院计算机科学 系 摘 渭南 7 4 0 ) 2 渭南师范学院数学与信息科学 系 100(. 渭南 740) 1 0 0
要 目前广泛使用的 NAT穿越方 案 S UN方法 无法 穿越对 称型 NAT, T 设计 改进 S UN方案 以克 服 S T TUN 无法穿 越对 称型
也使得不同子 网中的私有 I 址得 以复用 。N T 技术 不 P地 A 仅可 以缓解 I P地址 紧缺 的问题 , 同时也隐藏 内网地址信息 , 使得外界无法直接访 问内部 网络 , 到 了保护 内网的作用 。 起 另外 , 负载均衡、 优化 重叠 网络也是 N T 技术 的特点 , A 因而 N T 技术被广泛应用_ 。 A 2 P P即对等互联 ( 2 点对 点技 术 )P P网络不 同于传统 ,2 的 C S C i tS re) / ( l n/ ev r模式 , e 它允许 Itre 用户 直接与 其 nen t 他用 户的计算机建立连接并使用对方 的资源。即消除 中间 环节使 P P网络 中每个结点 既充 当服务器 , 为其 它结 点 2 又 提供 服务 , 同时也 享用 其它结 点 提供 的服 务[ 。P P技 3 ] 2

P2P中NAT穿越问题的研究

P2P中NAT穿越问题的研究
中图分 类号 : T P 3 9 3 文献标 识码 : A 文章 编号 : 1 6 7 3 — 6 2 9 X( 2 0 1 4 l 0 2 — 0 2 4 2 - 0 4
d o i : 1 0 . 3 9 6 9 / j . i s s n . 1 6 7 3 — 6 2 9 X. 2 0 1 4 . 0 2 . 0 6 0
he t NAT t r a v e r s l a i n P 2 P, b a s e d o n he t t r a v e r s i n g he t o  ̄, s t u d i e d he t a p p e a r i n g p ob r l e ms o f he t NAT t r a v e r s l, a t h e n g i v e a n e w me ho t d o f u s i n g p o t t o p r e d i c t t h e NAT ra t v e r s 1. a Th i s n e w me ho t d a c h i e v e s he t wa y o f TCP c r o s s i n g ll a k i n d s o f NAT i n n o n e e d o f c h a n gi ng t h e o r i g i na l e q u i p me n t o f he t I n t e me t , wh i c h r e d u c e d he t c o mmo n p r o b l e ms i n he t ie f l d o f NAT t r a v e r s l a s u c h a s d e l a y i n g nd a t h e l o s t o f d a - t a . S o me e x p e ime r n t s wh i c h h a s b e e n v e if r i e d p r e s e n t t h a t he t me t h o d c a n a d a p t t o t h e e n t e r p is r e s wh i c h h a v e h i g h e r r e q u i r e me n t o f n e t -

nat穿越原理

nat穿越原理

nat穿越原理NAT(Network Address Translation)是一种在本地网络中使用的网络转换技术。

它的作用是将私有IP地址转换为公共IP地址,以便实现内部主机与公共网络进行通讯。

尽管 NAT 在局域网中广泛使用,但有些时候,由于一些原因,我们需要进行 NAT 穿透,以便让公共网络中的主机可以与局域网中的主机直接通讯。

本文将介绍 NAT 穿越的原理以及相关的技术和方法。

一、NAT 穿越的原理NAT 穿越(NAT Traversal)是指在网络中,经过 NAT 设备的数据包可以穿越 NAT 网关,从而实现传输的技术方式。

当内网的主机需要使用 P2P 技术、VoIP、视频会议等需要直接通讯的应用时,就需要 NAT 穿越技术。

NAT 穿越技术基于UDP协议,通过一个可探测的中转服务器,使外部的主机可以向内部的主机发送UDP数据包。

这种技术类似于端口转发,只是通过中间服务端实现。

NAT设备自身并不具备进行 NAT 穿越的能力,所以需要使用一些技术和协议来实现。

通常情况下,NAT穿越可以通过以下几种方式:1. UPnP(Universal Plug and Play in)协议:UPnP 协议是一种基于Internet的新一代设备互通性协议。

UPnP协议能够自动在NAT设备上建立端口映射规则,这样内部网络的设备就能在公网的设备中被访问到。

2. STUN(Session Traversal Utilities for NAT)协议:STUN协议是专门为NAT穿越而设计的协议,它可以检测NAT设备的类型,外部IP地址和端口。

使用STUN协议后,每个内部主机就可以获取到一个公网IP地址,从而实现P2P直接通讯。

3. TURN(Traversal Using Relay NAT)协议:TURN 协议也是一种专门用于NAT穿越的协议,它会在中介服务器上建立一条转发通道,从而实现内部和外部主机的通讯。

浅谈P2P的NAT穿越

浅谈P2P的NAT穿越

[ 责任编辑 : 王爽]
( 上接第 8 页 ) U n 能力的 N T 2 有 PP A 设备之后进行检测。然后这些程 424 U N方式 .. T R T N的全称为 t vra uigrlyN T,即通过 rly UR r esl s e A a n a ea 方式 穿越 序将获得共享 的全球有效 I P地址 .并且配置端 口映射从而可 以将来 N TT R A 。 U N方式解决 N T是基于用户通过某种机制预先得到其私有 A 自 N T外部 端 口的数据包转发到应用程序使用 的内部端 口。 A 地址对应在公 网的地址 . 然后在报 文负载 中所描 述的地址信息就直接 422 L .. A G方式 A G即 A p ct n vI a w y 译为应用层 网关 , L p l a 0 e G t a . i i e 是一种可 以 填写该公 网地址 。 识别指定 I 协议的设备。A G不是简单地查看包头信 息来决定数 据 P L 5 结 论 包 是否可以通过 . 而是更深层 的分析数据包 负载内的数据 , 也就是 应 用层 的数据 普 通 N T A 是通过修改报 文头部 的地址信 息实现地址的 针对 目前越来越多 的 P P应用. 2 给出了 P P软件穿透 N T的方 2 A 转换 . 但对于多媒体通信和 PP应用来说 . T WU P负载中也附带 法 。 2 在 C D 很多 P P 2 应用使用 S 协议作 为通信协议, I P 因此使 用 SP I 协议作为 地址信息 一般 的方法是应用程序在负载 中填写 自身地址 , 该地址 信 息在通 过 N T A 时被修改为 N T A 上对外 的地址 423 MI OM方式 -- DC 【 参考文献】 MI C M方 式采取 了由第 三方 ( D O Agn) N DO MI C M et对 AT网关 [] 纬民. 对 等计算研 究概论. 1郑 等. 清华大学计算机科学与技术高性 能计算研究 20 . 设 备进行 控制 的框架结构 .应用业务识别的智能也 由 N T网关设备 所 .0 5 A 2邢 2 M. 北京. 民邮电出版社, 0 , 人 2 82 0 . 转移到外部的 M D O gn 上 . IC M A et 因此应用协议对 N T是透明的 在 [ ] 小 良P P技术及其应用【 】 A 3杨天路. P网络技术原理与系统开发案例【】 P 2 M. 人 民邮 电出版社, 0 , 北京: 2 7. 0 6 MD O I C M方式 中. IC M A et M D O gn 位于外部公共 网上 .通过 M D O [] IC M 协议对于内部 网边缘的主被叫侧 N T网关设 备进行控制 .通过识别 A [ 责任编辑 : 江广霞] 和解析应用协议 . 建立起通信双方的媒体流通道 . 从而实现对 N T的 A 穿越

p2p打洞原理

p2p打洞原理

p2p打洞原理P2P打洞原理解析什么是P2P打洞?P2P打洞是一种用于实现点对点(Peer-to-Peer)通讯的技术,它允许两个位于不同私有网络中的设备直接建立连接。

通过打洞技术,P2P应用程序可以绕过NAT(网络地址转换)设备,实现直接通信,从而提高通信效率和减少延迟。

NAT和P2P通信的挑战在传统的计算机网络中,大多数终端设备都处于私有网络中,使用NAT设备将私有IP地址转换为公共IP地址进行对外通信。

这种网络环境下,P2P通信面临以下挑战:1.防火墙:NAT设备本质上是一种防火墙,它会过滤来自公共网络的进入连接请求,因此会阻止外部P2P节点访问设备。

2.IP和端口映射:每个设备在私有网络中会分配一个唯一的内部IP地址和端口号,这使得在P2P网络中直接访问设备变得困难。

P2P打洞的基本原理为了克服NAT带来的障碍,P2P打洞技术通过利用NAT设备对出站和入站连接的处理机制来建立通信。

它主要包括以下几个步骤:1.发现:P2P应用程序通过一种中介服务器(如STUN服务器)进行交互,获取设备的公共IP地址和端口号信息。

2.打洞:P2P应用程序通过向STUN服务器发送UDP数据包,请求与另一个设备建立连接。

这将使STUN服务器记录设备的公共IP地址和端口,并将其返回给P2P应用程序。

3.连接:P2P应用程序通过交换彼此的公共IP地址和端口信息,直接尝试建立UDP或TCP连接。

由于设备在STUN服务器记录下的信息,若没有防火墙及路由器的干预,连接可以成功建立。

通过这种方式,P2P应用程序绕过了NAT设备,实现了直接的点对点通信。

P2P打洞的限制与改进尽管P2P打洞技术可以解决NAT带来的通信难题,但它仍然面临一些限制:1.对称NAT:如果设备处于对称NAT环境下,P2P打洞可能会失败。

对称NAT会为每个不同目标地址分配不同的公共IP和端口,这阻碍了直接通信的建立。

2.防火墙:一些防火墙可能会检测打洞技术并丢弃相关的数据包,从而影响通信的建立。

p2p穿透原理

p2p穿透原理

p2p穿透原理
P2P穿透原理是指在P2P网络中,不同设备之间通过中转服务器相互连接的技术。

在P2P网络中,不同设备之间可能存在防火墙、路由器等网络设备的限制,导致无法直接连接。

而P2P穿透技术可以通过巧妙地利用中转服务器来实现设备之间的直接连接,从而提高P2P网络的稳定性和速度。

P2P穿透技术的原理主要包括以下几个方面:
1. NAT穿透:由于NAT设备的存在,P2P通信常常被阻断。

而NAT穿透技术可以通过UDP或TCP协议数据包的特殊处理,使得数据包能够穿透NAT设备,直接到达目标设备。

2. STUN服务:STUN(Simple Traversal of UDP through NATs)服务可以通过中转服务器转发数据包,实现设备之间的直接通信。

在STUN服务中,客户端向服务器发送请求,服务器则返回客户端的地址和端口信息,从而实现设备之间的通信。

3. TURN服务:TURN(Traversal Using Relay NAT)服务与STUN服务类似,但是相比之下,TURN服务可以解决更复杂的网络环境下的穿透问题。

在TURN服务中,服务器将客户端的数据包中转到目标设备,从而实现设备之间的直接通信。

总之,P2P穿透技术在P2P网络中起着非常重要的作用。

通过利用中转服务器转发数据包,可以实现不同设备之间的直接连接,从而提高P2P网络的稳定性、速度和安全性。

- 1 -。

P2P网络中的NAT穿越方案

P2P网络中的NAT穿越方案
收稿 日期 :2 0 1 3 — 0 3 — 2 4 作者简介 :李筱楠 ( 1 9 8 1 一) ,男,汉 ,河 北石 家庄 人,讲师,学士,研究方 向网络通信。
4 9
石家庄铁路职业技术学 院学报
2 0 1 3年第 2期
N A T  ̄ I P : 1 9 2 . 1 6 8 . 8 , 2 S 4
N A T 豆 联网 1 p : 2 2 2 3 0 1 6 0 l
2 2 2 . 3 O . 1 6 O . 1 : 3 4 5 6 7;
: 2 0 2 9 9 . 1 6 0 . 6 8 : 8 0 l _ —
一 一

9 9 一 — 2 0 — 2 1 6 0 — 6 8 一 : 8 0 一 一一
关键词:网络地址 转换 N A T穿越 S T U N 协议
中 图分 类号 : T P 3 7 文 献标 识码 : A 文 章编 号 : 1 6 7 3 — 1 8 1 6 ( 2 0 1 3 ) 0 2 . 0 0 4 9 — 0 5
1 引言
近年来,基于 P 2 P技术 的网络应用发展迅速 ,P 2 P通信极高的带宽利用率给用户带来了巨大的 便利 。 而 目前被大量部署使用在 I P V 4网络中的 N A T设备却严重阻碍 了 P 2 P 应用的发展 。 N A T本身 的工作特性,导致处于不同网络环境中的主机无法建立有效的对等连接 ,主机之 间的点对 点通信变 得很 困难 , 也就意味着大部分 P 2 P应用将无法运行在部署了 N A T网关的内部网络 中。为了保证 P 2 P 连接在各种网络环境的有效性,需要有一套行之有效的 N A T穿越方案。
2 NAT技 术
NA T [ 1 】( Ne t wo r k Ad d r e s s T r a n s l a t i o n , 网络 地 址转 换 )是一 种在 数 据包通 过 网关 时重 写其 源

穿越NAT的pp通信方法分析研究

穿越NAT的pp通信方法分析研究

内容概述:在p2p通信领域中,由NAT(Network Address Translation,网络地址转换>引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题。

虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少。

本文的目的在于描述和分析在实际中运用得最广泛、最可靠同时也是最简单的一种NAT穿越技术,该技术通常被称为“打洞”技术。

目前,“打洞”技术已经在UDP通信领域中得到了广泛的理解和应用,在此,也将讨论如何利用它实现可靠的p2p的TCP流通信。

在收集了大量的“打洞”技术可以穿越的NAT设备和网络的数据以后,我们发现82%的已测NAT设备支持UDP形式的“打洞”穿越,64%的已测NAT设备支持TCP流形式的“打洞”穿越。

由于重量级p2p应用程序(如,VOIP、BT、在线游戏等>的用户需求量持续上升,并且该事实也已经引起了NAT设备生产厂商的广泛关注,因此,我们认为未来会有越来越多的NAT设备提供对“打洞”穿越技术的支持。

1、介绍用户量高速增长以及大量安全问题的巨大压力迫使Internet技术不断向前发展,但是这些新兴的技术很大程度地增加了应用程序开发的成本和复杂性。

Internet最初的地址体系是每个节点有一个唯一不变的全局地址,可以通过该地址直接与任何其它的节点进行通信,而现如今,该地址体系已经被新的实际上广泛使用的地址体系所替换,新的地址体系是由全局地址域和通过NAT接入全局地址域的大量私有地址域组成。

在新的地址体系中<如图1所示),只有在“main”全局地址域中的节点可以在网络中很容易地与任何其它的拥有全局地址的节点通信,因为该节点拥有全局的、唯一的、可路由的地址。

在私有网络中的节点可以与在同一个私有网络中的其它节点进行通信,并且在通常情况下可以向全局地址中的某个“著名”的节点发起TCP连接或发送UDP数据包。

p2p穿透原理

p2p穿透原理

p2p穿透原理
P2P穿透原理是一种网络技术,它可以实现在不同网络环境下,通过互联网进行点对点(P2P)通信。

在传统的网络环境下,P2P通信很容易实现,因为所有的计算机都在同一网络中。

但是在现代的网络环境下,这种方式变得越来越困难,因为越来越多的计算机在不同的网络中,并且这些网络之间有很强的隔离。

为了解决这个问题,P2P穿透技术应运而生。

它主要通过以下几个步骤实现:
1. 寻找可用的端口:P2P穿透技术首先要找到可用的端口,用于进行通信。

这个过程需要在不同网络环境下进行,因为不同网络可能会封锁某些端口。

2. 穿透障碍:一旦找到可用的端口,P2P穿透技术就会尝试穿透障碍,即通过网络隔离层。

这个过程需要使用特殊的技术,如NAT 穿透、UDP打洞等。

3. 建立通信:一旦成功穿透障碍,P2P穿透技术就可以建立点对点通信。

这个过程需要一定的协议支持,如STUN、TURN、ICE等。

通过以上三个步骤,P2P穿透技术可以实现在不同网络环境下的点对点通信。

这种技术被广泛应用于各种应用场景,如在线游戏、视频会议、文件共享等。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

穿越NAT的意义:NAT是为了节省IP地址而设计的,但它隐藏了内网机器的地址,“意外”起到了安全的作用。

对外不可见,不透明的内部网络也与互联网的“公平”应用,“相互共享”的思想所不容,尤其是P2P网络中“相互服务”的宗旨,所以穿越NAT,让众多内部网络的机器也参与到P2P 网络中的大集体中来,一直是P2P开发者的所希望的。

穿越NAT需要借助外部的支持,说白了就是“内外勾结”,骗过NAT。

很多P2P网络成功地实现了这一目标,但还是有一些“遗憾”---并非所有的情况下都可以。

由于客户端是主动登录P2P网络才可穿越,所以P2P的方式也没有违背企业的内部管理原则,毕竟“自由世界”的加入都是自觉自愿的。

NAT原理:NAT(Network Address Translation)网络地址转换/网络地址翻译。

工作原理:NAT主要的通过对数据包头的地址替换来完成内网计算机访问外网服务的。

当内部机器要访问外部网络时,NAT设备把内部的IP1与端口号1(网络层地址与传输层地址),转换成NAT的外部IP2与新的端口号2,再送给外部网络,数据返回时,再把目的为IP2:端口2的数据包替换为IP1:端口1,送给内网机器。

若通讯协议的内容中有IP地址的传递,如FTP协议,NAT在翻译时还要注意数据包内涉及协议地址交互的地方也要替换,否则协议就会出现地址混乱。

在NAT设备中维护了这个要替换地址的映射表,并根据内部计算机的通讯需求维护该表。

外部网络来数据包能否进入NAT,主要是看是否已经有可映射的表项,若没有就会丢弃。

NAT的外部公网地址可以是一个IP,也可以是一个网段,形成地址池。

NAT还可以把某个外网地址直接影射给内网的某个服务器,让外网的用户可以直接访问到这台服务器。

NAT的工作的隐藏内网的机器,但允许内网主动打开到外网的通讯“通道”,也就是建立映射表项。

NAT给P2P带来的问题是:NAT只允许单方面发起连接,通讯的双方不是平等的,P2P 网络的基础有了问题,具体的表现为:内网主机IP是私有的,外部主机看不到,也无法主动发起连接即使知道了内网IP,但NAT会丢弃没有在影射表的数据包内网主机可以作为客户端访问外网,但不能作为服务器提供服务当两个主机都位于各自的NAT之后,要实现P2P的连接,就不仅是谁主动的问题,而是如何解决在两个NAT上同时有对方映射表项的问题。

STUN协议(IETF RFC 3489):STUN协议是一种通道协议,可以作为正式通讯前的通路建立,它采用的是用户终端干预的一种方法,可以解决应用协议内部传递IP地址给NAT带来的麻烦。

用户通过其他方法得到其地址对应在NAT出口上的对外地址,然后在报文负载中所描述的地址信息就直接填写NAT上对外地址,而不是内网的私有IP,这样报文的内容在经过NAT时就按普通的NAT 流程转换报文头部的IP地址即可,负载内的IP地址信息无需再修改。

利用STUN的思路可以穿越NAT。

STUN协议是客户端/服务器协议,分两种请求方式:一是UDP发送的绑定请求(Binding Requests),二是TCP发送的秘密请求(Shared Secret Requests)。

绑定请求用于确定NAT分配的绑定地址。

STUN标准中,根据内部终端的地址(P:p)到NAT出口的公网地址(A:b)的影射方式,把NAT分为四种类型:1. Full Cone:来自相同的内部地址的请求消息映射为相同的外部地址,与外部地址(目的地址)无关。

映射关系为P:p↔A:b,任何外部主机可通过(A:b)发送到数据到(P:p)上。

2. Restricted Cone:来自相同的内部地址的请求消息映射为相同的外部地址,返回的数据只接受该内部节点曾发数据的那个目的计算机地址X。

映射关系为P:p↔A:b↔X,只有来自X的数据包才可通过(A:b)发送到数据到(P:p)上。

3. Port Restricted Cone:来自相同的内部地址的请求消息映射为相同的外部地址,返回的数据只接受该内部节点曾发数据的那个目的地址X:x。

映射关系为P:p↔A:b↔X:x,只有来自X:x的数据包才可通过(A:b)发送到数据到(P:p)上。

4. Symmetric(对称) NAT:只有来自相同的内部地址(P:p),并且发送到同一个地址(X:x) 的请求消息,才被映射为相同的外部地址(A:b),返回的数据只接受该内部节点曾发数据的那个目的地址X:x。

映射关系为P:p↔A:b↔X:x,当(P:p)访问(Y:y)时,映射为P:p↔B:c↔Y:y。

P2P利用STUN穿越NAT:位于NAT后面终端A与B要穿越NAT直接通讯,可以借助在公网上的第三者Server 来帮助。

穿越NAT的情况分为为两种方式:1、一方在NAT之后,一方在公网上。

这种情况相对简单,只要让NAT之后的终端先发起通讯,NAT就没有作用了,它可以从Server上取得另一个Peer的地址,主动连接,回来的数据包就可以方便地穿越NAT。

2、双方都在NAT之后,连接的成功与否与两个NAT的类型有关。

主要的思路的先通过终端与Server的连接,获得两个终端在NAT外部的地址(IP与端口号),再由终端向对方的外部地址发邀请包,获取自己与对方通讯的外部地址,俗称为“打洞”。

关键是获取了NAT外部映射的地址,就可以发包直接沟通,建立连接。

但当一方是对称型,另一方是Port Restricted或对称型时,无法有效获取外部地址,邀请包无法到达对方,也就无法穿越NAT。

具体的分析可以根据两个NAT的类型分成若干情况分析,这里给一般的穿越例子。

实例:UDP穿越NAT:A登录Server,NAT A分配端口11000,Server得到A的地址为100.10.10.10:11000 B登录Server,NAT B分配端口22000,Server得到B的地址为200.20.20.20:22000 此时B会把直接来自A的包丢弃,所以要在NAT B上打一个方向为A的洞,那么A就可以向200.20.20.20:22000发送数据了打洞的指令来自Server。

B向A的地址100.10.10.10:11000发一个UDP报文,被NAT A 丢弃,但在NAT B上建立映射记录,NAT B不在丢弃来自A的报文。

Server通知A可以通讯,A发起数据UDP包给B,NAT B放行,B收到A的包,双方开始通讯注:若是对称NAT,当B向A打洞的端口要重新分配(NAT A不会再分配11000端口),B无法获取这个端口,所以不适用本方法。

实例:TCP穿越NAT:A登录Server,NAT A分配端口11000,Server得到A的地址为100.10.10.10:11000 B登录Server,NAT B分配端口22000,Server得到B的地址为200.20.20.20:22000 A向B发送TCP数据包SYN:192.168.10.11:1234=>200.20.20.20:22000,在NAT A 上打洞B向A发送TCP数据包SYN:192.168.20.22:1234=>100.10.10.10:11000,在NAT B 上打洞通道建立,A与B三次握手建立TCP连接对穿越NAT 做些总结:先做个约定:内网A 中有:A1(192.168.0.8)、A2(192.168.0.9)两用户,网关X1(一个NAT 设备)有公网IP 1.2.3.4内网B 中有:B1(192.168.1.8)、B2(192.168.1.9)两用户,网关Y1(一个NAT 设备)有公网IP 1.2.3.5公网服务器:C (6.7.8.9) D (6.7.8.10)NAT 两大类:● NAT(Network Address Translators):称为基本的NAT其核心是替换IP 地址而不是端口,这会导致192.168.0.8使用4000端口后,192.168.0.9如何处理?具体参考RFC 1631基本上这种类型的NAT 设备已经很少了。

或许根本我们就没机会见到。

● NAPT(Network Address/Port Translators)其实这种才是我们常说的NATNAPT 的特点是在网关时,会使用网关的 IP ,但端口会选择一个和临时会话对在网关时1.2.3.4:4000——6.7.8.9:8000 服务器C6.7.8.9:8000应的临时端口。

如下图:网关上建立保持了一个1.2.3.4:62000的会话,用于192.168.0.8:4000与6.7.8.9:8000之间的通讯。

对于NAPT ,又分了两个大的类型:差别在于,当两个内网用户同时与6.7.8.9:8000的处理方式不同:1、Symmetric NAT 型(对称型)在网关时1.2.3.4:62000——6.7.8.9:8000 服务器C6.7.8.9:8000这种形式会让很多p2p 软件失灵。

2、ConeNAT 型(圆锥型)目前绝大多数属于这种。

Cone NAT 又分了3种类型:a) Full Cone NAT (完全圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,192.168.0.8可以收到任意外部主机发到1.2.3.4:62000的数据报。

b) AddressRestricted Cone NAT (地址限制圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先给服务器C 6.7.8.9发送一个数在网关时,两个不同session 但端口号不同1.2.3.4:62000——6.7.8.9:8000 1.2.3.4:62001——6.7服务器C 6.7.8.9:8000 服务器D6.7.8.10:8000在网关时,两个不同session 但端口号相同1.2.3.4:62000——6.7.8.9:8000 1.2.3.4:62000——6.7服务器C 6.7.8.9:8000 服务器D6.7.8.10:8000据报后,192.168.0.8才能收到6.7.8.9发送到1.2.3.4:62000的数据报。

c) Port Restricted Cone NAT (端口限制圆锥型):从同一私网地址端口192.168.0.8:4000发至公网的所有请求都映射成同一个公网地址端口1.2.3.4:62000,只有当内部主机192.168.0.8先向外部主机地址端口6.7.8.9:8000发送一个数据报后,192.168.0.8才能收到6.7.8.9:8000发送到1.2.3.4:62000的数据报。

相关文档
最新文档