CN110557290B - 网络加速服务的处理方法及装置 - Google Patents

网络加速服务的处理方法及装置 Download PDF

Info

Publication number
CN110557290B
CN110557290B CN201910877116.6A CN201910877116A CN110557290B CN 110557290 B CN110557290 B CN 110557290B CN 201910877116 A CN201910877116 A CN 201910877116A CN 110557290 B CN110557290 B CN 110557290B
Authority
CN
China
Prior art keywords
network
acceleration service
client
packet
server
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
Application number
CN201910877116.6A
Other languages
English (en)
Other versions
CN110557290A (zh
Inventor
张�雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910877116.6A priority Critical patent/CN110557290B/zh
Publication of CN110557290A publication Critical patent/CN110557290A/zh
Application granted granted Critical
Publication of CN110557290B publication Critical patent/CN110557290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/083Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种网络加速服务的处理方法、装置、电子设备、及存储介质;该方法包括:通过在客户端中注入的测试代码创建测试线程,测试线程用于测试客户端访问后台服务器所使用的加速服务;通过测试线程、并经由客户端所使用的加速服务,向与后台服务器位于相同网络环境的测速服务器发送探测包,以使测速服务器在接收到探测包时返回对应的应答包;根据探测包发送时间和应答包返回时间,确定加速服务的网络延迟信息;根据探测包的发送数量和应答包的接收数量,确定加速服务的网络丢包率;根据加速服务的网络延迟信息和网络丢包率至少之一确定加速服务的性能。通过本发明,能够准确衡量不同加速服务对客户端访问后台服务器进行加速的性能。

Description

网络加速服务的处理方法及装置
技术领域
本发明涉及通信和区块链技术,尤其涉及一种网络加速服务的处理方法、装置、电子设备及存储介质。
背景技术
人工智能(AI,Artificial Intelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
随着网络信息化的不断加快,人工智能用于提升网络用户的体验已成为重要应用领域。由于网络中客户端与后台服务器之间的路由路径的稳定性(例如路由器隔离或路由器故障),导致客户端与服务器(特别是跨地域(例如跨国)服务器)的数据传输出现不稳定(例如速度太低或中断)的情况。因此客户端会通过加速服务来访问后台服务器,以获得理想的访问速度。
相关技术中无法准确衡量不同加速服务对客户端访问后台服务器进行加速的性能,进而导致无法对客户端使用的加速服务进行智能化管理。
发明内容
本发明实施例提供一种网络加速服务的处理方法、装置、电子设备及存储介质,能够准确衡量不同加速服务对客户端访问后台服务器进行加速的性能。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种网络加速服务的处理方法,包括:
通过在客户端中注入的测试代码,在所述客户端中创建测试线程,所述测试线程用于测试所述客户端访问后台服务器所使用的加速服务;
通过所述测试线程、并经由所述客户端所使用的加速服务,向与所述后台服务器位于相同网络环境的测速服务器发送探测包,以使
所述测速服务器在接收到所述探测包时返回对应的应答包;
根据所述探测包发送时间和所述应答包返回时间,确定所述加速服务的网络延迟信息;
根据所述探测包发送数量和所述应答包接收数量,确定所述加速服务的网络丢包率;
根据所述加速服务的网络延迟信息和网络丢包率至少之一确定所述加速服务的性能。
本发明实施例提供一种网络加速服务的处理装置,包括:
创建模块,用于通过在客户端中注入的测试代码,在所述客户端中创建测试线程,所述测试线程用于测试所述客户端访问后台服务器所使用的加速服务;
测试模块,用于通过所述测试线程、并经由所述客户端所使用的加速服务,向与所述后台服务器位于相同网络环境的测速服务器发送探测包,以使所述测速服务器在接收到所述探测包时返回对应的应答包;
确定模块,用于根据所述探测包发送时间和所述应答包返回时间,确定所述加速服务的网络延迟信息;根据所述探测包发送数量和所述应答包接收数量,确定所述加速服务的网络丢包率;
确定性能模块,用于根据所述加速服务的网络延迟信息和网络丢包率至少之一确定所述加速服务的性能。
上述方案中,所述创建模块,还用于在所述客户端的主进程中注入包括动态链接库形式的测试代码的消息钩子,以使所述消息钩子中的测试代码被所述主进程执行时,创建所述位于所述客户端中的所述测试线程。
上述方案中,所述测试模块,还用于通过读取所述客户端中的共享内存,获取所述后台服务器所处的区域的信息,并获取相同区域的测速服务器的网络地址和端口;其中,所述后台服务器与所述测速服务器处于所述相同区域的同一服务器机房,或处于所述相同区域的相同网络配置的不同服务器机房;以所述测速服务器的网络地址为目的地址,并以所述测速服务器的端口为目的端口封装探测包,并通过网络接口发送所述探测包。
上述方案中,所述测试模块,还用于在基于用户数据报协议的封装结构的头部中,填充所述测速服务器的网络地址为目的地址,并填充所述测速服务器的端口为目的端口,基于所述封装结构生成探测包;所述通过网络接口发送所述探测包,包括:通过网络接口以固定频率发送多个探测包。
上述方案中,还包括封装模块,用于基于私有的所述用户数据报协议的封装结构,在所述封装结构中生成仅能被所述测速服务器识别的所述头部,以使当所述测速服务器根据私有的所述用户数据报协议识别出所述头部时,调用私有的所述用户数据报协议生成与所述探测包对应的应答包。
上述方案中,所述确定模块,还用于存储发送所述探测包时对应的时间戳,当接收到对应的探测包的返回的所述应答包时,确定对应的时间戳;基于所述探测包和所述应答包对应的时间戳的差值,确定所述加速服务的网络延迟信息。
上述方案中,所述确定模块,还用于确定所述探测包的发送数量和所述应答包的接收数量的数量差值;将所述数量差值和所述探测包的发送数量的比值确定为所述加速服务的网络丢包率。
上述方案中,网络加速服务的处理装置还包括切换模块,用于在所述客户端能够使用多个加速服务中,确定性能最优的加速服务;通过所述测试线程向所述客户端的主进程发送所述最优的加速服务,以切换到所述最优的加速服务。
上述方案中,网络加速服务的处理装置还包括上链模块,用于通过所述客户端接入区块链网络,并将所述客户端使用过的加速服务的性能参数存储到所述区块链网络中,以使未使用过所述加速服务的客户端从所述区块链网络查询所述加速服务的性能参数,并根据查询到的加速服务的性能参数选择使用最优的加速服务。
本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的网络加速服务的处理方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的网络加速服务的处理方法。
本发明实施例具有以下有益效果:
通过在客户端中创建的测试线程、并经由客户端所使用的加速服务,向与后台服务器位于相同网络环境的测速服务器发送探测包以及接收返回的应答包确定加速服务的性能,能够准确衡量不同加速服务对客户端访问后台服务器进行加速的性能。
附图说明
图1A、图1B和图1C是本发明实施例提供的加速服务的原理示意图;
图2是本发明实施例提供的网络加速服务的处理系统的一个架构示意图;
图3是本发明实施例提供的网络加速服务的处理系统的一个架构示意图;
图4是本发明实施例提供的区块链的一个结构示意图;
图5是本发明实施例提供的电子设备的一个结构示意图;
图6A、图6B、图6C、图6D和图6E是本发明实施例提供的网络加速服务的处理方法的流程示意图;
图7A和图7B是本发明实施例提供的网络加速服务的处理方法的应用场景示意图;
图8A是本发明实施例提供的网络加速服务的处理方法的一个原理示意图;
图8B是本发明实施例提供的网络加速服务的处理方法的一个流程示意图;
图9A、图9B和图9C是本发明实施例提供的网络加速服务的处理方法的流程示意图;
图10是本发明实施例提供的网络加速服务的处理方法的一个应用场景示意图;
图11是本发明实施例提供的网络加速服务的处理方法的一个原理示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)加速服务,由于网络中客户端与后台服务器之间的路由路径的稳定性,导致客户端与服务器的数据传输出现不稳定的情况。因此,客户端会通过加速服务来访问后台服务器,以获得理想的访问速度。加速服务可以通过两种方式来实现,分别是:代理服务器方式和虚拟专用网络(VPN,Virtual Private Network)方式。
2)测试线程,进程是操作系统中进行保护和资源分配的基本单位,操作系统分配资源以进程为基本单位。而线程是进程的组成部分,表示一条顺序的执行流。测试线程用于测试客户端访问后台服务器所使用的加速服务。
3)消息钩子,是消息处理机制的一种技术,通过安装消息钩子,应用程序能够设置相应的子例程来识别系统里的消息传递以及在这些消息到达目标窗口程序之前处理它们。因为操作系统的32/64位环境(Win32/64)应用程序都有自己的消息队列,可以通过操作系统调用,将消息钩子挂入系统。每当消息发出,在没有到达目的线程前,消息钩子可以先捕获该消息,从而被客户端主进程加载,以达到注入的目的。
4)共享内存,是一个进程间通信方式,共享内存在多处理器的计算机系统中,可以被不同中央处理器(CPU,Central Processing Unit)访问的大容量内存。共享内存可以允许两个不相关的进程访问同一个逻辑内存,共享内存是两个正在运行的进程之间共享和传递数据的方式。不同进程之间共享的内存通常为同一段物理内存。进程可以将同一段物理内存连接到自己的地址空间中,所有的进程都可以访问共享内存中的地址。
5)用户数据报协议(UDP,User Datagram Protocol),是一个简单的面向无连接的,不可靠的数据报的传输层(Transport Layer)协议。UDP探测包是基于无连接的传输协议生成的,即,UDP探测包的路由路径不保证UDP探测包的可达,当UDP探测包丢失时,测试线程不会向测速服务器重传UDP探测包。
6)私有协议,是客户端和服务器之间的协商过程的规范,区别于相关技术提供的,服务器只会答复特定的协议头格式的数据包,其它的不符合协议头格式的数据包会丢弃。
7)交易(Transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
8)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。
9)区块链网络(Blockchain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
10)账本(Ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(Key)值(Value)对的形式来记录区块链中的交易,用于支持对区块链中交易数据的快速查询。
11)智能合约(Smart Contracts),也称为链码(Chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
12)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,并被用于更新状态数据库。
相关技术中,加速服务可以通过两种方式来实现,分别是:代理服务器方式和VPN方式,图1A和图1B是本发明实施例提供的加速服务的原理示意图,下面,将结合图1A和图1B对这两种方式具体说明。
代理服务器方式:参见图1A,代理服务器方式可以通过代理协议(SOCKS5)部署代理服务器作为加速节点,客户端根据负载及延迟,选择最快的代理服务器作为当前的接入节点。在客户端主要采用分层服务提供(LSP,Layered Service Provider)技术,拦截住客户端进程的所有网络行为,通过SOCKS5代理协议与代理服务器进行数据协商,由代理服务器来连接客户端的后台服务器,实现客户端和后台服务器的数据透明转发,从而实现加速服务。
VPN方式:参见图1B,VPN方式可以通过部署双线VPN服务器作为加速节点,客户端自动选择速度最快的VPN服务器,并通过VPN拨号连接到VPN服务器并获取一个虚拟IP地址,同时通过修改路由表的方式,将指定进程的网络访问路由到虚拟IP上,而其余地址仍经过原默认路由途径访问,从而实现加速服务。
图1C是本发明实施例提供的加速服务的一个原理示意图,参见图1C,T1段是从用户侧的终端接入国内接入点、T2段是从国内接入点接入代理服务器、T3段是代理服务器接入后台服务器,其中,代理服务器和后台服务器相对于用户侧的终端均位于国外(例如,用户侧的终端处于中国境内,代理服务器和后台服务器处于非中国境内的区域)。
在本发明实施例的实施过程中发现相关技术只会向用户侧展示T1段的加速性能,然而T1段的加速性能不能准确衡量不同加速服务对客户端访问后台服务器进行加速的性能。
针对上述问题,本发明实施例提供一种网络加速服务的处理方法、装置、电子设备和存储介质,下面说明本发明实施例提供的网络加速服务的处理方法的示例性应用,本发明实施例提供的网络加速服务的处理方法可以由运行各种客户端的终端实施,终端可以为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等。
接下来以由终端实施为例,说明网络加速服务的处理方法的示例性应用。参见图2,图2是本发明实施例提供的网络加速服务的处理系统100的一个架构示意图。本发明实施例提供的网络加速服务的处理方法可以通过以下过程实现:首先,在终端400中的客户端410中注入测试代码,并在客户端410中创建测试线程;然后,通过测试线程、并经由客户端410所使用的加速服务,向与后台服务器200位于相同网络环境的测速服务器210发送探测包;再次,测速服务器210通过网络300接收到探测包时向客户端410返回对应的应答包;最后,测试线程根据发出的探测包和接收的应答包确定所使用的加速服务的性能,可以在客户端410能够使用多个加速服务中,确定性能最优的加速服务以获得最优的后台服务器访问体验。
本发明实施例通过在客户端中创建的测试线程、并经由客户端所使用的加速服务,向与后台服务器位于相同网络环境的测速服务器发送探测包以及接收返回的应答包确定加速服务的性能,能够准确衡量不同加速服务对客户端访问后台服务器进行加速的性能,进而选择最优的加速服务以获得最优的后台服务器访问体验。
接下来以将网络加速服务的性能参数上传至区块链网络为例,说明本发明实施例提供的网络加速服务的处理方法的示例性应用。参见图3,图3是本发明实施例提供的网络加速服务的处理系统100的另一个架构示意图,包括区块链网络600(示例性示出了共识节点610-1至共识节点610-3)、认证中心700、业务主体800(示例性示出了业务主体800的客户端节点810和客户端节点820)和业务主体900(示例性示出了业务主体900的客户端节点910),下面分别进行说明。
区块链网络600的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备例如用户终端和服务器,都可以在不需要授权的情况下接入区块链网络600;以联盟链为例,业务主体在获得授权后其下辖的电子设备(例如终端/服务器)可以接入区块链网络600,此时,成为区块链网络600中的客户端节点。
作为示例,当区块链网络600是联盟链时,业务主体800/900从认证中心700进行登记注册获得各自的数字证书,数字证书中包括业务主体的公钥、以及认证中心700对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易(例如,用于上链存储加速服务的性能信息或查询链上加速服务的性能信息)中,并被发送到区块链网络600,以供区块链网络600从交易中取出数字证书和数字签名,验证交易的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络600会根据身份进行验证,例如是否具有发起交易的权限。
业务主体800/900下辖的电子设备(例如终端或者服务器)运行的客户端都可以向区块链网络600请求接入而成为客户端节点。
在一些实施例中,客户端节点可以只作为区块链网络600的观察者,即提供支持业务主体发起交易(例如,用于上链存储加速服务的性能信息或查询链上加速服务的性能信息)功能,对于区块链网络600的共识节点610的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络600中,通过区块链网络600实现数据和业务处理过程的可信和可追溯。
区块链网络600中的共识节点接收来自不同业务主体(例如图1中示出的业务主体800和业务主体900)的客户端节点(例如,图1中示出的归属于业务主体800的客户端节点810和客户端节点820、以及归属于业务主体900的客户端节点910)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回业务主体的客户端节点中显示。
例如,客户端节点810/820/910可以订阅区块链网络600中感兴趣的事件,包括与对应以下交易的事件:区块链网络600中特定的组织/通道中发生的加速服务的性能信息上链或更新,由共识节点610推送相应的通知到客户端节点810/820/910,从而触发客户端节点810/820/910中相应的业务逻辑(例如,根据加速服务的性能信息选择最优的加速服务)。
下面以多个业务主体接入区块链网络以实现网络加速服务的管理为例,说明区块链网络的示例性应用。
参见图3,涉及多个业务主体,业务主体800和900可以是不同的软件公司开发不同的客户端。业务主体800和900的客户端都可以测试客户端所使用的加速服务,客户端在接入到区块链网络600时成为客户端节点,可以将测试的加速服务的性能信息上传到区块链网络600中。例如,业务主体800可以是开发游戏客户端的软件公司,业务主体900可以是开发社交客户端的软件公司,游戏客户端和社交客户端可以对不同的加速服务进行测试,并将测试获得的加速服务的性能信息上传到区块链网络600中。
以业务主体800将测试获得的加速服务的性能信息上传至区块链网络600为例进行说明。
首先,业务主体800的客户端节点810/820用于在客户端中创建测试线程,通过测试线程、并经由客户端所使用的加速服务,向与后台服务器位于相同网络环境的测速服务器发送探测包,测速服务器通过网络接收到探测包时向客户端返回对应的应答包,测试线程根据发出的探测包和接收的应答包确定所使用的加速服务的性能信息。
然后,在客户端节点810/820设置加速服务的性能信息上链的逻辑,例如当产生加速服务的性能信息时,客户端节点810/820将加速服务的性能信息发送至区块链网络600时,生成对应的交易,交易包括:为了上链性能信息而需要调用的智能合约、以及向智能合约传递的参数;交易还包括客户端节点810/820的数字证书、签署的数字签名(使用客户端节点810/820的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络600中的共识节点610。
最后,区块链网络600中的共识节点610中接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体800的身份,确认业务主体800是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署共识节点610自己的数字签名(例如,使用节点610-1的私钥对交易的摘要进行加密得到),并继续在区块链网络600中广播。
区块链网络600中的共识节点610接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络600中的共识节点610广播的新区块时,会对新区块进行验证,例如,验证新区块中交易的数字签名是否有效,如果验证成功,则将新区块追加到自身所存储的区块链的尾部,作为示例,参见图4,图4是本发明实施例提供的区块链网络600中区块链的结构示意图,区块链网络600中每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值;此外,还根据新区块中交易的结果更新状态数据库,即在状态数据库中添加或更新包括加速服务的性能信息的键值对。当多数共识节点610的上述验证通过时,则新区块的共识通过。
再以业务主体900在区块链网络600中查询加速服务的性能信息为例进行说明。业务主体900在区块链网络600中能够查询的数据的类型,可以由共识节点610通过约束业务主体的客户端阶段能够发起的交易的权限来实现,当业务主体900的客户端节点910具有发起查询业务主体800的客户端节点810/820测试加速服务的性能信息的权限时,可以由客户端节点910生成用于查询加速服务的性能信息的交易并提交到区块链网络600中,从共识节点610执行交易以从状态数据库中查询相应的加速服务的性能信息,并返回客户端节点910,从而可以根据获取的可靠的加速服务的性能信息选择最优的加速服务,而不需要重复测试。
作为一个示例,当客户端节点810测试了10个加速服务的性能信息时,如果同样属于业务主体800的客户端节点820也内置了相同的10个加速服务,则客户端节点820可以从区块链网络600上查询10个加速服务的性能信息,而不需要重复去测试加速服务的性能信息。
作为另一个示例,客户端节点810/820/910会周期性测试加速服务的性能信息,并根据获得的最新的加速服务的性能信息去更新区块链网络600中的加速服务的性能信息,其中,区块链网络600上的加速服务的性能信息可以包括表示测试加速服务的时间戳,客户端节点810/820/910可以根据区块链网络600上的加速服务的性能信息的时间戳确定最新的加速服务的性能信息,从而根据最新的加速服务的性能信息选择最优的加速服务。
作为又一个示例,当客户端节点810/820/910发现区块链网络600存储的加速服务的性能信息是超出有效期时,可以重新测试加速服务的性能信息,当获得的加速服务的性能信息与区块链网络600中保存的加速服务的性能信息不同,则可以根据最新获得的加速服务的性能信息去更新区块链网络600中的加速服务的性能信息,以保证加速服务的性能信息的时效性。
接下来说明本发明实施例提供的用于执行加速服务处理的电子设备的结构,电子设备可以是运行上文所述的客户端的任意设备,例如图2中的终端400,运行图3中的客户端节点810/820/910的设备。参见图5,图5是本发明实施例提供的电子设备500的一个结构示意图,其中,图5所示的电子设备500包括:至少一个处理器560、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统540。
处理器560可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器560的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的网络加速服务的处理装置可以采用软件方式实现,其中,客户端可以是各种应用程序(APP,Application),例如游戏客户端、社交网络客户端等。图5示出了存储在存储器550中的网络加速服务的处理装置555,其可以是程序和插件等形式的软件,包括以下软件模块:创建模块5551、测试模块5552、确定模块5553以及确定性能模块5554,这些模块是可以是逻辑功能模块,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的网络加速服务的处理装置可以采用硬件方式实现,作为示例,本发明实施例提供的网络加速服务的处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的网络加速服务的处理,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,ApplicationSpecific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable LogicDevice)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
将结合上文所述的终端示例性应用和实施,说明本发明实施例提供的网络加速服务的处理方法,本发明实施例提供的网络加速服务的处理方法可以用于终端运行客户端的各种应用场景,例如测试游戏客户端通过加速服务访问游戏后台服务器时的加速性能、测试社交客户端通过加速服务访问社交后台服务器时的加速性能等。
参见图6A,图6A是本发明实施例提供的网络加速服务的处理方法的流程示意图,将结合图6A示出的步骤进行具体说明。
在步骤S101中,终端中的客户端开启加速服务。
在一些实施例中,当本发明提供的网络加速服务的处理方法应用于测试游戏客户端通过加速服务访问游戏后台服务器时的加速性能时,终端中的游戏客户端开启游戏加速服务,其中,游戏加速服务可以是通过不同厂商提供的游戏加速器实现的游戏加速服务。
在一些实施例中,当本发明提供的网络加速服务的处理方法应用于测试社交客户端通过加速服务访问社交后台服务器时的加速性能时,终端中的社交客户端开启社交加速服务,其中,社交加速服务可以是通过不同厂商提供的跨域加速器实现的社交加速服务。
在步骤S102中,终端中的测试程序在客户端中注入测试代码以在客户端中创建测试线程。
在一些实施例中,测试程序在客户端的主进程中注入包括动态链接库(DLL,Dynamic Link Library)形式的测试代码的消息钩子,以使消息钩子中的测试代码被主进程执行时,在客户端中创建测试线程,以用于测试客户端访问后台服务器所使用的加速服务的性能。其中,上述消息钩子是线程钩子。
作为示例,在游戏客户端中注入包括DLL文件的消息钩子模块,然后通过可执行(EXE,Executable File)文件安装消息钩子模块,以使游戏客户端中创建后台测试线程。
在步骤S103中,终端客户端中的测试线程通过终端的网络接口、并经由客户端所使用的加速服务,向与后台服务器位于相同网络环境的测速服务器发送探测包。
作为示例,游戏客户端创建的测试线程经由游戏客户端所使用的游戏加速器,向与游戏后台服务器位于相同网络环境的测速服务器发送探测包,测速服务器在接收到发送的探测包时返回与探测包对应的应答包。其中,当游戏后台服务器是亚洲后台服务器(位于首尔)时,选择的测速服务器也是和亚洲后台服务器处于相同区域(位于首尔)的测速服务器。
本发明实施例通过在与后台服务器位于相同的网络环境中部署测速服务器,并向测速服务器中发送探测包,能够准确衡量客户端通过加速服务访问后台服务器时的加速性能。
参见图6B,图6B是本发明实施例提供的网络加速服务的处理方法的一个流程示意图,基于图6A,步骤S103可以通过步骤S1031至步骤S1032来实现。
在步骤S1031中,终端客户端中的测试线程读取客户端中的共享内存,获取与后台服务器所处的区域的信息,并获取相同区域的测速服务器的网络地址和端口。
在一些实施例中,后台服务器与测速服务器处于相同区域(例如相同国家或相同城市)的同一服务器机房内。
在一些实施例中,后台服务器与测速服务器处于相同区域的相同网络配置的不同服务器机房,其中,不同服务器机房,但是网络接入条件(例如带宽、网络服务提供商)相同。
在步骤S1032中,终端客户端中的测试线程以测速服务器的网络地址为目的地址,并以测速服务器的端口为目的端口封装探测包,并通过网络接口发送探测包。
在一些实施例中,测试线程在基于用户数据报协议(UDP,User DatagramProtocol)的封装结构的头部中,填充测速服务器的网络地址为目的地址,并填充测速服务器的端口为目的端口,基于封装结构生成探测包;并通过网络接口以固定频率发送多个探测包。
在一些实施例中,测试线程基于私有的用户数据报协议的封装结构,在封装结构中生成仅能被测速服务器识别的头部,以使当测速服务器根据私有的用户数据报协议识别出头部时,调用私有的用户数据报协议生成与探测包对应的应答包。
作为示例,测试线程可以以固定频率向测速服务器发送多个UDP探测包,其中,UDP探测包的头部是根据测速服务器的网络地址和端口生成,以使测速服务器可以接收测试线程发送的UDP探测包。UDP探测包是基于无连接的传输协议生成的,即,UDP探测包的路由路径不保证UDP探测包的可达,当UDP探测包丢失时,测试线程不会向测速服务器重传UDP探测包。
作为示例,当本发明提供的网络加速服务的处理方法应用于测试游戏客户端通过加速服务访问游戏后台服务器时的加速性能时,由于主流的海外游戏大部分是第一人称射击类游戏(FPS,First-person shooting game),游戏运行过程中的大部分数据是基于UDP进行传输的,因此,本发明实施例通过向测速服务器发送UDP探测包时可以不影响游戏的正常运行进程,从而保障用户流畅的游戏体验。
在步骤S104中,测速服务器在接收到探测包时返回对应的应答包。
在一些实施例中,当测速服务器根据私有的用户数据报协议识别出探测包的头部时,调用私有的用户数据报协议生成与探测包对应的应答包,并将应答包返回至发送探测包的端口。
在步骤S105中,终端的客户端中的测试线程根据探测包发送时间和应答包返回时间,确定加速服务的网络延迟信息。
在一些实施例中,测试线程根据探测包发送时间和应答包返回时间统计时间差值,并基于探测包发送时间和应答包返回时间统计时间差值确定为确定加速服务的网络延迟信息。
参见图6C,图6C是本发明实施例提供的网络加速服务的处理方法的一个流程示意图,基于图6A,步骤S105可以通过步骤S1051至步骤S1052来具体实现。
在步骤S1051中,终端客户端中的测试线程存储发送探测包时对应的时间戳,当接收到对应的探测包的返回的应答包时,确定对应的时间戳。
在一些实施例中,测试线程存储向测速服务器发送探测包时对应的时间戳,并当客户端接收到对应的探测包的返回的应答包时,确定对应的探测包的返回的应答包的时间戳并在客户端中进行存储。
在步骤S1052中,终端客户端中的测试线程基于探测包和应答包对应的时间戳的差值,确定加速服务的网络延迟信息。
在一些实施例中,测试线程确定发送探测包和接收对应的应答包的时间戳的差值,并将时间戳的差值中的噪声值(时间戳差值超过最大时间阈值或时间戳差值小于最小时间阈值)进行过滤,然后计算探测包发送时间和应答包返回时间统计时间差值的平均值,并将获得的平均值确定为确定加速服务的网络延迟信息,其中,时间戳差值的单位可以精确到微秒(us)。
在步骤S106中,终端客户端中的测试线程根据探测包发送数量和应答包接收数量,确定加速服务的网络丢包率。
在一些实施例中,测试线程将所述探测包的发送数量和所述应答包的接收数量的比值确定为所述加速服务的网络丢包率。
参见图6D,图6D是本发明实施例提供的网络加速服务的处理方法的一个流程示意图,基于图6A,步骤S106可以通过步骤S1061至步骤S1062来具体实现。
在步骤S1061中,终端客户端中的测试线程确定探测包的发送数量和应答包的接收数量的数量差值。
在一些实施例中,测试线程统计在固定时间内向测速服务器发送探测包的数量和测速服务器返回的应答包的接收数量的数量差值。
在步骤S1062中,终端客户端中的测试线程将数量差值和探测包的发送数量的比值确定为加速服务的网络丢包率。
在一些实施例中,测试线程将在固定时间内向测速服务器发送探测包的数量作为分母、将向测速服务器发送探测包的数量和测速服务器返回的应答包的接收数量的差值作为分子进行计算,并将比值的计算结果确定为加速服务在固定时间内的网络丢包率。
在步骤S107中,终端客户端中的测试线程根据加速服务的网络延迟信息和网络丢包率至少之一确定加速服务的性能。
在一些实施例中,加速服务的网络延迟信息表征网络延迟时间越小,则表征加速服务的性能越好;加速服务的网络延迟信息表征网络延迟时间越大,则表征加速服务的性能越差。
在一些实施例中,加速服务的在固定时间内的网络丢包率越小,则表征加速服务的性能越好;加速服务的在固定时间内的网络丢包率越大,则表征加速服务的性能越差。
本发明实施例通过向与后台服务器位于相同网络环境的测速服务器发送探测包以及接收返回的应答包确定加速服务的性能,能够准确衡量不同加速服务对客户端访问后台服务器进行加速的性能。
参见图6E,图6E是本发明实施例提供的网络加速服务的处理方法的一个流程示意图,基于图6A,在步骤S107之后可以包括步骤S108和步骤S109。
在步骤S108中,终端客户端中的测试线程在客户端能够使用多个加速服务中,确定性能最优的加速服务。
在一些实施例中,在客户端能够使用多个加速服务中,根据多个加速服务的网络延迟信息和/或网络丢包率,确定性能最优的加速服务。
在步骤S109中,终端客户端中的测试线程向客户端的主进程发送最优的加速服务,以切换到最优的加速服务。
在一些实施例中,当客户端当前使用的不是最优的加速服务或者当前使用的加速服务的性能参数低于性能参数阈值时,向客户端的主进程发送最优的加速服务,以切换到最优的加速服务。
作为示例,当客户端当前使用的不是最优的加速服务或者当前使用的加速服务的性能参数低于性能参数阈值时,向客户端发出提示,询问是否切换加速服务,并且在等待时间内未收到用户拒绝的响应时自动切换至最优的加速服务。
作为示例,当下一次客户端被触发、并开启加速服务时,可以自动切换到最优的加速服务,或者,手动切换到最优的加速服务。
本发明实施例通过测试线程向客户端的主进程发送最优的加速服务,以切换到最优的加速服务选择最优的加速服务,以获得最优的后台服务器访问体验,从而提高用户的体验。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用,相关技术中,图7A和图7B是本发明实施例提供的网络加速服务的处理方法的应用场景示意图,参见图7A和图7B,当游戏客户端通过游戏加速器(即上述的加速服务)访问游戏后台服务器时,游戏加速器选择加速节点时展示的只是T1段(即从用户侧接入国内接入点)的网络延迟信息和网络丢包率。
针对上述问题,本发明实施例提供一种网络加速服务的处理方法,图8A是本发明实施例提供的网络加速服务的处理方法的一个原理示意图,图8B是本发明实施例提供的网络加速服务的处理方法的一个流程示意图,将结合图8A和图8B说明本发明实施例提供的网络加速服务的处理方法具体应用于游戏客户端的示例性应用。
在步骤S201中,基于加速控制指令,开启不同的游戏加速器,并分别通过不同的游戏加速器加速游戏客户端访问游戏后台服务器。
图8A中仅示出加速器A、加速器B和加速器C,本发明实施例提供的网络加速服务的处理方法中不仅限于这三个加速器,加速通道中可以包括多个不同的加速器。
在步骤S202中,通过测试程序的可执行文件(HelpInjectTest.exe)将消息钩子(HelpInjectTest.exe.dll)注入游戏主进程(TslGame.exe),以创建游戏中的测速线程(即上述的测试线程)。
在步骤S203中,测速线程向与后台服务器处于相同网络环境的UDP回显服务器(即上述的测速服务器)发送UDP测速包(即上述的探测包),并接收测速服务器返回的应答包。
在步骤S204中,测速线程根据发送的UDP测速包和返回的应答包,确定不同的游戏加速器分别加速游戏时的网络延迟信息和网络丢包率。
参见图9A、图9B和图9C,图9A、图9B和图9C是本发明实施例提供的网络加速服务的处理方法的流程示意图,将结合图9A、图9B和图9C示出的步骤进行具体说明。
在步骤S301中,基于第一控制指令,启动游戏加速器。
在步骤S302中,基于第二控制指令,启动游戏客户端,并确定游戏后台服务器。
在步骤S303中,测速模块通过消息钩子注入游戏主进程,并开启后台测速线程。
在一些实施例中,可以使用其它应用层注入方式(例如,创建远程线程、CBT钩子等)注入游戏主进程,并开启测速线程。
在步骤S304中,测速线程读取共享内存,获取与后台服务器位于相同网络环境的测速服务器的网络之间互连的协议(IP,Internet Protocol)地址。
在步骤S305中,测速线程以固定频率向测速服务器发送UDP测速包,并接收测速服务器返回的应答包。
在一些实施例中,由于UDP测速包是基于私有协议生成的,因此测速服务器收到对应的UDP测速包之后会按照原路径返回应答包。
在步骤S306中,测速线程根据发送的UDP测速包和接收的应答包,确定网络延迟信息和网络丢包率。
在一些实施例中,基于UDP测速包的发送数量和应答包的接收数量的比值,确定加速服务的网络丢包率。记录发送UDP测速包和返回的应答包的时间戳,确定对应的时间戳差值,基于UDP测速包和应答包对应的时间戳的差值,确定加速服务的网络延迟信息。
参见图10,图10是本发明实施例提供的网络加速服务的处理方法的一个应用场景示意图,在本发明实施例提供的网络加速服务的处理方法中,通过测速线程选择的测速服务器是根据所选择的游戏后台服务器所处的区域而选取的,例如,当选择的游戏后台服务器是亚洲后台服务器(位于首尔)时,本发明实施例提供的网络加速服务的处理方法中选择的测速服务器也是和亚洲后台服务器处于相同区域(位于首尔)的测速服务器。
图11是本发明实施例提供的网络加速服务的处理方法的一个原理示意图,图11中客户端测试多个后台服务器对应的加速服务的性能并选择最优的加速服务的过程具体如下:
在客户端中注入消息钩子,在客户端中创建测速线程;测速线程经由加速服务向多个测速服务器发送私有协议测速包,并接收多个测速服务器返回的私有协议应答包,其中,多个测速服务器分别处于不同地区(图11中示出分别位于亚洲地区和美国地区的测速服务器);根据测速包的发包数量和应答包的收包数量,确定网络丢包率;根据接收应答包和发送的测速包高精度时间,确定网络延迟信息;根据网络丢包率和网络延迟信息确定加速服务的性能;根据加速服务的性能,选择使加速服务性能最优的测速服务器所在地区的后台服务器作为目的后台服务器,并选择对应的最优的加速服务。
下面继续说明本发明实施例提供的网络加速服务的处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图5所示,存储在存储器550的网络加速服务的处理装置555中的软件模块可以包括:创建模块5551、测试模块5552、确定模块5553以及确定性能模块5554。
创建模块5551,用于通过在客户端中注入的测试代码,在所述客户端中创建测试线程,所述测试线程用于测试所述客户端访问后台服务器所使用的加速服务;
测试模块5552,用于通过所述测试线程、并经由所述客户端所使用的加速服务,向与所述后台服务器位于相同网络环境的测速服务器发送探测包,以使所述测速服务器在接收到所述探测包时返回对应的应答包;
确定模块5553,用于根据所述探测包发送时间和所述应答包返回时间,确定所述加速服务的网络延迟信息;根据所述探测包发送数量和所述应答包接收数量,确定所述加速服务的网络丢包率;
确定性能模块5554,用于根据所述加速服务的网络延迟信息和网络丢包率至少之一确定所述加速服务的性能。
在一些实施例中,所述创建模块5551,还用于在所述客户端的主进程中注入包括动态链接库形式的测试代码的消息钩子,以使所述消息钩子中的测试代码被所述主进程执行时,创建所述位于所述客户端中的所述测试线程。
在一些实施例中,所述测试模块5552,还用于通过读取所述客户端中的共享内存,获取所述后台服务器所处的区域的信息,并获取相同区域的测速服务器的网络地址和端口;其中,所述后台服务器与所述测速服务器处于所述相同区域的同一服务器机房,或处于所述相同区域的相同网络配置的不同服务器机房;以所述测速服务器的网络地址为目的地址,并以所述测速服务器的端口为目的端口封装探测包,并通过网络接口发送所述探测包。
在一些实施例中,所述测试模块5552,还用于在基于用户数据报协议的封装结构的头部中,填充所述测速服务器的网络地址为目的地址,并填充所述测速服务器的端口为目的端口,基于所述封装结构生成探测包;所述通过网络接口发送所述探测包,包括:通过网络接口以固定频率发送多个探测包。
在一些实施例中,所述网络加速服务的处理装置555还包括封装模块,用于基于私有的所述用户数据报协议的封装结构,在所述封装结构中生成仅能被所述测速服务器识别的所述头部,以使当所述测速服务器根据私有的所述用户数据报协议识别出所述头部时,调用私有的所述用户数据报协议生成与所述探测包对应的应答包。
在一些实施例中,所述确定模块5553,还用于存储发送所述探测包时对应的时间戳,当接收到对应的探测包的返回的所述应答包时,确定对应的时间戳;基于所述探测包和所述应答包对应的时间戳的差值,确定所述加速服务的网络延迟信息。
在一些实施例中,所述确定模块5553,还用于确定所述探测包的发送数量和所述应答包的接收数量的数量差值;将所述数量差值和所述探测包的发送数量的比值确定为所述加速服务的网络丢包率。
在一些实施例中,所述网络加速服务的处理装置555还包括切换模块,用于在所述客户端能够使用多个加速服务中,确定性能最优的加速服务;通过所述测试线程向所述客户端的主进程发送所述最优的加速服务,以切换到所述最优的加速服务。
在一些实施例中,网络加速服务的处理装置555还包括上链模块,用于通过所述客户端接入区块链网络,并将所述客户端使用过的加速服务的性能参数存储到所述区块链网络中,以使未使用过所述加速服务的客户端从所述区块链网络查询所述加速服务的性能参数,并根据查询到的加速服务的性能参数选择使用最优的加速服务。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的网络加速服务的处理方法,例如,如图6A至图6E示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在HTML文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,本发明实施例具有以下有益效果:
1)通过在客户端中创建的测试线程、并经由客户端所使用的加速服务,向与后台服务器位于相同网络环境的测速服务器发送探测包以及接收返回的应答包确定加速服务的性能,能够准确衡量不同加速服务对客户端访问后台服务器进行加速的性能,进而选择最优的加速服务以获得最优的后台服务器访问体验。
2)巧妙的避开需要破解游戏协议往真实游戏后台服务器发包探测的难题,在海外部署的回显服务器,分别利用各个加速器的加速通道,注入游戏进程里发包达到探测各个加速器加速通道质量的目的。
3)能够真实的探测用户侧到游戏服务器的延迟和丢包,比较不同的加速器实际加速效果。
4)能够客观的对比不同加速器的加速质量,即,能够比较不同的加速器分别和裸连(即不使用加速器开启游戏)相比网络延迟和网络丢包等信息。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (7)

