周红敏 P2P 通信之   —— UDP 穿越 NAT 方案的讨论 哈理工 网络信息中心   2007-10-17  第 53 期 学术交流
Agenda <ul><li>P2P 之 NAT 穿越 </li></ul><ul><li>NAT 产生的背景 </li></ul><ul><li>NAT 的分类 </li></ul><ul><li>问题之所在  </li></ul><ul><...
P2P 之 NAT 穿越— NAT 产生的背景 <ul><li>为了解决 IP 地址日渐不足的问题, RFC1918 为私有和内部使用的网络留出了 3 个 IP 地址段(A类、B类和C类地址范围各一段),在此范围内的地址将不被 Internet...
<ul><li>私有IP地址有它的缺点,那就是使用私有 IP 地址的用户将无法访问 Internet 。这就需要使用网络地址转换  NAT(Network Address Translation) ,根据 RFC1631 的定义,这是将 IP ...
<ul><li>从 NAT 的地址映射范围来看: </li></ul><ul><ul><li>- 基础  NAT </li></ul></ul><ul><li>  - NAPT( 端口转换 NAT)  </li></ul><ul><li>从 N...
P2P 之 NAT 穿越— NAT 的分类 Full Cone NAT( 完全圆锥型 NAT ) Private Public X,y A,b M Full Cone NAT P S <ul><li>NAT 会将客户机地址 {X:y} 转换成公...
P2P 之 NAT 穿越— NAT 的分类 Restricted Cone NAT ( 地址限制圆锥型  ) Private Public X,y A,b M Restricted Cone NAT S <ul><li>NAT 会将客户机地址 ...
P2P 之 NAT 穿越— NAT 的分类 Port  Restricted Cone NAT ( 端口限制圆锥型  ) Private Public X,y A,b M ,n Port  Restricted Cone NAT S <ul><...
P2P 之 NAT 穿越— NAT 的分类 Symmetric NAT( 对称型 ) Private Public X,y A,b M ,n Symmetric  NAT S <ul><li>NAT 会将客户机地址 {X:y} 转换成公网地址 ...
P2P 之 NAT 穿越—问题之所在 <ul><li>Public  节点无法穿过 NAT 访问 Private 节点 </li></ul>NAT  阻碍主机进行 P2P  通信的主要原因是 NAT  不允许外网主机主动访问内网主机,这使得 I...
P2P 之 NAT 穿越— UDP Hole Punching <ul><li>什么是 UDP Hole? </li></ul>Private Public UDP 包 Firewall /NAT 这个内网的 NAT 上打了一个方向为 211....
P2P 之 NAT 穿越— UDP Hole Punching <ul><li>UDP Hole Punching Technology: </li></ul><ul><li>在没有活动的时候,这个 Hole 会过期: </li></ul><u...
P2P 之 NAT 穿越—解决方案 <ul><li>几种解决方案 </li></ul><ul><ul><li>Connection reversal </li></ul></ul><ul><ul><li>STUN </li></ul></ul>...
P2P 之 NAT 穿越— Connection reversal Connection reversal   Solution NAT Main  Internet Local  network 1.1.1.4 192.168.2.99 re...
P2P 之 NAT 穿越— STUN STUN ( S imple  T raversal   of  U DP Through  N etwork )  Solution NAT Main  Internet Local  network N...
P2P 之 NAT 穿越— STUN <ul><li>STUN 的优点 : </li></ul><ul><li>无需现有 NAT 设备做任何改动  </li></ul><ul><li>可在多个 NAT 串联的网络环境中使用   </li></u...
P2P 之 NAT 穿越 — TURN NAT Main  Internet Local  network NAT Local  network 10.0.0.12 192.168.2.99 Relay S host A host B 1 2 ...
P2P 之 NAT 穿越— TURN <ul><li>TURN 的优点: </li></ul><ul><li>无需现有 NAT 设备做任何改动  </li></ul><ul><li>可在多个 NAT 串联的网络环境中使用  </li></ul>...
P2P 之 NAT 穿越— Summary F:  Full Cone NAT R:  Restricted Cone NAT PR: Port Restricted Cone NAT S :  Symmetric NAT SR: Symmet...
A Novel Solution  Based on ICMP
P2P 之 NAT 穿越— Result F:  Full Cone NAT R:  Restricted Cone NAT PR: Port Restricted Cone NAT S :  Symmetric NAT SR: Symmetr...
P2P 之 NAT 穿越— References <ul><li>Peer-to-Peer Communication Across NAT  http://www.brynosaurus.com/pub/net/p2pnat/ </li></...
P2P 之 NAT 穿越 Q & A
Upcoming SlideShare
Loading in …5
×

p2p通信之nat

1,094 views

Published on

