1 / 23

P2P 通信之 ——UDP 穿越 NAT 方案的讨论

学术交流. 第 53 期. P2P 通信之 ——UDP 穿越 NAT 方案的讨论. 周红敏. 哈理工 网络信息中心 2007-10-17. Agenda. P2P 之 NAT 穿越 NAT 产生的背景 NAT 的分类 问题之所在 各种解决方案. P2P 之 NAT 穿越 —NAT 产生的背景. 为了解决 IP 地址日渐不足的问题, RFC1918 为私有和内部使用的网络留出了 3 个 IP 地址段(A类、B类和C类地址范围各一段),在此范围内的地址将不被 Internet 主干路由

keanu
Download Presentation

P2P 通信之 ——UDP 穿越 NAT 方案的讨论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 学术交流 第53期 P2P通信之 ——UDP穿越NAT方案的讨论 周红敏 哈理工 网络信息中心2007-10-17

  2. Agenda P2P之NAT穿越 • NAT产生的背景 • NAT的分类 • 问题之所在 • 各种解决方案

  3. P2P之NAT穿越—NAT产生的背景 • 为了解决IP地址日渐不足的问题,RFC1918为私有和内部使用的网络留出了3个IP地址段(A类、B类和C类地址范围各一段),在此范围内的地址将不被Internet主干路由 A类: 10.0.0.0~10.255.255.255 B类: 172.16.0.0~172.131.255.255 C类: 192.168.0.0~192.168.255.255

  4. P2P之NAT穿越—NAT产生的背景 • 私有IP地址有它的缺点,那就是使用私有IP地址的用户将无法访问Internet。这就需要使用网络地址转换 NAT(Network Address Translation),根据RFC1631的定义,这是将IP数据包包头中一个地址转换为另一个地址的过程,NAT让使用私有IP地址的主机能够访问Internet。利用NAT转换功能可以更有效地利用IP地址资源,进而解决IP地址短缺的问题。在将私有IP转换为合法IP的动作中,通常由防火墙或 路由器担任IP转换的功能。

  5. P2P之NAT穿越—NAT的分类 • 从NAT的地址映射范围来看: -基础 NAT -NAPT(端口转换NAT) • 从NAT对向内转发数据的限制程度来看: -Full Cone NAT(完全圆锥型) -Restricted Cone NAT(地址限制圆锥型 ) -Port Restricted Cone NAT(端口限制圆锥型) -Symmetric NAT(对称型)

  6. P2P之NAT穿越—NAT的分类 Full Cone NAT(完全圆锥型NAT ) Public Private M A,b P X,y Full Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定 • 任何包都可以通过地址{A:b}送到客户主机的{X:y}地址上

  7. P2P之NAT穿越—NAT的分类 Restricted Cone NAT(地址限制圆锥型 ) Public Private M X P,q A,b P,r X,y X Restricted Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定 • 只有来自主机{P}的包才能和主机{X:y}通信

  8. P2P之NAT穿越—NAT的分类 Port Restricted Cone NAT(端口限制圆锥型 ) Public Private M,n P,q X A,b P,r X,y X Port Restricted Cone NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定 • 只有来自主机{P,q}的包才能和主机{X:y}通信

  9. P2P之NAT穿越—NAT的分类 Symmetric NAT(对称型) Public Private M,n C,d P,q X A,b P,r X,y X Symmetric NAT S • NAT会将客户机地址{X:y}转换成公网地址{A:b}并绑定为{X:y}|{A:b}<->{P:q} • NAT只接受来自{P:q}的incoming packet,将它转给{X:y} • 每次客户机请求一个不同的公网地址和端口,NAT会新分配一个端口号{C,d}

  10. Private host IP : 192 . 168 . 1 . 223 P2P之NAT穿越—问题之所在 • Public 节点无法穿过NAT访问Private节点 Private Public UDP包 X Firewall /NAT NAT 阻碍主机进行P2P 通信的主要原因是NAT 不允许外网主机主动访问内网主机,这使得Internet 上具有公网IP 地址的主机不能主动访问NAT 之后的主机,而位于不同NAT 之后的主机之间更是无法相互识别因而不能直接交换信息。因此,要在目前的网络环境中进行有效的P2P 通信,就必须研究相应的方案来穿越NAT。

  11. Private host IP : 192 . 168 . 1 . 223 P2P之NAT穿越—UDP Hole Punching • 什么是UDP Hole? Public Private UDP包 Public host IP:211.136.91.58 Firewall /NAT 这个内网的NAT上打了一个方向为211.136.91.58的“洞”,(这就是称为UDP Hole Punching的技术)以后211.136.91.58就可以通过这个洞与内网的192.168.1.223联系了,但是其他的IP不能利用这个洞。

  12. P2P之NAT穿越—UDP Hole Punching • UDP Hole PunchingTechnology: 在没有活动的时候,这个Hole会过期: NAT对于地址转换关系是有一定生命期的,某个地址转换后在一段时间内没有被使用将会被清除,当这个业务流再次出现时,将会建立一个新的地址转换关系。

  13. P2P之NAT穿越—解决方案 • 几种解决方案 • Connection reversal • STUN • TURN • A novel solution based on ICMP

  14. P2P之NAT穿越—Connection reversal Connection reversal Solution Main Internet 2 rendezvous S 1 NAT 1.1.1.4 3 host B Local network 192.168.2.99 host A

  15. P2P之NAT穿越—STUN STUN(Simple Traversalof UDP Through Network) Solution Main Internet 1 rendezvous Server 2 NAT NAT Local network Local network 10.0.0.12 192.168.2.99 host B host A

  16. P2P之NAT穿越—STUN STUN的优点: • 无需现有NAT设备做任何改动 • 可在多个NAT串联的网络环境中使用 STUN的局限性: • 需要终端支持STUN CLIENT的功能 • 不适合支持TCP连接的穿越,所以不支持H.323 • 不支持Symmetric NAT • 不支持对防火墙的穿越

  17. P2P之NAT穿越—TURN TURN ( Traversal Using Relay NAT) Solution Main Internet 1 Relay S 2 NAT NAT Local network Local network 10.0.0.12 192.168.2.99 host B host A

  18. P2P之NAT穿越—TURN TURN的优点: • 无需现有NAT设备做任何改动 • 可在多个NAT串联的网络环境中使用 • 支持Symmetric NAT • 支持TCP连接的穿越 TURN的局限性: • 需要终端支持TURN CLIENT的功能 • 所有报文都必须经过TURN Server转发,增大了包的延迟和丢包的可能性

  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

  20. A Novel Solution Based on ICMP

  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)

  22. P2P之NAT穿越—References • Peer-to-Peer Communication Across NAT http://www.brynosaurus.com/pub/net/p2pnat/ • STUN Protocol RFC. http://www.ietf.org/rfc/rfc3489.txt • TCP NAT traversal. http://nutss.gforge.cis.cornell.edu//stunt.php • Traversal Using Relay NAT (TURN) IETF RFC • NAT Traversal Techniques and Peer-to-Peer Applications • 邓庚盛,占传杰.P2P网络中基于UDP穿透NAT技术的研究[J] • 刘向东, 潘 为.处于NAT之后的主机之间互联的方法研究 • 沈许杰.基于UDP协议P2P通信技术的分析及实现 • Blog: http://blog.csdn.net/max2008

  23. P2P之NAT穿越 Q & A

More Related