0
?/p>
言
集中?/p>
NAT
穿透具有单点失效的弱点
,
主要是由于中?/p>
服务器的负载和处?/p>
能力
,
遭受
DDOS
攻击
(
天网
Maze
就遇
到过
,
网络状况
,
局域网属?/p>
(
节点对外?/p>
可见
等因素导?/p>
的。在
P2P
系统?/p>
,
一些节点完全可以取代中央服务器完成
局?/p>
节点的穿?/p>
,
但是
Punching Hole
服务的节点随时可能下
?/p>
,
需要及时地动态再?/p>
举?/p>
Scale Free
网络的度分布呈现?/p>
幂次
,
故也被称为幂律网?/p>
, Scale free
网络?/p>
有良好的随机?/p>
点失效的容错性能
,
节点随机失效对整体连通度影响不大?/p>
本文?/p>
合上述思想构建?/p>
Power Traverse (PT
系统
,
一种在?/p>
?/p>
P2P
环境下实?/p>
NAT
穿?/p>
的构架?/p>
1PT
系统整体框架
PT
中每?/p>
Peer
都被赋予了主动者?/p>
被动者和帮助?/p>
3
个角色?/p>
(1
主动?/p>
,
?/p>
是发起建立一个穿透通道的对?/p>
,
主要?/p>
能是接受本地用户的穿透请?/p>
,
然后申请
PT
构建一个到具有
上层客户所指定
用户
ID
?/p>
Peer
的穿透通道。主要动作有?/p>
帮助者上查找相应
ID
的传输地址
,
?/p>
始化通道的标?/p>
,
运行
主动端穿透状态机?/p>
(2
被动?/p>
,
它是响应并执行一个穿透通道请求的对?/p>
,
?/p>
要功能是接受网络?/p>
对本
Peer
的穿透请?/p>
,
然后根据解析?/p>
据包中的具体信息
,
构建一个相应的穿透?/p>
道的终端。主?/p>
动作是解析主动端和帮助者的数据?/p>
,
分析
,
然后建立穿透?/p>
道终
?/p>
,
运行被动端穿透状态机?/p>
(3
帮助?/p>
,
它主要有两个职能
,
一个是接受任何其它
Peer
注册在其上的注册?/p>
?/p>
,
它又包括一个心跳服务器模块
,
主要
判断注册在本
Peer
的其?/p>
Peer
是否已经?/p>
?/p>
;
另一个是完成
每一对需要互相间穿透的
Peer
间的
punching hole
协议的通信
?/p>
?/p>
[4]
。针对每一?/p>
Peer
的穿?/p>
,
帮助者都建立一?/p>
relay
?/p>
?/p>
,
负责那对
Peer
的中
转服?/p>
,
这主要是因为?/p>
UDP
通信?/p>
,
任何两个
Peer
间的通信都很容易丢失
,
重传