



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 移动网络下高可靠即时通信系统的研究与应用 中图分类号: tn911?34; tm417 文献标识码: a 文章编号: 1004?373x(2016)13?0023?04abstract: with the advent of the mobile internet era, a lot of excellent instant messaging softwares appear. since the mature instant messaging technology is unopened, and the instant messaging framework with open s
2、ource exists many problems, the communication system is prone to appear packet loss and message delay. in view of the above problems, a high?reliability instant communication system in mobile network was designed to make up the deficiency of open?source communication framework design. the improved m
3、ethod of general instant communication technology is put forward, in which the high?performance communication long link and time slice round algorithm are proposed, the message handshake protocol and message encryption method are adopted, and the communication link state detection algorithm is impro
4、ved. the double service authentication method is proposed to ensure the safety of instant messaging system. the test system in the experiment includes the designed instant messaging framework. the experimental results can prove the instantaneity and high reliability of the systemy.keywords: instant
5、messaging; high?performance long link; file transfer; communication recovery mechanism随着移动网络的发展,网络聊天、视频和语音在网络通信中越来越受重视,从网络通信应用软件的用户量可以看出,网络即时聊天功能具有良好的用户体验1。在新开发的各类软件尤其是手机应用软件中,基本都会附带即时通信功能。这是一种发展趋势,网络通信已经成为了用户沟通的重要手段,渐渐地取代了传统的书信、短信等通信方式,使用的用户越来越多,同时用户对即时通信技术的稳定性要求也越来越高。但由于成熟的即时通信技术不开源,而开源的即时通信技术只实现了
6、基本的建立链接,数据传输并没有做任何优化,使得在使用过程中经常出现消息延迟、消息丢失等情况2。1 消息的即时传输良好的用户体验对即时通信系统的消息传输具有较高的要求,尤其是消息的即时性。但在某些情况下,服务器并不能即时地将信息推送给接收者,存在着两种主要情况3。(1) 客户端与服务器之间的通信长链接不稳定。服务器资源限制和网络问题的影响是客观存在的,从理论的角度没有办法避免。但可以从其他方面解决通信链接的稳定性对消息即时传输产生的影响。提出的高性能长链接、通信链接的检测和通信链接的恢复方法,有效地利用了服务器的资源,并保证链接断开后能够快速的恢复,从而保证消息的即时传输。(2) 同一时间服务器
7、需要推送的消息量较多。服务器转发消息也需要消耗时间,当同一时间进行即时通信的用户较多时,服务器来不及转发新接收的消息,导致了消息的阻塞,从而影响了消息的即时性。因此采用消息的并发推送方法解决消息阻塞的问题4。1.1 高性能通信长链接用户量的不断增加,服务器需要存储的通信链接越来越多,但一些通信链接在某些时候并不会被使用。通过分析得出客户端与服务器之间建立的通信长链接并不会随时都被利用,某些时间会处于空闲状态,为此提出了高性能通信长链接,尽量地减少客户端空闲状态下的链接时间,提高服务器的资源利用率,保证用户量剧增时通信链接不会因为服务器的资源限制而断开,从而保证消息的即时传输5。为了建立高性能通
8、信链接,使用时间片轮转的算法。把用户开始登陆客户端的时间或者用户发送消息的时间记为开始时间,从开始时间起,把时间分为等长的时间片段假设得到的时间片段如图1所示。其中黑色区间表示在这个时间片段内用户有消息需要接收。白色的区域表示用户处于空闲状态没有消息需要接收。时间片轮转算法的目的是保证用户使用即时通信需要接收消息时,客户端与服务器存在通信链接6。而用户没有使用即时通信时,客户端与服务器之间不存在通信链接,从而释放了服务器的资源。时间片轮转算法的规则如下: (1) 当客户端需要接收消息时,当前时间片为忙碌状态。相反如果没有消息需要接收,则当前时间片处于空闲状态。当用户登录软件后,默认第一个时间片
9、为忙碌状态,并且客户端向服务器发送建立通信链接的请求。(2) 如果当前时间片客户端处于忙碌状态,那么接下来的个时间片客户端都将主动向服务器端发送建立链接的请求。(3) 如果当前时间片的前个时间片处于空闲状态,那么当前时间片的链接状态与前一个时间片的链接状态相反。例如前一个时间片客户端与服务器有通信链接,那么当前时间片客户端将向服务器发送断开链接的请求。(4) 如果当前时间片的前个时间片中的任何一个时间片客户端处于忙碌状态,那么当前时间片客户端将向服务器发送建立链接的请求。1.2 通信链接的检测和恢复为了保证消息的即时传输,提高服务器长链接的效率,保证服务器与客户端链接稳定,避免意外中断情况的出
10、现,采用有效的长链接检测方法和消息恢复方法7。理论上称客户端发送询问信息的过程为心跳过程,心跳时间指客户端向服务器发送询问信息的间隔时间。为了避免客户端频繁地发送心跳信息,消耗能量,或者避免心跳时间过长,导致消息传输的延迟。本文提出了心跳时间衰减函数如下:(1)式中:表示第时刻的心跳时间;表示第时刻的心跳时间;和表示时间衰减系数都是常量;表示最短的心跳时间间隔,同样也是一个常量;表示最长的心跳时间间隔,也是一个常量;new表示客户端发送了新的消息或者是服务器向客户端推送了新的消息。心跳机制和时间片轮转结合后,客户端只有处于忙碌状态时才会发送心跳信息。这样既保证了通信链接的稳定,又节约了服务器的
11、资源。1.3 客户端通信恢复机制当客户端启动后,在客户端的后台会启动两个线程,在android中使用service服务,service相当于activity,只是没有界面而是运行在后台的服务。其中一个线程按照定时器的设定不停地向服务器发送心跳信息,确认客户端与服务器的通信链接是否正常8。另外一个线程用于监听服务器,接收服务器推送的消息。通过心跳机制,当客户端检测到与服务器的通信长链接断开时,需要向服务器请求再次建立链接以及获取离线数据。为了进一步降低服务器的数据处理压力,提升用户体验。提出了一种获取离线消息的方法,通过短链接的方式获取离线消息9。短链接指的是客户端向服务器发送请求会携带必要的参
12、数,而服务器做出响应时也会把客户端想获取的数据返回,当客户端得到数据后链接就断开,如图2所示。基于这种方式,当客户端与服务器的链接再次建立后,由客户端主动发送获取离线消息的请求,获取离线消息可以使用http协议。客户端不用发送确认信息,服务器在返回信息后可以直接清除数据库中暂存的数据,同时服务器也不用每次都对新建立的链接做查询操作,这样大大减少了服务器的压力,同时使获取离线消息的过程变得清晰,不会出现消息重复的情况。1.4 消息并发推送如果某一时刻发送消息的用户较多,而服务器来不及把消息推送给目标客户端,那么就会造成服务器需要推送的消息越来越多,最终导致服务器消息的阻塞。消息阻塞虽然不会导致消
13、息的丢失,但是会严重影响消息的即时传输,会给用户带来特别不好的使用体验。为了解决这个问题,在服务器端使用了消息的并发机制。当服务器从客户端接收到一条新的消息后,把消息存放在本地数据库的同时也会把消息存放进一个队列。而在服务器的后台,即时通信系统会根据服务器处理器的使用情况开启若干个线程,每一个线程所做的操作都相同,从队列中取出一个消息,然后根据消息中的目标地址,查询与其是否有通信链接,如果存在则把消息推送给客户端,如果不存在则不做任何处理。这样服务器可以在同一时间推送多条消息,有效地利用了服务器的资源,降低了消息阻塞的可能性。2 消息的可靠传输2.1 消息握手协议为了确保消息在传输过程中不会出
14、现丢失,提出了消息传输的握手协议。握手协议分为客户端给服务器发送消息的握手和服务器给客户端推送消息的握手。握手协议的本质是客户端与服务器端约定的消息传输规则,握手的主要目的就是为了确保消息不会丢失。(1) 正向握手协议正向握手协议是指客户端向服务器端发送消息时消息的确认协议。客户端需要发送消息时,会先把消息存放在本地数据库中,然后再调用发送消息的接口,存入本地数据库中的消息标记为未发送。如果服务器成功接收到消息,会给客户端返回一个包含了消息id的反馈信息,表示自己已经接收到消息,客户端接收到反馈信息后,根据id把本地数据库中的消息标记为已经发送,这样就完成了一次客户端到服务器的握手。如果没有接
15、收到服务器的反馈信息,那么客户端将继续向服务器发送这条消息。(2) 反向握手协议反向握手协议指的是服务器端向客户端推送消息时消息的确认协议。当服务器接收到客户端的消息后,首先会把消息存在数据库中,然后从消息中解析出接收人的地址信息,然后根据地址信息查找目标客户端与自己是否有通信链接。2.2 文件传输协议为了避免使用通信长链接传输文件,提出了文件和文件地址相分离的传输方法,文件存储服务的提供商会提供文件上传的相应接口,客户端通过调用接口,上传文件后,会得到一个文件的网络地址,通过该网络地址用户就可以直接下载文件。3 高复用架构3.1 服务器消息即时传输系统具有高复用性,就不能与应用软件的功能结合
16、,本文提出了单系统双服务的系统架构。单系统指功能完全的应用软件系统,而双服务指为应用软件提供了后台服务的两套服务系统:消息的即时通信系统和数据功能处理系统。这样把消息和软件功能分离后,就可以使消息的即时传输服务在任何应用软件中使用,其功能模块如图3所示。 为了保证消息后台服务器的安全性,本节提出了双服务权限认证的方法。为了叙述简便,把消息后台服务器简称为消息系统,而应用软件的数据处理服务器简称为功能系统,如图4所示。通过这种方式,不仅增加了通信系统的安全性,同时也做到了功能的分离,使即时通信系统的后台通用性更高。3.2 客户端客户端和服务器的设计思想类似,单独把即时通信的功能打包封装,仅对外提
17、供数据的操作接口,如图5所示。客户端的即时通信主要包含五个功能:发送建立链接的请求;发送消息;接收消息;发送心跳信息;断开通信链接,用户退出系统时会调用断开通信链接的功能,用于释放服务器的资源。应用程序的客户端添加即时通信的功能包后,只需要根据自己消息格式修改对本地数据库的操作,对外提供的接口不变10。4 系统测试4.1 测试系统介绍测试系统的主要功能是用于学校老师、学生家长和学生之间的沟通,为学校管理学生带来便利。同时也包含了即时通信的功能模块,用于用户之间的交流沟通,发送团队公告信息和发送申请加入团队的申请信息。应用系统在添加即时通信功能时,采用了本文设计的即时通信框架。后台使用了双服务器
18、设计,提供了一个独立的消息系统和一个功能系统,两个系统之间使用同一个权限缓存。消息系统主要负责处理与客户端的消息通信,功能系统使用的是短链接,为客户端提供了获取数据的接口。客户端加入了即时通信包,并按照自己的需求对数据存储格式和数据读取格式做了修改。服务器的配置是2 gb内存、双核、2.6 gb的主频,2 mb的网络带宽,客户端使用android系统的手机。把一个客户端叫a,另一个客户端叫b。4.2 实验结果测试过程中通过改变客户端的工作状态来模拟用户的各种使用情况。测试1:参数设置:客户端a、客户端b同时登陆系统,客户端a给客户端b发送消息。测试结果:客户端b能正常接收到客户端a发送的消息。测试2:参数设置:客户端a、客户端b同时登陆系统,客户端a和客户端b同时给对方发送消息。测试结果:客户端a和客户端b都能正常接收到对方发送的消息。测试3:参数设置:客户端a登陆系统,向客户端b发送消息。客户端b在客户端a发送消息后,登陆系统。测试结果:客户端a发送消息成功,客户端b正常接收到客户端a发送的消息。通过用例测试,应用程序中的即时通信功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农民工工资拖欠的现状及法律救济途径
- 劲舞歌曲教学工作总结
- 志愿者工作总结报告
- 商场控烟培训
- 柑橘园林绿化边坡施工方案
- 濮阳简易升降车库施工方案
- 校长中考考前动员讲话稿5篇
- Unit 1 My name's Gina. Section A ( 1a –2c)教学设计(含教学反思)-2025年人教新目标七年级英语上册
- 2024平面设计合同范本简单3
- 中学教师工作计划范本
- 教科版三年级下册科学全册同步练习(一课一练)
- 2025年南京信息职业技术学院单招职业技能测试题库参考答案
- 2025年度共享办公空间转租合作协议
- 2025年公益项目合作协议
- 【凯度】2025年生鲜消费新趋势
- 人教版(2024)七下 第二单元第1课《精彩瞬间》课件-七年级美术下册(人教版)
- 2025河南中烟安阳卷烟厂一线岗位招聘14人易考易错模拟试题(共500题)试卷后附参考答案
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 历年考研自动化复试面试试题汇集
- 眼科手术学基础
- 多晶硅大型还原炉装备项目可行性研究报告建议书
评论
0/150
提交评论