掌桥专利:专业的专利平台
掌桥专利
首页

流量控制方法、装置、计算机设备及存储介质

文献发布时间:2024-04-18 19:57:31


流量控制方法、装置、计算机设备及存储介质

技术领域

本申请实施例涉及计算机技术领域,特别涉及一种流量控制方法、装置、计算机设备及存储介质。

背景技术

随着互联网技术的发展,用户通过客户端访问互联网的过程中,客户端与服务器之间需要进行频繁的数据交互。例如,用户使用客户端浏览网页时,客户端向服务器发送数据请求,服务器响应于该数据请求,将数据请求对应的网页内容返回给客户端,客户端对接收到的网页内容进行展示,供用户观看。那么如何高效准确的传输数据,是一个需要解决的技术问题。

相关技术中,客户端与服务器之间在传输不同类型的数据时需要使用不同的应用层协议。例如,FTP(File Transfer Protocol,文件传输协议)主要用于传输远程文件,SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)主要用于传输电子邮件,HTTP(Hyper Text Transfer Protocol,超文本传输协议)可以用于传输任意类型的数据。并且在传输数据之前,需要在客户端与服务器之间建立连接。例如,在传输基于HTTP的数据之前,客户端与服务器之间需要建立TCP(Transmission Control Protocol,传输控制协议)连接,基于该TCP连接对数据进行传输。

然而,由于应用层协议的不同,客户端与服务器之间的数据交互方式也不同,导致客户端发送的数据会使用不同的TCP连接进行传输。而且由于每创建一个TCP连接都会消耗一定的时间,因此,在传输多个基于不同应用协议的数据时,增加了创建TCP连接所消耗的时间,导致数据的传输效率降低。

发明内容

本申请实施例提供了一种流量控制方法、装置、计算机设备及存储介质,提高了数据传输的效率。所述技术方案如下:

一方面,提供了一种流量控制方法,所述方法包括:

建立客户端与网关之间的TCP连接;

对所述客户端与网关之间的TCP连接进行检测,得到多个TCP连接请求;

对所述多个TCP连接请求中的数据分别进行解析,得到多个HTTP协议请求,所述多个HTTP协议请求用于请求服务器中的多种业务;

对于任一HTTP协议请求,基于所述TCP连接,生成对象标识为所述HTTP协议请求的协议头标识的目标流对象;

基于所述目标流对象,通过所述TCP连接,将第一协议包发送至所述网关,由所述网关将所述第一协议包转发至服务器,所述第一协议包携带有由所述HTTP协议请求转换得到的目标数据流,所述服务器用于基于所述第一协议包进行业务处理。

在一些实施例中,所述对于任一HTTP协议请求,基于所述TCP连接,生成对象标识为所述HTTP协议请求的协议头标识的目标流对象,包括:

对于任一HTTP协议请求,在所述HTTP协议请求符合代理规则的情况下,基于所述TCP连接,生成所述对象标识为所述HTTP协议请求的协议头标识的所述目标流对象,所述代理规则用于指示是否通过所述网关进行数据传输。

在一些实施例中,所述方法还包括:

在所述HTTP协议请求不符合所述代理规则的情况下,基于所述HTTP协议请求携带的域名,创建所述客户端与所述域名对应的目标服务器之间的临时连接;

通过所述临时连接,将由所述HTTP协议请求转换得到的数据流,发送至所述目标服务器;

通过所述临时连接,接收所述目标服务器返回的响应数据;

关闭所述临时连接。

另一方面,提供了一种流量控制装置,所述装置包括:

第一创建模块,用于建立客户端与网关之间的TCP连接;

请求检测模块,用于对所述客户端与网关之间的TCP连接进行检测,得到多个TCP连接请求;

第一解析模块,用于对所述多个TCP连接请求中的数据分别进行解析,得到多个HTTP协议请求,所述多个HTTP协议请求用于请求服务器中的多种业务;

第一生成模块,用于对于任一HTTP协议请求,基于所述TCP连接,生成对象标识为所述HTTP协议请求的协议头标识的目标流对象;

第一发送模块,用于基于所述目标流对象,通过所述TCP连接,将第一协议包发送至所述网关,由所述网关将所述第一协议包转发至服务器,所述第一协议包携带有由所述HTTP协议请求转换得到的目标数据流,所述服务器用于基于所述第一协议包进行业务处理。

在一些实施例中,所述第一发送模块,包括:

第一生成单元,用于对于任一HTTP协议请求,基于所述目标流对象,生成协议头标识为所述对象标识的第一协议包,所述第一协议包的操作类型为推送类型;

第一写入单元,用于将由所述HTTP协议请求转换得到的目标数据流的长度写入所述第一协议包的协议头中,将由所述HTTP协议请求转换得到的目标数据流写入所述第一协议包的协议体中;

第一发送单元,用于通过所述TCP连接,将所述第一协议包发送至所述网关。

在一些实施例中,所述第一生成模块,用于对于任一HTTP协议请求,生成协议头标识为所述HTTP协议请求的协议头标识的第二协议包,所述第二协议包的操作类型为创建类型、协议体为空;基于所述TCP连接,将所述第二协议包发送至所述网关,由所述网关将所述第二协议包转发至服务器,所述服务器用于基于所述第二协议包生成所述目标流对象;响应于所述服务器未返回错误信息,生成所述对象标识为所述协议头标识的所述目标流对象。

在一些实施例中,所述第一生成模块,用于对于任一HTTP协议请求,基于所述TCP连接,从缓存中查找所述目标流对象;在未查找到所述目标流对象的情况下,生成所述对象标识为所述HTTP协议请求的协议头标识的所述目标流对象。

在一些实施例中,所述装置还包括:

接收模块,用于通过所述TCP连接,接收所述服务器通过所述网关返回的第三协议包;

第二解析模块,用于对所述第三协议包进行解析,得到所述第三协议包的操作类型、协议头标识以及响应数据;

查找模块,用于响应于所述第三协议包的操作类型为推送类型,从缓存中查找所述对象标识为所述协议头标识的所述目标流对象;

写入模块,用于将所述响应数据写入所述目标流对象的缓存中。

在一些实施例中,所述装置还包括:

第二生成模块,用于对于任一HTTP协议请求,生成协议头标识为所述HTTP协议请求的协议头标识的第四协议包,所述第四协议包操作类型为关闭类型、协议体为空;

第二发送模块,用于基于所述TCP连接,将所述第四协议包发送至所述网关,由所述网关将所述第四协议包转发至所述服务器,所述服务器用于基于所述第四协议包关闭所述目标流对象;

