您好,欢迎来到99网。
搜索
您的当前位置:首页基于P2P的即时通信系统的设计

基于P2P的即时通信系统的设计

来源:99网
2011年第7期 文章编号:1006-2475(2011)07-0071-04 计算机与现代化 J1SUANJI YU XIANDAIHUA 总第191期 基于P2P的即时通信系统的设计 李振汕 (广西管理干部学院信息工程系,广西南宁530023) 摘要:为了有效解决传统即时通信系统的安全问题,减轻集中式服务器的负担,采用基于P2P的底层网络机制来实现即 时通信系统。与其他方法相比,其节约了成本,增强了系统的可扩展性和健壮性。从最终的测试结果来看,基本上实现 了该系统的预期开发目标,完成了基本的P2P的底层实现机制和即时通信系统的基本功能。 关键词:P2P;即时通信;消息 中图分类号:TP393 文献标识码:A doi:10.3969/j.issn.1006-2475.2011.07.020 P2P-based Design of Instant Messaging System LI Zhen—shan (Information Technology Department,Guangxi Administrative Cadre Institute of Politics and Law,Nanning 530023,China) Abstract:In order tO solve the traditional problem of instant messaging systems,to reduce the burden on centralized server,this paper uses the P2P・based underlying network mechanisms to achieve instant messaging system.Compared with other methods.it saves het cost and enhances the system sealability nd arobustness.From the ifnal test results,it achieves the development objec- ifves of the system.the basic underlying implementation mechanisms of P2P and instant messaging system’s basic functions. Key words:P2P;instnta messaging;message 0 引 言 即时通信是目前互联网最为流行的通信方式,各 种各样的即时通信软件也层出不穷。随着互联网的 发展以及3G网络的到来,即时通信的应用将更加广 即时通信的代表如QQ、MSN、Gtalk等。不管哪一种 解释,即时通信说明了一个核心的主题,那就是即时 通信是用于实时的信息交换,这些信息包括互联网上 一切可以用于传输的数据形式,如语音、视频、图像、 文本、数据流等。 泛。因此,研究并学习即时通信系统的开发技术对未 来发展很有意义。 2即时通信系统的基本原理 即时通信系统的通信过程是建立在TCP/IP和 UDP协议的基础上的,它们都是低层的IP协议上的 两种通信传输协议。在即时通信系统中,TCP/IP协 议常以字节流的形式,将传输数据经拆分、打包后,以 连续的、全双工的、可靠的方式进行文件传输,它是一 种面向连接的传输。而UDP,则以报文的形式,采用 1即时通信的概念 对于即时通信IM(Instant Messaging),不同的组 织有不同的解读,NetLingo认为IM是一种使人们能 在网上识别在线用户并与他们实时交换消息的技 术¨J。而有些则认为即时通信为一个终端服务,通 过这个终端服务,可以使两人或多人使用网络即时地 无连接、不可靠的方式进行文件传输。在IM系统 中,具体的通信过程如下: (1)在IM系统中,一般都使用UDP协议进行 “消息”的传输。 (2)当用户的机器安装了IM后,它既是服务端 传递文字信息、档案、语音与视频交流¨J。通信的形 式分为电话即时通信、手机即时通信和网站即时通 信。手机即时通信的代表如短信,飞信等,网站、视频 收稿日期:2011-01-31 作者简介:李振汕(1972一),男,广西天等人,广西管理干部学院信息工程系副主任,副教授,硕士,研究方向:计算机应 用,电子商务,网络安全。 72 计算机与现代化 2011年第7期 又是客户端。 些需要转发的数据进行任何加密,这样就会容易被人 (3)当用户登录IM时,其IM系统作为客户端连 接到服务公司的主IM服务器上。 (4)当用户看谁在线时,其IM系统又一次作为 “偷听”。而利用P2P技术的即时通信系统,不仅可 以有效地解决安全问题,也最大限度地减轻了集中式 服务器的负担,在节约了成本同时也增加了系统的可 客户端从IM的服务器上读取在线网友名单。 (5)当用户和他的在线伙伴进行聊天时,如果双 方之间的连接比较稳定,则此时的聊天内容都是以 UDP的形式在双方计算机之间传送。 (6)如果连接不是很稳定,IM的服务器将负责 “中转”他们的聊天内容。 典型的即时通信系统结构如图1所示 』。图1 中虚线代表客户端和服务器之问的通信,实线代表客 户端之间的通信。客户端和服务器之间的通信主要 包括用户登录、注册、获取好友列表和状态、发送自身 状态消息以及离线消息转发等;客户端之间的通信是 即时通信系统中真正的即时消息发送,内容可以包括 文本消息、图片以及视频等。 客 端2 图1 典型即时通信系统结构图 目前几乎所有的即时通信系统都是基于客户端/ 服务器模式的,用户在使用之前首先要登录服务器验 证用户名和密码,然后才能获取好友列表进行进一步 通信。采用这样的架构主要基于两个目的:一是为了 商业利益,即时通信提供商需要控制网络以便推行一 些增值服务;二是为了穿越防火墙和NAT,使得处于 防火墙和NAT后面的用户也能使用即时通信。 3即时通信存在的问题 就目前来看,即时通信存在两个大的问题。一是 协同工作问题,AOL的用户不能与MSN的交流,MSN 的用户不能同QQ的交流。如果要进行即时通信,则 双方必须使用相同的服务;二是安全问题,IM系统用 户之间消息的传递是以UDP的方式进行的,UDP本 身就是不可靠的传输协议,随时都有可能发生数据的 丢失。此外,在数据发送的时候,有时某些数据是需 要服务器进行转发的,而很多的IM系统并没有对这 扩展性和健壮性。 4 系统的总体设计 4.1系统的设计目标 设计一个用于互联网的基于P2P即时通信工 具,使其具有P2P的特性同时又有一般即时通信工 具都具有的功能,其设计目标主要包括以下几个 方面: (1)通信的交互过程是架构在P2P技术之上的, 没有中心服务器,也就是说,通信的实质是点对点进 行的,无须服务器中转。 (2)每一个用户都可以新建一个自己的频道即 聊天室,或是加入当前网络中已有的频道,在同一频 道的任意两个Peer之间可以进行消息、文件、共享数 据等交互。 (3)当一个新的Peer加入到网络中时,可以新建 一个频道,也可以搜索当前的频道信息,选择一个已 有的频道加入。 (4)同一频道的所有Peer之问可以共享文件,发 送、接收文件,交互文件信息等。 (5)同一频道的任意两个Peer之间可以进行私 人会话。 (6)能实现即时通信的其它功能,如界面展示、 消息提示、好友列表、登录认证等。 4.2系统总体组织结构 根据以上的系统目标,要设计一个满足以上要求 的即时通信系统,在系统的整体设计结构上应该由以 下几个层次组成。 (1)界面显示模块。 界面指的是即时通信系统在Pc上运行时所展 示的图形用户接口。根据本系统要实现的功能,除了 主界面外,每一个不同的功能对应着不同的操作界 面,这些界面都由界面显示模块来统一完成,主要包 括:开始界面、主界面、文件接收界面、私人聊天界面、 文件共享界面、文件选择对话框等。 (2)功能模块。 就整个系统而言,功能有很多,如数据交互、文件 共享、私人聊天等。在这些功能中,文件共享和私人 聊天在系统运行中,需要弹出单独的操作界面来执行 2011年第7期 李振汕:基于P2P的即时通信系统的设计 73 这两个功能。这样,就需要有的功能子模块去实 现。具体包括文件共享功能、设置共享、查看共享、频 道广告功能、私人聊天功能等模块。 . 是用户可以创建一个新的P2P频道,输入用户名称、 频道的名称和认证密码后,一个新的频道就创建好 了。登录一个P2P频道或创建一个新的P2P频道, 是本系统中Peer节点发现的基础,这些都是基于底 层的IP多播实现。 (3)消息模块。 消息模块在本系统中是一个抽象的概念,系统中 所有需要由网络发送的东西,都由消息模块来完成。 根据系统的设计目标,在消息模块中要实现的基本需 求是:频道消息、私人聊天消息、分享列表消息、文件 消息、服务消息等。 (4)网络模块。 网络模块主要用于实现底层的P2P机制,通过 (2)Peer间的即时通信功能。 Peer问的即时通信,确切地说应该是同一P2P 频道内的所有Peer间的通信,这个通信过程包括两 个方面:一方面是所有Peer间的广播通信,类似于多 人聊天室,某一Peer发布的消息,在同一P2P频道内 的其它所有Peer都能接收到此消息。另一方面是两 基于P2P的网络实现机制,使整个即时通信系统完 全架构在点对点的基础上,系统不再有中心服务器的 概念,消息在两个对等的节点之间交互,再也无须服 个Peer间的私有通信,通信过程是在两个Peer之间 进行的,其它Peer不参与这一过程,通信的消息内容 对其它Peer不可见。 (3)文件交互功能。 务器的中转和转发。网络模块主要通过多播机制来 实现的,其中网络分发主要用于通过网络来发送消 文件交互功能包括文件的发送和接收,Peer一端 息,它并不真正关心消息是否被发送出去,而具体的 消息发送由多点网络分发来完成。多点网络分发是 一可以向同一频道内的所有Peer发送文件,也可以接 收来自同一频道内的其它任何Peer发送的文件。也 就是说Peer可以在频道内广播发送的文件,这样 Peer之间可以进行任意的文件和数据的交互。 (4)文件共享功能。 文件共享功能,指的是Peer一端,可以将本地的 文件目录共享出去,这样在这个P2P频道内的其它 所有Peer都可以访问这个共享目录,也可以从Peer 列表中查看其它Peer共享出来的目录。在查看目录 的同时,也能查看共享的文件列表、文件内容等。 (5)其它功能。 除了以上的功能外,系统还提供一些其它必需的 个真正的用于发送消息的功能模块,通过多点的 这4个模块之间的结构关系如图2所示。 界面模块 登录注册界面、频道界面、 Socke ̄向网络中发送数据。 共享文件显示界面、私人会话界面… ▲ 功能模块 消息广播功能、目录共享 功能、文件的发送和接收功能… ▲ 消息模块 系统通知消息、会话消息、 IP广播消息、文件内容消息… ▲ 网络模块 网络数据的加密、IP多点广播 (节点发现)、频道信息广播… 图2 P2P即时通信系统的基本组织结构图 功能,如清屏操作的功能,就是将消息内容界面清空。 系统服务消息功能,如系统提供的一些错误的提示消 息、系统运行的状态消息、Peer节点的通知消息等,这 些也都是需要具体实现的功能。系统总体功能结构 如图3所示。 使用这种结构,可以让系统的各个部分之间形成 一种既又统一的依赖关系,这样结构设计就与设 计目标达到了有效的统一,便于模块化编程。 4.3系统功能结构 I隔 通信K剑  I共享K \『 根据设计目标的要求,P2P即时通信系统的功能 应该由以下几个基本功能模块组成。 (1)登录认证与注册创建的功能。 在程序启动后有一个登录与注册的界面,在这个 4.4系统执行流程 瑶\f  图3 P2P即时通信系统的功能结构图 界面中,用户可以有两种选择:一是可以根据当前的 频道列表显示的信息,选择当前网络中已有的一个 P2P频道,输人此频道的认证密码后,加入该频道;二 P2P即时通信系统执行流程如图4所示 ¨,它可 以大致地反映基于P2P即时通信系统的整个执行的 先后顺序和交互过程。 74 计算机与现代化 2011年第7期 善的地方,如功能单一、不能完全体现P2P的特性、 某些设计结构不合理等,这些都是需要进一步的改 进、扩展,以进一步完善其功能和特性。 参考文献: [1]管磊,等.P2P技术揭秘[M].北京:清华大学出版社, 201 1:457-482. [2] 杨天路,魏小康,等.P2P网络技术原理与c++开发案 例[ra].北京:人民邮电出版社,2008:274-275. [3] 张春红,裘晓峰,等.P2P技术全面解析[M].北京:人民 邮电出版社,2010:191—197. [4]吴功宜.智慧的物联网:感知中国和世界的技术[M].北 京:机械工业出版社,2010:237-242. [5]王雷,冯湘.高等计算机网络与安全[M].北京:清华大 学出版社,2010:163.165. [6]易平,吴越,邹福泰,等.无线自组织网络和对等网络一 原理与安全[M].北京:清华大学出版社,2009: 143.155. [7]徐恪,吴建平,徐明伟.高等计算机网络[M].北京:机械 工业出版社,2009:145.150. [8]吴功宜.计算机网络与互联网技术研究、应用和产业发 展[M].北京:清华大学出版社,2008:86.89. [9] 雷蕾.P2P环境下即时通信软件的设计[J].徐州工程学 院学报:自然科学版,2OLO(2):81-84. [10]卿琳.基于Jxta的P2P即时通信软件的Java实现[J]. 现代电子技术,2010(7):136.139. 图4 P2P即时通信系统执行流程图 [11]赵振铎.P2P即时网络技术在通信平台中的应用[J].现 代商贸工业,2010(8):282-283. 5结束语 本系统是一个基于P2P的即时通信系统,从最 终的测试结果来看,基本上实现了该系统的预期开发 目标,完成了一些简单的P2P的底层实现机制和即 [12]吴功宜,吴英.计算机网络技术教程[M].北京:机械工 业出版社,2010:81-87. [13]沈晓近.基于P2P网络的即时通信系统的研究与实现 [J].计算机与现代化,2009(11):53-56. [14]李永明.基于P2P的即时通信系统的研究[J].计算机 与现代化,2009(8):34-39. 时通信系统的基本功能。当然,系统还有很多不完 (上接第7O页) 参考文献: 的设计与实现[J].计算机工程与设计,2009,30(16): 3774-3777. [1] 范明虎,樊红,伍孝金.ASP.NET中基于RBAC的通用权 限管理系统[J].计算机工程.2010,36(1):143.145. [2]向雄.ASP.NET用户权限管理研究[J].电脑编程技巧 与维护,2010(10):35.38. [3]周小为.何斌.基于角色的授权与访问控制的研究[J]. 计算机与信息技术,2006(10):86-88. [8]林伟炬,刘列根,张字.一个通用的权限管理模型的设计 方案[J].微计算机信息,2009(15):1.3. [9]张苏,张晓艳.基于RBAC的中粒度访问控制模型及应 用[J].微计算机信息,2010(6):135.136,231. [1O]努尔买买提・黑力力,开依沙尔・热合曼,艾孜海尔・ 哈力克.灵活的混合RBAC模型及冲突解决[J].计算机 工程与应用,2010,46(36):101-104. [4】俞诗鹏.基于角色访问控制的理论与应用研究[M].北 京:北京大学出版社,2003. [5] 邢永明.一种改进的RBAC权限系统的研究与实现 [D].哈尔滨:哈尔滨理工大学,2007. [6] 刘鹏远,李彤.基于角色的权限管理的总体解决方案E J].计 算机工程与设计,2007,28(24):0333-6035,6038. [7]李昌国,杨宇科,杨春.基于动态目录树的权限管理模型 [1 1]夏冬梅.基于RBAC企业通用用户权限管理模型设计与 应用[J].网络安全与技术应用,2010(8):36—38. [12]龙际珍,宋云,晏弼成.资源相关的RBAC模型扩展[J]. 计算机应用与软件,2010(7):119—121. [13]戴莹莹.B/S结构的OA系统中基于角色访问控制模型 研究与实现[D].武汉:武汉理工大学,2006. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务