[发明专利]基于linux内核的高性能流控方法有效
申请号: | 201210152793.X | 申请日: | 2012-05-17 |
公开(公告)号: | CN102710506A | 公开(公告)日: | 2012-10-03 |
发明(设计)人: | 陈宏伟;何建锋;赵明彰;刘亚轩 | 申请(专利权)人: | 西安交大捷普网络科技有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56 |
代理公司: | 西安新思维专利商标事务所有限公司 61114 | 代理人: | 黄秦芳 |
地址: | 710075 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 linux 内核 性能 方法 | ||
1.一种基于linux内核的高性能流控方法,其特征在于:所述流控方法为首先在Linux内核中的sk_buff中有mark字段,同时加入index字段,Mark字段用来进行带宽对象的流控,index是无符号整数,把其分成两部分,高16位用来进行服务流控,低16位用来进行单ip流控;再建立数据包列队;然后数据包再通过流控方法进行控制是否出队:数据包按照服务流控方法进行控制,如果数据包可以出队,则依次进行带宽对象流控方法、单IP流控方法进行控制,如果数据包再上述的三个流控方法任意一个不能出队,则重新排队;最后出队的数据包经过发包调度方法选择后进行发包。
2.根据权利要求1所述的基于linux内核的高性能流控方法,其特征在于:所述的服务流控方法为首先建立一个65536长度的整数数组D,其下标代表目的端口;其次,建立一个300个数据包队列数组E,D数组每个元素的值为E数组的下标,如当设置了对http进行流控,则先检查D[80]的值是否已经设置,如设置即已流控,如未设置,先取得E中没有使用的一个队列,把其下标赋值给D[80],当有http数据包到来时,会根据目的端口80,得到D[80]的值D1,再根据E[D1]取得队列,进行入队操作。
3.根据权利要求1或2所述的基于linux内核的高性能流控方法,其特征在于:所述的带宽对象流控方法为建立一个队列数组,根据sk_buff中的mark值来选择队列,mark值由用户态程序统一控制,由iptables的mark target进行设置,当带有mark值不为0的数据包到来时,此包目的端口不进行服务流控,根据mark值选择队列,进行排队流控。
4.根据权利要求3所述的基于linux内核的高性能流控方法,其特征在于:所述的单IP流控方法的步骤如下:
(1)、建立数据包队列:建立了一个含300元素的无符号整形数组,每个无符号整形数组是32位,每一位对应9600队列中的一个,其中第0个队列为不进行流控的队列,该位为1,表示该位对应的队列被使用,通过该无符号整形数组的计算实现快速选择队列;
(2)、数据包列队的Ip地址共32位,现把其看成两部分,前16位和后16位,前16位通过一个大小为65535的指针数组A来表示,数组下标即表示具体ip的前16位值,后16位也是通过一个65535的数组来表示,但是其是动态分配的,后16位的数组中,数组中每个结构中包含flag和index字段,flag表示该ip是否要流控,index是一个索引值,为无符号整数,当一个ip数据包进入时,先取得该ip的前16位,以该值作为前16位数组的下标,如果数组内容为空,则表示没有建立过该前16位对应的后16位的数组,需要创建,index初始值为-1,flag初始值为0;如果数组内容不空,则可以根据该指针内容来访问对应的后16位数组,再根据对应值的flag和index进行流控,同时把index值赋给sk_buff中的index字段。
5.根据权利要求4所述的基于linux内核的高性能流控方法,其特征在于:所述的单IP流控方法的快速选择队列的具体步骤如下:
(1)、先看无符号整数值是否为全1,通过和0xffffffff与得知;
(2)、如果无符号整数值为全1,则取数组中下一个整数继续步骤(1);
(3)、如果无符号整数值不是全1,计算低16位是否为全1;
(4)、如果无符号整数值为全1,则把该整数值右移16位,否则不变;
(5)、计算无符号整数值的低8位是否为全1;
(6)、如果无符号整数值为全1,则把该整数值右移4位,否则不变;
(7)、计算无符号整数值的低2位是否为全1;
(8)、如果无符号整数值为全1,则把该整数值右移2位,,否则不变;
(9)、计算无符号整数值的低1位是否为1,不是则第二位为1,则找到了具体的位置,并能够计算出对应的数组下标;
(10)、当ip不流控时,把相应的位置0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交大捷普网络科技有限公司,未经西安交大捷普网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210152793.X/1.html,转载请声明来源钻瓜专利网。