实现NAT穿越的P2P即时通讯技术研究.pdf
文本预览下载声明
实现 NAT 穿越的 P2P 即时通讯技术研究
袁健 隋树林 张文霞
青岛科技大学 自动化与电子工程学院 山东 青岛 (266042)
E-mail:jyuanjian801209@163.com
摘 要: 本文介绍了基于 internet 的 P2P 网络技术和 NAT 基本原理,提出了通过一台
internet 注册服务器,利用 UDP 实现 P2P 网络穿越 NAT 的即时通讯技术,并给出一个通讯
程序仿真实例。
关键字:P2P, NAT,UDP
1 P2P 网络简介(introduction)
P2P技术[1,2]源于局域网共享,其目标是改变人们通过服务器中转交换文件的传统方式,
达到自由交换资源的目的。IBM为P2P下了如下定义:系统由若干互联协作的计算机构成,且
至少具有如下特征之一:系统依存于边缘化 (非中央式服务器)设备的主动协作,每个成员
直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角
色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。P2P网络是互联
网整体架构的基础,互联网最基本的 TCP/IP协议并没有客户端和服务器的概念,在通讯过
程中,所有的设备都是平等的一端。P2P 技术改变了 “内容”所在的位置,使其正在从 “中
心”走向 “边缘”,也就是说不再如C\S模式将内容存于主要的服务器上,而是存在所有用户
的 PC 机上。广义的P2P 网络[1,2] [9]
将 P2P网络划分为纯分散式 P2P网络(如gnutella模型 )、
超级结点式网络和混合式 P2P网络[7] 等大类。
本文所讨论的通讯技术属于混合式 P2P 网络,各节点之间可以直接建立连接,但网络
的构建需要服务器,通过集中认证,建立索引机制。但是这里的服务器仅用于辅助对等节点
之间建立连接,对等节点之间直接进行通信,这不同于 C/S 模式中的服务器。如图 1 所示:
搜索请求→
本地搜索
←返回结果
搜索请求→
索引服务器
←返回结果 搜索请求→
节点A
索引服务器
←返回结果
↑ 建 ↑ ↑
搜 搜
传 立 返 返 索引服务器
输 连 回 索 回 索
请 请
数 接 结 结
求 求
据 ↓ 果 ↓ 果 ↓
本 本
机 机
节点B 搜 节点C
显示全部