第一关闭模块,用于关闭所述对象标识为所述协议头标识的所述目标流对象,删除所述HTTP协议请求的协议头标识与所述目标流对象的映射缓存。

在一些实施例中,所述第一生成模块,用于对于任一HTTP协议请求,在所述HTTP协议请求符合代理规则的情况下,基于所述TCP连接,生成所述对象标识为所述HTTP协议请求的协议头标识的所述目标流对象,所述代理规则用于指示是否通过所述网关进行数据传输。

在一些实施例中,所述第一生成模块,还用于在HTTP协议请求不符合代理规则的情况下,基于HTTP协议请求携带的域名,创建客户端与域名对应的目标服务器之间的临时连接;通过临时连接,将由HTTP协议请求转换得到的数据流,发送至目标服务器;通过临时连接,接收目标服务器返回的响应数据;关闭临时连接。

在一些实施例中,所述装置还包括:

第二创建模块,用于建立所述服务器与所述网关之间的TCP连接;

请求接收模块,用于基于所述服务器与所述网关之间的TCP连接,接收所述第一协议包;

第二解析模块,用于对所述第一协议包进行解析,得到所述第一协议包的操作类型;

处理模块,用于响应于所述第一协议包的操作类型为推送类型,对所述第一协议包携带的目标HTTP协议请求所指示的业务进行处理,得到响应数据,所述目标HTTP协议由所述第一协议包携带的目标流数据转换得到;

确定模块,用于确定对象标识为所述目标HTTP协议请求的协议头标识的目标流对象;

第三发送模块,用于基于所述目标流对象,通过所述TCP连接,将第三协议包发送至所述网关,由所述网关将所述第三协议包转发至所述客户端,所述第三协议包携带有所述响应数据,所述客户端用于展示所述响应数据。

在一些实施例中,所述第三发送模块,包括:

第二生成单元,用于基于所述目标流对象,生成协议头标识为所述对象标识的第三协议包,所述第三协议包的操作类型为推送类型;

第二写入单元,用于将所述响应数据的长度写入所述第三协议包的协议头中,将所述响应数据写入所述第三协议包的协议体中;

第二发送单元,用于基于所述TCP连接,将所述第三协议包发送至所述网关。

在一些实施例中,所述装置还包括:

第三生成模块,用于响应于所述第一协议包的操作类型为创建类型,基于所述TCP连接,生成所述目标流对象。

在一些实施例中,所述装置还包括:

第二关闭模块,用于响应于所述第一协议包的操作类型为关闭类型,基于所述TCP连接,关闭所述目标流对象,删除所述目标HTTP协议请求的协议头标识与所述目标流对象的映射缓存。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如上述方面所述的流量控制方法。

另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如上述方面所述的流量控制方法。

另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述方面所述的流量控制方法。

本申请实施例提供了一种流量控制方法,由于客户端与网关之间的TCP连接相当于一个物理信道,通过该物理信道可以创建无数个逻辑信道,即创建无数个流。由于流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列,且各个流之间互不影响,因此基于该TCP连接中的多个流,客户端能够并行处理多个HTTP协议请求,从而提高了数据传输的效率,实现了对流量的控制。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种实施环境的示意图;

图2是本申请实施例提供的一种流量控制方法的流程图;

图3是本申请实施例提供的一种流量控制方法的流程图;

图4是本申请实施例提供的另一种流量控制方法的流程图;

图5是本申请实施例提供的一种流量控制流程的示意图;

图6是本申请实施例提供的另一种流量控制流程的示意图;

图7是本申请实施例提供的一种多路复用流程的示意图;

图8是本申请实施例提供的一种应用场景的示意图;

图9是本申请实施例提供的一种流量控制装置的结构示意图;

图10是本申请实施例提供的另一种流量控制装置的结构示意图;

图11是本申请实施例提供的一种终端的结构示意图;

图12是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一协议包称为第二协议包,且类似地,可将第二协议包称为第一协议包。

其中,至少一个是指一个或者一个以上,例如,至少一个协议包可以是一个协议包、两个协议包、三个协议包等任一大于等于一的整数个协议包。多个是指两个或者两个以上,例如,多个协议包可以是两个协议包、三个协议包等任一大于等于二的整数个协议包。每个是指至少一个中的每一个,例如,每个协议包是指多个协议包中的每一个协议包,若多个协议包为3个协议包,则每个协议包是指3个协议包中的每一个协议包。

可以理解的是,在本申请的实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境包括终端101、网关102以及服务器103。终端101与网关102之间通过无线或者有线网络连接,网关102与服务器103之间也通过无线或者有线网络连接。终端101上安装有客户端104。该客户端104可以为办公程序客户端、社交程序客户端或者游戏程序客户端等。服务器103用于为客户端104提供后台服务。终端101能够通过该客户端104实现数据传输、消息交互等功能。

在一些实施例中,终端101是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。可选地,客户端104为终端101操作系统中的客户端104,或者为第三方提供的客户端104。例如,客户端104为社交应用客户端,该社交应用客户端具有即时通讯聊天功能,当然,该社交应用还能够具有其他功能,例如,群聊功能、交友功能等。

在一些实施例中,服务器102是独立的物理服务器,也能够是多个物理服务器构成的服务器集群或者分布式系统,还能够是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102用于为支持社交的应用程序提供后台服务。在一些实施例中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102和终端101二者之间采用分布式计算架构进行协同计算。

在一些实施例中,网关102为路由器、网络交换机、网络代理等。网关102能够实现终端101与服务器103之间的数据交互。网关102接收到客户端104通过终端101发送的数据,并将该数据转发给服务器103。或者,网关102接收到服务器103发送的数据,并将该数据转发至终端101,由客户端104进行展示。

图2是本申请实施例提供的一种流量控制方法的流程图,如图2所示,在本申请实施例中以由客户端执行为例进行说明。该方法包括以下步骤:

201、建立客户端与网关之间的TCP连接。

在本申请实施例中,终端上安装有由服务器提供服务的客户端,客户端能够通过终端与服务器进行数据交互。该客户端可以为社交应用客户端、游戏应用客户端、电子邮件客户端等多种类型的客户端。客户端与网关之间需要建立通信连接,通过该网关实现客户端与服务器之间的数据交互。网关用于转发客户端与服务器之间的数据。相应的,网关能够接收客户端发送的数据,并将该数据转发给相应地的服务器。或者,网关能够接收服务器返回的响应数据,并将该响应数据转发给客户端。

客户端与服务器在进行数据交互之前,需要建立客户端与网关之间的TCP连接。基于该TCP连接,客户端与网关之间可以进行数据的传输。其中,TCP作为一种面向连接的、可靠的、基于字节流的传输层通信协议,能够保证数据传输的稳定性。由于该TCP连接相当于一个物理信道,在该物理信道中可以创建无数个逻辑信道,即无数个流。其中,流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列。因此基于该TCP连接中的多个流,客户端能够并行处理多个HTTP协议请求。其中,不同的HTTP协议请求所请求的业务可以相同,也可以不同。服务器基于HTTP协议请求所指示的业务进行处理,得到该响应数据。

202、对客户端与网关之间的TCP连接进行检测,得到多个TCP连接请求。

在本申请实施例中,基于客户端的配置信息,能够开启对TCP连接的检测服务,通过该检测服务来检测TCP连接请求。

203、对多个TCP连接请求中的数据分别进行解析,得到多个HTTP协议请求,多个HTTP协议请求用于请求服务器中的多种业务。

在本申请实施例中,通过HTTP协议来对TCP连接请求中的数据进行解析,得到HTTP协议请求。

204、对于任一HTTP协议请求,基于TCP连接,生成对象标识为HTTP协议请求的协议头标识的目标流对象。

在本申请实施例中,协议头标识为HTTP协议请求的协议头的标识,不同的HTTP协议请求的协议头标识不同。客户端可以创建传输该HTTP请求的流,生成该HTTP请求对应的流对象。其中,流为客户端与服务器在TCP连接中用于数据交互的独立双向序列。流对象用于缓存通过流传输的数据。相应的,为了将HTTP请求与流对象相关联,将HTTP协议请求的协议头标识,作为流对象的对象标识。以一个HTTP请求为例,为便于描述,将该HTTP协议请求对应的流对象,称为目标流对象。客户端基于该目标流对象,能够实现该HTTP协议请求的数据交互过程。该数据交互过程包括客户端通过网关向服务器发送该HTTP协议请求,服务器基于该HTTP协议请求进行业务处理,得到响应数据,并通过网关向客户端返回该响应数据。

205、基于目标流对象,通过TCP连接,将第一协议包发送至网关,由网关将第一协议包转发至服务器,第一协议包携带有由HTTP协议请求转换得到的目标数据流,服务器用于基于第一协议包进行业务处理。

在本申请实施例中,第一协议包为由客户端生成的数据包,该第一协议包包括协议头和协议体。其中,该协议体中包括有由HTTP协议请求转换得到的目标数据流,该协议头中包括的协议头标识与该目标流对象的对象标识一致。相应的,客户端通过该TCP连接将该第一协议包经网关转发至服务器之后,服务器可以通过服务器侧的目标流对象来缓存该第一协议包。由于该HTTP协议请求用于请求服务器中的一种业务,且该第一协议包携带有由HTTP协议请求转换得到的目标数据流,因此服务器基于该第一协议包携带的目标流数据,即可得到HTTP协议请求,然后对该HTTP协议请求所指示的业务进行处理,得到响应数据。

本申请实施例提供了一种流量控制方法,由于客户端与网关之间的TCP连接相当于一个物理信道,通过该物理信道可以创建无数个逻辑信道,即创建无数个流。由于流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列,且各个流之间互不影响,因此基于该TCP连接中的多个流,客户端能够并行处理多个HTTP协议请求,从而提高了数据传输的效率,实现了对流量的控制。

上述图2示例性的介绍了客户端侧进行数据发送的过程,下面通过图3所示的实施例对服务器侧进行数据处理的过程进行说明。图3是本申请实施例提供的一种流量控制方法的流程图,如图3所示,在本申请实施例中以由服务器执行为例进行说明。该方法包括以下步骤:

301、建立服务器与网关之间的TCP连接。

在本申请实施例中,客户端与服务器在进行数据交互之前,需要建立服务器与网关之间的TCP连接。基于该TCP连接,服务器与网关之间可以进行数据的传输。其中,TCP作为一种面向连接的、可靠的、基于字节流的传输层通信协议,能够保证数据传输的稳定性。由于该TCP连接相当于一个物理信道,在该物理信道中可以创建无数个逻辑信道,即无数个流。其中,流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列。因此基于该TCP连接中的多个流,服务器能够并行处理多个HTTP协议请求,并基于多个HTTP协议请求所指示的多种业务进行处理,得到响应数据。网关能够接收服务器返回的响应数据,并将该响应数据转发给客户端。

302、基于服务器与网关之间的TCP连接,接收第一协议包。

在本申请实施例中,客户端通过TCP连接,将第一协议包发送至网关,由网关将该第一协议包转发至服务器。

303、对第一协议包进行解析,得到第一协议包的操作类型。

服务器对接收到的第一协议包进行解析,得到该第一协议包的操作类型。其中,该操作类型用于指示服务器基于该第一协议包所执行的相关操作。该操作类型包括创建类型、推送类型以及关闭类型等。在操作类型为创建类型的情况下,服务器生成对象标识为第一协议包的协议头标识的目标流对象。在操作类型为推送类型的情况下,服务器获取该第一协议包的协议体长度,并基于该协议体长度,从第一协议包的协议体中获取数据,并将该数据写入对象标识为第一协议包的协议头标识的目标流对象的读取缓存中。在操作类型为关闭类型的情况下,服务器关闭对象标识为第一协议包的协议头标识的目标流对象。

304、响应于第一协议包的操作类型为推送类型,对第一协议包携带的目标HTTP协议请求所指示的业务进行处理,得到响应数据,目标HTTP协议由第一协议包携带的目标流数据转换得到。

在本申请实施例中,在第一协议包的操作类型为推送类型的情况下,由于该第一协议包携带有由目标HTTP请求转换得到的目标数据流,因此服务器可以将该目标数据流转换成该目标HTTP协议请求。服务器基于该目标HTTP协议请求,进行业务处理,得到响应数据。

305、确定对象标识为目标HTTP协议请求的协议头标识的目标流对象。

在本申请实施例中,由于该目标流对象通过流进行传输,并且流为客户端与服务器在TCP连接中用于数据交互的独立双向序列。因此服务器可以基于该目标流对象,来实现该目标HTTP协议请求的数据交互过程。由于不同流用于传输不同的HTTP协议请求,而不同流中的流对象相互独立,因此,服务器通过目标HTTP协议请求的协议头标识,能够确定与该目标HTTP协议请求对应的目标流对象。其中,该目标流对象的对象标识与该目标HTTP协议请求的协议头标识一致。

306、基于目标流对象,通过TCP连接,将第三协议包发送至网关,由网关将第三协议包转发至客户端,第三协议包携带有响应数据,客户端用于展示响应数据。

在本申请实施例中,第三协议包为由服务器生成的数据包,该第三协议包包括协议头和协议体。其中,该协议体中包括有服务器基于该第一协议包进行业务处理得到的响应数据。该协议头中包括的协议头标识与该目标流对象的对象标识一致。服务器通过该TCP连接将该第三协议包经网关转发至客户端之后,客户端可以通过客户端侧的目标流对象来缓存该第三协议包。进而,客户端对第三协议包中响应数据进行展示。

本申请实施例提供了一种流量控制方法,由于服务器与网关之间的TCP连接相当于一个物理信道,通过该物理信道可以创建无数个逻辑信道,即创建无数个流。由于流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列。且各个流之间互不影响,因此基于该TCP连接,服务器能够并行处理多个HTTP请求,从而提高了数据传输的效率,实现了对流量的控制。

图4是本申请实施例提供的另一种流量控制方法的流程图,如图4所示,在本申请实施例中以由客户端、网关以及服务器交互执行为例,该方法包括以下步骤:

401、建立客户端与网关之间的TCP连接。

在本申请实施例中,客户端可以为社交应用客户端、游戏应用客户端、电子邮件客户端等多种类型的客户端。网关为路由器、网络交换机、网络代理等。客户端与网关之间需要建立通信连接,通过该网关实现客户端与服务器之间的数据交互。

402、对客户端与网关之间的TCP连接进行检测,得到多个TCP连接请求。

在本申请实施例中,基于客户端的配置信息,能够开启对TCP连接的检测服务,通过该检测服务来检测TCP连接请求。

403、对多个TCP连接请求中的数据分别进行解析,得到多个HTTP协议请求,多个HTTP协议请求用于请求服务器中的多种业务。

在本申请实施例中,由于该TCP连接相当于一个物理信道,通过该物理信道中可以创建无数个逻辑信道,即创建无数个流。由于流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列。因此基于该TCP连接中的多个流,客户端能够并行处理多个HTTP协议请求,而不用为不同的HTTP协议请求创建不同的物理信道。其中,不同的HTTP协议请求所请求的业务可以相同,也可以不同。

需要说明的是,客户端提供了一种代理规则,该代理规则用于指示是否通过网关传输。该HTTP协议请求可能符合该代理规则,也可能不符合该代理规则。在HTTP协议请求不符合代理规则的情况下,执行下述步骤(1)-(4);在HTTP协议请求符合代理规则的情况下,执行下述步骤404-407。

(1)在HTTP协议请求不符合代理规则的情况下,基于HTTP协议请求携带的域名,创建客户端与域名对应的目标服务器之间的临时连接。

在本申请实施例中,由于该代理规则用于指示该HTTP协议请求是否通过网关进行数据传输。因此,在HTTP协议请求不符合代理规则的情况下,该HTTP协议请求不需要通过网关进行数据传输。而是基于客户端与该HTTP协议请求携带的域名对应的目标服务器之间的临时连接,对该HTTP协议请求进行传输,其中,该临时连接为TCP连接,该域名用于在数据传输时对服务器进行定位。

(2)通过临时连接,将由HTTP协议请求转换得到的数据流,发送至目标服务器。

在本申请实施例中,客户端将该HTTP协议请求转换成数据流,并通过客户端与目标服务器之间的临时连接,将该数据流发送至目标服务器。其中,该目标服务器用于将该数据流转换成HTTP协议请求,并基于该HTTP协议请求所指示的业务进行处理,得到响应数据。

(3)通过临时连接,接收目标服务器返回的响应数据。

在本申请实施例中,该目标服务器基于由数据流转换得到的HTTP协议请求所指示的业务进行处理,得到响应数据。并通过该临时连接,将该响应数据发送至客户端。其中,客户端用于展示该响应数据。

(4)关闭临时连接。

在本申请实施例中,客户端在接收到该响应数据之后,该临时连接处于空闲状态。为了避免该临时连接继续占用内存资源,客户端可以关闭客户端与目标服务器之间的临时连接。

404、对于任一HTTP协议请求,在HTTP协议请求符合代理规则的情况下,基于TCP连接,生成对象标识为HTTP协议请求的协议头标识的目标流对象,代理规则用于指示是否通过网关进行数据传输。

在本申请实施例中,由于该代理规则用于指示该HTTP协议请求是否通过网关进行数据传输。因此,在HTTP协议请求符合代理规则的情况下,客户端将该HTTP协议请求发送至网关,由网关转发至服务器。客户端可以创建传输该HTTP请求的流,生成该HTTP请求对应的流对象。其中,流为客户端与服务器在TCP连接中用于数据交互的独立双向序列。流对象用于缓存通过流传输的数据。相应的,为了将HTTP请求与流对象相关联,将HTTP协议请求的协议头标识,作为流对象的对象标识。

在一些实施例中,客户端基于TCP连接创建传输该HTTP协议请求的流。相应地,通过下述步骤(1)-(3)生成目标流对象。

(1)对于任一HTTP协议请求,生成协议头标识为HTTP协议请求的协议头标识的第二协议包,第二协议包的操作类型为创建类型、协议体为空。

在本申请实施例中,该第二协议包携带有协议头标识、协议体以及操作类型,其中,协议头标识为HTTP协议请求的协议头标识,协议体为空,操作类型为创建类型。该创建类型用于指示客户端或服务器生成与该HTTP协议请求对应的目标流对象。

例如,该HTTP协议请求的协议头标识为X,则客户端生成的第二协议包的协议头标识也为X,且第二协议包的操作类型为“SYN”,即创建类型。

(2)基于TCP连接,将第二协议包发送至网关,由网关将第二协议包转发至服务器,服务器用于基于第二协议包生成目标流对象。

在本申请实施例中,由于该第二协议包的操作类型为创建类型,该第二协议包的协议头标识为HTTP协议请求的协议头标识。因此,客户端基于TCP连接,将第二协议包发送至网关,由网关将第二协议包转发至服务器。其中,服务器响应于该第二协议包的操作类型为创建类型,生成对象标识为第二协议的协议头标识的目标流对象。

(3)响应于服务器未返回错误信息,生成对象标识为协议头标识的目标流对象。

在本申请实施例中,客户端将第二协议包发送至网关之后,客户端响应于服务器未返回错误信息,生成对象标识为第二协议包的协议头标识的目标流对象。其中,服务器未返回错误信息,也即未抛出异常,则客户端默认服务器成功基于该第二协议包生成目标流对象,此时,客户端生成该目标流对象。

在一些实施例中,客户端先从缓存中查找该目标流对象,在缓存中不存在该目标流对象的情况下,再生成该HTTP协议请求对应的目标流对象。相应地,对于任一HTTP协议请求,客户端基于TCP连接,从缓存中查找目标流对象;在未查找到目标流对象的情况下,客户端生成对象标识为HTTP协议请求的协议头标识的目标流对象。其中,该缓存位于客户端中,基于该HTTP协议请求的协议头标识,客户端从缓存中查找对象标识为该HTTP协议请求的协议头标识的目标流对象。在查找到目标流对象的情况下,客户端直接从缓存中获取该目标流对象;在未查找到目标流对象的情况下,客户端会生成对象标识为HTTP协议请求的协议头标识的目标流对象。

405、基于目标流对象,生成协议头标识为对象标识的第一协议包,第一协议包的操作类型为推送类型。

在本申请实施例中,该第二协议包携带有协议头标识和操作类型,并且该协议头标识为该目标流对象的对象标识,该操作类型为推送类型。

例如,该目标流对象的对象标识为X,则客户端生成的第一协议包的协议头标识也为X,且第一协议包的操作类型为“PSH”,即推送类型。

406、将由HTTP协议请求转换得到的目标数据流的长度写入第一协议包的协议头中,将由HTTP协议请求转换得到的目标数据流写入第一协议包的协议体中。

在本申请实施例中,该第一协议包包括协议头和协议体。由于该协议头用于存储由该HTTP协议请求转换得到的目标数据流的长度,该协议体用于存储由该HTTP协议请求转换得到的目标数据流。因此,客户端将该HTTP协议请求转换成目标数据流,并将该目标数据流的长度写入第一协议包的协议头中,将该目标数据流写入第一协议包的协议体中。

例如,客户端计算由该HTTP协议请求转换得到的目标数据流的长度为N,将N写入该第一协议包的协议头中,将目标数据流写入该第一协议包的协议体中。

407、基于客户端与网关之间的TCP连接,将第一协议包发送至网关。

在本申请实施例中,客户端对该第一协议包进行封装后,通过TCP连接,将第一协议包发送至网关,再由网关转发至服务器。其中,该第一协议包携带有有由HTTP协议请求转换得到的目标数据流和该目标数据流的长度。服务器用于基于该第一协议包进行业务处理,得到响应数据。

在一些实施例中,客户端在不需要使用流传输该HTTP协议请求的情况下,可以请求关闭流。相应地,客户端对于任一HTTP协议请求,生成协议头标识为HTTP协议请求的协议头标识的第四协议包,该第四协议包操作类型为关闭类型、协议体为空;基于TCP连接,客户端将第四协议包发送至网关,由网关将第四协议包转发至服务器,服务器用于基于第四协议包关闭目标流对象;客户端关闭对象标识为协议头标识的目标流对象,删除HTTP协议请求的协议头标识与目标流对象的映射缓存。其中,该第四协议包携带有协议头标识、协议体以及操作类型,其中,协议头标识为HTTP协议请求的协议头标识,协议体为空,操作类型为关闭类型。由于该关闭类型用于指示客户端或服务器关闭与该HTTP协议请求对应的目标流对象。因此,客户端基于TCP连接,将第四协议包发送至网关,由网关将第四协议包转发至服务器。其中,服务器响应于该第四协议包的操作类型为关闭类型,关闭对象标识为第四协议包的协议头标识的目标流对象。然后客户端也关闭对象标识为第四协议包的协议头标识的目标流对象,并删除该目标流对象与HTTP协议请求的协议头标识的映射缓存。

为了使本申请实施例提供的流量控制方法更容易理解,参见图5,图5是根据本申请实施例提供的一种流量控制流程的示意图。该数据发送流程包括以下步骤:501、客户端初始化,从后台获取配置信息并保存在内存中。502、客户端创建客户端与网关之间的连接,即TCP连接。503、客户端基于配置信息,开启对该TCP连接的检测服务,即启动本地的HTTP检测服务。504、在检测到一个TCP连接请求的情况下,对该TCP连接请求中的数据进行解析,得到一个HTTP协议请求。505、判断该HTTP协议请求是否需要走代理,即该HTTP协议请求是否符合代理规则。506、在该HTTP协议请求符合代理规则的情况下,获取客户端与网关之间的TCP连接。507、通过该TCP连接创建一个流对象,然后基于该流对象,通过该TCP连接,将协议包发送至网关。其中,该协议包携带有由该HTTP协议请求转换得到的数据流。508、网关将该协议包发送至服务器,服务器基于该协议包进行业务处理,得到响应数据,并返回给客户端。509、在该HTTP协议请求不符合代理规则的情况下,获取该HTTP协议请求对应的业务地址连接,即基于HTTP协议请求携带的域名,创建客户端与域名对应的目标服务器之间的临时连接,并通过临时连接,将由HTTP协议请求转换得到的数据流,发送至目标服务器,服务器基于由该数据流转换得到的HTTP协议请求所指示的业务进行处理,得到响应数据。然后通过该临时连接,将该响应数据发送至客户端。

408、建立服务器与网关之间的TCP连接。

在本申请实施例中,客户端与服务器在进行数据交互之前,需要建立服务器与网关之间的TCP连接。基于该TCP连接,服务器与网关之间可以进行数据的传输。其中,网关能够接收服务器返回的响应数据,并将该响应数据转发给客户端。

409、基于服务器与网关之间的TCP连接,将第一协议包转发至服务器。

在本申请实施例中,基于客户端与网关之间的TCP连接,网关接收到客户端发送的第一协议包。然后基于网关与服务器之间的TCP连接,网关将该第一协议包转发至服务器。

410、对第一协议包进行解析,得到第一协议包的操作类型。

在本申请实施例中,客户端通过TCP连接,将第一协议包发送给网关,由网关将该第一协议包转发给服务器。服务器对接收到的第一协议包进行解析,得到该第一协议包的操作类型。其中,操作类型用于指示服务器执行相应的处理。

在一些实施例中,该操作类型包括多种类型。相应地,在操作类型为创建类型的情况下,服务器执行下述步骤(1);在操作类型为关闭类型的情况下,服务器执行下述步骤(2);在操作类型为推送类型的情况下,服务器执行下述步骤411至415。

(1)响应于第一协议包的操作类型为创建类型,基于TCP连接,生成目标流对象。

