多信道环境下的P2P通信系统设计
2011-05-15李红雨
李红雨,华 宇,于 静
(1.通信网信息传输与分发技术重点实验室,河北 石家庄 050081;2.河北科技大学,河北 石家庄 050018)
0 引言
某通信网络系统由微波、散射、电台等多种无线传输设备终端构建成的综合通信网络,系统要求各个终端节点在网络内实现端到端间数据直接传输。如果采用传统的C/S通信模式进行系统设计,需设置固定服务器来专门提供数据通信服务。但该通信网络是一个分散式网络,无法提供固定服务器,可见传统的C/S通信模式不能满足系统的要求。
P2P技术是一种分布式网络模型,它不依赖于服务器而是允许用户直接连接到其他用户的计算机,实现直接的信息交换和资源的共享,因此采用P2P模式可以满足系统的要求。
1 P2P技术
根据IBM对P2P的定义域[1-4]:系统中每个节点需要同时扮演服务器与客户端的角色,系统中的用户能够意识到彼此的存在,构成一个虚拟或实际的群集。P2P技术具有以下特点:
①在P2P网络中,每个节点既是服务器又是客户机,信息的传输都是在节点之间直接进行。可以无需服务器,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个网络的负载均衡;
②P2P网络是自组织的方式建立起来的,各个节点不依赖于其他节点,网络允许节点自由地加入和离开,提供近似的即插即用特性;
③由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏时对整体网络的影响很小。因此P2P的网络架构耐攻击、高容错;
④在P2P网络中,由于信息的传输无需经过中心服务器而直接在各节点之间进行,用户的隐私信息被窃听和泄漏的可能性大大减小,具有较好的安全性。
该通信网络要求各个节点既是服务器端也是客户端,每个节点能够检测到其他节点的存在并可以与其他节点间进行直接通信。系统需要具有良好的可扩展性,各节点可随时加入、撤出网络。基于以上对P2P技术的研究可知采用P2P模式来设计系统方案能够满足系统要求。
2 P2P通信系统设计
2.1 系统网络拓扑设计
P2P网络拓扑结构模型存在3种结构模式的体系结构[6]如下:
(1)纯P2P模式
网络中没有服务器,各个节点之间构成一个分散式网络,每个用户随机接入网络,通过基于对等网协议的客户端软件搜索网络中存在的对等节点,节点之间可直接建立连接进行数据传输。
纯P2P网络结构解决了网络结构中心化的问题,扩展性和容错性较好。这种P2P网络模型优点在于允许用户设定自己的规则和建立自己的网络环境,提供近似的即插即用特性。
(2)中心文件目录模式
也称为分布式文件系统结构模式,该模式需要通过中央服务器来进行目录管理。P2P节点向中央目录服务器注册关于自身的信息(名称、地址、资源等),但所有内容存储在各个节点中而并非服务器上,查询节点根据目录服务器中信息的查询以及网络流量和延迟等信息来选择与定位其他对等点并直接建立连接。
(3)混合式P2P网络
有中间服务器,但文件目录是分布的。各节点之间可直接建立连接进行通信,网络的构建需要服务器,通过集中认证,建立索引机制。中间服务器仅用于辅助对等点之间建立连接,服务器的功能被弱化,通过分布式文件系统,建立完全开放的可共享文件目录。
该综合通信系统基于无线局域网构建,无法提供中心服务器,节点采用直接的定位方式,因此系统选择纯P2P网络结构模型,系统网络拓扑图如图1所示。
图1 系统网络拓扑图
2.2 系统结构设计
系统主要由用户界面模块、用户管理模块和功能模块等组成,该系统结构图如图2所示。
图2 基于P2P的通信系统结构图
①用户界面模块:提供节点的定位参数进行节点的网络识别,为用户提供其他节点状态,调用用户自管理模块去定位这些好友的位置,并保存用户信息,为用户提供数据传输操作面板;
②用户管理功能能模块:与用户界面间通过共享内存进行数据交换,负责将用户界面提交的操作转换给功能模块调用或者消息传递。新用户的加入、离开的请求都由用户管理模块通过功能模块来实现;
③功能模块:维护对等节点之间链路维护和创建,连接信息,它提供网络进行通信的底层拓扑结构。包括消息的发送、路由的选择及网络的底层接入。
2.3 系统通信协议设计
TCP是提供可靠服务、面向连接的协议,是目前无线网络传输协议中普遍采用的协议。系统最底层基于TCP协议进行端间直接通信,考虑到系统为无线网络组成,数据报文没有固定长度,因此在TCP协议基础上设计新协议进行通信以满足系统的需求,设计协议如表1所示。校验采用累加和校验方式,表中校验位取值是对每数据报文的帧头和数据长度共4个字节取校验所得值。数据即为用户端输入的发送消息。
表1 系统通信协议
3 系统实现
3.1 系统实现流程图
系统实现原理:若节点A想要和节点B建立通信,则A加入网络后,向网络发起广播信息,同时A开放端口监听其他节点的广播信息。A收到B的广播信息后,可以获得B的通信端口。接下来A向B发起连接请求,若此时能够建立TCP网络连接,就可以通过TCP链路进行相互通信,否则通过电台信道通信,该系统流程图如图3所示。
图3 系统流程图
3.2 系统发送线程实现
为了保证数据的高效发送,系统建立专门的发送线程提供数据发送,线程实时根据消息接收站点的在线状态进行数据发送,实现流程图如图4所示。
图4 发送线程流程图
节点运行后,即开始启动数据发送线程。如果没有待发送消息,线程进入等待新消息写入的事件。一旦有新消息进入发送队列,线程优先查询TCP链路的连接状态,判断是否可以通过TCP链路进行数据发送,如果无法通过TCP链路进行数据发送则查询电台状态。如果电台在线,则通过电台信道发送数据。如果2种链路都无法进行发送则返回无法发送消息给用户界面。用户根据返回的消息可以选择手工清除发送消息或者由线程在消息重发3次失败后自动清除。如果消息成功发送完成后线程也会自动清除本条消息。发送线程在程序退出时由程序终止。
4 结束语
该P2P系统在工程实际应用中高效率、高可靠地实现了端对端间的数据传输,经过工程检验有效可行,具有很强的实用性。可扩展性、可靠性方面的优势在工程应用中会有更大的前途,为将来在其他工程应用中使P2P技术提供了很好的范例。
[1]张联峰,刘乃按,钱秀槟.综述:对等网(P2P)技术[J].计算机工程与应用,2003,39(12):142-145.
[2]崔桂磊,高建东.实时数据交换原理及其编程实现[J].河南科技大学学报:自然科学版,2003,24(2):63-65.
[3]李祖鹏,黄道颖,庄雷,等.Peertopeer网络模型研究[J].计算机工程,2004,30(12):29-31.
[4]刘杰,王向辉.结构化P2P网络综述[J].信息技术,2007,28(6):33-40.
[5]程传慧.大型复杂组合式P2P网络系统的研究[D].武汉:武汉理工大学,2007:2-9.
[6]VTEWARI K R I.A Framewor for Classifying Peer-to-Peer Technologies,Proc.of2ndIEEE/ACM International Symposium on ClusterComputing and the Grid(CCgRID'02)[M].Texas:IEEE Society Press,2002:368-376.
[7]刘杰,王向辉.结构化P2P网络综述[J].信息技术,2007,28(6):33-40.
[8]程传慧.大型复杂组合式P2P网络系统的研究[D].武汉:武汉理工大学,2007:2-9.
[9]RATNASAMY S,FR ANCIS P,KARP R,et al.A Scalable Content-AddressableNetwork[C]//procofACM SIGCOMM'01,2001:161-172.