APP下载

基于P2P网络模型的即时通信软件的研究与设计

2016-05-23郭庭跃杨德仕

中原工学院学报 2016年1期

郭庭跃, 杨德仕

(1.河南省电子产品质量监督检验所, 郑州 450000; 2.中原工学院, 郑州 450007)



基于P2P网络模型的即时通信软件的研究与设计

郭庭跃1, 杨德仕2

(1.河南省电子产品质量监督检验所, 郑州 450000; 2.中原工学院, 郑州 450007)

摘要:分析了P2P网络模型应用于信息共享存在的问题,提出了一种基于传统分包策略、以数据包数量为节点优先级的节点传输模式,并基于此设计开发了一种基于P2P网络模型的即时通信软件系统。此外,还对混合型P2P网络模型的节点发现机制、路由机制以及文件传输机制进行了讨论。

关键词:P2P; 即时通信; 网络模型

互联网技术的迅猛发展影响着人们的生活方式,各种网络元素也渗透到人们的日常生活中。在此过程中,网络人际交互成为现代社会人际交往的一种最新、最时尚、最便捷、最多元化的方式,即时通信软件也成为网民最常用的网络工具之一。

目前,网络语音传输的应用方案一般有两种:一是采用客户/服务器(C/S)模型,另一种就是P2P网络模型。传统的聊天工具通常把所有程序放在服务器上,用户通过客户机的浏览器程序上网聊天,聊天内容是开放的,保密性较差。P2P技术的特征之一就是弱化了服务器的作用,甚至取消了服务器,使用户实现对等访问。P2P模式在数据发布和数据封装等方面表现更为出色,具有可扩展性、耐攻击、高容错、高性价比、隐私保护好等特点,其端到端定位、识别技术、握手技术、高效搜索策略等关键技术广泛应用于信息共享、电子商务、即时通信、网络存储、协同工作等领域[1-2]。

考虑到目前对音频和视频即时通信的需求以及传统设计模式的服务器瓶颈问题,本文采用P2P技术进行即时通信软件的开发研究。采用P2P技术既可以通过充分利用网络中的带宽资源和边缘资源来提高系统的数据通信效率,又可以克服服务器性能瓶颈问题,同时,在没有服务器的系统中,使黑客的攻击目标分散,提高了系统的安全性。

1P2P信息共享存在的关键问题及解决方法

P2P是一种不经过中继设备交换数据的对等互联网络技术,它打破了传统的客户机/服务器模式,但也存在一些问题。

1.1通信问题

由于系统用户分散在各个地方,在所有时刻通信频率都非常高。而P2P系统中上传和下载文件占据了绝大部分网络的带宽,过多的上传和下载操作可能会影响到各节点之间的通信。一个好的解决方法就是延长一些活跃节点的连接时间,在一定时间内减少连接的次数[3]。

1.2安全问题

在P2P系统中,安全问题非常重要。由于P2P系统的主要用户是个人,因此,用户要能够通过防火墙找到其他用户。所有没有被其他协议占用的端口都可用,但在防火墙上开放任何端口都是不安全的。比较好的解决方法是设置静态端口或私有端口。本文通过设置静态端口来解决这个问题。

1.3搜索问题

搜索算法的好坏直接影响P2P系统的性能。寻找最优的搜索算法是目前P2P技术的难点,也是研究的热点[4]。为了提高搜索效率,把搜索分成两步:首先是基于服务器端的搜索,其次是基于客户端的搜索。假设基于服务器端的平均搜索时间为M,基于客户端的平均搜索时间为N,则一次性搜索的总时间为M×N,而分步搜索的总时间为M+N,在M>2,N>2时,分步搜索的效率比一次性搜索的效率有了很大的提高。

1.4文件的传输问题

在P2P文件共享系统中,用户最关心的是如何传输文件,如何提高文件的下载速度。目前普遍的方法是分包传输,而分包策略是分包传输的关键。制定一个合理的分包算法一直是人们研究的热点,也是本文的研究重点。

传统的分包策略是将数据进行等量分割,每一段数据用唯一的标志进行标注,然后把数据包分散到各个节点上,当用户下载文件时再把各段数据按规定的顺序重新组合起来。但如何把数据包分配给各节点,一直是个难题。传统的解决方法是根据带宽来分配数据段。但网络的实际带宽通常受网络状况、软件性能等影响。

本文在传统分包策略的基础上引入了节点优先级的概念,节点根据其拥有的文件包的数量被赋予不同的优先级,文件包分成不同的优先级。用户开始下载文件时,首先从优先级较高的节点开始,此节点剩下的

文件子包被赋予更高的优先级。服务器定期计算所有节点的数据量。这样,任何节点都可以尽快地获取完整的文件,系统中的种子数量不断增加,大大提高了下载速度。

2基于P2P网络模型的即时通信软件系统的设计

系统共有五大功能模块,分别是用户操作模式(包括文件操作模式和流媒体操作模式)、文件共享、流媒体共享、监听登录及服务器IP设置。

进行系统设计时,为了使各部分都能够更好地实现通信功能,针对各部分采用了不同的开发工具:服务器采用ASP技术,客户端采用C#,数据库采用 SQL Server 2000,服务器与客户端的通讯采用XML。采用XML的好处是它支持目前所有的编程语言。

3基于P2P网络模型的即时通信软件系统实现

系统由五大模块组成,分别是用户登录、用户列表维护、监听端、浏览器端和服务器端。系统结构如图1所示。

3.1用户登录

