一种通过数据包压缩减小游戏服务器网络流量的方法

文档序号:7953615阅读:376来源:国知局

专利名称::一种通过数据包压缩减小游戏服务器网络流量的方法
技术领域
:本发明涉及网络游戏,是一种通过LZW算法压缩数据包减小游戏服务器网络流量的方法。
背景技术
:现今的网络游戏中,一台游戏服务器往往要同时连接成百上千个玩家,需要同时与大量的客户端通信,这就导致了游戏服务器的网络流量很大,但是由于带宽的限制,网络流量就很可能成为游戏服务器的瓶颈。由于游戏服务器价格昂贵,因此增加单台服务器的承载量,就意味着降低成本;但服务器受到网络带宽的限制,要增加其承载量就要降低网络流量;当然可以通过增加带宽的方式来增加网络流量,但同时也就意味着费用的增加。LZW压缩算法即AbrahamLempel,JacobZiv和TerryWelch发明的基于表查寻的压缩算法。LZW压缩算法一直以来只广泛用于文本文件的压缩,它主要基于压缩时动态生成字典,解压缩时根据已解压的数据,重建字典,从而完成压缩与解压缩。但是目前还没有将LZW压缩算法利用来压缩网络游戏数据包的手段。因此本发明则是首次将LZW压缩算法用到网络游戏的网络数据包的压缩之中。
发明内容本发明的目的是提供一种通过LZW算法压缩数据包减小游戏服务器网络流量的方法,可以有效地压缩数据包,减小网络流量,降低成本。本发明的技术方案如下一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩。所述的每个压缩模块均对应一个字典。所述字典是一个字符编码集。在压缩时,压缩模块将需要压缩的数据字符串转化为一个字典内的编码;在解压缩时,通过这个编码压缩模块便能在字典中检索到其对应的字符串,从而完成对压缩数据的解压缩。所述字典的长度达到一定数值,压缩模块将原有的字典数据清除,并写入重建字典的特殊字符,在解压缩时,读到这一特殊字符时,解压模块便也会重建字典。本发明将网络数据视为一个无限大的文件,只是在每一个数据包结束时,需加上一个特殊的代表数据包结束的编码,即字典内的编码,以便在解压缩时,通过字典找到相应的数据字符串将数据包分离出来。另外,当字典满时,在压缩时,会先写入一个重建字典的特殊编码,然后清空字典,而解压缩时,如果碰到该重建字典的编码,那么解压缩端也会将字典清空,以保持压缩和解压缩的字典相符。本发明的优点如下本发明通过对网络数据进行压缩,可以非常有效地减小网络流量,降低成本,更方便网络数据的发送和接收;压缩手段采用的是LZW压缩算法,由于网络游戏中数据流量较大,能达到数兆甚至数十兆每秒,这就要求压缩算法在一秒之内能处理相应的数据量,而LZW压缩算法在保证压缩速度的同时,对于重复性数据较多的网络游戏数据包还能获得较好的压缩效果。图1为本发明的工作流程2为本发明的压缩流程3为本发明的解压缩流程图具体实施方式实施例1一种通过数据包压缩减小游戏服务器网络流量的方法,游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩。所述的每个压缩模块均对应一个字典。所述字典是一个字符编码集。在压缩时,压缩模块将需要压缩的数据字符串转化为一个字典内的编码;在解压缩时,通过这个编码压缩模块便能在字典中检索到其对应的字符串,从而完成对压缩数据的解压缩。所述字典的长度达到一定数值,压缩模块将原有的字典数据清除,并写入重建字典的特殊字符,在解压缩时,读到这一特殊字符时,解压模块便也会重建字典。本发明将网络数据视为一个无限大的文件,只是在每一个数据包结束时,需加上一个特殊的代表数据包结束的编码,即字典内的编码,以便在解压缩时,通过字典找到相应的数据字符串将数据包分离出来。另外,当字典满时,在压缩时,会先写入一个重建字典的特殊编码,然后清空字典,而解压缩时,如果碰到该重建字典的编码,那么解压缩端也会将字典清空,以保持压缩和解压缩的字典相符。实施例2一种通过数据包压缩减小游戏服务器网络流量的方法,如图2所示,采用LZW压缩算法的压缩过程可以按照如下伪代码实现1.STRING=getinputcharacter2.WHILEtherearestillinputcharactersDO3.CHARACTER=getinputcharacter4.IFSTRING+CHARACTERisinthestringtablethen5.STRING=STRING+character6.ELSE7.outputthecodeforSTRING8.addSTRING+CHARACTERtothestringtable9.STRING=CHARACTER10.ENDofIF11.ENDofWHILE12.outputthecodeforSTRING实施例3一种通过数据包压缩减小游戏服务器网络流量的方法,如图3所示,采用LZW压缩算法的解压缩过程可以按照如下源代码实现1.ReadOLD_CODE2.outputOLD_CODE3.CHARACTER=OLD_CODE4.WHILEtherearestillinputcharactersDO5.ReadNEW_CODE6.IFNEWCODEisnotinthetranslationtableTHEN7.STRING=gettranslationofOLD_CODE8.STRING=STRING+CHARACTER9.ELSE10.STRING=gettranslationofNEW_CODE11.ENDofIF12.outputSTRING13.CHARACTER=firstcharacterinSTRING14.addOLD_CODE+CHARACTERtothetranslationtable15.OLD_CODE=NEW_CODE16.ENDofWHILE权利要求1.一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩。2.根据权利要求1所述的一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于所述的每个压缩模块均对应一个字典。3.根据权利要求2所述的一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于所述字典是一个字符编码集。在压缩时,压缩模块将需要压缩的数据字符串转化为一个字典内的编码;在解压缩时,通过这个编码压缩模块便能在字典中检索到其对应的字符串,从而完成对压缩数据的解压缩。4.根据权利要求2或3所述的一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于所述字典的长度达到一定数值,压缩模块将原有的字典数据清除,并写入重建字典的特殊字符,在解压缩时,读到这一特殊字符时,解压模块便也会重建字典。全文摘要本发明公开了一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩;本发明采用LZW压缩算法对网络数据进行压缩和解压,可以非常有效地减小网络流量,降低成本,更方便网络数据的发送和接收;LZW压缩算法在保证压缩速度的同时,对于重复性数据较多的网络游戏数据包还能获得较好的压缩效果。文档编号H04L12/56GK1964351SQ20061002229公开日2007年5月16日申请日期2006年11月21日优先权日2006年11月21日发明者刘雪晴,王希备申请人:珠海金山软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1