1.一种网络加速服务的处理方法,其特征在于,所述方法包括:
在客户端的主进程中注入包括测试代码的消息钩子,以使所述消息钩子中的所述测试代码被所述主进程执行时,创建位于在所述客户端中的、且用于测试所述客户端访问后台服务器所使用的加速服务的测试线程;
通过所述测试线程、并经由所述客户端所使用的加速服务,向与所述后台服务器位于相同网络环境的测速服务器发送基于私有的用户数据报协议的封装结构生成的探测包,其中,在所述私有的用户数据报协议的封装结构的头部中,所述测速服务器的网络地址被填充为目的地址,所述测速服务器的端口被填充为目的端口,以使
所述测速服务器基于所述私有的用户数据报协议识别出所述探测包的封装结构的头部时,调用所述私有的用户数据报协议生成所述探测包对应的应答包;
确定发送所述探测包时对应的时间戳,并当接收到对应所述探测包的应答包时,确定所述应答包对应的时间戳;
确定所述探测包对应的时间戳和所述应答包对应的时间戳之间的差值,并将多个所述差值中的噪声值进行过滤;
计算经过过滤后的多个所述差值的平均值,并将所述平均值确定为所述加速服务的网络延迟信息;
确定所述探测包的发送数量和所述应答包的接收数量的数量差值,并将所述数量差值和所述探测包的发送数量的比值,确定为所述加速服务的网络丢包率;
根据所述加速服务的网络延迟信息和网络丢包率至少之一确定所述加速服务的性能。
2.根据权利要求1所述的方法,其特征在于,所述向与所述后台服务器位于相同网络环境的测速服务器发送基于私有的用户数据报协议的封装结构生成的探测包,包括:
通过读取所述客户端中的共享内存,获取所述后台服务器所处的区域的信息,并获取相同区域的测速服务器的网络地址和端口;
其中,所述后台服务器与所述测速服务器处于所述相同区域的同一服务器机房,或处于所述相同区域的相同网络配置的不同服务器机房;
以所述测速服务器的网络地址为目的地址,以所述测速服务器的端口为目的端口填充基于所述私有的用户数据报协议的封装结构的头部,得到所述探测包,并通过网络接口发送所述探测包。
3.根据权利要求2所述的方法,其特征在于,
所述通过网络接口发送所述探测包,包括:
通过网络接口以固定频率发送多个所述探测包。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在所述客户端能够使用多个加速服务中,确定性能最优的加速服务;
通过所述测试线程向所述客户端的主进程发送所述最优的加速服务的信息,以使所述客户端切换到所述最优的加速服务。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
通过所述客户端接入区块链网络,并将所述客户端使用过的加速服务的性能参数存储到所述区块链网络中,以使
未使用过所述加速服务的客户端从所述区块链网络查询所述加速服务的性能参数,并根据查询到的所述加速服务的性能参数选择使用最优的加速服务。
6.一种网络加速服务的处理装置,其特征在于,包括:
创建模块,用于在客户端的主进程中注入包括测试代码的消息钩子,以使所述消息钩子中的所述测试代码被所述主进程执行时,创建位于在所述客户端中的、且用于测试所述客户端访问后台服务器所使用的加速服务的测试线程;
测试模块,用于通过所述测试线程、并经由所述客户端所使用的加速服务,向与所述后台服务器位于相同网络环境的测速服务器发送基于私有的用户数据报协议的封装结构生成的探测包,其中,在所述私有的用户数据报协议的封装结构的头部中,所述测速服务器的网络地址被填充为目的地址,所述测速服务器的端口被填充为目的端口,以使所述测速服务器基于所述私有的用户数据报协议识别出所述探测包的封装结构的头部时,调用所述私有的用户数据报协议生成所述探测包对应的应答包;
确定模块,用于确定发送所述探测包时对应的时间戳,并当接收到对应所述探测包的应答包时,确定所述应答包对应的时间戳;
所述确定模块,还用于确定所述探测包对应的时间戳和所述应答包对应的时间戳之间的差值,并将多个所述差值中的噪声值进行过滤;计算经过过滤后的多个所述差值的平均值,并将所述平均值确定为所述加速服务的网络延迟信息;
所述确定模块,还用于确定所述探测包的发送数量和所述应答包的接收数量的数量差值,并将所述数量差值和所述探测包的发送数量的比值,确定为所述加速服务的网络丢包率;
确定性能模块,用于根据所述加速服务的网络延迟信息和网络丢包率至少之一确定所述加速服务的性能。
7.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述指令被处理器执行时,实现如权利要求1至5任一项所述的网络加速服务的处理方法。
CN201910877116.6A 2019-09-17 2019-09-17 网络加速服务的处理方法及装置 Active CN110557290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910877116.6A CN110557290B (zh) 2019-09-17 2019-09-17 网络加速服务的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910877116.6A CN110557290B (zh) 2019-09-17 2019-09-17 网络加速服务的处理方法及装置

Publications (2)

Publication Number Publication Date
CN110557290A CN110557290A (zh) 2019-12-10
CN110557290B true CN110557290B (zh) 2022-11-29

Family

ID=68740564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910877116.6A Active CN110557290B (zh) 2019-09-17 2019-09-17 网络加速服务的处理方法及装置

Country Status (1)

Country Link
CN (1) CN110557290B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131052B (zh) * 2019-12-20 2022-07-15 网易(杭州)网络有限公司 路由信息的更新方法和装置
CN111064795B (zh) * 2019-12-20 2021-05-14 腾讯科技(深圳)有限公司 网页访问加速方法、系统、计算机设备、服务器及介质
CN111211958B (zh) * 2019-12-26 2021-09-24 达闼机器人有限公司 用于提供vpn服务的方法及装置、区块链网络及节点设备
CN111181992B (zh) * 2020-01-03 2022-02-22 平安科技(深圳)有限公司 区块链中节点与链码的通信方法、装置、设备及存储介质
CN112600725B (zh) * 2020-11-20 2022-04-08 四川迅游网络科技股份有限公司 一种icmp报文加速方法
CN115379404A (zh) * 2021-05-20 2022-11-22 腾讯云计算(北京)有限责任公司 数据处理方法、装置、终端设备及计算机存储介质
CN113965630B (zh) * 2021-10-25 2024-08-09 深圳市元征科技股份有限公司 一种udp连接方法、电子设备及存储介质
CN115134277B (zh) * 2022-06-24 2023-10-20 山东信通电子股份有限公司 一种动态调整网络连接数的宽带网络速率测试方法及设备
CN115941991B (zh) * 2023-01-10 2023-10-27 北京微吼时代科技有限公司 在大并发下收取消息稳定性验证方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407471B1 (en) * 2010-08-24 2013-03-26 Symantec Corporation Selecting a network service for communicating with a server
CN104301444B (zh) * 2013-07-17 2019-09-20 腾讯科技(深圳)有限公司 网络ip获取方法、装置、应用平台、客户端及系统
CN104852945A (zh) * 2014-02-19 2015-08-19 四川迅游网络科技股份有限公司 加速网络传输的方法和设备

