基于IPv6的分布式即时通讯系统平台的设计

来源 :科学与财富 | 被引量 : 0次 | 上传用户:genggeng07
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要] 提供丰富多彩的应用是发展下一代互连网的驱动因素。文中在深入研究传统单服务器即时通讯系统基础上,提出了一个基于IPv6的分布式即时通讯系统平台的设计方案,并重点介绍了系统的整体结构,协议和关键部件的具体实现。
  [关键词] 下一代互连网 即时通讯 负载均衡
  
  1、引言
  基于IPv6的下一代互联网将会迅速发展、壮大,并且逐步取代现有的互联网,已经成为业内共识。然而,应用是部署IPv6的驱动因素。如何在下一代互联网平台上开展丰富的应用和服务并建立可盈利的可管理的业务模式成为推动IPv6产业化发展的关键。根据现有互联网的发展经验来看,在下一代服务中最容易形成切入点的是个人信息服务和娱乐服务。
  即时通讯系统作为互联网发展中最成功的应用之一,很大程度上影响了人们的生活,即时通讯系统利用服务器上的用户注册信息和联机用户建立起虚拟社区(Virtual Internet Community);服务器为社区成员提供状态信息和联系方式,以便用户之间进行相互通讯;用户使用特定的即时通讯客户端登陆到服务器找到他想联系的人进行交流。它由最初的简单聊天工具逐渐发展成为集成视频、语音、文件传输以及网络游戏等功能强大的网络平台。
  然而,现有的主流即时通讯系统比如:0ICQ、MSN、QQ等都还不支持IPv6网络,这极大的防碍了它在下一代互联网上的发展。本文在深入研究传统单服务器即时聊天系统的基础上,提出了基于IPv6的分布式即时通讯系统平台的设计方案,并讨论了该系统协议和关键部件的实现过程。
  2、单服务器即时通讯系统
  图1 单服务器即时通讯系统结构
  在单一服务器结构的即时通讯系统中(图1),所有在线用户都登陆到同一台服务器上,由该服务器完成用户管理、消息传递以及其它用户操作。单服务器系统在设计上相对简单。但是,随着业务量的不断增大,服务器的响应速度将会降低,当服务器负载过大时,只能通过硬件设备的升级来满足系统要求。但是硬件设备升级有一定限度,同时还会造成整个系统服务的暂时中断,以及原有设备的浪费。并且单一服务器系统中,消息服务器一旦发生故障会使整个系统无法使用。
  3、分布式系统即时通讯系统
  3.1系统结构
  为了解决单服务器系统存在的上述问题,同时满足下一代互联网发展的需要我们设计了基于IPv6的分布式集群即时通讯系统平台。如图2所示,整个系统主要由三部分组成:负载均衡服务器(Load Balance Server,简称LBS)、索引服务器(Index Server,简称IS)和消息服务器群(Messaging Servers, 简称MS)。其中MS可以分布在互联网中的不同地点,也可以集中在一个局域网中,但都使用公共的IP地址来与外界联络。
  图2 多服务器即时通讯系统结构
  3.2系统的工作流程
  以下通过对客户1登陆过程的描述为例说明整个系统的工作流程:
  1)客户1向LBS发送登陆请求。LBS收到请求后,根据各个MS的负载情况返回一个MS地址给客户端1,假设为MS3的地址。
  2)客户1按指定地址登陆后,MS3首先对其进行身份验证,然后将其加入到自己的用户管理表中,同时到数据库中提取客户1的详细资料以及所有好友信息。
  3)MS3将客户1的登陆消息发送到IS,IS把客户1加入其用户索引表中。
  4)MS3通过IS查找客户1的所有在线好友信息(IP地址、所在的MS地址),并将其加入到客户1的好友列表中。
  5)MS3分别向客户1的好友所在的MS发送其登陆信息,MS收到消息后转发给相应的客户端。
  其他操作的工作流程,如查找、添加好友,好友间的消息发送,用户状态的更改等,与登陆流程类似,或者是其中的几步中的组合。好友间的消息发送可以选择通过MS转发,也可以选择不通过MS转发。
  3.3系统协议
  协议是服务的正式描述,它规定了参与合作的各方进行交互的语法、语义和时序细节[1]。根据RFC2778对即时通讯系统模型的定义,我们设计了即时通讯协议(Instant Messaging and Presence Protocol),简称IMPP协议[2]。由于大量的报文是在客户端和服务器之间产生,我们以此来说明IMPP协议的编码。
  3.3.1协议编码
  IMPP协议中,报文由一个首部和一个可选的尾部组成。报文首部有固定结构和长度(表1),报文尾部中变长字段(如字符串),使用分隔字符。考虑到IMPP協议中客户端和服务器之间使用UDP协议是面向数据报的,对此IMPP协议的报文封装采用了连接划分(Connection-blasting)方式,在一次连接中完成一个报文的所有数据传输。
  表1 IMPP协议报文的首部编码格式
  IMPP协议报文的尾部定义了服务内容,主要有确认消息UDP_ACK,发送消息UDP_SEND_MSG,在线确认UDP_KEEPALIVE,状态改变UDP_CHANGE_STATUS,添加好友UDP_ADD_FRIEND,删除好友UDP_DEL_FRIEND,随机查找UDP_SEARCH_RANDOM,自定义查找UDP_SEARCH_CUSTOM等。
  3.3.2报文封装
  在系统底层的网络通讯中,使用与IPv6相关的Windows API函数对IMPP协议报文进行封装,主要的方法有Bind,GetIP,Receive,Send,IPAdressToV6,Close等。这样屏蔽了IPv6对系统上层的影响,即使需要移植到其他通信协议上也是很容易实现的,而且不必破坏系统的业务逻辑的处理[3]。
  4、负载均衡器
  4.1主要功能模块分解
  1)服务器管理模块(CServerManage):
  服务器管理模块对系统中所有的MS进行监控。通过心跳机制,服务器管理模块将定期的收集消息队列中来之各个MS的状态信息,同时对服务器的状态表进行更新操作。其中MS的状态信息包括:CPU利用率、内存利用率、进程总数、响应时间、在线人数、服务器地址、端口信息等。如果在一段时间内没有接收到某个MS的状态信息,服务器将会认为该服务器发生了故障或者网络不可达,同时将该服务器的所有状态信息置为-1。
  2)重定向模块(CClinetRedirect)
  重定向模块主要负责响应来自客户端的出席请求,并通过对当前的MS状态表中的数据进行加权运算后,选择一个最优的MS服务器地址返回给客户端。其包含的主要方法有请求队列的维护,状态表查询,选择运算等。重定向模块是系统负载均衡设计的关键部分,其中涉及到的负载均衡方法会在后面的内容中详细阐述。
  3)异常处理模块(CExceptionHandle)
  异常处理模块定期的扫描服务器的状态信息表,如果有MS服务器出现异常,异常处理模块会将该服务器的异常信息立即通知给重定向模块以及其他的MS和IS。MS和IS接收到异常信息后,查找好友列表,把地址为异常服务器的好友全部删除,同时MS将向相应的客户端发送该好友下线的消息。这样,即使在某台MS发生故障的情况下,整个系统仍然可以保持信息的正确一致性。
  4.2基于客户分摊机制的负载均衡
  负载均衡的目的是使系统中的各个服务器相对均衡的承担系统的负载,从而达到提高系统系统响应性能的目的。考虑到即时通讯系统中用户的相对独立性,我们在负载均衡器中采用了以用户为单位的动态客户分摊机制。基于应用层的负载分配对客户端来说是完全透明的[4]。
  动态客户分摊机制通过负载均衡器动态的收集各个MS节点上的状态数据,计算出各个节点的权值,然后将当前权值最小的MS节点的IP地址发送给请求登陆队列中的客户端,客户端登陆到相应的MS,由该服务器直接为其提供服务,二者之间的消息传递不再经过负载均衡器。
  权值主要由各个MS节点的参数:CPU利用率、内存使用率、进程总数以及响应时间来决定。对于任意一个MS节点i的权值公式为:
  LOAD(Ni)=R1*Lcpu(Ni)+R2*Lmemory(Ni)+R3*Lprocess(Ni)+R4*Lresponse(Ni)
  常量系数Ri用来表示各个参数的重要程度。可以根据系统运行情况对Ri进行设置。其中∑Ri=1。
  5、索引服务器
  IS是对分散在各个MS上用户信息的集中,它提供了所有上线用户关键信息的查询功能。为了避免IS的负担过大,在整个系统中形成瓶颈,IS在设计上应该注意:1)尽量减少自身开销;2)提高查询效率。
  5.1主要功能模块
  1)用户索引模块(CUserIndex)
  考虑到以上要求,在用户索引模块中使用了Hash算法来维护和管理所有在线用户。Hash表中的每个记录中来存放一个用户信息结构体struct user,结构体中只包含了用户的关键信息,用户号UserID,用户所在服务器IP地址ServerAdress,用戶IP地址UserAdress。由于UserID具有唯一性,在查找过程中可以根据UserID来直接映射到Hash表中对应的记录。这样在规定的内存空间中
  6、结束语
  本文论述了基于IPv6的分布式即时通讯系统平台的设计,该系统能够为用户提供透明接入的同时具有较好的可靠性,可扩展性,异常处理和负载均衡能力。IPv6巨大的地址空间,孕育了一个广阔的下一代互联网市场。在基于IPv6的高性能即时通讯平台上,进一步开发更加丰富的增值服务,将会有着极好的研究价值和商业前景。
  参 考 文 献
  [1] Douglas.E.Comer,David L.Stevens
  internet Working With TCP/IP:Clinet–ServerProgramming And Application(Second Edition)[M]北京:清华大学出版社,1999.
  [2] M. Day Lotus J.Rosenberg dynamicsoft H.Sugano Fujitsu “A Model for Presence and Instant Messaging”,RFC2778,February 2000
  [3]贾云霞 李强 Visual C++ 项目开发实践 北京 中国铁道出版社 2003 185-266
  [4]Valeria C,Michele C,Philip S Y. Dynamic Load BaLancing on Web-Server Systems[J]. IEEE Internet Computing,1999:5/6):28~39■
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
其他文献
关注阅读方法的培养,是提高学生学习有效性的重要手段。通过词、句、段的感悟,想象运用、朗读指导、积极写作,全面提高学生的语文学习能力。
著名儿童教育家陈鹤琴先生说过:"小孩子应有剪纸的机会。"剪纸有两方面的好处:"一是可以养成独自消遣的好习惯,二是可以练习手筋。"我们学校开展了幼儿剪纸研究。但是在教学实践中
这种“碳”具有我们这个世界已知碳元素相同的能量特征,没有已知碳元素相关的晶体结构及化学特性,这种“碳”不能直接观察到、孤僻,不与我们已知世界中的氧、硅等元素发生化学作
[摘 要] 本文就常见的几种防水层特点、使用情况及施工控制要点进行总结和探讨,为桥面防水层的选型和施工控制积累经验。  [关键词] 桥面防水层 防水材料 施工技术    桥面铺装施工工艺关系到整个桥面铺装的质量问题,因为桥面破坏是公路工程建设质量通病之一,当桥面防水质量出现问题,就会腐蚀钢筋,降低混凝土的强度,缩短结构的使用寿命。可见,桥面防水层的作用能否发挥,关键在于防水材料的选择和防水层的施工
摘要:笔者结合多年现场实际工作经验,对通信电源的常见故障进行了总结分析,并详细介绍了各类故障的通用处理方法,仅供同行业工作人员参考。  关键词:通信电源 故障 处理  1、引言  电源是通信系统的基础设备,因其采用模块化设计,在发生局部的或单元的故障时一般不会扩散。电源系统故障分为一般性故障和紧急故障。一般性故障指不会影响通信安全的故障,包括交流防雷器雷击损坏、系统内部通信中断、单个模块无输出、监
音乐教育作为中职的重要组成部分,是素质教育不可缺少的重要内容。各高等院校为了进一步提高学生的整体综合素质,纷纷采取各种途径、通过各种渠道,利用音乐的形式来提高当代中职
由于新生代农民工就业经历和成年后的生活历程的不同,他们不愿意在农村寻找结婚对象,而是希望在城市寻找到合适的结婚对象,通过婚姻实现融入城市的愿望,即使找不到城市人,也希望能
摘要:随着当前人们对消防安全的认识逐步增高,在消防系统设计过程中的各种控制手段和控制方法逐渐变化。在当前各种科学技术和先进的设备催动之下,不断的出现了各种信息技术控制的消防安全设备。本文以传统的稳压泵气压罐系统为对照,就当前建筑职工中的消防安全系统进行分析与控制,并通过对其中各种方法和方式进行相应的介绍手段来阐述先进技术和器械给当前消防系统带来的变化,就变频控制设备在消防系统中的应用进行分析与阐述
看图学文的课文,一般都是内容比较丰富的图画(照片)和反映同意内容的文字组成,用来训练学生的观察能力、想象能力和思维能力,促进他们理解和运用语言文字能力的提高。“图”是对客
摘要:科技的不断进步使得建筑施工技术的发展也得到了很大的提高,笔者在此对建筑施工技术的发展趋势做了简要分析。  关键词:技术 特征 趋势  一、引言  建国初期我国在建筑施工技术上走的是砖混结构和混凝土结构的路子,其主要目标是基体的建造,技术、方法比较简单,建筑形式缺乏多样性和艺术性。改革开放后,受国内外多种因素的影响,建筑施工技术朝多元化的方向发展已成必然趋势。  二、建筑技术的特征  1.建筑