CN113507393A - 数据加速传输方法、装置、计算机设备和存储介质 - Google Patents
数据加速传输方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113507393A CN113507393A CN202111049966.0A CN202111049966A CN113507393A CN 113507393 A CN113507393 A CN 113507393A CN 202111049966 A CN202111049966 A CN 202111049966A CN 113507393 A CN113507393 A CN 113507393A
- Authority
- CN
- China
- Prior art keywords
- data packet
- address
- server
- packet
- acceleration
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种数据加速传输方法、装置、计算机设备、存储介质和计算机程序产品。方法包括:基于针对待加速应用所配置的路由表,将待加速应用对应的应用客户端发出的数据包路由至虚拟网络设备,从虚拟网络设备中读取网络层数据包,解析原始目的地址和数据段,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,将原始目的地址添加至数据段的头部,得到更新数据包,发送至加速服务器,以使加速服务器按照数据段的头部所对应的原始目的地址,建立与原始目的地址所对应的应用服务器的交互,将应用服务器反馈的响应数据包回传至应用客户端,有效提高数据加速传输效果。上述方法还能够应用于智慧交通,实现地图数据的加速传输。
Description
技术领域
本申请涉及数据传输技术领域,特别是涉及一种数据加速传输方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,数据的快速安全传输成为了数据交互过程中的重要需求。以游戏场景为例,当网络环境恶劣时,经常出现DNS(Domain Name System,域名系统)劫持,线路拥堵等问题,导致用户大概率会出现游戏掉线,延迟过高,无法登录等问题,这些问题严重影响用户的游戏体验。为解决这一问题,提出了使用VPN(Virtual PrivateNetwork,虚拟专用网络)的方式进行数据传输。通过跟VPN服务器通过私有协议建立加密连接,VPN服务器收到数据以后需要解密然后用正常的TCP(Transmission ControlProtocol,传输控制协议)/IP(Internet protocol,网际互连协议)协议与真正的游戏服务器建连,VPN服务器收到真正的游戏数据以后加密发回给客户端。
然而,客户端与VPN服务器建立连接时需要使用私有协议进行通信并且客户端与服务端都需要加解密的工作。加密解密会影响VPN服务器的性能,增加通信所需的时延,导致服务器的数据处理效率低,影响数据加速传输的效果。
发明内容
基于此,有必要针对上述技术问题,提供一种能够有效提高数据加速传输的效果的数据加速传输方法、装置、计算机设备、存储介质和计算机程序产品。
一种数据加速传输方法,所述方法包括:
基于针对待加速应用所配置的路由表,将所述待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备;
从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
一种数据加速传输装置,所述装置包括:
数据包路由模块,用于基于针对待加速应用所创建的路由表,将所述待加速应用的应用客户端所发出的数据包路由至虚拟网络设备;
数据包解析模块,用于从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
数据包更新模块,用于将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
数据包发送模块,用于将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
基于针对待加速应用所配置的路由表,将所述待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备;
从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
基于针对待加速应用所配置的路由表,将所述待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备;
从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
基于针对待加速应用所配置的路由表,将所述待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备;
从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
上述数据加速传输方法、装置、计算机设备、存储介质和计算机程序产品,基于加速客户端针对待加速应用所配置的路由表,将待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备,实现对数据包的拦截,便于加速客户端从虚拟网络设备中读取网络层数据包,解析出网络层数据包中的原始目的地址和数据段,实现了原始目的地址的便捷快速获取,通过将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,实现将更新数据包发送至加速服务器,从而使得加速服务器按照数据段的头部所对应的原始目的地址,建立与原始目的地址所对应的应用服务器的交互,将应用服务器反馈的响应数据包回传至应用客户端。在整个方案中,通过将地址数据的处理过程加速客户端来实现,对于加速客户端来说,通过路由表和虚拟网络设备来读取网络层数据包,能够直接从网络层数据包中获取原始目的地址,有效提高了原始目的地址的获取速度,便于进行地址数据的处理,对于加速服务器来说,只需要根据原始目的地址进行数据包的转发处理,显著简化了加速服务器的处理量,能够有效提高加速数据传输的效果。
附图说明
图1为一个实施例中数据加速传输方法的应用环境图;
图2为一个实施例中数据加速传输方法的流程示意图;
图3为一个实施例中选择待加速应用的页面示意图;
图4为另一个实施例中网络层数据包的解析结果示意图;
图5为一个实施例中网络层数据包更新前后的对比示意图;
图6为另一个实施例中数据加速传输方法的流程示意图;
图7为一个实施例中待加速游戏的选择页面示意图;
图8为一个实施例中待加速游戏的区服和节点选择的页面示意图;
图9为一个实施例中数据加速传输方法的时序图;
图10为一个实施例中UDP数据包对应的流程示意图;
图11为一个实施例中TCP数据包对应的流程示意图;
图12为一个实施例中数据加速传输装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据加速传输方法,可以应用于如图1所示的应用环境中。其中,终端110通过网络与加速服务器120进行通信,加速服务器120通过网络与应用服务器130进行通信。终端包括应用客户端102,加速客户端104,以及由加速客户端104创建的虚拟网络设备106。终端102基于加速客户端104针对待加速应用所配置的路由表,将待加速应用对应的应用客户端102所发出的数据包路由至虚拟网络设备106;加速客户端104从虚拟网络设备106中读取网络层数据包,解析出网络层数据包中的原始目的地址和数据段;加速客户端104将应用客户端102所对应的加速服务器120的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包;加速客户端104将更新数据包发送至加速服务器120。加速服务器120按照数据段的头部所对应的原始目的地址,建立与原始目的地址所对应的应用服务器130的交互,将应用服务器130反馈的响应数据包回传至加速客户端104;加速客户端104将响应数据包的源地址更新为应用服务器的地址,将源地址更新后的响应数据包通过虚拟网络设备106反馈至应用客户端102。
其中,终端110可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备和车载终端,加速服务器120和应用服务器140可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据加速传输方法,以该方法应用于图1中的加速客户端为例进行说明,包括以下步骤:
步骤202,基于针对待加速应用所配置的路由表,将待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备。
其中,数据加速传输是提高数据传输效率,降低数据延迟的一种数据处理方式。由于在数据交互过程中,受到网络环境的影响,容易出现线路拥堵等情况,导致出现交互延迟过高等问题,通过数据加速传输,能够提交数据交互效率。
待加速应用为需要通过网络与服务器进行数据交互的应用程序。待加速应用在进行数据交互过程中,在终端中以具体的应用客户端的形式存在。应用客户端是指与服务器相对应,为客户提供本地服务的程序。应用客户端具体可以是终端下载的用于基于网络进行数据交互的应用程序,也可以是基于浏览器进行数据访问的具体网页。在一个具体的应用中,待加速应用可以是游戏应用,实现游戏交互过程的快速响应,待加速应用也可以是电子地图应用,如导航应用等,以实现地图数据的快速获取。
路由表是记录数据包的传输路径和接收对象的数据表。一般来说,应用客户端在进行数据交互时,会指定目的地址,终端中原始的路由表会记录应用客户端的传输路径,使得终端将数据流量发送至指定目的地址。
针对待加速应用所配置的路由表,能够使得将待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备,实现数据包的拦截。路由是指从源对象到目的对象的数据传输过程。
其中,路由表的配置,实质上是对原始的路由表的传输路径和接收对象修改。具体地,加速客户端通过响应于针对待加速应用的加速请求,配置使得将待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备的路由表。其中,加速请求用于请求加速客户端对待加速应用所发出的数据流量进行加速处理,以提高待加速应用的应用客户端与应用服务器之间的交互效率。
数据包是指应用客户端需要发送至对应的应用服务器的交互数据所对应的数据单位。在数据交互过程中,单个消息被划分为多个数据块,数据块称为数据包,它包含发送者和接收者的地址信息。这些数据包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合,实现数据交互。
虚拟网络设备是指操作系统内核中的虚拟的网络设备,虚拟网络设备用于辅助加速客户端进行数据包的收发处理,加速客户端可以从虚拟网络设备中读取输入的数据包,也可以将数据包写入至虚拟网络设备并发送出去。虚拟网络设备全部用软件实现,并向运行于操作系统的软件提供与硬件的网络设备完全相同的功能。虚拟网络设备是由应用客户端在操作系统内核中创建的。虚拟网络设备可以是创建后一直存在于操作系统内核,以减少虚拟网络设备创建过程,提高处理速度。虚拟网络设备也可以是每完成一次应用加速后释放该虚拟网络设备,在下一次进行数据加速传输时重新创建,以减少在不需要进行数据加速传输时对操作系统内核的空间的占用。具体地,虚拟网络设备可以是由加速客户端通过响应于针对待加速应用的加速请求进行创建的。
具体地,加速客户端通过响应于针对待加速应用的加速请求,配置使得将待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备的路由表,以使得待加速应用对应的应用客户端所发出的数据包,按照路由表,路由至虚拟网络设备。通过响应加速请求的方式进行路由表的配置,能够明确路由表的配置时机以及配置路由表这一动作的触发方式,提高对待加速应用的传输加速的响应速度。
在一个具体的应用中,如图3所示,在加速客户端的运行页面中,显示有多个候选应用标识,基于用户对候选应用标识中待加速应用标识的选中操作,确定待加速应用。在用户选中待加速应用标识时,基于用户对显示的加速请求触发入口的触发操作,发起针对待加速应用的加速请求。加速客户端通过响应于针对待加速应用的加速请求创建虚拟网络设备,然后基于虚拟网络设备,配置将应用客户端所发出的数据包路由至虚拟网络设备的路由表。进一步地,当用户在终端启动加速客户端时,在加速客户端的运行页面中显示可以被加速的候选应用标识,如图3所示的应用1至应用9即为可以被加速的应用对应的候选应用标识。当用户想要对其中某一个应用进行加速处理时,例如对应用9进行加速,则用户通过点击应用9所对应的应用标识,应用9所对应的应用标识从未选中状态变为选中状态,选中状态和未选中状态具体可以通过不同的边框颜色/不同的图标大小等显示方式来区分。在用户选中待加速应用标识后,对选中的待加速应用进行加速请求触发。具体地,在加速客户端的运行页面中,还显示有加速请求触发入口,当用户选中待加速应用标识后,可以通过对加速请求触发入口的触发操作,发起针对待加速应用标识所表征的应用9的加速请求。加速客户端通过响应于用户针对待加速应用的加速请求,在操作系统内核中创建虚拟网络设备,然后基于虚拟网络设备来配置路由表,当应用客户端启动后,应用客户端所发出的数据包会基于路由表路由至虚拟网络设备执行后续的加速传输过程。
在一个具体的实施例中,候选应用标识可以是候选游戏应用对应的图标,在加速客户端的运行页面中显示有多个可加速的游戏图标,当用户想要对某个游戏进行加速处理时,可以打开加速客户端,通过在游戏应用图标的显示区域中直接选中该游戏,或是通过输入游戏名称直接查找并选中该游戏后,用户通过点击显示的加速请求触发入口,触发对该游戏的加速请求,加速客户端响应于用户在选中游戏图标后对加速请求触发入口的触发操作,执行对该游戏图标对应的游戏应用所发出的数据包的加速传输处理,从而能够使得用户通过在加速客户端的显示页面进行对待加速应用进行选中操作,实现对待加速应用如待加速游戏的快速便捷选择。
步骤204,从虚拟网络设备中读取网络层数据包,解析出网络层数据包中的原始目的地址和数据段。
网络层数据包是指从网络层获取到的数据包,网络层数据包又叫数据报。数据报是分组交换的一种形式,就是把所传送的数据分段打成“包”,作为一个独立的报文传送出去。在数据报的发送过程中,网络层用于处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往目的地址对应终端或服务器的路径,然后将数据报发往适当的网络接口。在数据报的接收过程中,网络层还处理输入数据报,首先检查其合法性,然后进行寻径,假如该数据报已到达目的地址对应终端或服务器,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到目的地址对应终端或服务器,则转发该数据报。每个数据报都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据报不经过同样的路径都能准确地到达目的地。在目的地重新组合还原成原来发送的数据,通过对网络层数据包进行解析,能够从报头中获取目的地址。
原始目的地址是指需要与应用客户端进行数据交互的应用服务器的地址,其中。与应用客户端对应的应用服务器的数量可以是一个,也可以是两个或两个以上,具体可以根据待加速应用的后台配置数据来确定。其中,应用客户端所发送的数据包包括请求进行域名解析的数据包以及请求进行交互的数据包,其中,请求进行交互的数据包中解析得到的地址即为原始目的地址。
在其中一个实施例中,原始目的地址包括原始目的IP地址和原始目的端口;解析出网络层数据包中的原始目的地址和数据段,包括:
对网络层数据包进行解析,得到原始目的IP地址和传输层数据包;对传输层数据包进行解析,得到原始目的端口和数据段。
数据段是指对网络层数据包进行解析之后得到的传输层数据包的数据内容。具体地,如图4所示,对网络层数据包进行解析,可以得到IP头以及传输层数据包,IP头中包括目的IP地址,传输层数据包分为TCP数据包和UDP(User Datagram Protocol,用户数据报协议)数据包两类。对传输层数据包进行解析,可以得到TCP头/UDP头以及数据段。TCP头/UDP头中包括目的端口。由目的IP地址和目的端口构成目的地址。
具体地,由于应用客户端的数据包是进行路由表进行传输的,终端的操作系统会基于配置的路由表将应用客户端数据包路由至虚拟网络设备,加速客户端获取虚拟网络设备的文件描述符,其中,文件描述符是访问文件或数据的索引。基于文件描述符,从虚拟网络设备中将网络层数据包读取到加速客户端,在加速客户端中,通过对网络层数据包进行解析,将网络层数据包拆分为报头和报文,从报头中获取原始目的地址。
步骤206,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包。
其中,加速服务器是数据传输链路中的中间节点,分别连接于应用客户端和加速客户端所在的终端以及应用服务器,通过加速服务器,可以显著减少数据传输过程中经过的网络节点的数量,从而提高数据传输效率,实现数据加速传输。加速服务器的地址包括加速服务器的IP地址和端口号,基于IP地址和端口号,可以实现准确的网络连接与数据交互。更新目的地址是指对网络层数据包的原始目的地址进行更细后的结果。通过更新目的地址可以将网络层数据包发送至更新目的地址对应的加速服务器。
数据段的头部是指传输层数据包的数据内容的最前面位置。数据段的头部是可被加速服务器识别并提取的数据段内容。数据段的头部所添加的内容包括原始目的地址对应的原始目的地址以及原始目的端口,此外,数据段的头部所添加的呢绒还可以包括与待加速应用对应的相关信息,具体可以根据交互需要进行配置。
更新数据包实质上是对传输层以及网络层所对应的数据包的更新,如图5所示,具体的更新内容包括传输层的数据段内容的更新(增加了数据段的头部内容),传输层数据头即TCP头/UDP头中目的端口的更新,以及网络层数据头即IP头中目的IP地址的更新。更新的数据包在传输至更新目的地址所对应的加速服务器的过程中,还需要经过链路层以及物理层地处理,由于本申请不涉及对链路层以及物理层地处理过程的改进,在此不展开描述。
步骤208,将更新数据包发送至加速服务器,以使加速服务器按照数据段的头部所对应的原始目的地址,建立与原始目的地址所对应的应用服务器的交互,将应用服务器反馈的响应数据包回传至应用客户端。
其中,加速服务器是数据传输链路中的中间节点,分别连接于目标终端以及应用服务器,目标终端是指应用客户端和加速客户端所在的终端。具体地,加速服务器可以实现跨区域的数据传输,例如以游戏加速为例,在国内环境下,游戏玩家游玩外服游戏时,由于国内连接国外的网络环境异常恶劣,其中包括DNS劫持、线路拥堵、运营商限制等,导致用户大概率会出现游戏掉线、延迟过高、无法登录等问题,这些问题严重影响用户的游戏体验。而加速服务器可以通过节点的布局,实现国内与国外网络的互联,例如,当用户的游戏区服为日服(即服务器部署在日本)时,可以通过在华南-东京所对应的加速节点中部署的加速服务器进行数据加速传输。在一个具体的应用中,加速服务器可以是云服务器。
加速服务器在接收到更新数据包之后,会对更新数据包进行解析处理,提取出更新数据包中位于数据段头部的原始目的地址,然后以原始目的地址为目的地址,基于数据段重新构建网络层数据包,并将重构的网络层数据包发送至原始目的地址所对应的应用服务器。其中,在更新数据包中新增的数据段的头部是可被加速服务器识别的特有字段,在数据段的头部增加的数据段内容,可快速被加速服务器识别并提取,在加速服务器的处理过程中,只需要完成网络层以及传输层的解析即可实现数据段内容的转发,无需进行加解密处理。通过将待转发的数据段内容以及目的地址通过更新数据包发送至加速服务器,加速服务器只单纯通过地址更新进行数据内容的转发处理即可,大大提高了加速服务器的使用效率。
加速服务器将数据包转发至应用服务器之后,由于应用服务器为原始目的地址所对应的主机,即此次数据传输到达目的地,应用服务器会针对加速服务器所转发的数据包中的数据段内容进行响应处理,并确定响应的数据内容,并以数据包的形式反馈至加速服务器,需要说明的是,加速服务器所接收到的数据包中的源地址为加速服务器的地址,所以反馈的响应数据包会直接发送至加速服务器,实现加速服务器与应用服务器之间的交互。加速服务器在获取到响应数据包之后,将应用服务器反馈的响应数据包回传至应用客户端。具体地,基于网络连接关系,加速服务器会先将该响应数据包发回给加速客户端,然后由加速客户端发送至应用客户端,从而实现了完整的数据交互过程。
上述数据加速传输方法、装置、计算机设备、存储介质和计算机程序产品,基于加速客户端针对待加速应用所配置的路由表,将待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备,实现对数据包的拦截,便于加速客户端从虚拟网络设备中读取网络层数据包,解析出网络层数据包中的原始目的地址和数据段,实现了原始目的地址的便捷快速获取,通过将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,实现将更新数据包发送至加速服务器,从而使得加速服务器按照数据段的头部所对应的原始目的地址,建立与原始目的地址所对应的应用服务器的交互,将应用服务器反馈的响应数据包回传至应用客户端。在整个方案中,通过将地址数据的处理过程加速客户端来实现,对于加速客户端来说,通过路由表和虚拟网络设备来读取网络层数据包,能够直接从网络层数据包中获取原始目的地址,有效提高了原始目的地址的获取速度,便于进行地址数据的处理,对于加速服务器来说,只需要根据原始目的地址进行数据包的转发处理,显著简化了加速服务器的处理量,能够有效提高加速数据传输的效果。
在一个实施例中,数据加速传输方法还包括:对网络层数据包进行解析,确定传输层协议类别;基于传输层协议类别和原始目的地址,判定网络层数据包是否为待加速数据包。
其中,网络层是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。传输层协议类别分为两类,一类是面向连接的传输协议(TCP),另一类是用户数据报协议(UDP)。其中,TCP的特点是数据传输之前必须先建立连接,数据传输完成之后释放连接,每条传输连接只能有两个端点,只能进行点对点的连接。UDP是无连接协议,传输数据之前源端和终端不建立连接,当需要进行数据传送时,通过抓取来自应用程序的数据,直接进行网络传输。
具体地,通过对网络层数据包进行解析,可以得到传输层数据包,基于传输层数据包中的数据头的类型,即可确定传输层协议类别。具体来说,当传输层数据包为TCP数据包时,对应的数据头为TCP头,当传输层数据包为UDP数据包时,对应的数据头为UDP头。
待加速数据包是需要通过加速服务器加速传输至应用服务器的数据包。基于传输层协议类别和原始目的地址,来确定网络层数据包是否为待加速数据包。具体来说,当传输层协议类别为UDP协议时,基于UDP协议所对应的判定逻辑和原始目的地址,来确定网络层数据包是否为待加速数据包,当传输层协议类别为TCP协议时,基于TCP协议所对应的判定逻辑和原始目的地址,来确定网络层数据包是否为待加速数据包。其中,UDP协议所对应的判定逻辑可以包括网络层数据包的交互对象类别的判定和原始目的地址的判定,TCP协议所对应的判定逻辑包括原始目的地址的判定。
进一步地,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,包括:
当网络层数据包为待加速数据包时,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包。
具体地,当应用客户端判定网络层数据包为待加速数据包时,应用客户端将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包。以网络层数据包为待加速数据包作为数据包更新的条件,只对待加速数据包进行数据包更新,能够实现针对数据包的分化处理,提高数据包的数据加速传输效率。
进一步地,当网络层数据包为非加速数据包时,直接按照该非加速数据包中的目的地址进行数据包的传输。具体来说,当网络层数据包为非加速数据包时,还可以基于与应用客户端相匹配的IP地址黑名单,来判断该加速数据包中的目的IP地址是否为黑IP地址,若是,则终止该数据包的发送进程。若否,则按照该数据包中的目的地址进行数据包的传输。其中,IP地址黑名单可以是应用客户端基于其后台数据处理逻辑所配置的拒绝交互对象所对应IP地址构成的IP地址名单。通过IP地址黑名单对非加速数据包进行进一步地判断和处理,能够避免出现非法交互,提高交互过程中的安全性。
在本实施例中,通过在应用客户端进行网络层数据包是否为待加速数据包的判断,并限定数据包更新的前提条件为网络层数据包为待加速数据包,能够实现数据包的分化处理,提高数据包的数据加速传输效率。对非加速数据包,不对其进行数据包的更新,直接按照非加速数据包的目的地址进行数据包的传输,以减小对加速处理资源的占用,实现针对性的数据加速传输处理。
在一个实施例中,基于传输层协议类别和原始目的地址,判定网络层数据包是否为待加速数据包,包括:当传输层协议类别为UDP协议时,判定网络层数据包是否为域名解析请求包;若网络层数据包不为域名解析请求包,则将原始目的地址中的目的IP地址与IP地址白名单进行匹配;基于匹配结果,确定网络层数据包是否为待加速数据包。
其中,UDP协议是指用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。域名解析请求包是指目的地址指向域名服务器,需要发送至域名服务器,由域名服务器进行域名解析并返回解析得到的IP地址的数据包。IP地址白名单是指包含多个需要IP地址的数据表,IP地址白名单中的IP地址表示包含该IP地址的数据包需要进行数据加速传输。匹配结果包括IP地址白名单中存在相同的IP地址或IP地址白名单中不存在相同的IP地址两种。
具体地,当传输层协议类别为UDP协议时,按照网络层数据包所对应的交互对象,网络层数据包所对应的类别至少有两类,一类是需要与应用服务器进行交互的数据包,另一类是需要进行域名解析的数据包。对于需要进行域名解析的数据包,是不需要与应用服务器进行交互的,其所需的处理是进行域名解析,得到域名所对应的IP地址,便于应用客户端按照IP地址与IP地址所对应的应用客户端进行交互。对于需要与应用服务器进行交互的数据包,根据原始目的地址中的IP地址,将原始目的地址中的目的IP地址与IP地址白名单进行匹配,当匹配结果为IP地址白名单中存在相同的IP地址时,判定网络层数据包为待加速数据包。当匹配结果为IP地址白名单中不存在相同的IP地址时,判定网络层数据包为非加速数据包。
在本实施例中,针对传输层协议类别为UDP协议的情况,基于网络层数据包所对应的交互对象的类别,结合IP地址白名单,能够准确地判定网络层数据包是否为待加速数据包,实现针对性的数据加速传输处理。
在其中一个实施例中,当传输层协议类别为UDP协议时,判定网络层数据包是否为域名解析请求包,包括:当传输层协议类别为UDP协议时,对解析得到的UDP数据包进行端口解析,确定UDP数据包中的目的端口;根据目的端口与域名解析服务对应的目标端口的关系,判定网络层数据包是否为域名解析请求包。
其中,传输层协议类别为UDP协议时,表征对网络层数据包进行解析后得到的传输层数据包为UDP数据包。端口解析是指通过对传输层数据包进行解析,从传输层数据包的数据头中获取端口信息的过程,其中传输层数据包的数据头中的端口包括源端口和目的端口,源端口是指发送数据包时所对应的发送端口,目的端口,是指接收数据包时所对应的接收端口。
具体地,当应用客户端判定传输层协议类别为UDP协议,即对网络层数据包进行解析后得到的传输层数据包为UDP数据包时,应用客户端对解析得到的UDP数据包进行端口解析,确定UDP数据包中的目的端口。通过将目的端口与域名解析服务对应的目标端口进行比对,若目的端口与域名解析服务对应的目标端口相同,则判定网络层数据包为域名解析请求包,若目的端口与域名解析服务对应的目标端口不同,则判定网络层数据包不为域名解析请求包。
在一个具体的应用中,与域名解析服务对应的目标端口的端口号是固定的,端口号为0053。若目的端口的端口号为0053,则判定网络层数据包为域名解析请求包;若目的端口的端口号不为0053,则判定网络层数据包不为域名解析请求包。
在本实施例中,通过应用客户端对UDP数据包进行端口识别,并基于与域名解析服务对应的目标端口的关系,UDP数据包的数据头中包括目的端口,因此端口解析的过程简单,识别速度快,能够快速准确地判定网络层数据包是否为域名解析请求包,从而提高数据处理效率。
在一个实施例中,数据加速传输方法还包括:若网络层数据包为域名解析请求包,则从数据段中获取待解析的域名;基于对域名的域名解析处理,得到与域名对应的IP地址;当域名符合域名加速条件时,将IP地址添加至IP地址白名单。
其中,数据段是指对网络层数据包进行解析之后得到的传输层数据包的数据内容。在域名解析请求包中数据段中的数据内容包括带解析的域名。域名是由一串用点分隔的名字组成的,用于在数据传输时对计算机的定位标识,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。域名解析是指将直观的域名转换为计算机可以直接读取的IP地址的过程,域名和IP地址相互映射,便于用户更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。域名加速条件是基于待加速应用的对数据加速传输的需求所确定的针对域名进行限定的条件。具体地,域名加速条件可以是直接指定具体的域名所对应的IP是否需要进行加速。
具体地,若应用客户端判定网络层数据包为域名解析请求包,应用客户端则从数据段中获取待解析的域名,并判断域名是否符合域名加速条件,当域名符合域名加速条件时,应用客户端基于对域名的域名解析处理所得到与域名对应的IP地址,将IP地址添加至IP地址白名单。
在一个具体的应用中,应用客户端从后台拉取域名规则,域名规则是按照待加速应用对应的规则,域名规则包括两类域名,第一类是域名所对应的IP是需要加速的,第二类是域名所对应的IP是不需要进行加速的。当待解析的域名为第一类域名时,即为域名符合域名加速条件,当待解析的域名为第二类域名时,即为域名不符合域名加速条件。应用客户端利用网域名称系统中域名和IP地址相互映射的关系,从网域名称系统中获取到域名对应的IP地址并添加至IP地址白名单。
在本实施例中,通过在域名符合域名加速条件的情况下,将域名解析得到的IP地址添加至IP地址白名单,能够实现IP地址白名单的扩充,便于在后续处理过程中实现更精准的数据传输加速。并且,基于域名解析得到的IP地址可能有多个,相较于直接基于IP地址更新IP地址白名单,通过限定域名加速条件直接对域名进行限定的方式,能够快速添加基于域名解析得到的多个IP地址。
在一个实施例中,基于对域名的域名解析处理,得到与域名对应的IP地址,包括:将域名解析请求包中的目的地址更新为预设的域名服务器对应的地址,并将目的地址更新的域名解析请求包发送至域名服务器;接收域名服务器对域名解析请求包中的域名进行解析后返回的IP地址。
其中,域名服务器是提供IP地址和域名之间的转换服务的服务器。域名服务器是多样的,域名解析请求包中的目的地址可以是其中任意一个域名服务器的地址,不同的域名服务器对域名的解析准确度会存在差异,预设的域名服务器是域名解析准确度符合解析准确度条件的域名服务器,预设的域名服务器可以预先基于域名服务器的域名解析准确度配置得到。
具体地,应用客户端将域名解析请求包中的目的地址更新为预设的域名服务器对应的地址,并将目的地址更新的域名解析请求包发送至域名服务器,域名服务器对域名解析请求包中的域名进行解析,得到域名对应的IP地址,域名服务器将IP地址返回至应用客户端。
在一个具体的应用中,应用客户端将域名解析请求包中的目的IP地址更新为预设的域名服务器对应的IP地址,并将目的IP地址更新的域名解析请求包发送虚拟网络设备,虚拟网络设备将目的IP地址更新的域名解析请求包发送至域名服务器,域名服务器对域名解析请求包中的域名进行解析,得到域名对应的IP地址,然后将IP地址返回至虚拟网络设备,应用客户端从虚拟网络设备中读取域名服务器返回的IP地址。
在本实施例中,通过将域名解析请求包中的目的地址更新为预设的域名服务器对应的地址,由指定的域名服务器对域名解析请求包中的域名进行解析,能够确保解析得到的IP地址的准确性。
在一个实施例中,基于传输层协议类别和原始目的地址,判定网络层数据包是否为待加速数据包,包括:
当传输层协议类别为TCP协议时,将原始目的地址中的原始目的IP地址与IP地址白名单进行匹配;根据匹配结果,判定网络层数据包是否为待加速数据包。
其中,TCP协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,传输层协议类别为TCP协议,即传输层数据包为TCP数据包。原始目的IP地址,是指通过网络层数据包解析后的IP头获取的原始目的IP,即作为交互对象的应用服务器的IP地址。
具体地,当应用客户端判定传输层协议类别为TCP协议时,其处理过程与普通的UDP数据包相同。应用客户端将原始目的IP地址与IP地址白名单进行匹配,根据匹配结果,判定网络层数据包是否为待加速数据包。当匹配结果为IP地址白名单中存在相同的IP地址时,判定网络层数据包为待加速数据包。当匹配结果为IP地址白名单中不存在相同的IP地址时,判定网络层数据包为非加速数据包。
在本实施例中,针对传输层协议类别为TCP协议的情况,基于IP地址白名单,能够快速准确地判定网络层数据包是否为待加速数据包,实现针对性的数据加速传输处理。
在一个实施例中,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,包括:当基于对网络层数据包的解析,确定传输层协议类别为TCP协议时,将网络层数据包转发至由加速客户端创建的本地服务器;基于本地服务器,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包。
其中,本地服务器是加速客户端在本地(即加速客户端所在的终端)所创建的用于进行数据处理的服务器。以使本地服务器通过系统协议栈去处理TCP的握手、挥手、流量控制等功能。
进一步地,将更新数据包发送至加速服务器,包括:基于本地服务器,将更新数据包发送至加速服务器。
具体地,当应用服务器基于对网络层数据包的解析,确定传输层协议类别为TCP协议时,应用服务器在终端操作系统中创建本地服务器,将网络层数据包转发至本地服务器,本地服务器将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,本地服务器将更新数据包发送至加速服务器。
在一个具体的应用中,针对TCP数据包的处理过程中,加速客户端需要记录四个地址:应用客户端地址、本地服务器地址、加速服务器地址以及应用服务器地址。对于不需要加速的数据包,则不需要记录加速服务器地址。加速客户端按照本地服务器地址将数据包发往本地服务器,本地服务器收到数据包以后,发往加速服务器或者应用服务器。当本地服务器连接收到加速服务器或者应用服务器的回包以后,会查发送时记录的地址关系,将回包数据回传给应用客户端。需要说明的是,由于TCP协议是面向数据流的传输协议,在数据加速传输过程中,在目的地址和源地址不发生变化的情况下,只需要通过本地服务器建立一次从源地址到目的地址的连接通道即可进行数据流的传输。当目的地址或源地址发生变化时,则需要通过本地服务器重新建立一次连接通道。
在本实施例中,通过本地服务器来实现网络层数据包的更新和数据包的发送,能够适应TCP协议的传输特性,在不响应原有系统架构的前提下,实现对以TCP协议构建网络层数据包的加速传输。
在其中一个实施例中,数据加速传输方法还包括:将应用客户端所对应的加速服务器的地址和原始目的地址添加至TCP数据列表。
其中,TCP数据列表是用于记录TCP数据包的相关信息的,具体可以包括应用客户端地址、本地服务器地址、加速服务器地址以及应用服务器地址,通过TCP数据列表,为本地服务器进行地址更新提供数据查询依据。
具体地,应用服务器通过创建TCP数据列表,并在TCP数据列表中记录创建的本地服务器的地址以及加速服务器的地址。通过对网络层数据包进行解析,得到源地址和目的地址,即应用客户端地址和应用服务器地址,并将应用客户端地址和应用服务器地址添加至TCP数据列表。
进一步地,基于本地服务器,将应用客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,包括:基于本地服务器,反查TCP数据列表,得到加速服务器的地址和原始目的地址;基于本地服务器,将加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包。
具体地,本地服务器在接收到与TCP协议对应网络层数据包之后,本地服务器反查TCP数据列表,得到加速服务器的地址和原始目的地址,本地服务器将加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,本地服务器将更新数据包发送至加速服务器。
在本实施例中,由应用客户端将加速服务器地址和应用服务器地址添加至TCP数据列表,使得本地服务器能够反查TCP数据列表,从而快速便捷地得到加速服务器地址和应用服务器,提高数据包更新的处理速度。
在其中一个实施例中,将应用服务器反馈的响应数据包回传至应用客户端,包括:加速服务器将应用服务器反馈的响应数据包回传至加速客户端;加速客户端将响应数据包的源地址更新为应用服务器的地址,将源地址更新后的响应数据包通过虚拟网络设备反馈至应用客户端。
其中,虚拟网络设备是指在操作系统内核中创建的虚拟的网络设备,虚拟网络设备用于辅助加速客户端进行与应用客户端之间的数据包的收发处理。虚拟网络设备能够接收应用客户端发送的数据包以及并将加速客户端更新地址后的响应数据包发送至应用客户端。
基于数据加速传输的传输链路,加速服务器是通过虚拟网络设备与加速客户端进行数据传输以及与应用客户端进行数据交互,为了实现响应数据包的快速便捷传输,加速服务器先将应用服务器反馈的响应数据包回传至加速客户端将响应数据包的源地址更新为应用服务器的地址,将目的地址更新为应用客户端的地址,得到更新的响应数据包,加速客户端将更新的响应数据包通过虚拟网络设备反馈至应用客户端。
在本实施例中,通过虚拟网络设备和加速客户端,明确了响应数据包回传至应用客户端的路径,能够实现响应数据包的快速传输。通过对源地址和目的地址进行更新,使得应用客户端所获取到的响应数据包所表征的信息为应用服务器回传至应用客户端,对于应用客户端来说,其收发的数据包内容不会受到数据加速传输过程的影响,确保数据加速传输过程中的数据准确性。
在一个实施例中,待加速应用为待加速游戏;数据加速传输方法还包括:响应于针对候选游戏列表中待加速游戏的选中操作,确定待加速游戏的游戏服务器所在的地理区域;基于与地理区域相匹配的候选服务器节点各自对应的测速结果,确定候选服务器节点中符合测速条件的目标节点;将部署于目标节点的加速服务器确定为与应用客户端所对应的加速服务器。
其中,候选游戏列表包括能够进行数据加速传输的一个或多个游戏的游戏标识,游戏标识可以由游戏图标、游戏名称中的至少一个数据信息构成,每一个游戏标识表征一个具体的游戏,当用户从候选游戏列表中选择一个游戏标识时,该游戏标识即为选中的待加速游戏。游戏服务器所在的地理区域又称游戏区服。例如,若游戏服务器所在的地理区域为日本,则游戏区服可以简称为日服,若游戏服务器所在的地理区域为韩国,则游戏区服可以简称为韩服。候选服务器节点是可供选择的服务器节点,服务器节点与跨区域的传输路径相对应,例如中国-韩国,中国-日本。具体地,加速节点是在国内分布式配置的,分为华东,华北和华南三大区域,针对游戏区服为日服的游戏,候选服务器节点包括华东-东京,华南-东京,华北-东京三大类。符合测速条件的目标节点可以是测速结果最优的候选服务器节点。测速结果是指针对各个区域中抽样取一定数量的服务器节点进行测速,然后根据节点的负载、延迟等数据,选择测速结果最优的目标节点,服务器部署于服务器节点,具体地,服务器节点可以是云服务器接入点。
具体地,在加速客户端的显示页面中,显示候选游戏列表,加速客户端响应于针对候选游戏列表中待加速游戏的选中操作,显示待加速游戏的候选区服,响应与用于对候选区服中的目标区服的选中操作,显示与目标区服对应的候选节点以及每一个候选节点对应的测速结果,响应于用户基于测速结果对候选节点中目标节点的选中操作,发起针对待加速游戏的加速请求,并将部署于目标节点的加速服务器确定为与应用客户端所对应的加速服务器。
在本实施例中,以游戏场景为例,基于候选游戏列表,能够便于用户对待加速游戏进行选择。基于待加速游戏的游戏服务器所在的地理区域,确定地理区域相匹配的候选服务器节点,能够实现游戏数据包跨地理区域的传输,通过与地理区域相匹配的候选服务器节点各自对应的测速结果,确定候选服务器节点中符合测速条件的目标节点,筛选出最佳的目标节点,从而能够基于部署于目标节点的加速服务器进行游戏数据传输,以提高游戏数据的数据加速传输效果。
本申请还提供一种在macOS平台上的外服游戏加速的应用场景,macOS是苹果公司推出的基于图形用户界面操作系统,该系统是符合POSIX(Portabel Operating SystemInterface,操作系统接口)标准的操作系统并且提供了Unix(UnIPlexed Information andComputing Service,一种多用户、多进程的计算机操作系统)命令行及其强大的应用工具,该应用场景应用上述的数据加速传输方法。具体地,该数据加速传输方法在该应用场景的应用如下:
在国内环境下,游戏玩家游玩外服游戏时,由于国内连接国外的网络环境异常恶劣,其中包括DNS劫持,线路拥堵,运营商限制等导致用户大概率会出现游戏掉线,延迟过高,无法登录等问题,这些问题严重影响用户的游戏体验。使得在macOS上游玩外服游戏变得很困难,游戏体验差。而本方案在macOS平台上,创建一个TUN(操作系统内核中的虚拟网络设备,全部用软件实现,并向运行于操作系统的软件提供与硬件的网络设备完全相同的功能)设备,通过修改路由表,将用户通过游戏客户端所产生的数据包路由到TUN设备。然后通过加速应用端将TUN设备上的数据包,转发至云服务器接入点,数据包走云服务器专线与国外的游戏服务器连接,这样就避免了网络拥堵,运营商劫持等问题,实现了在国内环境下低延迟,低抖动的游玩外服游戏,提升了用户的游戏体验。
具体来说,如图6所示,数据加速传输方法在该游戏应用场景的应用包括以下步骤:
步骤602,响应于针对候选游戏列表中待加速游戏的选中操作,确定待加速游戏的游戏服务器所在的地理区域。
步骤604,基于与地理区域相匹配的候选服务器节点各自对应的测速结果,确定候选服务器节点中符合测速条件的目标节点,将部署于目标节点的加速服务器确定为与游戏客户端所对应的加速服务器。
步骤606,基于针对待加速游戏所配置的路由表,将待加速的游戏客户端所发出的数据包路由至虚拟网络设备。
步骤608,从虚拟网络设备中读取网络层数据包,对网络层数据包进行解析,得到原始目的IP地址和传输层数据包,并确定传输层协议类别,对传输层数据包进行解析,得到原始目的端口和数据段。
步骤610,当传输层协议类别为UDP协议时,对解析得到的UDP数据包进行端口解析,确定UDP数据包中的目的端口。
步骤612,当目的端口与域名解析服务对应的目标端口相同时,判定网络层数据包为域名解析请求包,从数据段中获取待解析的域名。
步骤614,将域名解析请求包中的目的地址更新为预设的域名服务器对应的地址,并将目的地址更新的域名解析请求包发送至域名服务器,接收域名服务器对域名解析请求包中的域名进行解析后返回的IP地址。
步骤616,当域名符合域名加速条件时,将IP地址添加至IP地址白名单。
步骤618,当目的端口与域名解析服务对应的目标端口不同,且IP地址白名单中包括原始目的地址中的目的IP地址时,判定网络层数据包为待加速数据包。
步骤620,将游戏客户端所对应的加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,将更新数据包发送至加速服务器。
步骤622,当传输层协议类别为TCP协议时,将原始目的地址中的原始目的IP地址与IP地址白名单进行匹配。
步骤624,当IP地址白名单中包括原始目的地址中的目的IP地址,判定网络层数据包为待加速数据包。
步骤626,将游戏客户端所对应的加速服务器的地址和原始目的地址添加至TCP数据列表将网络层数据包转发至由加速客户端创建的本地服务器。
步骤628,本地服务器反查TCP数据列表,得到加速服务器的地址和原始目的地址,将加速服务器的地址作为网络层数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,将更新数据包发送至加速服务器。
步骤630,加速服务器按照数据段的头部所对应的原始目的地址,建立与原始目的地址所对应的游戏服务器的交互,将游戏服务器反馈的响应数据包回传至加速客户端。
步骤632,加速客户端将响应数据包的源地址更新为游戏服务器的地址,将源地址更新后的响应数据包通过虚拟网络设备反馈至游戏客户端。
在一个具体的应用中,在加速客户端的页面中显示包括有可加速的各游戏的游戏标识的游戏库,如图7所示的游戏1至游戏9,用户在加速客户端所提供的游戏库中选择需要加速的游戏,用户通过关键字搜索可以快速找到需要加速的游戏,并在当前页面进行显示。用户选中需要加速的游戏之后,加速客户端会显示待加速游戏所对应的候选区服(游戏服务器所在的地理区域)与候选加速节点,用户通过对区服和加速节点依次进行选择,直接触发对该游戏进行网络加速。在其他具体的应用中,用户也可以在选中需要加速的游戏和区服后,通过点击“智能加速”控件,由加速服务器自动分配最优的加速节点,对该游戏进行网络加速。
在用户点击游戏加速以后,加速客户端会获取到需要加速的游戏、游戏的区服以及加速节点等关键信息。在实际的应用中,用户可以手动选择加速节点,也可以请求自动选择加速节点。加速节点用于实现两个地理区域之间的直接连接,在用户对区服的选择即为对目的地理区域的节点,候选的加速节点包括起始地理区域不同但目的地理区域为选中的区服的多个加速节点。在一个具体的应用中,如图8所示,起始地理区域在国内分布式配置的,分为华东,华北和华南三大区域。加速客户端根据选择的游戏与游戏区服信息从后台获取到可用的候选加速节点,从各个区域中抽样取一定数量的加速节点的传输数据进行测速,并将测速结果显示在相应加速节点对应的区域,测速结果包括负载数据和延迟数据,以便基于进行显示的负载数据和延迟数据手动或自动选择最优的加速节点作为目标节点,从而确定加速节点对应的加速服务器。
具体地,加速客户端响应于针对候选游戏列表中待加速游戏的选中操作,确定待加速游戏的游戏服务器所在的候选地理区域,加速客户端响应于用户对候选地理区域的选中操作,确定选中的目标地理区域,加速客户端显示与目标地理区域相匹配的候选服务器节点各自对应的测速结果,响应于用户对候选服务器节点中目标服务器节点的选中操作,确定目标节点,将部署于目标节点的加速服务器确定为与游戏客户端所对应的加速服务器,加速客户端针对待加速游戏,配置路由表,并基于路由表将待加速游戏客户端所发出的数据包路由至虚拟网络设备进行传输加速处理。
通过确定加速服务器即确定了游戏数据包的传输线路,为实现数据包按照该确定好的传输线路进行传输,还需要进行相应的加速配置。具体地,游戏应用和加速客户端所在的终端对应的操纵系统可以是macOS,macOS是符合POSIX标准的操作系统,支持大部分的unix特性,因此能够支持TUN。加速客户端在终端的操作系统中创建一个TUN设备,获取TUN设备的文件描述符。在创建TUN设备之后,需要配置系统的路由表,使得游戏客户端所发出的游戏数据包能够基于路由表路由至TUN设备。需要说明的是,可以在每次选择新的游戏进行加速都重新创建一次TUN,在游戏加速结束后释放创建的TUN,以避免对终端资源的不必要占用,实现对终端资源的高效合理利用。
为提高数据传输效率,在数据包的加速传输过程中,通过加速客户端对TUN设备上的数据包进行差分处理。具体地,加速客户端基于从后台拉取的域名规则以及IP地址黑/白名单对游戏客户端发出的数据包进行差分处理。其中,域名规则用于针对获取的数据包为DNS数据包的情况进行相应处理,域名规则按目的IP地址将数据包分为三类,第一类是需要对DNS数据包进行加速解析,且解析出来的IP地址所对应的数据包需要加速,具体处理方式可以是将解析出来的IP地址添加至IP地址白名单;第二类是需要对DNS数据包进行加速解析,且解析出来的IP地址对应的数据包不需要加速;第三类是不需要加速解析的DNS数据包,且解析回来的IP地址对应的数据包不需要加速。其中,加速解析是指通过修改DNS数据包的目的地址,将DNS数据包发送至指定的域名服务器,由指定的域名服务器对DNS数据包中的域名进行解析,得到域名对应的IP地址。不需要加速解析的DNS数据包是基于原有的目的地址,将DNS数据包发送至目的地址对应的域名服务器,接收该域名服务器对域名进行解析后的IP地址。
IP地址黑/白名单则是针对TCP数据包以及非DNS的普通UDP数据包的情况进行相应处理。具体地,若数据包中的原始目的IP地址属于IP地址白名单,则对该数据包进行加速传输;若数据包中的原始目的IP地址属于IP地址黑名单,则拦截该数据包不进行数据包发送;若数据包中的原始目的IP地址既不属于属于IP地址白名单也不是属于IP地址黑名单,则对该数据包进行流量裸连传输,流量裸连是指不通过加速服务器,直接基于原始的目的地址按照现有的数据传输方式进行传输。
数据加速传输过程的时序图如图9所示,终端包括游戏客户端、加速客户端以及创建的TUN。具体地,游戏客户端将游戏数据包通过路由表路由至TUN,加速客户端从TUN中读取游戏数据包,当加速客户端基于游戏数据包中的目的IP地址,判断其为待加速传输的数据包时,将原始的目的IP地址即游戏服务器地址添加至数据段的头部位置,并将游戏数据包的目的地址修改为加速服务器地址,得到更新的游戏数据包,并发送至加速服务器,加速服务器通过解析数据段头部数据,得到游戏服务器地址,将游戏数据包发送至游戏服务器。游戏服务器针对游戏数据包做出相应的响应,并反馈响应数据包至加速服务器,加速服务器将响应数据包回传至加速客户端,加速客户端对响应数据包进行源地址修改,将源地址由加速服务器地址修改为游戏服务器地址,并通过TUN将响应数据包反馈至游戏客户端。其中,针对游戏客户端要发送的游戏数据包,游戏数据包的转发是实现游戏数据加速传输的关键点,加速客户端根据TUN设备的文件描述符,从TUN设备读取到的数据为游戏客户端要发送的游戏数据包,获取到游戏数据包以后,加速客户端会记录原始数据包的源IP、源端口、目的IP以及目的端口作为四元组,然后根据不同的传输层协议进行不同的处理。
其中,待加速数据包对应的数据包更新方式与其对应的传输层协议相关。如果是传输层协议为UDP协议,则在每一次数据包的传输过程中,加速客户端都会把包括游戏服务器的目的IP地址和目的端口的加速信息添加到数据包中数据段的头部,并将数据包的目的IP 地址和目的端口修改为加速服务器的IP地址和端口,然后将修改后的数据包发送至加速服务器从而建立加速客户端与加速服务器,基于加速服务器实现与游戏服务器的交互。如果是传输层协议为TCP,则是通过鉴权包的方式建立加速通道,仅在第一次数据包的传输过程中,将加速信息添加到数据包的数据段的头部,并将数据包的目的IP 地址和目的端口修改为加速服务器的IP地址和端口,然后将修改后的数据包发送至加速服务器从而建立加速客户端与加速服务器之间的加速传输通道,后续需要加速传输的数据包均可以基于建立的加速传输通道直接传输至加速服务器,基于加速服务器实现与游戏服务器的交互。
具体地,当传输层协议为UDP协议时,如图10所示,加速客户端通过从TUN读取传输层的数据包,对传输层数据包进行解析,得到目的IP地址和UDP数据包,然后识别UDP数据包中的目的端口的端口号,基于端口号判断数据包书否为DNS数据包,若端口号为0053,则确定该数据包为DNS数据包。通过DNS协议从数据包的数据段中获取到需要解析的域名。该DNS数据包对应的解析过程,可以基于目的IP地址在域名规则中所属的类别来确定。具体来说,如果是第一类,即需要加速解析并且解析出来的目的IP对应的数据包也需要加速,则加速客户端会将DNS数据包发送至指定的域名服务器,加速客户端在接收该指定的域名服务器返回的DNS回包以后,将该回包中的IP地址添加到IP地址白名单中。如果是第二类,即需要加速解析并且解析出来的目的IP对应的数据包不需要加速,则加速客户端会将DNS数据包发送至指定的域名服务器,接收该指定的域名服务器返回的DNS回包以后,将该回包中的IP地址反馈至游戏客户端,由游戏客户端基于自身的处理逻辑选择一个IP地址作为目的IP。如果是第三类,即不需要加速解析并且解析出来的目的IP对应的数据包不需要加速,则加速客户端直接将DNS数据包发送至原始目的地址对应的域名服务器,接收到该域名服务器返回的DNS回包以后,将该回包中的IP地址反馈至游戏客户端,由游戏客户端基于自身的处理逻辑选择一个IP地址作为目的IP。
如果UDP数据包中的目的端口的端口号不为0053,即为普通的UDP数据包,则根据IP地址黑/白名单判断是否需要数据加速传输进行处理。通过将数据包中的原始目的IP地址分别与IP地址白名单和IP地址黑名单进行匹配,若数据包中的原始目的IP地址属于IP地址白名单,则将该数据包确定为待加速数据包,对该待加速数据包进行加速传输;若数据包中的原始目的IP地址属于IP地址黑名单,则拦截该数据包不进行数据包发送。针对待加速数据包的加速传输,首先会更新数据包的目的地址为加速服务器的地址,然后将该数据包发送至加速服务器,再经由加速服务器与游戏服务器进行数据交互。如果数据包不需要进行加速传输,则通过流量裸连直接将数据包通过原始的网络连接方式发送至游戏服务器。
当传输层协议为TCP协议时,数据包的更新处理与普通UDP数据包的处理类似,但是由于TCP是面向连接的,对于从TUN获取到数据包,加速客户端会在终端本地建立一个本地服务器,通过本地服务器的协议栈去处理TCP的握手、挥手、流量控制等过程。具体地,如图11所示,加速服务器将游戏客户端所对应的加速服务器的地址和原始目的地址添加至TCP数据列表进行TCP数据记录,将游戏数据包转发至由加速客户端创建的本地服务器,本地服务器在收到游戏数据包之后,通过反查TCP数据列表,得到加速服务器的地址和原始目的地址,本地服务器将加速服务器的地址作为游戏数据包的更新目的地址,并将原始目的地址添加至数据段的头部,得到更新数据包,本地服务器将更新数据包发送至加速服务器实现与游戏服务器的交互。本地服务器收到游戏服务器的响应数据包以后,发往加速服务器,当本地服务器收到响应数据包以后,会查发送时记录的地址关系,将响应数据包发回给游戏客户端。
加速服务器在接收到游戏数据包后,基于游戏数据包中数据段的头部中记录的目的IP地址和目的端口,确定游戏服务器地址,然后加速服务器将游戏数据包发往游戏服务器,而游戏服务器的响应数据包则会发回到加速服务器,加速服务器收到游戏服务器的响应数据包以后会发回给加速客户端,加速客户端收到加速服务器的响应数据包后,修改源地址为游戏服务器的地址,然后将源地址修改后的响应数据包反馈至游戏客户端,实现游戏客户端与游戏服务器之间的加速数据交互。在数据包的加速传输过程中,加速客户端需要记录多个地址,包括游戏客户端地址、加速客户端地址、加速服务器地址以及游戏服务器地址,对于TCP协议数据包,记录的地址还包括本地服务器地址。对于不需要加速的数据包,则不需要记录加速服务器地址。
通过上述处理,基于配置的路由表,将游戏客户端生成的游戏数据包路由到TUN设备,加速客户端从TUN设备中读取数据包,根据不同的数据协议以及加速规则做不同的转发处理。按照加速服务器通信使用的是TCP/UDP协议,按照不同的数据处理流程与加速服务器进行通信,加速服务器根据数据包的数据段头部记载的目的地址做转发,在整个数据处理过程中,数据地址关系处理,加速逻辑判断都在加速客户端中,减小了加速服务器的数据处理量,实现了对游戏的网络加速的功能,在不影响用户正常网络访问的情况下对游戏数据包进行差分处理,根据用户选择的游戏区服对数据包进行转发,达到游戏加速的目标,满足了macOS游戏用户的加速需求。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图12所示,提供了一种数据加速传输装置1200,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:数据包路由模块1202、数据包解析模块1204、数据包更新模块1206以及数据包发送模块1208,其中:
数据包路由模块1202,用于基于针对待加速应用所创建的路由表,将所述待加速应用的应用客户端所发出的数据包路由至虚拟网络设备;
数据包解析模块1204,用于从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
数据包更新模块1206,用于将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
数据包发送模块1208,用于将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
在其中一个实施例中,所述数据加速传输装置还包括数据包解析模块和待加速数据包判定模块;其中:
所述数据包解析模块用于对所述网络层数据包进行解析,确定传输层协议类别;所述待加速数据包判定模块,基于所述传输层协议类别和所述原始目的地址,判定所述网络层数据包是否为待加速数据包;所述数据包更新模块,还用于当所述网络层数据包为待加速数据包时,将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包。
在其中一个实施例中,所述待加速数据包判定模块包括域名解析请求包判定单元、IP地址匹配模块以及待加速数据包判定单元,其中:
所述域名解析请求包判定单元,用于当所述传输层协议类别为UDP协议时,判定所述网络层数据包是否为域名解析请求包;所述IP地址匹配模块,用于若所述网络层数据包不为域名解析请求包,则将所述原始目的地址中的目的IP地址与IP地址白名单进行匹配;待加速数据包判定单元,用于基于匹配结果,确定所述网络层数据包是否为待加速数据包。
在其中一个实施例中,所述域名解析请求包判定单元,还用于当所述传输层协议类别为UDP协议时,对解析得到的UDP数据包进行端口解析,确定所述UDP数据包中的目的端口;根据所述目的端口与域名解析服务对应的目标端口的关系,判定所述网络层数据包是否为域名解析请求包。
在其中一个实施例中,所述数据加速传输装置还包括域名获取模块,域名解析结果获取模块以及IP地址白名单更新模块,其中:
所述域名获取模块,用于若所述网络层数据包为域名解析请求包,则从所述数据段中获取待解析的域名;所述域名解析结果获取模块,用于基于对所述域名的域名解析处理,得到与所述域名对应的IP地址;所述IP地址白名单更新模块,用于当所述域名符合域名加速条件时,将所述IP地址添加至所述IP地址白名单。
在其中一个实施例中,所述域名解析结果获取模块包括域名解析请求包更新模块和解析结果接收模块,其中:
所述域名解析请求包更新模块,用于将所述域名解析请求包中的目的地址更新为预设的域名服务器对应的地址,并将目的地址更新的域名解析请求包发送至所述域名服务器;所述解析结果接收模块,用于接收所述域名服务器对所述域名解析请求包中的域名进行解析后返回的IP地址。
在其中一个实施例中,所述待加速数据包判定模块还用于当所述传输层协议类别为TCP协议时,将所述原始目的地址中的原始目的IP地址与IP地址白名单进行匹配;根据匹配结果,判定所述网络层数据包是否为待加速数据包。
在其中一个实施例中,所述数据包更新模块还用于当基于对所述网络层数据包的解析,确定传输层协议类别为TCP协议时,将所述网络层数据包转发至由加速客户端创建的本地服务器;基于所述本地服务器,将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;所述数据包发送模块,还用于基于所述本地服务器,将所述更新数据包发送至所述加速服务器。
在其中一个实施例中,所述数据加速传输装置还包括地址添加模块;所述地址添加模块,用于将所述应用客户端所对应的加速服务器的地址和所述原始目的地址添加至TCP数据列表;所述数据包更新模块包括数据列表反查单元和数据包更新单元;所述数据列表反查单元,用于基于所述本地服务器,反查所述TCP数据列表,得到所述加速服务器的地址和所述原始目的地址;所述数据包更新单元,用于基于所述本地服务器,将所述加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包。
在其中一个实施例中,所述原始目的地址包括原始目的IP地址和原始目的端口;所述数据包解析模块,还用于对所述网络层数据包进行解析,得到原始目的IP地址和传输层数据包;对所述传输层数据包进行解析,得到原始目的端口和数据段。
在其中一个实施例中,所述加速服务器将所述应用服务器反馈的响应数据包回传至所述加速客户端;所述数据加速传输装置还包括响应数据包回传模块;所述响应数据包回传模块,用于将所述响应数据包的源地址更新为所述应用服务器的地址,将源地址更新后的响应数据包通过虚拟网络设备反馈至所述应用客户端。
在其中一个实施例中,所述待加速应用为待加速游戏;数据加速传输装置还包括区服确定模块、目标节点确定模块以及加速服务器确定模块,其中:
所述区服确定模块,用于响应于针对候选游戏列表中待加速游戏的选中操作,确定所述待加速游戏的游戏服务器所在的地理区域;所述目标节点确定模块,用于基于与所述地理区域相匹配的候选服务器节点各自对应的测速结果,确定所述候选服务器节点中符合测速条件的目标节点;所述加速服务器确定模块,用于将部署于所述目标节点的加速服务器确定为与所述应用客户端所对应的加速服务器。
关于数据加速传输装置的具体实施例可以参见上文中对于数据加速传输方法的实施例,在此不再赘述。上述数据加速传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据加速传输方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种数据加速传输方法,其特征在于,所述方法包括:
基于针对待加速应用所配置的路由表,将所述待加速应用对应的应用客户端所发出的数据包路由至虚拟网络设备;
从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述网络层数据包进行解析,确定传输层协议类别;
基于所述传输层协议类别和所述原始目的地址,判定所述网络层数据包是否为待加速数据包;
所述将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包,包括:
当所述网络层数据包为待加速数据包时,将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包。
3.根据权利要求2所述的方法,其特征在于,所述基于所述传输层协议类别和所述原始目的地址,判定所述网络层数据包是否为待加速数据包,包括:
当所述传输层协议类别为UDP协议时,判定所述网络层数据包是否为域名解析请求包;
若所述网络层数据包不为域名解析请求包,则将所述原始目的地址中的目的IP地址与IP地址白名单进行匹配;
基于匹配结果,确定所述网络层数据包是否为待加速数据包。
4.根据权利要求3所述的方法,其特征在于,所述当所述传输层协议类别为UDP协议时,判定所述网络层数据包是否为域名解析请求包,包括:
当所述传输层协议类别为UDP协议时,对解析得到的UDP数据包进行端口解析,确定所述UDP数据包中的目的端口;
根据所述目的端口与域名解析服务对应的目标端口的关系,判定所述网络层数据包是否为域名解析请求包。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述网络层数据包为域名解析请求包,则从所述数据段中获取待解析的域名;
基于对所述域名的域名解析处理,得到与所述域名对应的IP地址;
当所述域名符合域名加速条件时,将所述IP地址添加至所述IP地址白名单。
6.根据权利要求5所述的方法,其特征在于,所述基于对所述域名的域名解析处理,得到与所述域名对应的IP地址,包括:
将所述域名解析请求包中的目的地址更新为预设的域名服务器对应的地址,并将目的地址更新的域名解析请求包发送至所述域名服务器;
接收所述域名服务器对所述域名解析请求包中的域名进行解析后返回的IP地址。
7.根据权利要求2所述的方法,其特征在于,所述基于所述传输层协议类别和所述原始目的地址,判定所述网络层数据包是否为待加速数据包,包括:
当所述传输层协议类别为TCP协议时,将所述原始目的地址中的原始目的IP地址与IP地址白名单进行匹配;
根据匹配结果,判定所述网络层数据包是否为待加速数据包。
8.根据权利要求1所述的方法,其特征在于,所述将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包,包括:
当基于对所述网络层数据包的解析,确定传输层协议类别为TCP协议时,将所述网络层数据包转发至由加速客户端创建的本地服务器;
基于所述本地服务器,将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
所述将所述更新数据包发送至所述加速服务器,包括:
基于所述本地服务器,将所述更新数据包发送至所述加速服务器。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将所述应用客户端所对应的加速服务器的地址和所述原始目的地址添加至TCP数据列表;
所述基于所述本地服务器,将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包,包括:
基于所述本地服务器,反查所述TCP数据列表,得到所述加速服务器的地址和所述原始目的地址;
基于所述本地服务器,将所述加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包。
10.根据权利要求1所述的方法,其特征在于,所述原始目的地址包括原始目的IP地址和原始目的端口;所述解析出所述网络层数据包中的原始目的地址和数据段,包括:
对所述网络层数据包进行解析,得到原始目的IP地址和传输层数据包;
对所述传输层数据包进行解析,得到原始目的端口和数据段。
11.根据权利要求1所述的方法,其特征在于,所述将所述应用服务器反馈的响应数据包回传至所述应用客户端,包括:
所述加速服务器将所述应用服务器反馈的响应数据包回传至加速客户端;
所述加速客户端将所述响应数据包的源地址更新为所述应用服务器的地址,将源地址更新后的响应数据包通过虚拟网络设备反馈至所述应用客户端。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述待加速应用为待加速游戏;所述方法还包括:
响应于针对候选游戏列表中待加速游戏的选中操作,确定所述待加速游戏的游戏服务器所在的地理区域;
基于与所述地理区域相匹配的候选服务器节点各自对应的测速结果,确定所述候选服务器节点中符合测速条件的目标节点;
将部署于所述目标节点的加速服务器确定为与所述应用客户端所对应的加速服务器。
13.一种数据加速传输装置,其特征在于,所述装置包括:
数据包路由模块,用于基于针对待加速应用所创建的路由表,将所述待加速应用的应用客户端所发出的数据包路由至虚拟网络设备;
数据包解析模块,用于从所述虚拟网络设备中读取网络层数据包,解析出所述网络层数据包中的原始目的地址和数据段;
数据包更新模块,用于将所述应用客户端所对应的加速服务器的地址作为所述网络层数据包的更新目的地址,并将所述原始目的地址添加至所述数据段的头部,得到更新数据包;
数据包发送模块,用于将所述更新数据包发送至所述加速服务器,以使所述加速服务器按照所述数据段的头部所对应的原始目的地址,建立与所述原始目的地址所对应的应用服务器的交互,将所述应用服务器反馈的响应数据包回传至所述应用客户端。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111049966.0A CN113507393B (zh) | 2021-09-08 | 2021-09-08 | 数据加速传输方法、装置、计算机设备和存储介质 |
PCT/CN2022/110123 WO2023035819A1 (zh) | 2021-09-08 | 2022-08-04 | 数据加速传输方法、装置、计算机设备和存储介质 |
US18/314,497 US20230275836A1 (en) | 2021-09-08 | 2023-05-09 | Accelerated data transmission method and apparatus, computer device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111049966.0A CN113507393B (zh) | 2021-09-08 | 2021-09-08 | 数据加速传输方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113507393A true CN113507393A (zh) | 2021-10-15 |
CN113507393B CN113507393B (zh) | 2021-12-07 |
Family
ID=78016917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111049966.0A Active CN113507393B (zh) | 2021-09-08 | 2021-09-08 | 数据加速传输方法、装置、计算机设备和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230275836A1 (zh) |
CN (1) | CN113507393B (zh) |
WO (1) | WO2023035819A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113992410A (zh) * | 2021-10-28 | 2022-01-28 | 北京永信至诚科技股份有限公司 | 一种私有加密数据识别方法及系统 |
CN114422563A (zh) * | 2021-12-29 | 2022-04-29 | 海南同享数字科技有限公司 | 一种页面调用后台数据方法、装置、设备及存储介质 |
WO2023035819A1 (zh) * | 2021-09-08 | 2023-03-16 | 腾讯科技(深圳)有限公司 | 数据加速传输方法、装置、计算机设备和存储介质 |
CN116192742A (zh) * | 2022-12-15 | 2023-05-30 | 四川天邑康和通信股份有限公司 | 一种基于应用的路由加速方法及系统 |
WO2024113999A1 (zh) * | 2022-11-28 | 2024-06-06 | 荣耀终端有限公司 | 游戏管理的方法及终端设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116546557B (zh) * | 2023-06-29 | 2023-11-17 | 阿里巴巴(中国)有限公司 | 数据包处理方法、系统、设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957208A (zh) * | 2014-04-29 | 2014-07-30 | 北京奇虎科技有限公司 | 网络游戏的加速方法和系统以及网游加速服务器 |
CN104580192A (zh) * | 2014-12-31 | 2015-04-29 | 网宿科技股份有限公司 | 应用程序的网络访问请求的处理方法和装置 |
CN105791315A (zh) * | 2016-04-25 | 2016-07-20 | 网宿科技股份有限公司 | 一种udp协议加速方法和系统 |
CN107071034A (zh) * | 2017-04-20 | 2017-08-18 | 网宿科技股份有限公司 | 一种数据包传输方法和系统 |
CN110891056A (zh) * | 2019-11-20 | 2020-03-17 | 杭州迪普科技股份有限公司 | Https请求认证方法及装置、电子设备、存储介质 |
CN112152828A (zh) * | 2019-06-27 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种游戏加速方法、装置、vpn终端及存储介质 |
CN112511377A (zh) * | 2020-11-16 | 2021-03-16 | 成都云智天下科技股份有限公司 | 一种基于arq和udp协议的tcp网络加速方法 |
CN112600952A (zh) * | 2020-12-10 | 2021-04-02 | 四川迅游网络科技股份有限公司 | 一种移动端网络加速分流方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4187881A1 (en) * | 2017-08-28 | 2023-05-31 | Bright Data Ltd. | Improving content fetching by selecting tunnel devices grouped according to geographic location |
CN110478897B (zh) * | 2019-08-28 | 2023-07-25 | 太仓市同维电子有限公司 | 一种基于vpn技术的智能网关游戏加速方法 |
CN112245907A (zh) * | 2020-11-10 | 2021-01-22 | 网易(杭州)网络有限公司 | 游戏数据加速方法、存储介质、电子设备及系统 |
CN113507393B (zh) * | 2021-09-08 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 数据加速传输方法、装置、计算机设备和存储介质 |
-
2021
- 2021-09-08 CN CN202111049966.0A patent/CN113507393B/zh active Active
-
2022
- 2022-08-04 WO PCT/CN2022/110123 patent/WO2023035819A1/zh unknown
-
2023
- 2023-05-09 US US18/314,497 patent/US20230275836A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957208A (zh) * | 2014-04-29 | 2014-07-30 | 北京奇虎科技有限公司 | 网络游戏的加速方法和系统以及网游加速服务器 |
CN104580192A (zh) * | 2014-12-31 | 2015-04-29 | 网宿科技股份有限公司 | 应用程序的网络访问请求的处理方法和装置 |
CN105791315A (zh) * | 2016-04-25 | 2016-07-20 | 网宿科技股份有限公司 | 一种udp协议加速方法和系统 |
CN107071034A (zh) * | 2017-04-20 | 2017-08-18 | 网宿科技股份有限公司 | 一种数据包传输方法和系统 |
CN112152828A (zh) * | 2019-06-27 | 2020-12-29 | 腾讯科技(深圳)有限公司 | 一种游戏加速方法、装置、vpn终端及存储介质 |
CN110891056A (zh) * | 2019-11-20 | 2020-03-17 | 杭州迪普科技股份有限公司 | Https请求认证方法及装置、电子设备、存储介质 |
CN112511377A (zh) * | 2020-11-16 | 2021-03-16 | 成都云智天下科技股份有限公司 | 一种基于arq和udp协议的tcp网络加速方法 |
CN112600952A (zh) * | 2020-12-10 | 2021-04-02 | 四川迅游网络科技股份有限公司 | 一种移动端网络加速分流方法和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023035819A1 (zh) * | 2021-09-08 | 2023-03-16 | 腾讯科技(深圳)有限公司 | 数据加速传输方法、装置、计算机设备和存储介质 |
CN113992410A (zh) * | 2021-10-28 | 2022-01-28 | 北京永信至诚科技股份有限公司 | 一种私有加密数据识别方法及系统 |
CN114422563A (zh) * | 2021-12-29 | 2022-04-29 | 海南同享数字科技有限公司 | 一种页面调用后台数据方法、装置、设备及存储介质 |
WO2024113999A1 (zh) * | 2022-11-28 | 2024-06-06 | 荣耀终端有限公司 | 游戏管理的方法及终端设备 |
CN116192742A (zh) * | 2022-12-15 | 2023-05-30 | 四川天邑康和通信股份有限公司 | 一种基于应用的路由加速方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20230275836A1 (en) | 2023-08-31 |
CN113507393B (zh) | 2021-12-07 |
WO2023035819A1 (zh) | 2023-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113507393B (zh) | 数据加速传输方法、装置、计算机设备和存储介质 | |
US10659354B2 (en) | Processing data packets using a policy based network path | |
US10003576B2 (en) | Rule-based routing to resources through a network | |
CN108270882B (zh) | 域名的解析方法和装置、存储介质、电子装置 | |
US9917889B2 (en) | Enterprise service bus routing system | |
CN110224996A (zh) | 应用程序的网络访问方法、装置、计算机设备和存储介质 | |
CN111193768B (zh) | 网络数据处理方法、装置、计算机设备和存储介质 | |
US10904728B2 (en) | Mobile application accelerator | |
CN106790762A (zh) | 域名解析方法和装置 | |
CN111371639B (zh) | 网络延时分析方法、装置、存储介质和计算机设备 | |
US20170171147A1 (en) | Method and electronic device for implementing domain name system | |
US20230321530A1 (en) | Method for game data acceleration and system, and electronic device | |
CN104506450A (zh) | 媒体资源反馈方法及装置 | |
CN114401245A (zh) | 实现高性能dns服务的方法、装置、计算机设备和存储介质 | |
CN106507414A (zh) | 报文转发方法及装置 | |
CN111866993B (zh) | 无线局域网连接管理方法、装置、软件程序及存储介质 | |
CN113382093B (zh) | 域名解析的方法、电子装置以及系统 | |
CN113691608B (zh) | 流量分发的方法、装置、电子设备及介质 | |
CN108271230A (zh) | 一种获取移动管理信息的方法及装置、计算机可读存储介质 | |
CN114710560A (zh) | 数据处理方法、系统及代理设备、终端设备 | |
CN111314497B (zh) | 一种同时支持多种nat类型生效方法及系统 | |
CN106254576A (zh) | 一种报文转发方法及装置 | |
WO2023230953A1 (en) | System for disambiguating composite egress traffic for routing and other control | |
US20230216790A1 (en) | Apparatus and method for providing virtual private network service in icn network | |
CN115037572A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40056100 Country of ref document: HK |