用户登录时,先获得一个监听端远程的IP地址来调用登录界面,再确认用户的ID、IP地址及远程IP是否相符。如果不相符,系统就自动为登录失败创建一个XML响应;如果登录成功,系统就创建数据库连接,把相应的数据写入数据库。

3.2用户列表维护

此模块的功能主要是产生一个XML文档,该文档用来显示正在监听的用户。这是整个目录服务器的关键,它需要不停地把更新过的数据库用户信息列表中的用户姓名和IP地址通过XML文档显示给正在监听的用户。因此,当系统规模不断扩大,登录和退出越来越频繁时,服务器难免会成为整个系统的瓶颈。

3.3客户监听端控件

客户监听端的首要功能就是登录服务器。当打开系统时,首先要发布消息证明自己已经登录。登录以后,监听端可以处理来自客户端的请求,而且支持多线程。一个监听端在下载文件的同时,还能处理多个客户端的请求,这时监听端具有服务器的功能,而且具备搜索功能。相对于基于服务器的搜索,监听端搜索的效率大大提高。基于服务器端的搜索,首先要搜索目标用户,但在一个成千上万的P2P系统中,要搜索出目标用户是非常费时的。

监听端登录服务器时,要从share.ini(系统自动生成,用来保存所有共享资源的信息)文件读取所有相关信息,将其和用户名及IP地址一起发送到服务器,并调用服务器登录模块。当调用成功时,服务器就会响应监听端的请求,并对登录用户进行认证。具体过程如图2所示。

图2 监听流程图

3.4浏览器端

浏览器端界面是用户直接与计算机对话的界面。通过浏览器,用户可以向监听端发送请求,并接收监听端的响应。浏览器端主要是显示正在监听的用户的名单,并发送请求;而监听端主要是在后台处理这些操作,并显示这些监听端处理后的信息。

(1)文件共享。此功能伴随系统的整个生命周期。监听端可以选择任意存在于电脑上还没有共享的文件,但不允许进行两次共享。

(2)文件搜索。文件操作中有一项功能是搜索。系统首先从服务器得到用户列表并显示在客户端,然后根据用户的搜索条件自动去数据库搜索。文件搜索分基于服务器端的搜索和基于客户端的搜索。基于服务器端的搜索主要是搜索拥有自己所需资源的目标节点,而基于客户端的搜索主要是在确定的节点上搜索相关的资源。

(3)文件下载。首先,浏览器端和监听端对文件进行初试化,一旦从服务器中找到拥有自己所需资源的用户,服务器就让用户之间建立连接,直接进行通信。用户端选择服务器所提供的资源,首先要确认所选择的文件是否有效。如果文件有效,则文件的名字、大小等信息就从相应的存储数组中解析出来并下载,此时目录服务器的工作仅仅是记录已经下载的资源。

(4)文件上传。上传请求一旦发送出去,监听端就打开网络流跟客户端进行通信。首先,监听端把文件写进数据流中,同时,浏览器端开始从网络中读此数据。整个读写过程一直持续下去,直到没有数据可读,上传过程即结束。上传文件之前,客户端也要对其进行初始化。一旦决定要上传,首先确认所选择的文件夹是否有权限上传,有权限即上传;否则会提示出错,上传过程即终止。

(5)服务器端。服务器端的主要功能是存储正在监听的用户的IP地址、用户名信息及共享资源的详细信息,但并不提供下载服务。最终,在后台数据库中生成用户信息列表和共享资源信息列表。在服务器的基本功能中,最重要的两大功能是用户登录和用户列表管理。

4结语

本文对P2P技术应用于信息共享存在的问题进行研究,并设计开发了基于P2P网络模型的即时通信软件系统,具有用户操作、文件共享、监听登录、设置服务器IP地址和系统关闭功能等特性。此外,针对目前很多网络用户只热衷于享受快速而又丰富的网络资源,却不愿意与别人一起分享自己的资源这一问题,软件设计中把文件的下载和上传分离,当只关闭下载功能时,用户可继续监听网络,继续为其他用户提供资源。

参考文献:

[1]雷葆华,杨明川. P2P网络的关键技术和应用[J]. 网络信息,2005 (4):32-37.

[2]乐光学. 基于Gnutella协议的P2P网络路由搜索算法Light-flooding[J]. 计算机工程, 2005, 31(11): 112-114.

[3]乐光学. 基于Region多层结构P2P计算网络模型[J]. 软件学报,2005, 26(6): 1140-1150.

[4]曹静霞. 基于推荐策略的P2P资源搜索算法研究与实现[J]. 计算机应用, 2005,25(8):1740-1743.

(责任编辑:张同学)

Instant Communication Software Design Based on P2P Network Model

GUO Ting-yue1, YANG De-shi2

(1.Henan Electronic Product Quality Supervision and Testing Institute, Zhengzhou 450000;2.Zhongyuan University of Technology, Zhengzhou 450007, China)

Abstract:In this paper, the problems of P2P technology for information sharing are analyzed.By introducing a nodes priority transmission mode based on the number of packet,instant communication software based on the P2P network model is designed and developed, which includes user operation, file sharing, listening login, setting the server IP address, system shut down and so on.Moreover, the nodes discover mechanism, route mechanism and file transmission are discussed too.

Key words:P2P; instant communication; network model

中图分类号:TP393

文献标志码:A

DOI:10.3969/j.issn.1671-6906.2016.01.022

文章编号:1671-6906(2016)01-0092-04

作者简介:郭庭跃(1977-),男,河南宝丰人,工程师,主要研究方向为网络技术。

收稿日期:2015-12-12