CN109120687B - 数据包发送方法、装置、系统、设备及存储介质 - Google Patents
数据包发送方法、装置、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN109120687B CN109120687B CN201810904800.4A CN201810904800A CN109120687B CN 109120687 B CN109120687 B CN 109120687B CN 201810904800 A CN201810904800 A CN 201810904800A CN 109120687 B CN109120687 B CN 109120687B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- target
- packet
- service
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据包发送方法、装置、系统、设备及存储介质。所述方法包括:接收数据包;当存在满足条件的n个目标数据包时,对n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据;生成携带有处理后的数据的合并数据包;发送合并数据包。本申请实施例一方面减少了传输数据包所需消耗的流量,另一方面减少了ACK包的数量,减少了ACK包所需消耗的流量,充分提高了流量利用率。
Description
技术领域
本申请实施例涉及通信技术领域,特别涉及一种数据包发送方法、装置、系统、设备及存储介质。
背景技术
目前,大部分移动数据通信是按照流量收取费用的,其中,手游的流量消耗量相对较大,使得流量消耗成了影响一款手游口碑的重要原因。
特别是在游戏通信下行,也就是游戏服务器发送数据包给游戏客户端的时候,由于需要携带玩家在一个世界地图或一个副本中周边角色的操作及发言信息,业务数据量很大。目前,游戏服务器将业务数据携带在数据包中发往游戏客户端,该数据包通常为IP/TCP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)数据包。游戏客户端接收到游戏服务器发来的数据包之后,会向游戏服务器发送一个ACK(Acknowledgement,确认字符)以表示确认接收。
上述相关技术提供的数据包往来过程,流量消耗量大,且包头和ACK包的流量消耗占比较大,而实际业务数据占比相对较低,流量利用率低。
发明内容
本申请实施例提供了一种数据包发送方法、装置、系统、设备及存储介质,可用于解决相关技术所存在的流量消耗量大且利用率低的问题。技术方案如下:
一方面,本申请实施例提供一种数据包发送方法,所述方法包括:
接收数据包;
当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据;其中,所述目标数据包是指需要发送给目标设备且还未发送的数据包,所述n为大于1的整数;
生成携带有所述处理后的数据的合并数据包;
向所述目标设备发送所述合并数据包。
另一方面,本申请实施例提供一种数据包发送装置,所述装置包括:
所述接收模块,用于接收数据包;
所述合并压缩模块,用于当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据;其中,所述目标数据包是指需要发送给目标设备且还未发送的数据包,所述n为大于1的整数;
所述生成模块,用于生成携带有所述处理后的数据的合并数据包;
所述发送模块,用于向所述目标设备发送所述合并数据包。
再一方面,本申请实施例提供一种数据包发送系统,所述系统包括:业务服务器、中间件服务器和目标设备;
所述业务服务器,用于向所述中间件服务器发送数据包;
所述中间件服务器,用于接收所述业务服务器发送的所述数据包,当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据;其中,所述目标数据包是指需要发送给目标设备且还未发送的数据包,所述n为大于1的整数;
所述中间件服务器,还用于生成带有所述处理后的数据的合并数据包,向所述目标设备发送所述合并数据包;
所述目标设备,用于接收所述中间件服务器发送的所述合并数据包。
又一方面,本申请实施例提供一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的数据包发送方法。
又一方面,本申请实施例提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述的数据包发送方法。
还一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述的数据包发送方法。
本申请实施例提供的技术方案中,通过对多个数据包中的业务数据执行合并压缩处理,生成携带有处理后的数据的合并数据包后,然后再将合并数据包发送出去,一方面减少了传输数据包所需消耗的流量,另一方面减少了ACK包的数量,减少了ACK包所需消耗的流量,充分提高了流量利用率。
附图说明
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的数据包发送方法的流程图;
图3示例性示出了数据包接收过程的示意图;
图4示例性示出了数据包缓存过程的示意图;
图5是本申请实施例提供的一种合并压缩流程的示意图;
图6示例性示出了合并数据包生成过程的示意图;
图7是本申请另一个实施例提供的数据包发送方法流程图;
图8示例性示出了合并数据包分包过程的示意图;
图9是本申请实施例提供的一种解压分包流程的示意图;
图10是本申请一个实施例提供的数据包发送装置的框图;
图11是本申请一个实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:至少一个终端10、业务服务器20和中间件服务器30。
终端10可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等电子设备。终端10可以接收业务服务器20提供的业务。在一个示例中,终端10中安装运行有和业务服务器20对接的业务客户端。例如,该业务客户端可以是游戏应用程序的客户端,相应地,业务服务器20即为该游戏应用程序的后台服务器。
可选地,终端10中还安装运行有中间件客户端,该中间件客户端用于实现与中间件服务器30之间的互联通信。中间件客户端可以是一个独立于业务客户端的客户端,也可以集成在业务客户端中。中间件客户端所具备的功能,可以由SDK(Software DevelopmentKit,软件开发包)实现。
业务服务器20用于为终端10提供业务,业务服务器20可以是终端10中安装运行的业务客户端的后台服务器。可选地,当业务客户端为游戏应用程序的客户端时,业务服务器20可以称为游戏服务器,客户端和游戏服务器之间可以交互携带有游戏业务数据的数据包。可选地,上述数据包为IP/TCP数据包。业务服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,业务服务器20中内置有中间件服务器接入SDK,该SDK用于实现业务服务器20与中间件服务器30之间的互联通信。
中间件服务器30可以通过网络分别与终端10和业务服务器20进行通信,上述网络可以是有线网络或者无线网络。中间件服务器30可以是网关代理,也可以是诸如网卡、集线器、路由器等网络接入组件。中间件服务器30用于实现终端10和业务服务器20之间的通信对接,如转发终端10和业务服务器20之间传输的数据包。
请参考图2,其示出了本申请一个实施例提供的数据包发送方法的流程图。
在本实施例中,主要以该方法应用于图1所示实施环境的中间件服务器30中来举例说明,相应地,本实施例中涉及的目标设备可以是终端10或者业务服务器20。
该方法可以包括如下几个步骤:
步骤201,接收数据包。
中间件服务器接收数据包。在一个示例中,在下行传输过程,即业务服务器向目标设备发送数据包的过程中,中间件服务器接收业务服务器发送的数据包。在另一个示例中,在上行传输过程,即目标设备向业务服务器发送数据包的过程中,中间件服务器接收终端发送的数据包。在本实施例中,主要以下行传输过程为例进行介绍说明。
中间件服务器接收到数据包之后,并不立即将数据包转发给相应的目标设备,而是将数据包进行缓存。可选地,中间件服务器中设置有缓冲区,该缓冲区用于缓存数据包。
可选地,中间件服务器针对不同的目标设备,分别设置对应的缓冲区。也即,中间件服务器为每一个目标设备设置对应的缓冲区。某一目标设备对应的缓冲区,用于缓存发送给该目标设备的数据包。例如,当中间件服务器接收到发送给某一目标设备的目标数据包时,中间件服务器将目标数据包缓存至该目标设备对应的缓冲区中。
示例性地,如图3所示,假设中间件服务器分别和终端A、终端B和终端C对接,中间件服务器分别为这3个终端设置各自对应的缓冲区,记为缓冲区A、缓冲区B和缓冲区C。中间件服务器接收到业务服务器发送的数据包之后,确定接收该数据包的目标设备,然后将该数据包缓存至该目标设备对应的缓冲区中。例如,中间件服务器接收到业务服务器发送给终端A的数据包,则中间件服务器将该数据包缓存至终端A对应的缓冲区A中。
示例性地,如图4所示,假设中间件服务器接收到数据包A、数据包B和数据包C,且该3个数据包都是发送给目标设备的,则中间件服务器将这3个数据包缓存至目标设备对应的缓冲区中。
步骤202,当存在满足条件的n个目标数据包时,对n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,n为大于1的整数。
在本申请实施例中,数据包包括包头和包体,包头中携带有基础包头信息,如包头长度、数据包总长、服务类型、标志等信息,包体中携带业务数据。业务数据是指与业务相关的数据。对于不同的业务,业务数据所包含的内容也可能有所不同。以游戏业务为例,其业务数据可以包括对战数据、地图数据、聊天数据等。
结合参考图5,其示出了本申请实施例提供的一种合并压缩流程的示意图。中间件服务器分别提取n个目标数据包中的业务数据,得到n段业务数据;然后对n段业务数据执行合并处理,得到合并后的数据;最后对合并后的数据执行压缩处理,得到处理后的数据。
在本申请实施例中,对业务数据的压缩处理,其目的是在不丢失有用信息的前提下,缩减数据量,提高其传输、存储和处理效率。在本申请实施例中,对压缩处理所采用的数据压缩算法的种类不作限定,包括但不限于以下任意一种:霍夫曼压缩算法、LZW(Lempel-Ziv-Welch Encoding,串表压缩)算法、游程编码、香农编码和算术编码等。
在本申请实施例中,对n段业务数据执行合并处理,可以是将前一段业务数据的最后一个字节与下一段业务数据的第一个字节进行拼接,从而使n段业务数据相互连接,得到合并后的数据。
另外,在采用相同的数据压缩算法的情况下,先合并后压缩的方式,相较于先压缩后合并的方式,可以获得更大的压缩比。例如,一个数据包A,其包含的业务数据大小为100字节;另一个数据包B,其包含的业务数据大小为200字节。在一个试验中,采用先合并后压缩的方式,先对数据包A和数据包B中的业务数据执行合并处理,得到合并后的数据大小为300字节;然后对合并后的数据执行压缩处理,得到处理后的数据大小为80字节。在另一个试验中,采用先压缩后合并的方式,先对数据包A和数据包B中各自的业务数据分别执行压缩处理,得到压缩后的数据大小分别为32字节和64字节;然后将上述两部分压缩后的数据执行合并处理,得到处理后的数据大小为96字节。可见,80字节<96字节,因此采用先合并后压缩的方式,可以获得更大的压缩比。
可选地,上述条件包括以下至少一项:目标数据包的数据总量大于第一阈值、最早接收的目标数据包的接收时刻与当前时刻之间的时间间隔大于第二阈值、最晚接收的目标数据包属于指定类型。
示例性地,当目标设备对应的缓冲区中,存在n个目标数据包,且该n个目标数据包的数据总量大于第一阈值,则确认该n个目标数据包符合上述条件,触发对该n个目标数据包执行上文介绍的合并压缩处理。可选地,第一阈值可以根据实际情况预先配置,例如第一阈值为1400字节。
示例性地,目标设备对应的缓冲区中,最早接收的目标数据包的接收时刻假设为T1,对比当前时刻T2,若两者时间间隔大于第二阈值时,则确认缓冲区中当前缓存的n个目标数据包符合上述条件,触发对该n个目标数据包执行上文介绍的合并压缩处理。可选地,第二阈值可以根据实际情况预先配置,例如第二阈值为200毫秒。
示例性地,当目标设备对应的缓冲区中接收到指定类型的数据包时,确认缓冲区中当前缓存的n个目标数据包符合上述条件,触发对该n个目标数据包执行上文介绍的合并压缩处理。可选地,指定类型为紧急包,表明该数据包需要立即发送给目标设备。数据包的发送设备可以配置该数据包是否为指定类型。以游戏业务为例,可以将携带有击杀数据的数据包配置为紧急包,而将携带有聊天数据的数据包配置为非紧急包。
步骤203,生成携带有处理后的数据的合并数据包。
中间件服务器得到处理后的数据之后,对基础包头信息、合并数据包所合并的数据包的数量n、以及n个目标数据包中的每一个目标数据包的包长执行合并处理,得到合并包头;将处理后的数据作为包体,得到合并包体;将合并包头及合并包体合并,得到合并数据包。
示例性地,如图6所示,假设目标数据包有A、B和C 3个,将目标设备对应的缓冲区中3个数据包A、B和C进行合并压缩处理,得到处理后的数据;将3个数据包中基础包头信息、数据包个数(此示例中此值为3)、以及3个目标数据包各自的包长,包括第一包长LA、第二包长LB和第三包长LC,一起合并得到合并包头。将处理后的数据作为包体得到合并包体。最后将合并包头及合并包体一起合并,生成合并数据包。
步骤204,向上述目标设备发送该合并数据包。
中间件服务器生成合并数据包之后,将合并数据包发送给目标设备。有关目标设备接收到合并数据包之后的处理流程,可参见下述图7实施例中的介绍说明。
综上所述,本申请实施例提供的技术方案中,通过对多个数据包中的业务数据执行合并压缩处理,生成携带有处理后的数据的合并数据包后,然后再将合并数据包发送出去,一方面减少了传输数据包所需消耗的流量,另一方面减少了ACK包的数量,减少了ACK包所需消耗的流量,充分提高了流量利用率。
请参考图7,其示出了本申请另一个实施例提供的数据包发送方法流程图。在本实施例中,主要以该方法应用于图1所示实施环境中来举例说明。该方法可以包括以下几个步骤:
步骤701,业务服务器向中间件服务器发送数据包。
步骤702,中间件服务器将目标数据包缓存至目标设备对应的缓冲区中。
步骤703,当中间件服务器中存在满足条件的n个目标数据包时,中间件服务器对n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,n为大于1的整数。
步骤704,中间件服务器生成携带有上述处理后的数据的合并数据包。
步骤705,中间件服务器向目标设备发送合并数据包。
上述步骤701至705与图2实施例介绍的方法流程相同,可参见图2实施例中的介绍说明,本实施例对此不再赘述。
另外,目标设备中可以运行有业务客户端和中间件客户端。有关业务客户端和中间件客户端的介绍说明可参见图1实施例,本实施例对此不再赘述。中间件客户端可以接收中间件服务器发送的合并数据包,而后执行下述步骤流程:
步骤706,中间件客户端获取合并数据包中携带的处理后的数据。
在本申请实施例中,合并数据包包括合并包头和合并包体,合并包头中携带有基础包头信息、合并数据包所合并的数据包的数量n、以及n个目标数据包中的每一个目标数据包的包长。合并包体中携带有上述处理后的数据。
示例性地,如图8所示,假设目标设备接收中间件服务器发送的合并数据包,中间件客户端从合并数据包的合并包体中获取处理后的数据,以及从合并数据包的合并包体中获取基础包头信息、数据包个数(此示例中此值为3)和3个目标数据包各自的包长,包括第一包长LA、第二包长LB和第三包长LC;然后,中间件客户端对处理后的数据执行解压分包处理,得到3段业务数据。有关解压分包处理的流程参见下文介绍说明。
步骤707,中间件客户端对处理后的数据执行解压分包处理,得到n段业务数据。
结合参考图9,其示出了本申请实施例提供的一种解压分包流程的示意图。中间件客户端对处理后的数据执行解压缩处理,得到合并后的数据;然后,对合并后的数据执行分包处理,得到n段业务数据。
上述解压缩处理可以采用与合并压缩处理过程中所采用的压缩算法相对应的解压缩算法。在分包处理时,可以根据合并包头中携带的包长等信息,将合并连接在一起的数据分成多段数据。
步骤708,中间件客户端向业务客户端发送n段业务数据。
综上所述,本申请实施例提供的技术方案中,通过对多个数据包中的业务数据执行合并压缩处理,生成携带有处理后的数据的合并数据包后,然后再将合并数据包发送出去,一方面减少了传输数据包所需消耗的流量,另一方面减少了ACK包的数量,减少了ACK包所需消耗的流量,充分提高了流量利用率。
需要说明的一点是,在上述方法实施例中,主要以本申请提供的技术方案应用于图1所示的实施环境进行介绍说明。当然,上述图1所示的实施环境仅是示例性和解释性的,并不构成对本申请的限定。本申请提供的技术方案,适用于任何有数据包收发需求的业务场景。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的数据包发送装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置1000可以包括:接收模块1010、合并压缩模块1020、生成模块1030和发送模块1040。
接收模块1010,用于接收数据包。
合并压缩模块1020,用于当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据;其中,上述目标数据包是指需要发送给目标设备且还未发送的数据包,上述n为大于1的整数。
生成模块1030,用于生成携带有上述处理后的数据的合并数据包。
发送模块1040,用于向所述目标设备发送所述合并数据包。
示例性地,上述合并压缩模块1020,具体用于:分别提取n个目标数据包中的业务数据,得到n段业务数据;对n段业务数据执行合并处理,得到合并后的数据;对合并后的数据执行压缩处理,得到处理后的数据。
可选地,上述条件包括以下至少一项:目标数据包的数据总量大于第一阈值、最早接收的目标数据包的接收时刻与当前时刻之间的时间间隔大于第二阈值、最晚接收的目标数据包属于指定类型。
可选地,本实施例提供的装置还包括:缓存模块,用于将所述目标数据包缓存至目标设备对应的缓冲区中,其中,不同的目标设备对应于不同的缓冲区。
可选地,合并数据包包括合并包头和合并包体;其中,所述合并包头中包括基础包头信息、合并数据包所合并的数据包的数量n、以及n个目标数据包中的每一个目标数据包的包长;所述合并包体中包括所述处理后的数据。
综上所述,本申请实施例提供的技术方案中,通过对多个数据包中的业务数据执行合并压缩处理,生成携带有处理后的数据的合并数据包后,然后再将合并数据包发送出去,一方面减少了传输数据包所需消耗的流量,另一方面减少了ACK包的数量,减少了ACK包所需消耗的流量,充分提高了流量利用率。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请一示例性实施例还提供了一种数据包发送系统,该系统可以包括:业务服务器、中间件服务器和目标设备。
所述业务服务器,用于向所述中间件服务器发送数据包;
所述中间件服务器,用于接收所述业务服务器发送的所述数据包,当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据;其中,所述目标数据包是指需要发送给目标设备且还未发送的数据包,所述n为大于1的整数;
所述中间件服务器,还用于生成带有所述处理后的数据的合并数据包,向所述目标设备发送所述合并数据包;
所述目标设备,用于接收所述中间件服务器发送的所述合并数据包。
请参考图11,其示出了本申请一个实施例提供的计算机设备的结构示意图。该计算机设备可用于实施上述实施例中提供的数据包发送方法,例如该计算机设备可以是上文介绍的中间件服务器。具体来讲:
所述计算机设备1100包括中央处理单元(CPU)1101、包括随机存取存储器(RAM)1102和只读存储器(ROM)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。所述计算机设备1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
所述基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中所述显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。所述基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,所述大容量存储设备1107可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
根据本申请的各种实施例,所述计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1100可以通过连接在所述系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述数据包发送方法的指令。
在示例性实施例中,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述数据包发送方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述数据包发送方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述数据包发送方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种数据包发送方法,其特征在于,所述方法应用于游戏应用中下行数据包的发送,并应用于中间件服务器,所述方法包括:
所述中间件服务器接收所述下行数据包,所述下行数据包携带有所述游戏应用运行过程中业务客户端与业务服务器之间交互的游戏业务数据;其中,所述业务服务器为所述游戏应用的后台服务器;
所述中间件服务器将目标数据包缓存至目标设备对应的缓冲区中,其中,不同的目标设备对应于不同的缓冲区,所述目标数据包是指需要发送给所述目标设备且还未发送的下行数据包;
当所述中间件服务器中存在满足条件的n个目标数据包时,所述中间件服务器对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,所述n为大于1的整数;其中,所述条件包括最早接收的目标数据包的接收时刻与当前时刻之间的时间间隔大于第二阈值;
当所述中间件服务器接收到指定类型的数据包时,确认缓冲区中当前缓存的n个目标数据包符合上述条件,触发对该n个目标数据包执行所述合并压缩处理,得到处理后的数据;所述指定类型为紧急包;
所述中间件服务器生成携带有所述处理后的数据的合并数据包;
所述中间件服务器向所述目标设备发送所述合并数据包。
2.根据权利要求1所述的方法,其特征在于,所述对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,包括:
分别提取所述n个目标数据包中的业务数据,得到n段业务数据;
对所述n段业务数据执行合并处理,得到合并后的数据;
对所述合并后的数据执行压缩处理,得到所述处理后的数据。
3.根据权利要求1所述的方法,其特征在于,所述条件还包括以下至少一项:所述目标数据包的数据总量大于第一阈值、最晚接收的目标数据包属于指定类型。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述合并数据包包括合并包头和合并包体;其中,
所述合并包头中包括基础包头信息、所述合并数据包所合并的数据包的数量n、以及所述n个目标数据包中的每一个目标数据包的包长;
所述合并包体中包括所述处理后的数据。
5.一种数据包发送方法,其特征在于,所述方法应用于游戏应用中下行数据包的发送,所述方法包括:
业务服务器向中间件服务器发送所述下行数据包,所述下行数据包携带有所述游戏应用运行过程中业务客户端与业务服务器之间交互的游戏业务数据;其中,所述业务服务器为所述游戏应用的后台服务器;
所述中间件服务器将目标数据包缓存至目标设备对应的缓冲区中,其中,不同的目标设备对应于不同的缓冲区,所述目标数据包是指需要发送给所述目标设备且还未发送的下行数据包;
当所述中间件服务器中存在满足条件的n个目标数据包时,所述中间件服务器对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,所述n为大于1的整数;其中,所述条件包括最早接收的目标数据包的接收时刻与当前时刻之间的时间间隔大于第二阈值;
当所述中间件服务器接收到指定类型的数据包时,确认缓冲区中当前缓存的n个目标数据包符合上述条件,触发对该n个目标数据包执行所述合并压缩处理,得到处理后的数据;所述指定类型为紧急包;
所述中间件服务器生成携带有所述处理后的数据的合并数据包;
所述中间件服务器向所述目标设备发送所述合并数据包。
6.根据权利要求5所述的方法,其特征在于,所述目标设备中运行有业务客户端和中间件客户端;
所述中间件服务器向所述目标设备发送所述合并数据包之后,还包括:
所述中间件客户端接收所述合并数据包;
所述中间件客户端获取所述合并数据包中携带的所述处理后的数据;
所述中间件客户端对所述处理后的数据执行解压分包处理,得到n段业务数据;
所述中间件客户端向所述业务客户端发送所述n段业务数据。
7.根据权利要求6所述的方法,其特征在于,所述中间件客户端对所述处理后的数据执行解压分包处理,得到所述n段业务数据,包括:
所述中间件客户端对所述处理后的数据执行解压缩处理,得到合并后的数据;
所述中间件客户端对所述合并后的数据执行分包处理,得到n段业务数据。
8.一种数据包发送装置,其特征在于,所述装置应用于游戏应用中下行数据包的发送,并应用于中间件服务器;所述装置包括:
接收模块,用于接收所述下行数据包,所述下行数据包携带有所述游戏应用运行过程中业务客户端与业务服务器之间交互的游戏业务数据;其中,所述业务服务器为所述游戏应用的后台服务器;
缓存模块,用于将目标数据包缓存至目标设备对应的缓冲区中,其中,不同的目标设备对应于不同的缓冲区,所述目标数据包是指需要发送给所述目标设备且还未发送的下行数据包;
合并压缩模块,用于当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,所述n为大于1的整数;其中,所述条件包括最早接收的目标数据包的接收时刻与当前时刻之间的时间间隔大于第二阈值;当接收到指定类型的数据包时,确认缓冲区中当前缓存的n个目标数据包符合上述条件,触发对该n个目标数据包执行所述合并压缩处理,得到处理后的数据;所述指定类型为紧急包;
生成模块,用于生成携带有所述处理后的数据的合并数据包;
发送模块,用于向所述目标设备发送所述合并数据包。
9.一种数据包发送系统,其特征在于,所述系统应用于游戏应用中下行数据包的发送,所述系统包括:业务服务器、中间件服务器和目标设备,其中,所述业务服务器为所述游戏应用的后台服务器;
所述业务服务器,用于向所述中间件服务器发送所述下行数据包,所述下行数据包携带有所述游戏应用运行过程中业务客户端与业务服务器之间交互的游戏业务数据;
所述中间件服务器将目标数据包缓存至目标设备对应的缓冲区中,其中,不同的目标设备对应于不同的缓冲区,所述目标数据包是指需要发送给所述目标设备且还未发送的下行数据包;
所述中间件服务器,用于接收所述业务服务器发送的所述下行数据包,当存在满足条件的n个目标数据包时,对所述n个目标数据包中的业务数据执行合并压缩处理,得到处理后的数据,所述n为大于1的整数;其中,所述条件包括最早接收的目标数据包的接收时刻与当前时刻之间的时间间隔大于第二阈值;当所述中间件服务器接收到指定类型的数据包时,确认缓冲区中当前缓存的n个目标数据包符合上述条件,触发对该n个目标数据包执行所述合并压缩处理,得到处理后的数据;所述指定类型为紧急包;
所述中间件服务器,还用于生成带有所述处理后的数据的合并数据包,向所述目标设备发送所述合并数据包;
所述目标设备,用于接收所述中间件服务器发送的所述合并数据包。
10.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至4任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810904800.4A CN109120687B (zh) | 2018-08-09 | 2018-08-09 | 数据包发送方法、装置、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810904800.4A CN109120687B (zh) | 2018-08-09 | 2018-08-09 | 数据包发送方法、装置、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109120687A CN109120687A (zh) | 2019-01-01 |
CN109120687B true CN109120687B (zh) | 2020-07-24 |
Family
ID=64852199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810904800.4A Active CN109120687B (zh) | 2018-08-09 | 2018-08-09 | 数据包发送方法、装置、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109120687B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858017A (zh) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于处理任务的方法、设备和计算机程序产品 |
CN111083208B (zh) * | 2019-12-03 | 2022-10-28 | 华为技术有限公司 | 网络结构、网络中网元之间的报文发送方法及接收方法 |
CN112333238A (zh) * | 2020-10-09 | 2021-02-05 | 北京达佳互联信息技术有限公司 | 数据的处理方法、装置、设备及存储介质 |
CN113438274A (zh) * | 2021-05-26 | 2021-09-24 | 曙光网络科技有限公司 | 数据传输方法、装置、计算机设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571715A (zh) * | 2010-12-27 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 多维数据查询方法及系统 |
CN103701714A (zh) * | 2013-12-25 | 2014-04-02 | 北京奇虎科技有限公司 | 页面提取方法、服务器及网络系统 |
CN104811265A (zh) * | 2014-01-29 | 2015-07-29 | 上海数字电视国家工程研究中心有限公司 | 基带帧的封装方法及解封装方法 |
CN105205151A (zh) * | 2015-09-24 | 2015-12-30 | 福建天晴数码有限公司 | 在移动端节约浏览器页面流量的方法及系统 |
CN106897052A (zh) * | 2015-12-24 | 2017-06-27 | 北京奇虎科技有限公司 | Apk文件压缩方法及装置 |
CN107295036A (zh) * | 2016-03-31 | 2017-10-24 | 华为技术有限公司 | 一种数据发送方法及数据合并设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226483A1 (en) * | 2006-03-24 | 2007-09-27 | Dennis Cox | System and method for storing and/or transmitting emulated network flows |
CN102831182A (zh) * | 2012-07-31 | 2012-12-19 | 北京天神互动科技有限公司 | 一种网页资源数据实时加载系统及方法 |
-
2018
- 2018-08-09 CN CN201810904800.4A patent/CN109120687B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571715A (zh) * | 2010-12-27 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 多维数据查询方法及系统 |
CN103701714A (zh) * | 2013-12-25 | 2014-04-02 | 北京奇虎科技有限公司 | 页面提取方法、服务器及网络系统 |
CN104811265A (zh) * | 2014-01-29 | 2015-07-29 | 上海数字电视国家工程研究中心有限公司 | 基带帧的封装方法及解封装方法 |
CN105205151A (zh) * | 2015-09-24 | 2015-12-30 | 福建天晴数码有限公司 | 在移动端节约浏览器页面流量的方法及系统 |
CN106897052A (zh) * | 2015-12-24 | 2017-06-27 | 北京奇虎科技有限公司 | Apk文件压缩方法及装置 |
CN107295036A (zh) * | 2016-03-31 | 2017-10-24 | 华为技术有限公司 | 一种数据发送方法及数据合并设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109120687A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109120687B (zh) | 数据包发送方法、装置、系统、设备及存储介质 | |
CN110708393A (zh) | 用于传输数据的方法、装置和系统 | |
JP7484024B2 (ja) | データ伝送方法、装置、電子機器、及びコンピュータプログラム | |
US20080267067A1 (en) | Controlling the flow of data updates between a receiving station and a sending station | |
CN101409675A (zh) | 网络分组净荷压缩 | |
CN109756536A (zh) | 一种数据传输的方法、装置及系统 | |
US11023412B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
US20230071243A1 (en) | Conserving network resources during transmission of packets of interactive services | |
US20230118176A1 (en) | Data transmission method and apparatus, computer-readable storage medium, electronic device, and computer program product | |
CN104753980A (zh) | 数据传输方法及相关装置和通信系统 | |
CN112671771B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN112003937A (zh) | 卫星数据传输方法、装置、计算机设备、存储介质 | |
KR20210137702A (ko) | 전자 장치 및 전자 장치에서 수신된 데이터 패킷을 처리하는 방법 | |
CN111541749B (zh) | 一种嵌入式设备的数据通信方法、系统及相关设备 | |
CN113422669B (zh) | 数据传输方法、装置和系统、电子设备以及存储介质 | |
CN111740897B (zh) | 用于信息处理的方法、电子设备和存储介质 | |
CN111245702B (zh) | 基于5gs的数据传输方法及装置、转发设备和upf通信设备 | |
WO2023217188A1 (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
CN105727556B (zh) | 一种图像绘制的方法、相关设备及系统 | |
WO2019028703A1 (zh) | 一种反馈应答信息的长度确定方法及相关产品 | |
WO2022206187A1 (zh) | 报文流量控制的方法、装置、设备及计算机可读存储介质 | |
CN109766347B (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
CN113626221B (zh) | 一种消息入队方法及装置 | |
CN115633037A (zh) | 数据包的转发方法、装置、虚拟网关设备、介质及系统 | |
CN111432384B (zh) | 用于具有录音功能设备的大数据量音频蓝牙实时传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |