CN1964351A - 一种通过数据包压缩减小游戏服务器网络流量的方法 - Google Patents
一种通过数据包压缩减小游戏服务器网络流量的方法 Download PDFInfo
- Publication number
- CN1964351A CN1964351A CNA2006100222977A CN200610022297A CN1964351A CN 1964351 A CN1964351 A CN 1964351A CN A2006100222977 A CNA2006100222977 A CN A2006100222977A CN 200610022297 A CN200610022297 A CN 200610022297A CN 1964351 A CN1964351 A CN 1964351A
- Authority
- CN
- China
- Prior art keywords
- compression
- game server
- dictionary
- data
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于:游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩;本发明采用LZW压缩算法对网络数据进行压缩和解压,可以非常有效地减小网络流量,降低成本,更方便网络数据的发送和接收;LZW压缩算法在保证压缩速度的同时,对于重复性数据较多的网络游戏数据包还能获得较好的压缩效果。
Description
技术领域
本发明涉及网络游戏,是一种通过LZW算法压缩数据包减小游戏服务器网络流量的方法。
背景技术
现今的网络游戏中,一台游戏服务器往往要同时连接成百上千个玩家,需要同时与大量的客户端通信,这就导致了游戏服务器的网络流量很大,但是由于带宽的限制,网络流量就很可能成为游戏服务器的瓶颈。由于游戏服务器价格昂贵,因此增加单台服务器的承载量,就意味着降低成本;但服务器受到网络带宽的限制,要增加其承载量就要降低网络流量;当然可以通过增加带宽的方式来增加网络流量,但同时也就意味着费用的增加。
LZW压缩算法即Abraham Lempel,Jacob Ziv和Terry Welch发明的基于表查寻的压缩算法。LZW压缩算法一直以来只广泛用于文本文件的压缩,它主要基于压缩时动态生成字典,解压缩时根据已解压的数据,重建字典,从而完成压缩与解压缩。但是目前还没有将LZW压缩算法利用来压缩网络游戏数据包的手段。
因此本发明则是首次将LZW压缩算法用到网络游戏的网络数据包的压缩之中。
发明内容
本发明的目的是提供一种通过LZW算法压缩数据包减小游戏服务器网络流量的方法,可以有效地压缩数据包,减小网络流量,降低成本。
本发明的技术方案如下:
一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于:游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩。
所述的每个压缩模块均对应一个字典。
所述字典是一个字符编码集。在压缩时,压缩模块将需要压缩的数据字符串转化为一个字典内的编码;在解压缩时,通过这个编码压缩模块便能在字典中检索到其对应的字符串,从而完成对压缩数据的解压缩。
所述字典的长度达到一定数值,压缩模块将原有的字典数据清除,并写入重建字典的特殊字符,在解压缩时,读到这一特殊字符时,解压模块便也会重建字典。
本发明将网络数据视为一个无限大的文件,只是在每一个数据包结束时,需加上一个特殊的代表数据包结束的编码,即字典内的编码,以便在解压缩时,通过字典找到相应的数据字符串将数据包分离出来。另外,当字典满时,在压缩时,会先写入一个重建字典的特殊编码,然后清空字典,而解压缩时,如果碰到该重建字典的编码,那么解压缩端也会将字典清空,以保持压缩和解压缩的字典相符。
本发明的优点如下:
本发明通过对网络数据进行压缩,可以非常有效地减小网络流量,降低成本,更方便网络数据的发送和接收;压缩手段采用的是LZW压缩算法,由于网络游戏中数据流量较大,能达到数兆甚至数十兆每秒,这就要求压缩算法在一秒之内能处理相应的数据量,而LZW压缩算法在保证压缩速度的同时,对于重复性数据较多的网络游戏数据包还能获得较好的压缩效果。
附图说明
图1为本发明的工作流程图
图2为本发明的压缩流程图
图3为本发明的解压缩流程图
具体实施方式
实施例1
一种通过数据包压缩减小游戏服务器网络流量的方法,游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩。
所述的每个压缩模块均对应一个字典。
所述字典是一个字符编码集。在压缩时,压缩模块将需要压缩的数据字符串转化为一个字典内的编码;在解压缩时,通过这个编码压缩模块便能在字典中检索到其对应的字符串,从而完成对压缩数据的解压缩。
所述字典的长度达到一定数值,压缩模块将原有的字典数据清除,并写入重建字典的特殊字符,在解压缩时,读到这一特殊字符时,解压模块便也会重建字典。本发明将网络数据视为一个无限大的文件,只是在每一个数据包结束时,需加上一个特殊的代表数据包结束的编码,即字典内的编码,以便在解压缩时,通过字典找到相应的数据字符串将数据包分离出来。另外,当字典满时,在压缩时,会先写入一个重建字典的特殊编码,然后清空字典,而解压缩时,如果碰到该重建字典的编码,那么解压缩端也会将字典清空,以保持压缩和解压缩的字典相符。
实施例2
一种通过数据包压缩减小游戏服务器网络流量的方法,如图2所示,采用LZW压缩算法的压缩过程可以按照如下伪代码实现:
1.STRING=get input character
2.WHILE there are still input characters DO
3.CHARACTER=get input character
4.IF STRING+CHARACTER is in the string table then
5.STRING=STRING+character
6.ELSE
7.output the code for STRING
8.add STRING+CHARACTER to the string table
9.STRING=CHARACTER
10.END of IF
11.END of WHILE
12.output the code for STRING
实施例3
一种通过数据包压缩减小游戏服务器网络流量的方法,如图3所示,采用LZW压缩算法的解压缩过程可以按照如下源代码实现:
1.Read OLD_CODE
2.output OLD_CODE
3.CHARACTER=OLD_CODE
4.WHILE there are still input characters DO
5.Read NEW_CODE
6.IF NEW CODE is not in the translation table THEN
7.STRING=get translation of OLD_CODE
8.STRING=STRING+CHARACTER
9.ELSE
10.STRING=get translation of NEW_CODE
11.END of IF
12.output STRING
13.CHARACTER=first character in STRING
14.add OLD_CODE+CHARACTER to the translation table
15.OLD_CODE=NEW_CODE
16.END of WHILE
Claims (4)
1、一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于:游戏服务器采用LZW压缩算法运用字典重建的方式压缩和解压缩数据;所述的LZW压缩算法是指对于每一个与游戏服务器建立网络链接的客户端,均设置有一个与游戏服务器对应的压缩模块,压缩模块将客户端和游戏服务器之间通过网络链接发送的数据先压缩再发送,客户端和游戏服务器之间通过该网络链接接收到的数据经过压缩模块被解压缩。
2、根据权利要求1所述的一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于:所述的每个压缩模块均对应一个字典。
3、根据权利要求2所述的一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于:所述字典是一个字符编码集。在压缩时,压缩模块将需要压缩的数据字符串转化为一个字典内的编码;在解压缩时,通过这个编码压缩模块便能在字典中检索到其对应的字符串,从而完成对压缩数据的解压缩。
4、根据权利要求2或3所述的一种通过数据包压缩减小游戏服务器网络流量的方法,其特征在于:所述字典的长度达到一定数值,压缩模块将原有的字典数据清除,并写入重建字典的特殊字符,在解压缩时,读到这一特殊字符时,解压模块便也会重建字典。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100222977A CN1964351A (zh) | 2006-11-21 | 2006-11-21 | 一种通过数据包压缩减小游戏服务器网络流量的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100222977A CN1964351A (zh) | 2006-11-21 | 2006-11-21 | 一种通过数据包压缩减小游戏服务器网络流量的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1964351A true CN1964351A (zh) | 2007-05-16 |
Family
ID=38083240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100222977A Pending CN1964351A (zh) | 2006-11-21 | 2006-11-21 | 一种通过数据包压缩减小游戏服务器网络流量的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1964351A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129872B (zh) * | 2010-01-14 | 2013-01-09 | 珠海扬智电子有限公司 | 资料压缩、解压缩方法及其装置 |
CN107229749A (zh) * | 2017-06-27 | 2017-10-03 | 上海地阳实业有限公司 | 一种微信h5网页制作方法及系统 |
CN114785462A (zh) * | 2022-04-13 | 2022-07-22 | 广州国巡机器人科技有限公司 | 一种防丢包的通信方法 |
-
2006
- 2006-11-21 CN CNA2006100222977A patent/CN1964351A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129872B (zh) * | 2010-01-14 | 2013-01-09 | 珠海扬智电子有限公司 | 资料压缩、解压缩方法及其装置 |
CN107229749A (zh) * | 2017-06-27 | 2017-10-03 | 上海地阳实业有限公司 | 一种微信h5网页制作方法及系统 |
CN114785462A (zh) * | 2022-04-13 | 2022-07-22 | 广州国巡机器人科技有限公司 | 一种防丢包的通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7764202B2 (en) | Lossless data compression with separated index values and literal values in output stream | |
CN102970043B (zh) | 一种基于gzip的压缩硬件系统及其加速方法 | |
CN103236847A (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
Tsiftes et al. | Efficient sensor network reprogramming through compression of executable modules | |
JP2005535175A (ja) | ロスレスデータ圧縮 | |
US8909813B2 (en) | Efficient processing of compressed communication traffic | |
CN101534124B (zh) | 一种用于短小自然语言的压缩算法 | |
CN110021369A (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
WO2001063772A1 (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
CA2428788A1 (en) | Static information knowledge used with binary compression methods | |
CN1964351A (zh) | 一种通过数据包压缩减小游戏服务器网络流量的方法 | |
Ledwon et al. | Design and evaluation of an FPGA-based hardware accelerator for deflate data decompression | |
Mahmood et al. | An Efficient 6 bit Encoding Scheme for Printable Characters by table look up | |
CN105573775B (zh) | Fpga配置文件加载方法和解码器 | |
Rathore et al. | A brief study of data compression algorithms | |
Konecki et al. | Efficiency of lossless data compression | |
Lin | A hardware architecture for the LZW compression and decompression algorithms based on parallel dictionaries | |
YuanJing | The combinational application of LZSS and LZW algorithms for compression based on Huffman | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
Govinda et al. | Storage optimization in cloud environment using compression algorithm | |
Rigler | FPGA-based lossless data compression using GNU Zip | |
Mahmood et al. | Efficient compression scheme for large natural text using zipf distribution | |
CN111866520A (zh) | 编解码方法、编解码设备以及通信系统 | |
Chan et al. | Application of compaction technique to optimizing wireless email transfer | |
Jiancheng et al. | Block‐Split Array Coding Algorithm for Long‐Stream Data Compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |