Download presentation
Presentation is loading. Please wait.
1
P2P通信之 ——UDP穿越NAT方案的讨论
学术交流 第53期 P2P通信之 ——UDP穿越NAT方案的讨论 周红敏 哈理工 网络信息中心
2
Agenda P2P之NAT穿越 NAT产生的背景 NAT的分类 问题之所在 各种解决方案
3
P2P之NAT穿越—NAT产生的背景 为了解决IP地址日渐不足的问题,RFC1918为私有和内部使用的网络留出了3个IP地址段(A类、B类和C类地址范围各一段),在此范围内的地址将不被Internet主干路由 A类: ~ B类: ~ C类: ~
4
P2P之NAT穿越—NAT产生的背景 私有IP地址有它的缺点,那就是使用私有IP地址的用户将无法访问Internet。这就需要使用网络地址转换 NAT(Network Address Translation),根据RFC1631的定义,这是将IP数据包包头中一个地址转换为另一个地址的过程,NAT让使用私有IP地址的主机能够访问Internet。利用NAT转换功能可以更有效地利用IP地址资源,进而解决IP地址短缺的问题。在将私有IP转换为合法IP的动作中,通常由防火墙或 路由器担任IP转换的功能。 “节流”技术。目前已经提出了的或者已经使用的提高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, /12, /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端到端的透明性。
5
P2P之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 ) M A,b P X,y S
Private Public 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(地址限制圆锥型 ) M P,q A,b P,r X,y S X X
Private Public 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(端口限制圆锥型 ) M,n P,q A,b P,r
Private Public M,n P,q A,b X 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(对称型) M,n C,d P,q A,b P,r X,y S X X
Private Public C,d M,n P,q A,b X 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
P2P之NAT穿越—问题之所在 Public 节点无法穿过NAT访问Private节点 X Private Public UDP包
Private host IP : 192 . 168 1 223 UDP包 X NAT 技术在缓解IPv4 地址紧缺问题、构建防火墙、保证网络安全等方面都发挥了重要作用。然而,NAT 设备的广泛存在却给Internet 上的主机,特别是处于不同内网中的主机进行P2P 通信带来了障碍,限制了P2P 的应用。 NAT 阻碍主机进行P2P 通信的主要原因是NAT 不允许外网主机主动访问内网主机,这使得Internet 上具有公网IP 地址的主机不能主动访问NAT 之后的主机,而位于不同NAT 之后的主机之间更是无法相互识别因而不能直接交换信息。因此,要在目前的网络环境中进行有效的P2P 通信,就必须研究相应的方案来穿越NAT。 Firewall /NAT NAT 阻碍主机进行P2P 通信的主要原因是NAT 不允许外网主机主动访问内网主机,这使得Internet 上具有公网IP 地址的主机不能主动访问NAT 之后的主机,而位于不同NAT 之后的主机之间更是无法相互识别因而不能直接交换信息。因此,要在目前的网络环境中进行有效的P2P 通信,就必须研究相应的方案来穿越NAT。
11
P2P之NAT穿越—UDP Hole Punching
Private Public Private host IP : 192 . 168 1 223 UDP包 Public host IP: Firewall /NAT 这个内网的NAT上打了一个方向为 的“洞”,(这就是称为UDP Hole Punching的技术)以后 就可以通过这个洞与内网的 联系了,但是其他的IP不能利用这个洞。
12
P2P之NAT穿越—UDP Hole Punching
UDP Hole Punching Technology: 在没有活动的时候,这个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 3 host B Local network host A
15
P2P之NAT穿越—STUN STUN(Simple Traversal of UDP Through Network) Solution
Main Internet rendezvous Server 1 2 NAT NAT Local network Local network host B host A
16
P2P之NAT穿越—STUN STUN的优点: STUN的局限性: 无需现有NAT设备做任何改动 可在多个NAT串联的网络环境中使用
需要终端支持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 通 过 Relay 穿越NAT的方式: 私网终端发出的报文都要经过TURN Server进行Relay转发 Local network host B host A
18
P2P之NAT穿越—TURN TURN的优点: TURN的局限性: 无需现有NAT设备做任何改动 可在多个NAT串联的网络环境中使用
支持Symmetric NAT 支持TCP连接的穿越 TURN的局限性: 需要终端支持TURN CLIENT的功能 所有报文都必须经过TURN Server转发,增大了包的延迟和丢包的可能性
19
P2P之NAT穿越—Summary NAT 1 F R PR S SR 2 NAT 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
ICMP是“Internet Control Message Protocol”(Internet控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用
21
P2P之NAT穿越—Result NAT 1 F R PR S SR 2 NAT 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 STUN Protocol RFC. TCP NAT traversal. Traversal Using Relay NAT (TURN) IETF RFC NAT Traversal Techniques and Peer-to-Peer Applications 邓庚盛,占传杰.P2P网络中基于UDP穿透NAT技术的研究[J] 刘向东, 潘 为.处于NAT之后的主机之间互联的方法研究 沈许杰.基于UDP协议P2P通信技术的分析及实现 Blog:
23
P2P之NAT穿越 Q & A
Similar presentations