简要说了一下nat的几种类型

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,094
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • “ 节流”技术。目前已经提出了的或者已经使用的提高 IPv4 地址利用率的方法有: * 地址回收: IP 标准化组织因特网工程任务组( IETF )已发出号召,希望那些早年分配得到了“过量”地址的机构和组织,能够归还他们不大可能用得上的地址资源,但目前看来收效甚微。 * 更严格的地址分配策略:以前因特网地址名字分配( IANA )机构的地址分配策略是按照“预期最大规模”分配地址中间,而现在为了降低 IP 地址的分配速率,已经将策略改成了“目前需要规模”。 * 无类域间路由( CIDR ):随着 B 类地址接近耗尽,利用 CIDR 技术,打破地址类型(如 A 类、 B 类和 C 类)的划分,采用多个连续 C 类地址做聚合进行分配。 CIDR 技术的采用使得 Internet 路由表的增长速度近年来有所减缓。 * 拨号接入:用户拨号接入时,利用点到点协议( PPP )和动态主机配置协议( DHCP )为其按需动态分配 IP 地址,实现地址复用。 * 可变长子网掩码( VLSM ):通过把一个企业的企业网( Intranet )划分成不同规模的子网,提高地址空间的利用率。 * 私有地址加网络地址翻译:在企业网内使用“私有”的 IP 地址,不同企业网之间的地址可以重用。当在私有地址网络中的用户与 Internet 通信 时,二者之间必须做网络地址翻译,因为企业网所使用的编址与 Internet 的编址不在一个统一的地址空间内。 IETF 规定的私有地址的范围为 10/8 , 172.16/12 , 192.168/16 三段( RFC 1918 )。这是目前使用最多的,也是效率最高的一种解决地址短缺的问题的方法。当然企业只所以选择使用 RFC 1918 规定的私有地址,有时也不仅仅是因为地址复用的原因,还有安全,控制等其它方面的考虑。 有人认为 IPv4 地址将很快耗尽,因此 IPv6 将在近年内得到大规模商用,这是存在疑问的。根据 IANA 提供的资料,目前还有大约 36 %的公用 IPv4 地 址(大约 15 亿个)没有被分配,因此地址短缺的问题并没有想象的或有些媒体或厂家所描述的那么严重和紧迫。虽然 IANA 现在对 IPv4 地址的申请政策趋于 严格,但如果运营商确实有需求,一般还是能够申请到的。以现在的 IP 地址分配速度不变,据保守估计也要到 2015 年以后 IPv4 地址才会用光。 IPv6 的 128bit 的地址中间多到可以让“地球上的每粒沙子都分配到一个 IP 地址”,也就是说 IPv6 的地址空间将不再是稀有资源。既然不是稀有资源,将来也不大可能成为稀有资源 NAT 技术和 IPv6 都能够解决地址短缺问题。 NAT 最核心的问题是会破坏 Internet 的端到端的透明性,因此只适用于客户 / 服务器模式的应 用。而 IPv6 最大的好处是能够支持 Peer to Peer ( P2P )的应用,因为它不会破坏 Internet 端到端的透明性。
  • NAT 技术在缓解 IPv4 地址紧缺问题、构建防火墙、保证网络安全等方面都发挥了重要作用。然而, NAT 设备的广泛 存在却给 Internet 上的主机,特别是处于不同内网中的主机进行 P2P 通信带来了障碍,限制了 P2P 的应用。 NAT 阻碍主机进行 P2P 通信的主要原因是 NAT 不允许外网主机主动访问内网主机,这使得 Internet 上具有公网 IP 地址的主机不能主动访问 NAT 之后的主机,而位于不同 NAT 之后的主机之间更是无法相互识别因而不能直接交换信息。因此,要在目前的网络环境中进行有效的 P2P 通信,就必须研究相应的方案来穿越 NAT 。
  • 通 过 Relay 穿越 NAT 的方式: 私网终端发出的报文都要经过 TURN Server 进行 Relay 转发
  • ICMP 是“ Internet Control Message Protocol” ( Internet 控制消息 协议 )的缩写。它是 TCP/IP 协议 族的一个子 协议 ,用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用
  • p2p通信之nat

    1. 1. 周红敏 P2P 通信之 —— UDP 穿越 NAT 方案的讨论 哈理工 网络信息中心 2007-10-17 第 53 期 学术交流
    2. 2. Agenda <ul><li>P2P 之 NAT 穿越 </li></ul><ul><li>NAT 产生的背景 </li></ul><ul><li>NAT 的分类 </li></ul><ul><li>问题之所在 </li></ul><ul><li>各种解决方案 </li></ul>
    3. 3. P2P 之 NAT 穿越— NAT 产生的背景 <ul><li>为了解决 IP 地址日渐不足的问题, RFC1918 为私有和内部使用的网络留出了 3 个 IP 地址段(A类、B类和C类地址范围各一段),在此范围内的地址将不被 Internet 主干路由 </li></ul><ul><li>A 类: 10.0.0.0 ~ 10.255.255.255 </li></ul><ul><li>B 类: 172.16.0.0 ~ 172.131.255.255 </li></ul><ul><li>C 类: 192.168.0.0 ~ 192.168.255.255 </li></ul>
    4. 4. <ul><li>私有IP地址有它的缺点,那就是使用私有 IP 地址的用户将无法访问 Internet 。这就需要使用网络地址转换 NAT(Network Address Translation) ,根据 RFC1631 的定义,这是将 IP 数据包包头中一个地址转换为另一个地址的过程, NAT 让使用私有 IP 地址的主机能够访问 Internet 。利用 NAT 转换功能可以更有效地利用 IP 地址资源,进而解决 IP 地址短缺的问题。在将私有 IP 转换为合法 IP 的动作中,通常由防火墙或 路由器担任 IP 转换的功能。 </li></ul>P2P 之 NAT 穿越— NAT 产生的背景
    5. 5. <ul><li>从 NAT 的地址映射范围来看: </li></ul><ul><ul><li>- 基础 NAT </li></ul></ul><ul><li> - NAPT( 端口转换 NAT) </li></ul><ul><li>从 NAT 对向内转发数据的限制程度来看 : </li></ul><ul><ul><li>-Full Cone NAT( 完全圆锥型 ) </li></ul></ul><ul><ul><li>- Restricted Cone NAT ( 地址限制圆锥型 ) </li></ul></ul><ul><ul><li>-Port Restricted Cone NAT( 端口限制圆锥型 ) </li></ul></ul><ul><ul><li>-Symmetric NAT( 对称型 ) </li></ul></ul>P2P 之 NAT 穿越— NAT 的分类
    6. 6. P2P 之 NAT 穿越— NAT 的分类 Full Cone NAT( 完全圆锥型 NAT ) Private Public X,y A,b M Full Cone NAT P S <ul><li>NAT 会将客户机地址 {X:y} 转换成公网地址 {A:b} 并绑定 </li></ul><ul><li>任何包都可以通过地址 {A:b} 送到客户主机的 {X:y} 地址上 </li></ul>
    7. 7. P2P 之 NAT 穿越— NAT 的分类 Restricted Cone NAT ( 地址限制圆锥型 ) Private Public X,y A,b M Restricted Cone NAT S <ul><li>NAT 会将客户机地址 {X:y} 转换成公网地址 {A:b} 并绑定 </li></ul><ul><li>只有来自主机 {P} 的包才能和主机 {X:y} 通信 </li></ul>P,q P,r X X
    8. 8. P2P 之 NAT 穿越— NAT 的分类 Port Restricted Cone NAT ( 端口限制圆锥型 ) Private Public X,y A,b M ,n Port Restricted Cone NAT S <ul><li>NAT 会将客户机地址 {X:y} 转换成公网地址 {A:b} 并绑定 </li></ul><ul><li>只有来自主机 {P,q} 的包才能和主机 {X:y} 通信 </li></ul>P,q P,r X X
    9. 9. P2P 之 NAT 穿越— NAT 的分类 Symmetric NAT( 对称型 ) Private Public X,y A,b M ,n Symmetric NAT S <ul><li>NAT 会将客户机地址 {X:y} 转换成公网地址 {A:b} 并绑定为 {X:y}|{A:b}<->{P:q} </li></ul><ul><li>NAT 只接受来自 {P:q} 的 incoming packet ,将它转给 {X:y} </li></ul><ul><li>每次客户机请求一个不同的公网地址和端口, NAT 会新分配一个端口号 {C,d} </li></ul>P,q P,r X X C,d
    10. 10. P2P 之 NAT 穿越—问题之所在 <ul><li>Public 节点无法穿过 NAT 访问 Private 节点 </li></ul>NAT 阻碍主机进行 P2P 通信的主要原因是 NAT 不允许外网主机主动访问内网主机,这使得 Internet 上具有公网 IP 地址的主机不能主动访问 NAT 之后的主机,而位于不同 NAT 之后的主机之间更是无法相互识别因而不能直接交换信息。因此,要在目前的网络环境中进行有效的 P2P 通信,就必须研究相应的方案来穿越 NAT 。 Private Public UDP 包 Firewall /NAT X Private host IP : 192 . 168 . 1 . 223
    11. 11. P2P 之 NAT 穿越— UDP Hole Punching <ul><li>什么是 UDP Hole? </li></ul>Private Public UDP 包 Firewall /NAT 这个内网的 NAT 上打了一个方向为 211.136.91.58 的“洞”,(这就是称为 UDP Hole Punching 的技术)以后 211.136.91.58 就可以通过这个洞与内网的 192.168.1.223 联系了,但是其他的 IP 不能利用这个洞。 Public host IP:211.136.91.58 Private host IP : 192 . 168 . 1 . 223
    12. 12. P2P 之 NAT 穿越— UDP Hole Punching <ul><li>UDP Hole Punching Technology: </li></ul><ul><li>在没有活动的时候,这个 Hole 会过期: </li></ul><ul><li>NAT 对于地址转换关系是有一定生命期的,某个地址转换后在一段时间内没有被使用将会被清除,当这个业务流再次出现时,将会建立一个新的地址转换关系。 </li></ul>
    13. 13. P2P 之 NAT 穿越—解决方案 <ul><li>几种解决方案 </li></ul><ul><ul><li>Connection reversal </li></ul></ul><ul><ul><li>STUN </li></ul></ul><ul><ul><li>TURN </li></ul></ul><ul><ul><li>A novel solution based on ICMP </li></ul></ul>
    14. 14. P2P 之 NAT 穿越— Connection reversal Connection reversal Solution NAT Main Internet Local network 1.1.1.4 192.168.2.99 rendezvous S host A host B 1 2 3
    15. 15. P2P 之 NAT 穿越— STUN STUN ( S imple T raversal of U DP Through N etwork ) Solution NAT Main Internet Local network NAT Local network 10.0.0.12 192.168.2.99 rendezvous Server host A host B 1 2
    16. 16. P2P 之 NAT 穿越— STUN <ul><li>STUN 的优点 : </li></ul><ul><li>无需现有 NAT 设备做任何改动 </li></ul><ul><li>可在多个 NAT 串联的网络环境中使用 </li></ul><ul><li>STUN 的局限性 : </li></ul><ul><li>需要终端支持 STUN CLIENT 的功能 </li></ul><ul><li>不适合支持 TCP 连接的穿越,所以不支持 H.323 </li></ul><ul><li>不支持 Symmetric NAT </li></ul><ul><li>不支持对防火墙的穿越 </li></ul>
    17. 17. P2P 之 NAT 穿越 — TURN NAT Main Internet Local network NAT Local network 10.0.0.12 192.168.2.99 Relay S host A host B 1 2 TURN ( T raversal U sing R elay N AT) Solution
    18. 18. P2P 之 NAT 穿越— TURN <ul><li>TURN 的优点: </li></ul><ul><li>无需现有 NAT 设备做任何改动 </li></ul><ul><li>可在多个 NAT 串联的网络环境中使用 </li></ul><ul><li>支持 Symmetric NAT </li></ul><ul><li>支持 TCP 连接的穿越 </li></ul><ul><li>TURN 的局限性: </li></ul><ul><li>需要终端支持 TURN CLIENT 的功能 </li></ul><ul><li>所有报文都必须经过 TURN Server 转发,增大了包的延迟和丢包的可能性 </li></ul>
    19. 19. P2P 之 NAT 穿越— Summary F: Full Cone NAT R: Restricted Cone NAT PR: Port Restricted Cone NAT S : Symmetric NAT SR: Symmetric Random NAT STUN: Applicable STUN: Not applicable SR S PR R F NAT 2 SR S PR R F NAT 1
    20. 20. A Novel Solution Based on ICMP
    21. 21. P2P 之 NAT 穿越— Result F: Full Cone NAT R: Restricted Cone NAT PR: Port Restricted Cone NAT S : Symmetric NAT SR: Symmetric Random NAT STUN: Applicable STUN: Not applicable STUN: Applicable ( for new solution) SR S PR R F NAT 2 SR S PR R F NAT 1
    22. 22. P2P 之 NAT 穿越— References <ul><li>Peer-to-Peer Communication Across NAT http://www.brynosaurus.com/pub/net/p2pnat/ </li></ul><ul><li>STUN Protocol RFC. http://www.ietf.org/rfc/rfc3489.txt </li></ul><ul><li>TCP NAT traversal. http://nutss.gforge.cis.cornell.edu//stunt.php </li></ul><ul><li>Traversal Using Relay NAT (TURN) IETF RFC </li></ul><ul><li>NAT Traversal Techniques and Peer-to-Peer Applications </li></ul><ul><li>邓庚盛 , 占传杰 .P2P 网络中基于 UDP 穿透 NAT 技术的研究 [J] </li></ul><ul><li>刘向东 , 潘 为 . 处于 NAT 之后的主机之间互联的方法研究 </li></ul><ul><li>沈许杰 . 基于 UDP 协议 P2P 通信技术的分析及实现 </li></ul><ul><li>Blog: http://blog.csdn.net/max2008 </li></ul>
    23. 23. P2P 之 NAT 穿越 Q & A

    ×