限制网络流量的方法、装置、电子设备及存储介质转让专利

申请号 : CN202010315641.1

文献号 : CN111555929B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 舒超田野何世伟罗浩朱磊

申请人 : 成都安易迅科技有限公司

摘要 :

本申请提供一种限制网络流量的方法、装置、电子设备及存储介质,方法应用于服务器,方法包括:在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发送的UDP穿透请求;穿透请求中包括所述用户的标识;基于所述用户的标识,获取预先存储的与所述用户的标识对应的历史统计流量;为所述用户终端分配处于空闲状态的第一端口;从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量;在确定所述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的购买流量时,断开与用户终端的TCP连接,以准确地对用户终端基于socks5协议使用的网络流量进行统计,并在用户终端使用的流量达到该用户购买流量时,及时断开网络连接。

权利要求 :

1.一种限制网络流量的方法,其特征在于,应用于服务器,所述方法包括:在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发送的UDP穿透请求;其中,所述穿透请求中包括所述用户终端的标识;

基于所述用户终端的标识,获取预先存储的与所述用户终端的标识对应的历史统计流量;

为所述用户终端分配处于空闲状态的第一端口;

从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量;

在确定所述对应的历史统计流量和所述统计流量之和达到所述用户终端的标识对应的购买流量时,断开与所述用户终端的TCP连接。

2.根据权利要求1所述的方法,其特征在于,在所述从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量之后,所述方法还包括:在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进行统计。

3.根据权利要求2所述的方法,其特征在于,所述在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进行统计之后,所述方法还包括:

接收所述用户终端发送的断开与所述服务器的TCP连接的请求;

断开与所述用户终端的TCP连接;

基于对所述第一端口的流量进行实时统计所得到的统计流量,更新所述对应的历史统计流量。

4.根据权利要求1所述的方法,其特征在于,在所述为所述用户终端分配处于空闲状态的第一端口之前,所述方法还包括:确定所述对应的历史统计流量小于所述对应的购买流量。

5.根据权利要求1所述的方法,其特征在于,所述从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量,包括:从当前时刻开始对所述第一端口的流量进行实时统计,得到第一统计流量;

对与所述用户终端的标识对应的TCP通道的流量进行实时统计,得到第二统计流量;

将所述第一统计流量和所述第二统计流量之和确定为所述统计流量的值。

6.根据权利要求1所述的方法,其特征在于,在所述为所述用户终端分配处于空闲状态的第一端口之后,所述方法还包括:基于预先确定的每秒经过第一端口的流量阈值,利用令牌桶算法限制每秒经过所述第一端口的流量,以使每秒经过所述第一端口的流量小于等于所述流量阈值。

7.一种限制网络流量的装置,其特征在于,应用于服务器,所述装置包括:请求接收单元,用于在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发送的UDP穿透请求;其中,所述穿透请求中包括所述用户终端的标识;

历史统计流量获取单元,用于基于所述用户终端的标识,获取预先存储的与所述用户终端的标识对应的历史统计流量;

分配单元,用于为所述用户终端分配处于空闲状态的第一端口;

第一统计单元,用于从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量;

第一断开单元,用于在确定所述对应的历史统计流量和所述统计流量之和达到所述用户终端的标识对应的购买流量时,断开与所述用户终端的TCP连接。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:第二统计单元,用于在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进行统计。

9.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行如权利要求1-6中任一项所述的方法。

10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-6中任一项所述的方法。

说明书 :

限制网络流量的方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及计算机网络技术领域,具体而言,涉及一种限制网络流量的方法、装置、电子设备及存储介质。

背景技术

[0002] 针对用户终端基于socks5协议使用的网络流量,现有技术仅考虑用户终端通过传输控制协议(Transmission Control Protocol,TCP)连接通道所消耗的流量,事实上,用户
终端通过TCP连接通道消耗的流量甚少,因此导致统计得到的流量和用户终端实际消耗的
流量之间的误差较大,继而导致在用户终端使用的流量达到该用户购买流量时,无法及时
断开网络连接。

发明内容

