一种流量控制方法及装置制造方法及图纸

技术编号:13608556 阅读:32 留言:0更新日期:2016-08-29 01:27
本发明专利技术是关于一种流量控制方法及装置,该方法包括:在接收到报文时,提取该报文中的IP地址;获取哈希散列表中与IP地址对应的令牌桶;在报文的字节数量大于令牌桶内剩余的令牌数量时,抛弃报文;在报文的字节数量小于或等于令牌桶内剩余的令牌数量时,允许报文通过,并计算令牌桶内剩余的令牌数量与报文的字节数量之差得到当前令牌数量,将当前令牌数量确定为令牌桶内剩余的令牌数量;令牌桶内剩余的令牌数量小于或等于最大令牌数量。相对于现有技术需要逐条遍历预先生成的限制规则而言,本发明专利技术提供的方案在哈希散列表中查询与IP地址对应的令牌桶的速度非常快,从而提高了查询效率,并较少的占用系统处理资源。

【技术实现步骤摘要】

本专利技术涉及通信
,更具体的说,涉及流量控制方法及装置
技术介绍
目前,如果连接路由器的设备较多,那么多个设备会存在抢带宽的情况。例如,电脑和智能电视均连接到路由器上,在路由器对连接设备不做流量限制的情况下,如果电脑下载数据,那么电脑可能会占据路由器的所有带宽,以使智能电视下载服务器的视频资源速度变慢,从而出现视频播放卡顿的情况,所以需要对连接到路由器的设备进行流量控制。当前路由器的内核大部分都为netfilter。其中,netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架。当前路由器比较成熟的流量控制方法为:在路由器接收到用户输入的针对设备的IP地址的流量限制参数时,路由器内的netfilter会根据上述流量限制参数生成该IP地址对应的限制规则。如果路由器中接收到针对多个IP地址的流量限制参数时,那么路由器内的netfilter会生成针对多个IP地址的限制规则。在路由器的netfilter接收到报文时,netfilter会在报文中提取出IP地址,然后逐条遍历预先生成的限制规则,以判断在预先生成的限制规则中是否存在该IP地址对应的限制规则。如果存在,那么将该报文打上标记,并将该打上标记的报文发送到路由器的TC(Traffic Control,流量控制)模块中,以使该打上标记的报文被TC模块进行限流操作。但是,netfilter模块每次在接收到报文时,无论该报文内的IP地址是否对应有限制规则,netfilter模块都需要查询一次预先生成的限制规则,所以当前的查询效率非常低下;而且,如果预先生成的限制规则数量特别多,那么netfilter模块查找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地址对应的令牌桶的速度非常快,从而提高了查询效率,并较少的占用系统处理资源。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种流量控制方法的流程图。图2为本专利技术实施例提供的另一种流量控制方法的流程图。图3为本专利技术实施例提供的一种流量控制装置的示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,本文档来自技高网
...

【技术保护点】
一种流量控制方法,其特征在于,包括:在接收到报文时,提取该报文中的IP地址;获取哈希散列表中与所述IP地址对应的令牌桶,所述哈希散列表中预先存储有所述令牌桶,所述令牌桶内设置有IP地址和最大令牌数量;在所述报文的字节数量大于所述令牌桶内剩余的令牌数量时,抛弃所述报文;在所述报文的字节数量小于或等于所述令牌桶内剩余的令牌数量时,允许所述报文通过,并计算所述令牌桶内剩余的令牌数量与所述报文的字节数量之差得到当前令牌数量,将所述当前令牌数量确定为所述令牌桶内剩余的令牌数量;所述令牌桶内剩余的令牌数量小于或等于所述最大令牌数量。

【技术特征摘要】
1.一种流量控制方法,其特征在于,包括:在接收到报文时,提取该报文中的IP地址;获取哈希散列表中与所述IP地址对应的令牌桶,所述哈希散列表中预先存储有所述令牌桶,所述令牌桶内设置有IP地址和最大令牌数量;在所述报文的字节数量大于所述令牌桶内剩余的令牌数量时,抛弃所述报文;在所述报文的字节数量小于或等于所述令牌桶内剩余的令牌数量时,允许所述报文通过,并计算所述令牌桶内剩余的令牌数量与所述报文的字节数量之差得到当前令牌数量,将所述当前令牌数量确定为所述令牌桶内剩余的令牌数量;所述令牌桶内剩余的令牌数量小于或等于所述最大令牌数量。2.根据权利要求1所述的流量控制方法,其特征在于,在接收到报文之前,所述方法还包括:接收用户输入的IP地址和允许通过的每秒最大字节数;根据所述每秒最大字节数设置令牌桶中的最大令牌数量;将所述IP地址存储到所述令牌桶中;根据预设算法将所述IP地址转换成哈希索引;将所述令牌桶存储至哈希散列表中的所述哈希索引位置处。3.根据权利要求1所述的流量控制方法,其特征在于,获取哈希散列表中与所述IP地址对应的令牌桶的步骤包括:根据预设算法将所述IP地址转换成哈希索引;在所述哈希散列表中获取与所述哈希索引对应的令牌桶。4.根据权利要求2或3所述的流量控制方法,其特征在于,根据预设算法将所述IP地址转换成哈希索引的步骤包括:分别将所述IP地址中每个数据位的十进制数转换为二进制数;将所述IP地址中的前两个数据位的二进制数与所述IP地址中的后两个数据位的二进制数进行异或运算,得到目标二进制数;将所述目标二进制数转换为目标十进制数;利用所述目标十进制数对预设数字进行取模运算,得到余数;将所述余数确定为哈希散列表的哈希索引。5.根据权利要求1所述的流量控制方法,其特征在于,在所述获取哈希散列表中与所述IP地址对应的令牌桶之前,所述方法还包括:判断所述哈希散列表中是否存在与所述IP地址对应的令牌桶;在所述哈希散列表中存在与所述IP地址对应的令牌桶时,触发所述获取哈希散列表中与所述IP地址对应的令牌桶的步骤;在所述哈希散列表中不存在与所述IP地址对应的令牌桶时,允许所述报文通过。6.一种流量控制装置,其特征在于,包括:提取模块,用于在接收到报文时,提取该报文中...

【专利技术属性】
技术研发人员:周胜勇
申请(专利权)人:乐视控股北京有限公司乐视致新电子科技天津有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1