在本申请实施例中,该第一协议包携带有协议头标识、协议体以及操作类型,其中,协议头标识为目标HTTP协议请求的协议头标识,协议体为空,操作类型为创建类型。由于该创建类型用于指示服务器生成与该目标HTTP协议请求对应的目标流对象。该目标HTTP协议请求由第一协议包携带的目标流数据转换得到。因此,服务器响应于该第一协议包的操作类型为创建类型,基于TCP连接,生成对象标识为第一协议包的协议头标识的目标流对象。

(2)响应于第一协议包的操作类型为关闭类型,基于TCP连接,关闭目标流对象,删除目标HTTP协议请求的协议头标识与目标流对象的映射缓存。

在本申请实施例中,该第一协议包携带有协议头标识、协议体以及操作类型,其中,协议头标识为目标HTTP协议请求的协议头标识,协议体为空,操作类型为关闭类型。由于该关闭类型用于指示服务器关闭与该目标HTTP协议请求对应的目标流对象。该目标HTTP协议请求由第一协议包携带的目标流数据转换得到。因此,服务器响应于该第一协议包的操作类型为关闭类型,基于TCP连接,关闭对象标识为第一协议包的协议头标识的目标流对象,并删除该目标流对象与目标HTTP协议请求的协议头标识的映射缓存。

411、响应于第一协议包的操作类型为推送类型,对第一协议包携带的目标HTTP协议请求所指示的业务进行处理,得到响应数据,目标HTTP协议由第一协议包携带的目标流数据转换得到。

在本申请实施例中,在第一协议包的操作类型为推送类型的情况下,由于该第一协议包携带有由目标HTTP请求转换得到的目标数据流,因此服务器可以将该目标数据流转换成该目标HTTP协议请求。服务器基于该目标HTTP协议请求,进行业务处理,得到响应数据。

412、确定对象标识为目标HTTP协议请求的协议头标识的目标流对象。

在本申请实施例中,由于该目标流对象通过流进行传输,并且流为客户端与服务器在TCP连接中用于数据交互的独立双向序列。因此服务器可以基于该目标流对象,来实现该目标HTTP协议请求的数据交互过程。由于不同流用于传输不同的HTTP协议请求,而不同流中的流对象相互独立,因此,服务器通过目标HTTP协议请求的协议头标识,能够确定与该目标HTTP协议请求对应的目标流对象。其中,该目标流对象的对象标识与该目标HTTP协议请求的协议头标识一致。

413、基于目标流对象,生成协议头标识为对象标识的第三协议包,第三协议包的操作类型为推送类型。

在本申请实施例中,第三协议包为由服务器生成的数据包,该第三协议包包括协议头和协议体。其中,该协议体中包括有服务器基于该第一协议包进行业务处理得到的响应数据。该协议头中包括的协议头标识与该目标流对象的对象标识一致。该第三协议包的操作类型为推送类型。

例如,该目标流对象的对象标识为X,则服务器生成的第三协议包的协议头标识也为X,且第一协议包的操作类型为“PSH”,即推送类型。

414、将响应数据的长度写入第三协议包的协议头中,将响应数据写入第三协议包的协议体中。

在本申请实施例中,在本申请实施例中,该第三协议包包括协议头和协议体,由于该协议头用于存储该响应数据的长度,该协议体用于存储该响应数据。因此,服务器将该HTTP协议请求转换成目标数据流,并将该目标数据流的长度写入第一协议包的协议头中,将该目标数据流写入第一协议包的协议体中。

例如,服务器计算该响应数据的长度为N,将N写入该第三协议包的协议头中,将响应数据写入该第三协议包的协议体中。

参见图6,本申请实施例还提供了另一种流量控制流程的示意图。该数据处理流程包括以下步骤:601、服务器开启对TCP/TLS连接的检测服务。602、当检测到TCP握手成功时,表明TCP连接已经建立成功。603、然后进行TLS握手,握手成功后。604、服务器在接收到新连接请求的情况下,先判断该连接请求是否为多路复用请求。从该连接请求中读取8字节数据尝试解析是否符合多路复用协议头,若解析报错则判断不是多路复用请求,解析成功则是多路复用请求连接。在判断完成后,将已读的8字节数据重新写回连接请求中,以便接下来对该连接请求的读取不会丢失预读取的部分数据。605、在该连接请求为多路复用请求的情况下,服务器按照多路复用协议对连接请求中的第一个数据包进行解析,得到该数据包的操作类型。该数据包的操作类型为创建类型“SYN”,则服务器创建一个流对象,即多路复用对象。606、然后服务器对信道(TCP连接)进行检测。607、判断基于HTTP协议对该数据包是否解析成功。608、在成功解析出HTTP协议请求的情况下,对该HTTP协议请求所指示的业务进行处理,得到响应数据。

415、基于服务器与网关之间的TCP连接,将第三协议包发送至网关。

在本申请实施例中,服务器对该第三协议包进行封装后,通过TCP连接,将第三协议包发送至网关,再由网关转发至客户端。其中,该第三协议包携带有有由服务器基于客户端发送的第一协议包进行业务处理,得到响应数据。客户端用于展示该响应数据,供用户观看。

416、基于客户端与网关之间的TCP连接,将第三协议包转发至客户端,第三协议包携带有响应数据。

在本申请实施例中,基于服务器与网关之间的TCP连接,网关接收到服务器发送的第三协议包。然后基于网关与客户端之间的TCP连接,网关将该第三协议包转发至客户端。

在一些实施例中,服务器基于该第一协议包进行业务处理,得到响应数据,并通过网关将响应数据返回至客户端。相应地,客户端通过TCP连接,接收服务器通过网关返回的第三协议包;对第三协议包进行解析,得到第三协议包的操作类型、协议头标识以及响应数据;客户端响应于第三协议包的操作类型为推送类型,从缓存中查找对象标识为协议头标识的目标流对象;将响应数据写入目标流对象的缓存中。其中,该第三协议包携带有响应数据、协议头标识、以及操作类型,由于该响应数据为服务器基于客户端发送的第一协议包进行业务处理所得到的结果。该协议头标识为目标流对象的对象标识,该操作类型为推送类型。因此客户端响应于该操作类型为推送类型,从缓存中查找对象标识为第三协议包的协议头标识的目标流对象,并将第三协议包的响应数据写入目标流对象的缓存中。

本申请实施例提供了客户端、网关以及服务器交互执行的一种流量控制方法,通过客户端、网关以及服务器之间的交互,由于客户端与网关之间的TCP连接和网关与服务器之间的TCP连接都相当于一个物理信道,通过该物理信道可以创建无数个逻辑信道,即创建无数个流。由于流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列,且各个流之间互不影响,因此基于该TCP连接中的多个流,客户端和服务器能够并行处理多个HTTP请求,从而提高了数据传输的效率,实现了对流量的控制。

参加图7,本申请实施例还提供了一种多路复用流程的示意图。该多路复用流程包括以下步骤:701、客户端创建与服务器之间的TCP连接,或者在TCP连接的基础上,进行TLS握手,创建TLS连接。702、客户端与服务器保持连接状态并检测该TCP/TLS连接。703、在客户端或服务器检测到协议包时,基于多路复用协议头,对该协议包中的数据进行解析。704、得到该协议包的操作类型。705、在操作类型为创建类型“SYN”的情况下。706、从缓存中查找流对象,在查找到流对象的情况下,直接从缓存中获取该流对象。707、在未查找到流对象的情况下,生成对象标识为协议包的协议头标识的流对象。708、在操作类型为推送类型“PSH”的情况下,获取该协议包的协议体长度。709、并基于该协议体长度,从协议包中获取数据。710、将该数据写入流对象的读取缓存中。711、在操作类型为关闭类型“FIN”的情况下。712、从缓存中查找流对象,在查找到流对象的情况下,直接从缓存中获取该流对象,并关闭该流对象。713、在未查找到流对象的情况下,说明该流对象已经关闭。

参见图8,本申请实施例还提供一种应用场景的示意图。在该应用环境中,客户端中的应用A、应用B以及应用C都通过网关来访问企业内部网页,并使用本申请实施例提供的多路复用连接,在客户端与网关之间创建一条长连接,把应用A、应用B以及应用C内需要代理的所有请求并发的转发到网关,网关经过鉴权操作后会将请求转发到对应的业务地址,从而加速网页的访问速度。

为了更加直观的体现本申请实施例提供的数据发送方案与现有技术的区别,如表1所示,基于现有网关Nginx和本申请提供的网关,分别在多种情况下进行实验,得到客户端的数据传输率和服务器的QPS(Queries-per-second,每秒查询率),能够衡量在规定时间内所处理的流量多少。

表1

参见表1,在第一种情况下,网关类型为网关,网络延时为3毫秒,使用本申请提供的多路复用连接,并通过握手建立TLS连接,此时的服务器的QPS为4019请求数/秒,客户端的传输率为7677.95千字节/秒。在第二种情况下,网关类型为网关,网络延时为3毫秒,使用本申请提供的多路复用连接,但不建立TLS连接,此时的服务器的QPS为4326请求数/秒,客户端的传输率为8264.32千字节/秒。在第三种情况下,网关类型为网关,网络延时为3毫秒,不使用本申请提供的多路复用连接,通过握手建立TLS连接,此时的服务器的QPS为906请求数/秒,客户端的传输率为1731.17千字节/秒。在第四种情况下,网关类型为网关,网络延时为3毫秒,不使用本申请提供的多路复用连接,也不建立TLS连接,此时的服务器的QPS为2276请求数/秒,客户端的传输率为4349.30千字节/秒。在第五种情况下,网关类型为Nginx,网络延时为3毫秒,不使用本申请提供的多路复用连接,通过握手建立TLS连接,此时的服务器的QPS为1353请求数/秒,客户端的传输率为2645.23千字节/秒。在第六种情况下,网关类型为Nginx,网络延时为3毫秒,不使用本申请提供的多路复用连接,通过握手建立TLS连接,此时的服务器的QPS为2578请求数/秒,客户端的传输率为5038.22千字节/秒。综合上述多种情况可知,使用本申请提供的多路复用连接,相比于现有技术,服务器的QPS和客户端的传输率得到明显提升。这是因为多路复用使得客户端与服务器能够基于多个流对象,通过TCP连接能够并行传输多个请求,使得TCP闲置状态的时间大大缩短,从而增加数据的传输效率。并且通过比较第一种情况、第三种情况以及第五种情况,即在TLS连接类型的请求中,由于TLS握手相对TCP耗时更久,因此使用多路复用的情况,相比于不使用多路复用的情况,服务器的QPS和客户端的传输率的提升更为明显。

图9是本申请实施例提供的一种流量控制装置的结构示意图。参见图9,该装置包括:第一创建模块901、请求检测模块902、第一解析模块903、第一生成模块904以及第一发送模块905。

第一创建模块901,用于建立客户端与网关之间的TCP连接;

请求检测模块902,用于对客户端与网关之间的TCP连接进行检测,得到多个TCP连接请求;

第一解析模块903,用于对多个TCP连接请求中的数据分别进行解析,得到多个HTTP协议请求,多个HTTP协议请求用于请求服务器中的多种业务;

第一生成模块904,用于对于任一HTTP协议请求,基于TCP连接,生成对象标识为HTTP协议请求的协议头标识的目标流对象;

第一发送模块905,用于基于目标流对象,通过TCP连接,将第一协议包发送至网关,由网关将第一协议包转发至服务器,第一协议包携带有由HTTP协议请求转换得到的目标数据流,服务器用于基于第一协议包进行业务处理。

本申请实施例提供了一种流量控制装置,由于客户端与网关之间的TCP连接相当于一个物理信道,通过该物理信道可以创建无数个逻辑信道,即创建无数个流。由于流为客户端与服务器在该TCP连接中用于数据交互的独立双向序列,且各个流之间互不影响,因此基于该TCP连接中的多个流,客户端能够并行处理多个HTTP协议请求,从而提高了数据传输的效率,实现了对流量的控制。

在一些实施例中,图10是本申请实施例提供的另一种流量控制装置的结构示意图。参见图10,第一发送模块905,包括:

第一生成单元1001,用于对于任一HTTP协议请求,基于目标流对象,生成协议头标识为对象标识的第一协议包,第一协议包的操作类型为推送类型;

第一写入单元1002,用于将由HTTP协议请求转换得到的目标数据流的长度写入第一协议包的协议头中,将由HTTP协议请求转换得到的目标数据流写入第一协议包的协议体中;

第一发送单元1003,用于通过TCP连接,将第一协议包发送至网关。

在一些实施例中,请继续参见图10,该第一生成模块904,用于对于任一HTTP协议请求,生成协议头标识为HTTP协议请求的协议头标识的第二协议包,第二协议包的操作类型为创建类型、协议体为空;基于TCP连接,将第二协议包发送至网关,由网关将第二协议包转发至服务器,服务器用于基于第二协议包生成目标流对象;响应于服务器未返回错误信息,生成对象标识为协议头标识的目标流对象。