[0003] 鉴于此,本申请实施例的目的在于提供一种限制网络流量的方法、装置、电子设备及存储介质,以准确地对用户终端基于socks5协议使用的网络流量进行统计,并在用户终
端使用的流量达到该用户购买流量时,及时断开网络连接。
[0004] 第一方面,本申请实施例提供一种限制网络流量的方法,应用于服务器,所述方法包括:在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发
送的UDP穿透请求;其中,所述穿透请求中包括所述用户的标识;基于所述用户的标识,获取
预先存储的与所述用户的标识对应的历史统计流量;为所述用户终端分配处于空闲状态的
第一端口;从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量;在确定所
述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的购买流量时,断开
与所述用户终端的TCP连接。
[0005] 针对用户终端基于socks5协议所使用的网络流量,其主要来自于用户数据报协议(User Datagram Protocol,UDP)连接通道,因此,在上述实现过程中,在用户终端与所述服
务器处于传输控制协议(Transmission Control Protocol,TCP)连接状态时,接收所述用
户终端基于socks5协议发送的UDP穿透请求,其中,所述穿透请求中包括所述用户的标识,
为所述用户终端分配处于空闲状态的第一端口,从当前时刻开始对所述第一端口的流量进
行实时统计,得到统计流量,由于从当前时刻开始,所述第一端口为所述用户终端使用,因
此,所述统计流量为所述用户终端所消耗的流量,同时,由于该用户可能在当前时刻之前已
经消耗了部分流量(即历史流量),因此,通过在确定所述用户的标识对应的历史统计流量
和所述统计流量之和达到所述用户的标识对应的购买流量时,及时断开与所述用户终端的
TCP连接,以在用户终端使用的流量达到该用户购买流量时,及时断开网络连接。
[0006] 基于第一方面,在一种可能的设计中,在所述从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量之后,所述方法还包括:在确定所述对应的历史统计流量
和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进行统计。
[0007] 基于第一方面,在一种可能的设计中,所述在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进行统计之后,
所述方法还包括:接收所述用户终端发送的断开与所述服务器的TCP连接的请求;断开与所
述终端设备端的TCP连接;基于对所述第一端口的流量进行实时统计所得到的统计流量,更
新所述对应的历史统计流量。
[0008] 在上述实现过程中,在断开TCP连接之后,基于对所述第一端口的流量进行实时统计所得到的统计流量,更新所述对应的历史统计流量,以保证所述用户终端对应的历史统
计流量的准确性。
[0009] 基于第一方面,在一种可能的设计中,在所述为所述用户终端分配处于空闲状态的第一端口之前,所述方法还包括:确定所述对应的历史统计流量小于所述对应的购买流
量。
[0010] 在上述实现过程中,通过这种方式能够避免用户的标识对应的历史统计流量达到该用户购买的流量的情况下,还为该用户分配空闲端口的情况,以及避免用户继续利用分
配的空闲端口传输或者接收数据的情况,继而节约了端口资源。
[0011] 基于第一方面,在一种可能的设计中,所述从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量,包括:从当前时刻开始对所述第一端口的流量进行实时统
计,得到第一统计流量;对与所述用户的标识对应的TCP通道的流量进行实时统计,得到第
二统计流量;将所述第一统计流量和所述第二统计流量之和确定为所述统计流量的值。
[0012] 在上述实现过程中,虽然与所述用户标识对应的TCP通道的流量较少,但是,所述对应的TCP通道仍然存在流量,因此,通过将所述第一端口的统计流量和所述对应的TCP通
道的流量和确定为所述统计流量的值,进一步提高流量统计结果的准确性。
[0013] 基于第一方面,在一种可能的设计中,在所述为所述用户终端分配处于空闲状态的第一端口之后,所述方法还包括:基于预先确定的每秒经过第一端口的流量阈值,利用令
牌桶算法限制每秒经过所述第一端口的流量,以使每秒经过所述第一端口的流量小于等于
所述流量阈值。
[0014] 在上述实现过程中,通过这种方式能够保证每秒经过所述第一端口的流量小于等于所述流量阈值,继而避免了每秒经过所述第一端口的流量过大而导致的弊端。
[0015] 第二方面,本申请实施例提供一种限制网络流量的装置,应用于服务器,所述装置包括:请求接收单元,用于在用户终端与所述服务器处于TCP连接状态时,接收所述用户终
端基于socks5协议发送的UDP穿透请求;其中,所述穿透请求中包括所述用户的标识;历史
统计流量获取单元,用于基于所述用户的标识,获取预先存储的与所述用户的标识对应的
历史统计流量;分配单元,用于为所述用户终端分配处于空闲状态的第一端口;第一统计单
元,用于从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量;第一断开单
元,用于在确定所述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的
购买流量时,断开与所述用户终端的TCP连接。
[0016] 基于第二方面,在一种可能的设计中,所述装置还包括:第二统计单元,用于在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述
第一端口的流量进行统计。
[0017] 基于第二方面,在一种可能的设计中,所述装置还包括:断开请求接收单元,用于接收所述用户终端发送的断开与所述服务器的TCP连接的请求;第二断开单元,用于断开与
所述终端设备端的TCP连接;更新单元,用于基于对所述第一端口的流量进行实时统计所得
到的统计流量,更新所述对应的历史统计流量。
[0018] 基于第二方面,在一种可能的设计中,所述装置还包括:确定单元,用于确定所述对应的历史统计流量小于所述对应的购买流量。
[0019] 基于第二方面,在一种可能的设计中,所述第一统计单元,具体用于从当前时刻开始对所述第一端口的流量进行实时统计,得到第一统计流量;以及对与所述用户的标识对
应的TCP通道的流量进行实时统计,得到第二统计流量;将所述第一统计流量和所述第二统
计流量之和确定为所述统计流量的值。
[0020] 基于第二方面,在一种可能的设计中,所述装置还包括:流量限制单元,用于基于预先确定的每秒经过第一端口的流量阈值,利用令牌桶算法限制每秒经过所述第一端口的
流量,以使每秒经过所述第一端口的流量小于等于所述流量阈值。
[0021] 第三方面,本申请实施例提供一种电子设备,包括处理器以及与所述处理器连接的存储器,所述存储器内存储计算机程序,当所述计算机程序被所述处理器执行时,使得所
述电子设备执行第一方面所述的方法。
[0022] 第四方面,本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行第一方面所述的方法。
[0023] 本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说
明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0024] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对
范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
[0025] 图1为本申请实施例提供的限制网络流量的方法的流程示意图。
[0026] 图2为本申请实施例提供的限制网络流量的装置的结构示意图。
[0027] 图3为本申请实施例提供的电子设备的结构示意图。
[0028] 图标:200-限制网络流量的装置;210-请求接收单元;220-历史统计流量获取单元;230-分配单元;240-第一统计单元;250-第一断开单元;300-电子设备;301-处理器;
302-存储器;303-通信接口。

