基于UDP打洞的纯P2P模式的网穿透构架与算法概要

0引 言

集中式 NAT 穿透具有单点失效的弱点, 主要是由于中央 服务器的负载和处理能力, 遭受 DDOS 攻击 (天网 Maze 就遇 到过 , 网络状况, 局域网属性 (节点对外不可见 等因素导致 的。在 P2P 系统中, 一些节点完全可以取代中央服务器完成 局部节点的穿透, 但是 Punching Hole 服务的节点随时可能下 线, 需要及时地动态再选举。 Scale Free 网络的度分布呈现负 幂次, 故也被称为幂律网络, Scale free 网络具有良好的随机节 点失效的容错性能, 节点随机失效对整体连通度影响不大。 本文结合上述思想构建了 Power Traverse (PT 系统, 一种在完 全 P2P 环境下实现 NAT 穿透的构架。

1PT 系统整体框架

PT 中每个 Peer 都被赋予了主动者、 被动者和帮助者 3个角色。 (1 主动者, 它是发起建立一个穿透通道的对象, 主要功

能是接受本地用户的穿透请求, 然后申请 PT 构建一个到具有 上层客户所指定用户 ID 的 Peer 的穿透通道。主要动作有到 帮助者上查找相应 ID 的传输地址, 初始化通道的标识, 运行

主动端穿透状态机。

(2 被动者, 它是响应并执行一个穿透通道请求的对象, 主 要功能是接受网络上对本 Peer 的穿透请求, 然后根据解析数 据包中的具体信息, 构建一个相应的穿透通道的终端。主要 动作是解析主动端和帮助者的数据包, 分析, 然后建立穿透通 道终端, 运行被动端穿透状态机。

(3 帮助者, 它主要有两个职能, 一个是接受任何其它 Peer 注册在其上的注册服务, 它又包括一个心跳服务器模块, 主要 判断注册在本 Peer 的其它 Peer 是否已经掉线; 另一个是完成 每一对需要互相间穿透的 Peer 间的 punching hole 协议的通信 转发 [4]。针对每一对 Peer 的穿透, 帮助者都建立一个 relay 对 象, 负责那对 Peer 的中转服务, 这主要是因为在 UDP 通信下, 任何两个 Peer 间的通信都很容易丢失, 重传

需要在主动者和 帮助者以及帮助者和被动者间频繁出现, 维护一个 relay 对象 主要是为了重传的状态考虑, 而不仅仅涉及到协议消息的转 发, 此 relay 对象运行穿透帮助状态机。

另外, PT 还有两个重要的通用模块, 它们主要是起协助 穿透的作用 [5]:在每一个 Peer , 都有一个注册者模块, 它定期向 某一个 Peer 发起注册请求, 向该 Peer 报告自己的在线状态; 一

收稿日期 :2007-09-22E-mail :leik@szpku.edu.cn

基金项目 :深圳市科技计划基金项目 (QK200605 ;深圳市南山区科技计划基金项目 (K2006084 。

作者简介 :雷凯 (1976- ,男,湖南长沙人,硕士,讲师,研究方向为网络通讯、互联网搜索引擎、 P2P 技术; 梁冰 (1981- ,男,硕士研究 生,研究方向为计算机网络。

基于 UDP 打洞的纯 P2P 模式的网穿透构架与算法 雷 凯, 梁 冰

(北京大学 深圳研究生院,广东 深圳 518055 摘 要 :

基于 UDP 打洞的 NAT 穿越技术一般需要架设专用中央服务器 [1], 该方法在扩展性、 可靠性、 灵活性和性能上都存在 局限性。通过对天网 Maze [2]P2P 节点的网络属性分析, 动态选举合适节点替代专用服务器来完成节点在不同内网之间的穿 透, 形成一种可扩展网络 [3]。从而提出了在纯 P2P 模式解决 NAT 穿越的构架, 增强了系统的健壮性和失效调节能力。 关键词 :

内网穿透 ; UDP 打洞 ; 纯对等网络 ; 可扩展网络 ; 幂数分布 中图法分类号 :TP393.02文献标识码 :A 文章编号 :

1000-7024(2008 18-4644-04NAT traverse architecture based on UDP punching hole in pure P2P environment and its algorithms LEI Kai, LIANG Bing

(Shenzhen Graduate School, Peking University, Shenzhen 518055, China Abstract :NAT traverse technology based on the method of UDP punching hole generally relies on central servers to help [1]. After analysis of P2P peers' network attributes in Maze system [2], dynamically electing appropriate peers to help network traverse for peers in different NATs just as those central servers , that forms a scale-free network [3]. As a result, the architecture of pure P2P model based NAT traverse is presented, which improved its robustness and fail-over ability.

Key words :NAT traverse; UDP punching holes; pure P2P network; scale-free network; power law

2008年 9月 计算机工程与设计 Sept. 2008

第 29卷 第 18期 Vol. 29 No. 18

Computer Engineering and Design

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4