文档介绍:软件导刊
第9卷%第1期
2010年 1月 Software Guide Jan. 2010
一种基于第三方服务器的 P2P 穿透 NAT 的实现方法
刘娟娟1,2,陶加祥1
(,湖北武汉 430074;,湖北武汉 430074)
摘要:介绍了一种采用第三方服务器协助建立 P2P 连接的方法,对位于 NAT 之后主机进行“打洞”,可以快速有效
地对 NAT 环境中的主机建立 TCP 或 UDP 连接,从而达到穿透 NAT 的目的。实验证明该方法具有较好的实用性,具
有一定的实际应用价值。
关键词:P2P;NAT;TCP;UDP
中图分类号: 文献标识码:A 文章编号:1672-7800(2010)01-0121-02
都经由(eIP:ePort)向外发送。同样,任意外部主机(xIP:xPort)都
引言
0 可以通过给(eIP:ePort)发包来达到向(iIP:iPort)发包的目的。
(2)受限锥型 NAT(Address-Restricted cone NAT)
近年来,P2P 技术以其易扩展性、健壮性及较高的性价比
一个内部地址及端口号(iIP:iPort)固定映射到一个外部地
等特点成为互联网世界中一颗璀璨的新星, 基于 P2P 的组网
址及端口号(eIP:ePort),所有通过(iIP:iPort)发送的网络数据
模式得到了广泛而成功的应用。不用于传统的 C / S 组网模式,
包都经由(eIP:ePort)向外发送。对于任意外部主机(xIP:xPort)
P2P 的一大特点就是对等性,即网络中的节点既是客户机同时
发往(eIP:ePort)的数据包,能到达(iIP:iPort)的前提是(iIP:i-
也是服务器。也就是说,P2P 网络中的每个节点既可以主动发
Port)曾经通过(eIP:ePort)向地址为 xIP 的主机的任意端口发
起网络连接,请求其他节点提供服务,同时也可以被动响应其
送过数据包。
他节点的连接请求,为其他节点提供服务。通常,作为互联网中
(3)端口受限锥型 NAT(Port-Restricted cone NAT)
服务器的节点必须有一个确定的公网 IP 地址, 以接受其他客
一个内部地址及端口号(iIP:iPort)固定映射到一个外部地
户机的连接请求, 这即要求 P2P 网络中的每个节点都有一个
址及端口号(eIP:ePort),所有通过(iIP:iPort)发送的网络数据
确定的公网 IP 地址, 才能满足每个节点既作为客户机又作为
包都经由(eIP:ePort)向外发送。对于任意外部主机(xIP:xPort)
服务器的需求。然而,NAT 技术的广泛应用使得互联网中存在
发往(eIP:ePort)的数据包,能到达(iIP:iPort)的前提是(iIP:i-
大量没有确定公网 IP 地址的主机,如何穿透 NAT 实现对这些
Port)曾经通过(eIP:ePort)向(xIP:xPort)发送过数据包。
主机的访问是 P2P 技术必须解决的一个问题。
(4)对称 NAT(Symmetric