Also Published As

Publication number Publication date
CN110557290A (zh) 2019-12-10

Similar Documents

Publication Publication Date Title
CN110557290B (zh) 网络加速服务的处理方法及装置
US11102253B2 (en) Method and system for integrating real time communication features in applications
US11431754B2 (en) Authenticating to secured resource via coupled devices
CN110944330B (zh) Mec平台部署方法及装置
CN112511611B (zh) 节点集群的通信方法、装置、系统及电子设备
CN106302434B (zh) 服务器适配方法、装置和系统
US20200374127A1 (en) Blockchain-powered cloud management system
US11032126B2 (en) Diagnostic traffic generation for automatic testing and troubleshooting
WO2017031698A1 (zh) 一种获取vnf信息的方法、装置及系统
CN112152828B (zh) 一种游戏加速方法、装置、vpn终端及存储介质
US20080028034A1 (en) Method for mapping an iscsi target name to a storage resource based on an initiator hardware class identifier
CN113419812A (zh) 一种虚拟化环境下端口转发测试方法、装置、设备及介质
CN111464609A (zh) 数据通信方法、装置及电子设备
CN111404774B (zh) 数据监控方法、装置、设备及存储介质
CN115189897A (zh) 零信任网络的访问处理方法、装置、电子设备及存储介质
CN111866993B (zh) 无线局域网连接管理方法、装置、软件程序及存储介质
CN116032691B (zh) 靶场互联互通方法、电子设备及可读存储介质
CN113497762A (zh) 数据报文的传输方法及装置
CN112219416A (zh) 用于认证通过蜂窝网络传输的数据的技术
US10277516B2 (en) Statistical approaches in NSX scale testing
CN118743203A (zh) 用于生产网络环境的网络控制器、故障注入通信协议和故障注入模块
CN114564530A (zh) 一种数据库访问方法、装置、设备及存储介质
CN112260942A (zh) 一种基于网关设备的应用加速方法、装置及存储介质
CN105357097A (zh) 虚拟网络的调节方法及系统
CN117978406B (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