家教冯杰的文章专栏 |
---|
基于P2P技术在校园即时通信系统的应用
发表于:2013-09-08阅读:126次
|
基于P2P技术在校园即时通信系统的应用
摘要 在网络技术高度发展的二十一世纪,即时通信(Instant Message,简称 IM)已经成为时下最流行的一种通信手段。它是一种实时通信方式,建立在因特网和其它有线、无线网络基础之上。基于 P2P 的即时通信技术的应用,已经非常普遍的融入到我们日常生活,它通过通信子网构建了虚拟的网络社区,使人们可以在这个网络社区里实时的进行交流。由于即时通信方式在交互性和性价比上都远远优于传统的通信方式,因此广泛应用于我们日常生活工作等各个领域。 基于 P2P 技术的校园 IM 系统,是在用户和服务器间使用服务器/客户端模型,使用微软基础类(Microsoft Foundation 关键字:P2P技术,即时通信,TCP/IP
ABSTRACT With the rapid development of network Campus communication of the bottom, the transport layer using Key words: peer to peer, instant
引言 即时通信简称 IM,全称为 Instant Messaging,它是指两个以上通信节点使用因特网来传递消息,传递信息的方式有很多种,如:语聊、视频、共享传输文件等。现在大部分的即时通信软件都能支持多节点的在线网络会议。 在我国网络刚刚流行之初,我们通信的主要方式的电子邮件和论坛,那个时 候大家已经感觉到比写信和打电话时代方便多了,但是随着计算机技术的发展和 网络不断普及,这种交流方式也逐渐被大家所厌倦,随着 IM技术的发展,即时 通信系统就应运而生。第一个 IM 软件是 ICQ,它由以色列的 Mirabilis 公司研制,但是并没有非常流行,后来,腾讯公司的 QQ 就源于 ICQ,引进中国以后风靡至今。IM 技术的诞生,彻底颠覆了传统的交流和通信模式,即时通信方式已经成为我们日常生活中非常重要的通讯手段了。IM 系统在互动、实时和价格方面占有绝对优势,在我们日常工作学习中使用 IM 工具,可以快速方便的沟通和交流,不论相隔多远,都可以传输文件,相互视频。随着网络技术的进步,即时通信技术也在日新月异的发展,目前还能实现远程控制、微信等新的通信方式。
一、P2P关键技术的介绍
P2P 是英文 Peer-to-Peer(对等)的简称,又被称为“点对点”。是一种网络新技术,也是一种新思想,它的诞生改变了整个互联网,和传统的网络模式不同,它不完全依赖服务器,而是根据网络中使用者的计算力和网络带宽,在这种网络模式下,使用者既承担了下载的任务还承担了上传的任务,兼有双重身份,所以网络上的使用者越多下载速度越快。 P2P 网络和以往网络的重要区别是:改变了互联网上的数据的存取方式,以前的网络中主要是客户端/服务器模式(简称:C/S 模式),数据都存放在服务器上,客户端都需要从服务器上读取数据,P2P 网络让数据从中心走向边缘,通俗的来讲,就是数据信息不是存放在服务器上,而是存放在网络中所有用户自己的电脑上。基于 P2P 的网络是一种分布式的 Internet,每个节点的地位在网络中都是一样的,它有着分布式网络的一些特点,图 1-1 是 C/S 和 P2P 网络模型对比图。
P
P P P P P C C C C C C S
=客户端 P S =服务器 =Peer
图1-1 C/S 模型与 P2P 模型对比图
传统的 C/S 网络的缺点是:由于它是以服务器为核心的,当数据突然增大时,服务器会超负荷运行,必然影响网络传输速率,如果服务器损坏,整个网络就崩溃了。此外,当多个用户同时向服务器发出请求信号时,因为服务器就一个,所以不可能立刻响应用户,后果就是会增加网络延迟并降低资源利用效率。而 P2P网络中的所有结点都可以充当服务器的功能,也可以充当客户端的功能,大大提高了系统的性能,解决了网络传输中的瓶颈问题,提高了资源使用率。 综上所述,P2P 网络主要有五个特性: (1)可扩展性:在由用户节点组成的 P2P 网络中,当需要扩大网络用户量的时候,我们可以直接在网络中安插结点,因为是 P2P 模式,所以也不会给网络造成瓶颈,在理论上扩充没有上限。 (2)健壮性:因为基于 P2P 的网络中的各个节点之间是平等的,所以当某个点遭到破坏或者自然损坏时,其它节点能够自动调整整体拓扑结构,从而保障了整个网络的畅通。 (3)高性价比:一方面,由用户节点组成的 P2P 网络可以有效利用网络中散布的大量普通用户节点的空闲资源,而不需要服务器或者需要很少服务器支持来实现其各自的应用。P2P 网络可以自动检测其中的空闲节点,为其分配计算或数据分析任务,有效的利用了闲置资源,使系统在海量数据传送,性能等方面明显提高。 (4)流量均衡:在 P2P 网络中的不同位置,各个对等节点上配置了不同的硬件资源和数据内容,从而可以保障了整个网络的流量均衡。 (5)自组织、低成本:在 P2P 网络非中心化架构的模型中,没有中心管理者,普通对等节点用户也不需要高深的计算机知识。
二、校园即时通信系统的设计
2.1 校园即时通信系统架构 在网络日趋普及的今天,很多高校都将网络引入到日常教学中去,加大整个 校园的数字化建设的步伐,通过使用多媒体技术和网络技术相结合的教学模式, 能够实现数据共享和文件分享、从而大大提高了教学效率、还能帮助学生进行人 际交往等。基于 MFC Socket 技术实现的用于校园内部 TCP/IP 协议的即时通信 系统,该系统是基于 P2P 技术进行通信的。P2P 架构模型采用了传统的客户端/服务器(C/S)架构,而每个客户端之间或者服务器之间连接的建立和数据的传输均采用了对等节点的方式进行通信,并且用 ADO(Active Data Objects)技术实现对数据库的操作与管理如图 2-1 所示:
图 2-1 即时通信系统的技术架构 IM 系统采用了 C/S 模型,调用微软基础库类(MFC)中的 CAsyncSocket 类 和它的衍生子类以完成底层的通讯,在底层,使用 UDP(面向非连接的用户数据报协议)来直接通信,有利于客户端之间的直接通信,也可以高效的传输数据。 而对于要求传输高可靠性的信息数据,底层协议利用了面向连接的传输控制协议 TCP。 在服务器中,设置数据库储存用户信息以及相关的好友信息及其它相关数据, 服务器端使用关系数据库管理系统—SQL Server数据库,但是客户端却采用Access数据库。用户访问数据库时利用了微软的存取数据源的 COM 组件—ADO (ActiveX Data Objects)技术,因为对数据库的操作比较简单,因此没有对应的应用界面,而是使用了 SQL 语句直接访问数据库。 基于 P2P 技术的校园即时通信系统主要由服务器和客户端两部分组成,该 系统的结构如下面 2-2 图所示。 服务器处理过程如下:首先,服务器启动,启动后便侦听用户的请求,如果没有,则进入空闲等待状态;一旦侦听到用户的请求,服务器便立刻发出一条确认消息,紧接着服务器会建立一个线程,该线程会根据用户传送的数据要求来接收并处理数据,如果用户想要数据处理结果,则服务器将处理好的数据结果发送给用户,数据处理结束后,结束进程。由于服务器建立的线程是可以并行执行的,所以服务器能够实时处理多个用户的数据请求,这就避免了因处理某个用户的请求,而忽略其它用户的请求问题。
图2-2校园即时通信系统架构
客户端处理过程如下:在用户登陆客户端的时候,如果以前注册过,则可以 直接输入用户名和密码登陆,如果没有注册过,首先在登陆窗口中选择注册新用 户,再注册完毕后即可登录客户端。用户在登录时可以选择登录服务器之后显示 的状态,可以选择是否隐身登录。成功登录服务器之后,客户端将从服务器数据 库中下载用户的好友信息及好友状态信息,而且根据好友在线与否将以不同的显 示方式显示。如果用户的好友上线,服务器将通知用户,同样用户的好友离线, 服务器也将通知用户。客户端的用户登陆后,可以给离线或者是在线的好友发送 消息,可以查看在线好友及其个人信息、搜寻在线用户以及发送广播消息等功能。 客户端为了方便用户操作,它首先提供了一个良好的图形界面,登陆客户端后,它便从服务器上下载该用户的所有信息,然后在服务器里搜寻用户好友的 Port端口号以及好友的 IP 地址,在完成这些工作后,该用户就能够与其好友进行视频对话和语言文字对话。客户端软件主要功能是:根据不同的用户需求,给服务器传送不同类型的请求,在收到服务器的回应后,以合适的方式呈现给客户端的用户。
2.2 系统用例分析 本系统主要有两类用户,一类是系统管理员和通信软件使用用户,其中管理 员拥有数据库管理权限、学校部门组织结构权限、用户调整权限。另一类是是通 信软件使用用户,拥有消息处理、资源共享、群组管理权限。 管理员拥有的权限比较大,可以对整个系统的数据库进行操作,也可以对所 有用户进行所需调整,其用例图如下图 2-3所示:
图2-3 管理员用例图 相对与管理员,大部分使用者都是拥有普通用户权限,此类用户直接可以进行资源相互共享,也可以建立自己的群并对其进行管理,还可以对自己的聊天信 息做相应简单处理(如删除等),此用户的用例图如下图 2-4 所示:
图2-4 用户用例图
三、基于 P2P 校园即时通信系统实现原理
3.1 校园即时通信系统模块实现原理 3.1.1 登录模块 登录模块功能是对等节点开始运行时需要登录的模块,根据模块的功能不同分成如下两大类: (1)身份验证 在登录功能模块中,身份认证仅仅作为初次登录时对其身份合法性的认证。 认证是用来确保登陆者身份的正确以及合法性,认证的方法有很多种的:传统的 办法是使用用户名和密码,但是这种办法存在着很多的安全问题。用户名和口令 都以明文的形式传递,并且以明文的形式保存在服务器上的,这是非常危险的, 现在的基于用户名、口令密码的认证技术都要加密口令。 认证方法中还有一种流行的是基于证书的认证,即公钥基础设施(Public Key Infrastructure,PKI)系统。证书认证也叫数字证书、身份证书,指的是一种 用数字签名和具有身份信息公钥绑定的电子文档。在典型的 PKI 认证系统中,签名由签权认证中心(Certification Authority,CA)发布,CA 中心负责为用户分配公钥和私钥对,对用户身份验证成功之后将私钥分配给对等节点用户,当节点 A与节点 B 通信时,A 将消息用其私钥加密发送给 B,B 根据消息发送者声明的身份向 CA 签名授权中心验证,CA 将 A 的证书用 CA 的私钥加密发送给 B,B 用 CA的公钥解密得到 A 的公钥和身份,用此公钥解密发送者的消息,如果能够解密出来则可以证实 A 身份的真伪。 在基于 P2P 的校园 IM 系统中,身份认证使用了初次设置密码口令的方法来确认身份。即如果是初次启动校园即时通信软件对等节点客户端,系统便立刻弹出一个界面,在该界面中输入你的账户名和密码等相关数据,这些信息就被保存在本地系统为该用户建立的相应目录文件夹中。当该用户节点再次登录时,IM 系统便会自动弹出提示窗口,要求用户输入注册时用的名字以及对应的密码,当你再次填写你的账户名及对应的密码信息后,系统立刻调用本地存储的用户信息来校验,只有当信息正确时,用户才能登录成功,否则系统会提示密码或者用户名不符等错误,拒绝登录。 (2)平台初始化 这个模块在系统中的主要任务是:默认启动对等节点,加载默认设置,对等 节点用户启动后,便进入到默认的 Work Group 群组里,这是每个要进行通信的节点首先必须完成的事情。基于 P2P 校园的 IM 系统的登录流程如图 3-1 所示:
图 3-1 校园即时通信系统的登录流程 系统加电进入进程启动,从 ROM 或者闪存中读取平台初始化配置和用户的节点信息,判断是否为第一次登录,若不是第一次登录,则进行简单的用户身份的验证就可以进入即时通信系统的用户界面,登录过程结束;若用户是第一次登录,则建立用户文件夹保存用户节点信息,进行身份权限设置,之后进入通信系统的用户界面,登录过程结束。
3.1.2 消息处理模块 即时消息处理主要负责发送和接收节点的消息。这个模块一共包括了两个 子模块:即时信息解析和即时信息的格式转换。即时消息解析的功能是将收到的 消息解析为人们能够明白的文字信息,而即时信息的格式转换是将信息转换为适 合在传输信道上传输的信号形式,并且包括文字信息的数据格式的封装。 信息解析模块的功能将数据信息解析为人们能够理解的文字信息。在传输信 道传输的是比特数据,不能够被人们理解,而信息解析模块就主要实现这个功能。 实现的方式包含有:数据编码和解码。 信息格式的转换是指,通过编码之后的数字数据转换为合适在各种不同信道上传输的信号形式,且将文件信息封装在这些比特流之中。实现的方式是:将数 据分为长度相同的段,每一段称为一帧。为了达到发送端和接收端的数据的同步, 在每一帧的首部和尾部都加入了一些特殊的位数,在首部加入的数据位称为帧头, 在尾部加入的数据位称为帧尾。帧头和帧尾都是用于同步目的。为了数据安全, 也可以加入数据加密和解密。 在接收端有即时信息到来,即时信息解析模块将信息内容解析出来,通过节 点的通信界面展示在对等节点用户面前。 3.1.3 资源共享模块 资源共享是 P2P 技术飞速发展的主要原因,校园即时通信系统模型中设计了资源分享功能,要实现该功能主要需要有资源共享、资源发布和资源搜索三部分。在高校校园中,无论是老师之间,还是同学之间分享资源是很平常的事情,所以校园即时通信系统提供了资源分享的功能。 资源共享是指各个对等节点将自己的资源共享出来,可以提供给其他的对等 节点之间与自己建立连接来访问和下载,从而实现资源共享的目的。 资源发布是指某对等节点欲为其他的对等节点提供资源共享服务,就需要将该资源设置有公共访问,并且在资源的消息发布给自己所在的群组中,使得群组中的其他的用户知道某个节点提供了相应的共享资源。 资源搜索是资源分享功能模块中最重要的核心功能模块。资源搜索是指向群 组中的各个对等节点,发出搜索消息,通过搜索获得相关资源的共享数据,以及 提供相关资源的对等节点的数据。当某个对等节点需要资源时,就会向所在的群 组中的所有对等节点发送查询消息,只有拥有该资源且将资源共享的节点会回复 该查询消息,通知查询节点。 3.1.4 语音功能模块 语音处理模块的主要功能是实现节点之间的语音通信,完成对音频信号的处 理和传输,包括音频数据的采集、编码、传输、解码和回放等。音频数据在网 络上传输中包含有一些如:分组丢失、端到端延迟以及时延抖动方面的问题。 该模块中主要使用实时传输协议 RTP(Real-Time Transport 3.1.5 群组管理模块 群组管理功能是校园 IM 系统中的一个很重要的模块。在高校校园中,各个 教师之间,学生之间都有创建虚拟群组的需求。群组模块的主要功能包括:创建 对等群、加入对等群和退出对等群。 对于每个对等节点都可以创建对等群组,并向整个网络发布建立的对等群组 通告,并且可以设置加入该群组的口令。一般通过确定一个对等群组所需要加载 的服务项目,设置此对等群组的权限来建立一个对等群组,同时还要向其它对等 Peers 发送已经创建好的群组信息,这样就可以通知网络中其它的对等 Peers,让其根据自身的需要来做出是否加入这个群的决定。当有对等 Peers 欲加入某对等群组时,创建该群组的对等 Peers 就可以根据申请者的身份批准或禁止其加入该组。 加入对等群组模块的主要功能是某个欲加入对等群组的节点,通过提供自己的授权身份来申请加入对等组中。加入该组后即可享有该组提供的服务,包括对等组中节点的点对点连接,访问和下载组内其他节点提供的共享资料,并可以在组内发布自己的共享资源。 打算申请进入对等群组的 Peers,必需先在 Internet 中检索申请进入的群组的信息,然后再发送一条请求进入该群的消息给该群组的创建者或管理节点,等待通过了身份验证后,就可以给其分配 ID 和与之匹配的证书。 退出对等群组模块的主要功能是:对等 Peers 可以自由退出对等群组,当退出群后,此节点就没法使用该群组的所有授权服务了。对等 Peers 在把自己的群组以前发给自己的证书删掉以后便可推出此群,退出后,Peer 恢复其标志内容,同时,对等群组也要删掉退群的 Peers 的相关信息,这便是一个对等节点退出群组的完整过程。
3.2 服务器与客户端通信协议实现原理 基于 P2P 技术的校园即时通信系统采用了 TCP/IP 协议,数据传输时根据不同的传输要求选择了两种不同的传输协议:传输控制协议 TCP(Transmission Control Protocol,TCP)和用户数据报协议 UDP(User Datagram Protocol,UDP)。 校园IM系统是使用UDP(用户数据包协议)与TCP(传输控制协议)混合作为P2P 通信的主要手段。TCP 是一种可靠的传输和较高的安全性,但是缺点是需要握手协议建立连接;UDP 是无连接的不可靠的,但是效率较高,因此在即时通信系统中,文件传输时,使用了 TCP 协议,而针对实时要求较高的语音传输,使用了 UDP 协议。 (1)传输控制 TCP 协议 TCP 协议的主要功能,是为两个或多个校园用户提供连接性、可靠性与数据交互的传输服务,TCP 传输协议便应用于数据、文字传输中。TCP 是面向连接的、可靠的传输协议,其通过“三次握手”协议,建立会话连接,建立会话连接的过程如图 3-2 所示。当发送端发送了某个数据分组,接收端收到该分组后发出确认信息,并发送期望的下个数据分组的序号,若检测出数据分组有错,则发送重传请求。
图3-2 TCP 建立会话连接过程图 TCP建立会话连接过程中,当传送端发送分组1时,会同时启动定时器(Timer),等到接收端返回确认分组 1,传送方收到确认分组的时候,继续发送分组 2,同时将定时器重启。若传送端等待了一段时间以后,并未收到相应分组的确认分组,从而发生超时(Time Out),则传送端会重新发送该分组数据,直到接收端收到正确的分组并传回对应分组的确认分组。 (2)用户数据报 UDP 协议 UDP 在通信之前不需要建立会话连接,是一种无连接的、不可靠的传输协议。由于传输过程中,传输数据发生了错误的数据分组,直接丢弃,在实时性要求较高的语音传输和视频传输中其影响并不大。通过 UDP 传输文件时,不需要像 TCP如此复杂的 3 个阶段,只尽力发送,不保证一定到达。
3.3 实现要点 (1)节点对等性 Peers 的对等性表现在教师群体之间和学生群体之间的通信中。在高校校园中,无论是教师节点之间,还是学生节点之间都是对等节点,所有的节点之间不会分为客户端和服务器,所有的 Peers 之间都能采取对等的交流与通信,实现了的完全分布式的对等的 IM 网络通信。基于 P2P 的校园 IM 系统使用改进后的混合式 P2P结构。该结构兼有了完全分布式结构与集中式 P2P 结构的特性。 (2)良好的信息安全性 基于 P2P 的校园即时通信系统模型中,每个 Peers 各自维护各自的信息,它们之间直接传递信息,此模型不再需要中心服务器,所以此种方式在 Peers 之间通信交流方面比客户端/服务器模式要安全一些。并且节点之间通信时可以采用基于面向连接的可靠的信息传输方式,通信数据也可通过加密和解密来保证数据的保密性。在对等群组应用中,还应用了身份认证和数字签名等技术来保证对等节点身份的合法性。 (3)较好的通信健壮性 校园即时通信系统是改进的混合式 P2P 结构,采用了备用可行对等管理节点的方法,不再由超级节点或者管理节点发生故障而导致通信网络瘫痪的现象。在这种 Internet 中,当某个 Peers 发生问题而无法工作时,由于所有 Peers 都是对等的,所以对整个网络的影响不大,从而提高了该网络的健壮性比较好。 (4)不依赖传统的网络环境 基于 P2P 的校园 IM 系统是一个 P2P 网络环境,各个节点之间分散的处于 P2P的网络之中,节点可以设置、构建自己的网络环境。这种不仅可以在 Internet 网络环境下进行良好地工作,同时也可以在 P2P 的局域网环境中良好地工作。
四、 总结
即时通信技术随着网络的飞速发展而迅速壮大,基于 P2P 的即时通信系统也风靡流行起来,本文所作的工作目标是研究设计一个基于 P2P 校园即时通信系统,通过查阅资料,主要了解一下方面的内容: (1)了解了 P2P 网络的基本概念、特点以及发展现状; (2)根据 P2P 技术的应用现状,并结合相关技术文献,剖析了基于 P2P 的即 时通信系统,包括网络模型、资源的共享和搜索,即时通信消息的处理等。 总的来说,本文基本描述了基于 P2P 技术的校园即时通信系统软件的各种功能模块,并深入研究了各种相关的技术热点课题。由于时间紧张和本人技术知识的欠缺,并没有完成即时通信系统软件的全部功能,后续我将再继续努力。
|