具体实施方式

[0029] 下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
[0030] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的
描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0031] 请参照图1,图1为本申请实施例提供的一种限制网络流量的方法的流程图,所述方法应用于服务器,下面将对图1所示的流程进行详细阐述,所述方法包括步骤:S11、S12、
S13、S14和S15。
[0032] S11:在用户终端与所述服务器处于传输控制协议(Transmission Control Protocol,TCP)连接状态时,接收所述用户终端基于socks5协议发送的用户数据报协议
(User Datagram Protocol,UDP)穿透请求;其中,所述穿透请求中包括所述用户的标识。
[0033] S12:基于所述用户的标识,获取预先存储的与所述用户的标识对应的历史统计流量。
[0034] S13:为所述用户终端分配处于空闲状态的第一端口。
[0035] S14:从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量。
[0036] S15:在确定所述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的购买流量时,断开与所述用户终端的TCP连接。
[0037] 下面对方法进行详细介绍。
[0038] S11:在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发送的UDP穿透请求;其中,所述穿透请求中包括所述用户的标识。
[0039] 其中,所述用户的标识具有唯一性。
[0040] 在实际实施过程中,用户终端基于socks5协议向服务器发送TCP连接请求,服务器接收并响应所述连接请求,并建立与用户终端之间的TCP连接,此时,用户终端与所述服务
器处于TCP连接状态;在所述用户终端与所述服务器处于TCP连接状态时,若用户终端基于
socks5协议向服务器发送UDP穿透请求,服务器则接收所述用户终端基于socks5协议发送
的UDP穿透请求;其中,所述穿透请求中包括所述用户的标识;可以理解的是,在所述用户终
端与所述服务器处于TCP连接断开状态时,服务器则无法接收到所述用户终端基于socks5
协议发送的UDP穿透请求。
[0041] 作为一种实施方式,所述连接请求中包括所述用户的标识,服务器从所述连接请求中获取所述用户的标识,并建立所述TCP连接通道与所述用户的标识的对应关系。
[0042] 在接收到所述穿透请求之后,执行步骤S12。
[0043] S12:基于所述用户的标识,获取预先存储的与所述用户的标识对应的历史统计流量。
[0044] 在接收到所述穿透请求之后,从所述穿透请求中提取出所述用户的标识,并从预先存储的标识和历史统计流量的对应关系中,查找出与所述用户的标识对应的历史统计流
量。
[0045] 其中,所述对应的历史统计流量包括:所述用户通过终端设备在当前时刻之前至最近一次购买流量的时刻之间的时间段内所消耗的流量之和。
[0046] 在获取到所述对应的历史统计流量之和,执行步骤13。
[0047] S13:为所述用户终端分配处于空闲状态的第一端口。
[0048] 服务器从该服务器提供的处于空闲状态的端口中随机或者依次确定出一个处于空闲状态的端口(即第一端口),并将所述第一端口的端口号发送给用户终端,以使用户终
端能够根据所述第一端口的端口号与所述服务器建立UDP连接。
[0049] S14:从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量。
[0050] 在实际实施过程中,S14可以按照如下方式实施,服务器在为所述用户终端分配了所述第一端口之后,建立所述第一端口的流量与所述用户的标识的对应关系,并通过建立
UDP监听句柄以对所述第一端口的流量进行实时统计,得到统计流量,其中,所述统计流量
与所述用户的标识对应。
[0051] 虽然与所述用户标识对应的TCP通道的流量较少,但是,所述对应的TCP通道仍然存在流量,因此,作为一种实施方式,S14包括:从当前时刻开始对所述第一端口的流量进行
实时统计,得到第一统计流量;对与所述用户的标识对应的TCP通道的流量进行实时统计,
得到第二统计流量;将所述第一统计流量和所述第二统计流量之和确定为所述统计流量的
值。
[0052] 从当前时刻开始对所述第一端口的流量进行实时统计,得到第一统计流量;从所述当前时刻开始对与所述用户的标识对应的TCP通道的流量进行实时统计,得到第二统计
流量;将所述第一统计流量和所述第二统计流量之和确定为所述统计流量的值。
[0053] 在得到所述对应的历史统计流量和所述统计流量之后,执行步骤S15。
[0054] S15:在确定所述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的购买流量时,断开与所述用户终端的TCP连接。
[0055] 通过将所述对应的历史统计流量和所述统计流量之和与所述用户的标识对应的购买流量进行大小比较,在确定所述对应的历史统计流量和所述统计流量之和达到所述用
户的标识对应的购买流量时,断开与所述用户终端的TCP连接。
[0056] 其中,所述对应的购买流量可以通过如下方式获取,基于所述用户的标识,从预先存储的用户的标识和购买流量的对应关系中,查找出与所述用户的标识对应的购买流量。
值得一提的是,当用户从购买流量开始通过终端设备所消耗的流量达到购买流量时,消除
所述用户的标识和购买流量的对应关系,直到下一次重新购买流量时,再次建立所述用户
的标识和重新购买的流量的对应关系。或者,直接利用所述重新购买的流量覆盖上一次购
买的流量的数值。
[0057] 作为一种实施方式,在S14之后,所述方法还包括步骤:A1。
[0058] A1:在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进行统计。
[0059] 通过将所述对应的历史统计流量和所述统计流量之和与所述用户的标识对应的购买流量进行大小比较,在确定所述对应的历史统计流量和所述统计流量之和小于所述用
户的标识对应的购买流量时,继续对所述第一端口的流量进行累加统计。
[0060] 作为一种实施方式,在步骤A1之后,所述方法还包括:接收所述用户终端发送的断开与所述服务器的TCP连接的请求;断开与所述终端设备端的TCP连接;基于对所述第一端
口的流量进行实时统计所得到的统计流量,更新所述对应的历史统计流量。
[0061] 接收所述用户终端发送的断开与所述服务器的TCP连接的请求;响应所述请求,断开与所述终端设备端的TCP连接;利用从最近一次为所述用户终端设备分配第一端口之后
对所述第一端口的流量进行实时统计所得到的统计流量,替换所述用户的标识对应的历史
统计流量,以更新所述对应的历史统计流量。
[0062] 作为一种实施方式,利用从最近一次为所述用户终端设备分配第一端口之后对所述第一端口的流量进行实时统计所得到的统计流量,和从最近一次与用户终端建立TCP连
接之后对所述用户的标识对应的TCP连接通道进行实时统计所述得到的统计流量之和,替
换所述用户的标识对应的历史统计流量,以更新所述对应的历史统计流量。
[0063] 作为一种实施方式,在S13之前,所述方法还包括:确定所述对应的历史统计流量小于所述对应的购买流量。
[0064] 将所述对应的历史统计流量和所述对应的购买流量进行大小比较,在确定所述对应的历史流量小于所述对应的购买流量时,执行步骤S13,否则,不执行步骤S13,并断开与
所述用户终端的TCP连接。
[0065] 作为一种实施方式,在S13之后,所述方法还包括:基于预先确定的每秒经过第一端口的流量阈值,利用令牌桶算法限制每秒经过所述第一端口的流量,以使每秒经过所述
第一端口的流量小于等于所述流量阈值。
[0066] 其中,所述流量阈值可以根据需求设定。其中,所述流量阈值也可以为系统默认值。
[0067] 其中,确定每秒经过第一端口的流量阈值的具体实施方式可以为,基于所述第一端口,从预先存储的与所述第一端口对应的流量阈值的对应关系中,查找出与所述第一端
口对应的流量阈值。
[0068] 作为一种实施方式,确定每秒经过第一端口的流量阈值的具体实施方式可以为,基于所述用户的标识,从预先存储的与所述用户的标识对应的流量阈值的对应关系中,查
找出与所述用户的标识对应的流量阈值。
[0069] 其中,利用令牌桶算法限制每秒经过所述第一端口的流量的具体实施方式为本领域熟知技术,在此不再赘述。
[0070] 作为一种实施方式,在S13之后,所述方法还包括:基于预先确定的每秒经过第一端口和所述用户标识对应的TCP通道的流量之和的流量阈值,利用令牌桶算法限制每秒经
过所述第一端口和所述对应的TCP通道的流量,以使每秒经过所述第一端口和所述对应的
TCP通道的流量之和小于等于所述流量阈值。
[0071] 其中,确定每秒经过第一端口和所述用户标识对应的TCP通道的流量之和的流量阈值的具体实施方式可以为,基于所述用户的标识,从预先存储的与所述用户的标识对应
的流量阈值的对应关系中,查找出与所述用户的标识对应的流量阈值。
[0072] 其中,利用令牌桶算法限制每秒经过所述第一端口和所述对应的TCP通道的流量之和的具体实施方式为本领域熟知技术,在此不再赘述。
[0073] 请参照图2,图2是本申请实施例提供的一种限制网络流量的装置200的结构框图。所述装置应用于服务器,下面将对图2所示的结构框图进行阐述,所示装置包括:
[0074] 请求接收单元210,用于在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发送的UDP穿透请求;其中,所述穿透请求中包括所述用户的标
识;
[0075] 历史统计流量获取单元220,用于基于所述用户的标识,获取预先存储的与所述用户的标识对应的历史统计流量;
[0076] 分配单元230,用于为所述用户终端分配处于空闲状态的第一端口;
[0077] 第一统计单元240,用于从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量;
[0078] 第一断开单元250,用于在确定所述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的购买流量时,断开与所述用户终端的TCP连接。
[0079] 作为一种实施方式,所述装置还包括:第二统计单元,用于在确定所述对应的历史统计流量和所述统计流量之和小于所述对应的购买流量时,继续对所述第一端口的流量进
行统计。
[0080] 作为一种实施方式,所述装置还包括:断开请求接收单元,用于接收所述用户终端发送的断开与所述服务器的TCP连接的请求;第二断开单元,用于断开与所述终端设备端的
TCP连接;更新单元,用于基于对所述第一端口的流量进行实时统计所得到的统计流量,更
新所述对应的历史统计流量。
[0081] 作为一种实施方式,所述装置还包括:确定单元,用于确定所述对应的历史统计流量小于所述对应的购买流量。
[0082] 作为一种实施方式,所述第一统计单元240,具体用于从当前时刻开始对所述第一端口的流量进行实时统计,得到第一统计流量;以及对与所述用户的标识对应的TCP通道的
流量进行实时统计,得到第二统计流量;将所述第一统计流量和所述第二统计流量之和确
定为所述统计流量的值。
[0083] 作为一种实施方式,所述装置还包括:流量限制单元,用于基于预先确定的每秒经过第一端口的流量阈值,利用令牌桶算法限制每秒经过所述第一端口的流量,以使每秒经
过所述第一端口的流量小于等于所述流量阈值。
[0084] 本实施例对的各功能单元实现各自功能的过程,请参见上述图1所示实施例中描述的内容,此处不再赘述。
[0085] 请参照图3,本申请实施例提供一种电子设备300的结构示意图,电子设备300可以为上述实施例中的服务器,电子设备300可以是个人电脑(personal computer,PC)、平板电
脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
[0086] 电子设备300可以包括:存储器302、处理301、通信接口303和通信总线,通信总线用于实现这些组件的连接通信。
[0087] 所述存储器302用于存储本申请实施例提供的限制网络流量的方法和装置对应的计算程序指令等各种数据,其中,存储器302可以是,但不限于,随机存取存储器(Random 
Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器
(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable 
Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable 
Read-Only Memory,EEPROM)等。
[0088] 处理器301用于读取并运行存储于存储器中的限制网络流量的方法和装置对应的计算机程序指令,以在用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于
socks5协议发送的UDP穿透请求;其中,所述穿透请求中包括所述用户的标识;基于所述用
户的标识,获取预先存储的与所述用户的标识对应的历史统计流量;为所述用户终端分配
处于空闲状态的第一端口;从当前时刻开始对所述第一端口的流量进行实时统计,得到统
计流量;在确定所述对应的历史统计流量和所述统计流量之和达到所述用户的标识对应的
购买流量时,断开与所述用户终端的TCP连接。
[0089] 其中,处理器301可能是一种集成电路芯片,具有信号的处理能力。上述的处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器
(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场
可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组
件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以
是微处理器或者该处理器也可以是任何常规的处理器等。
[0090] 通信接口303,用于接收或者发送数据。
[0091] 此外,本申请实施例还提供了一种存储介质,在该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请任一项实施方式所提供
的方法。
[0092] 综上所述,针对用户终端基于socks5协议所使用的网络流量,其主要来自于UDP连接通道,因此,本申请各实施例提出的限制网络流量的方法、装置、电子设备及存储介质,在
用户终端与所述服务器处于TCP连接状态时,接收所述用户终端基于socks5协议发送的UDP
穿透请求,其中,所述穿透请求中包括所述用户的标识,为所述用户终端分配处于空闲状态
的第一端口,从当前时刻开始对所述第一端口的流量进行实时统计,得到统计流量,由于从
当前时刻开始,所述第一端口为所述用户终端使用,因此,所述统计流量为所述用户终端所
消耗的流量,同时,由于该用户可能在当前时刻之前已经消耗了部分流量(即历史流量),因
此,在确定所述用户的标识对应的历史统计流量和所述统计流量之和达到所述用户的标识
对应的购买流量时,及时断开与所述用户终端的TCP连接,以在用户终端使用的流量达到该
用户购买流量时,及时断开网络连接。
[0093] 在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示
了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能
和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部
分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行
指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附
图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可
以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个
方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于
硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0094] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。