在一些实施例中,请继续参见图10,该第一生成模块904,用于对于任一HTTP协议请求,基于TCP连接,从缓存中查找目标流对象;在未查找到目标流对象的情况下,生成对象标识为HTTP协议请求的协议头标识的目标流对象。

在一些实施例中,请继续参见图10,该装置还包括:

接收模块906,用于通过TCP连接,接收服务器通过网关返回的第三协议包;

第二解析模块907,用于对第三协议包进行解析,得到第三协议包的操作类型、协议头标识以及响应数据;

查找模块908,用于响应于第三协议包的操作类型为推送类型,从缓存中查找对象标识为协议头标识的目标流对象;

写入模块909,用于将响应数据写入目标流对象的缓存中。

在一些实施例中,请继续参见图10,该装置还包括:

第二生成模块910,用于对于任一HTTP协议请求,生成协议头标识为HTTP协议请求的协议头标识的第四协议包,第四协议包操作类型为关闭类型、协议体为空;

第二发送模块911,用于基于TCP连接,将第四协议包发送至网关,由网关将第四协议包转发至服务器,服务器用于基于第四协议包关闭目标流对象;

第一关闭模块912,用于关闭对象标识为协议头标识的目标流对象,删除HTTP协议请求的协议头标识与目标流对象的映射缓存。

在一些实施例中,请继续参见图10,该第一生成模块904,用于对于任一HTTP协议请求,在HTTP协议请求符合代理规则的情况下,基于TCP连接,生成对象标识为HTTP协议请求的协议头标识的目标流对象,代理规则用于指示是否通过网关进行数据传输。

在一些实施例中,请继续参见图10,该第一生成模块904,还用于在HTTP协议请求不符合代理规则的情况下,基于HTTP协议请求携带的域名,创建客户端与域名对应的目标服务器之间的临时连接;通过临时连接,将由HTTP协议请求转换得到的数据流,发送至目标服务器;通过临时连接,接收目标服务器返回的响应数据;关闭临时连接。

在一些实施例中,请继续参见图10,该装置还包括:

第二创建模块913,用于建立服务器与网关之间的TCP连接;

请求接收模块914,用于基于服务器与网关之间的TCP连接,接收第一协议包;

第二解析模块915,用于对第一协议包进行解析,得到第一协议包的操作类型;

处理模块916,用于响应于第一协议包的操作类型为推送类型,对第一协议包携带的目标HTTP协议请求所指示的业务进行处理,得到响应数据,目标HTTP协议由第一协议包携带的目标流数据转换得到;

确定模块917,用于确定对象标识为目标HTTP协议请求的协议头标识的目标流对象;

第三发送模块918,用于基于目标流对象,通过TCP连接,将第三协议包发送至网关,由网关将第三协议包转发至客户端,第三协议包携带有响应数据,客户端用于展示响应数据。

在一些实施例中,请参见图10,该第三发送模块918,包括:

第二生成单元1004,用于基于目标流对象,生成协议头标识为对象标识的第三协议包,第三协议包的操作类型为推送类型;

第二写入单元1005,用于将响应数据的长度写入第三协议包的协议头中,将响应数据写入第三协议包的协议体中;

第二发送单元1006,用于基于TCP连接,将第三协议包发送至网关。

在一些实施例中,请继续参见图10,该装置还包括:

第三生成模块919,用于响应于第一协议包的操作类型为创建类型,基于TCP连接,生成目标流对象。

在一些实施例中,请继续参见图10,该装置还包括:

第二关闭模块920,用于响应于第一协议包的操作类型为关闭类型,基于TCP连接,关闭目标流对象,删除目标HTTP协议请求的协议头标识与目标流对象的映射缓存。

需要说明的是:上述实施例提供的流量控制装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流量控制装置与流量控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的流量控制方法中所执行的操作,或者,以实现上述实施例的流量控制方法中所执行的操作。

在一些实施例中,该计算机设备被提供为终端。图11示出了本申请一个示例性实施例提供的终端1100的结构示意图。

终端1100包括有:处理器1101和存储器1102。

处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以集成有GPU(Graphics Processing Unit,图像处理的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一条计算机程序,该至少一条计算机程序用于被处理器1101所具有以实现本申请中方法实施例提供的流量控制方法。

在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。可选地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107和电源1108中的至少一种。

外围设备接口1103可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1104用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1105用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置在终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在另一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。

摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。前置摄像头设置在终端1100的前面板,后置摄像头设置在终端1100的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。

电源1108用于为终端1100中的各个组件进行供电。电源1108可以是交流电、直流电、一次性电池或可充电电池。当电源1108包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1100还包括有一个或多个传感器1109。该一个或多个传感器1109包括但不限于:加速度传感器1110、陀螺仪传感器1111、压力传感器1112、光学传感器1113以及接近传感器1114。

加速度传感器1110可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1110可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1110采集的重力加速度信号,控制显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1110还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1111可以检测终端1100的机体方向及转动角度,陀螺仪传感器1111可以与加速度传感器1110协同采集用户对终端1100的3D动作。处理器1101根据陀螺仪传感器1111采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1112可以设置在终端1100的侧边框和/或显示屏1105的下层。当压力传感器1112设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1112采集的握持信号进行左右手识别或快捷操作。当压力传感器1112设置在显示屏1105的下层时,由处理器1101根据用户对显示屏1105的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

光学传感器1113用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1113采集的环境光强度,控制显示屏1105的显示亮度。可选地,当环境光强度较高时,调高显示屏1105的显示亮度;当环境光强度较低时,调低显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1113采集的环境光强度,动态调整摄像头组件1106的拍摄参数。

接近传感器1114,也称距离传感器,设置在终端1100的前面板。接近传感器1114用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1114检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制显示屏1105从亮屏状态切换为息屏状态;当接近传感器1114检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制显示屏1105从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在一些实施例中,该计算机设备被提供为服务器。图12是本申请实施例提供的一种服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1201和一个或一个以上的存储器1202,其中,存储器1202中存储有至少一条计算机程序,至少一条计算机程序由处理器1201加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以实现上述实施例的流量控制方法所执行的操作。

本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序由处理器加载并执行,以实现上述实施例的流量控制方法所执行的操作。在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 流量控制装置、流量控制方法和程序存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 存储设备的数据删除方法、装置及计算机可读存储介质
  • 日志存储方法、装置、计算机设备及存储介质
  • 流量控制方法和装置、计算机设备、计算机可读存储介质
  • 流量控制方法和装置、计算机设备、计算机可读存储介质
技术分类

06120116458509