多核并行无锁的qos流量控制方法

文档序号:7941167阅读:261来源:国知局
专利名称:多核并行无锁的qos流量控制方法
技术领域
本发明涉及一种多核并行无锁的QOS流量控制方法,尤其涉及一种在多CPU系统平台上实现高效的各CPU并行计算运行、无锁的QOS流量控制新方法及系统。
背景技术
随着信息化技术的深入和互联网的迅速发展,整个世界正在迅速地融为一体,计算机网络已经成为国家的经济基础和命脉。众多的企业、组织与政府部门都在组建和发展自己的网络,并连接到hternet上,以充分共享、利用网络的信息和资源。伴随着互联网的广泛应用,网络建设已成为衡量一个单位信息化、现代化的重要标志。近几年来,网络建设发展突飞猛进,各单位都投入大量资金建成了内部网和互联网。由于缺乏有效的网络流量分析和管理控制手段,网络的发展正面临诸多问题和挑战,由此引发了一系列安全、效率和法律问题。不可预知的、突发的性能瓶颈会影响关键应用的运作效率。目前在大部分组织中,用户数量庞大、网络应用环境复杂,各种P2P和在线视频应用占用了大量网络带宽(如 FLV, BitTorrent, Kazza, Emule等),随之而来的是,由网络链路拥塞引发的应用性能下降问题也日益严重,极大地影响了组织正常业务的开展及用户正常网络应用的服务质量,网络带宽资源恶性占用现象严重。此外,网络关键业务及应用的运营得不到保障。所谓关键应用是指与用户生产经营、信息安全、关键用户息息相关的各类网络应用,包括ERP、数据库、 中间件、电子商务、视频会议等。目前大部分组织中都缺乏有效的网络管理策略,对核心业务应用(如ERP、数据库、 OA、邮件等)、时延敏感的应用(VOIP、视频会议)、即时通讯、P2P、在线视频、网络游戏等应用一视同仁,网络的使用不是根据业务应用的优先级以及重要程度来支配的,最终导致网络带宽资源被抢占比较厉害的诸如网络游戏、P2P、在线视频应用毫无节制的使用。由于P2P、网络游戏、在线视频等软件的使用占用了网络至少50%的带宽资源,并且仍然在毫无节制地加速吞噬着宝贵的带宽资源,不仅降低了企业的生产率,带来网络拥塞等严重影响网络使用的棘手问题,将严重影响组织中关键应用的正常运行和使用,最终会造成直接的经济损失。在中国互联网飞速发展的同时,P2P和在线视频应用也迅速普及开来,同时也造成了许多麻烦。据权威部门统计,当前P2P与在线视频流量已经占整个互联网流量的约70%, 并且正在以每年350%的速度增长。在网络中,P2P与在线视频流量消耗了巨大的网络带宽, 提高了网络运营成本,使网络基础设施不堪重负。P2P和在线视频流量的暴增,可以通过部署在网络上的流控设备进行有效的控制。 但是,普通网络用户的网络使用体验却因此得不到保障,造成用户体验急剧下降。

发明内容
为了解决上述问题,本发明提供了一种多核并行无锁的QOS流量控制方法。相应地,本发明的一种多核并行无锁的QOS流量控制方法包括以下步骤一种多核并行无锁的QOS流量控制的方法,包括以下步骤
51、接收数据包;
52、识别所述数据包;
53、通过QoS流控系统的调度器处理所述数据包。作为本发明的进一步改进,所述S2步骤包括通过DPI&DFI对所述数据包进行识别,并打上相应的VC和其来自的用户的ID标签。作为本发明的进一步改进,所述调度器处理包括排队过程和出队过程,其中,所述排队过程将收到的数据包入队缓存或者丢弃;所述出队过程负责找出系统中缓存的可以发送的数据包并交给Rm0n&Rm0n2模块处理,直到将所有缓存的数据包都发送出去或找不到符合限速条件的数据包为止。作为本发明的进一步改进,所述排队过程具体包括以下步骤
S10、根据所述数据包上所标识的her ID和VC ID,到相应的VC通道下寻找对应用户所属的动态通道;
S20、如果找不到,则创建该通道,并且检查该VC通道是否存在Shared VC ; S30、如果存在,则确认Smred VC下对应的子动态通道的父动态通道是否存在; S40、如果过不存在,则需要创建Siared VC下相应的父动态通道; S50、如果存在,则增加其父动态通道的引用计数;同时确认和创建Pipe和^ared Pipe下对应的各父动态通道,从而形成一条针对每个用户的通道通道限速链,与已经存在的VC/Shared VC/Pipe/Shared Pipe静态限速链相对应,协同工作,并将静态和动态的通道通过子通道指向父通道的指针连成一条自下而上的单向的链表; S60、从最底层的VC下的子动态通道开始,逐级检查其令牌;
S70、如果为负数,则按照单速/双速三色令牌桶算法进行令牌的填充,如果填充只有的令牌值仍然为赋值,则将收到的该数据包做丢弃处理,排队过程结束;
S80、如果所有的动态限速链上的动态通道的令牌检查都通过,则将所述数据包放入缓存队列中排队,等待发送,并根据该数据包的长度,逐级减去各个动态通道相应的令牌值, 排队过程结束。作为本发明的进一步改进,所述出队过程包括
5100、检查当前整个QoS流控系统缓存的数据包的数量是否为1?
5101、如果是,进入快速路径从QoS调度器的排队过程中VC通道下出队数据包;
5102、如果可以成功出队一个数据包,则QoS调度器的出队过程就此结束;
5103、如果不可以成功出队一个数据包,则进入慢速路径,
其中,在所述慢速路径中,采用的是自上而下的轮询查找的机制,出队遍历的顺序是从最顶级的Glared Pipe通道开始,依次遍历各下级子通道,直到将系统中存在的所有的通道都遍历一遍或者在某个VC下面可以成功的出队到一个数据包,则结束此次出队过程。相对于现有技术,本发明的优势在于可基于业务应用优先级的划分、多级多层次的带宽通道,实现灵活、高效、可靠的带宽控制能力。

图1是本发明一实施方式多核并行无锁的QOS流量控制方法的流程图; 图2为本发明一实施方式调度器排队过程的流程图;图3为本发明一实施方式的调度器出队过程的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明一实施方式中多核并行无锁的QOS流量控制系统,通过DPI为核心的深度包检测技术和DFI为核心的深度流行为检测技术,能够精确到对每个session的数据包的检测和控制,同时结合PFQ技术、三速率双色令牌桶算法,提供自定义Pipe通道、自定义 VC (Virtual Channel)通道、保证带宽设置、最大带宽限制、带宽租借、Per-IP带宽控制、 Per-User带宽控制、共享带宽控制、权重设置以及应用优先级等一系列的应用优化和带宽管理控制功能,支持hbound以及Outbound双向的带宽管理与控制。其中,根据自身出口带宽的大小以及流量的使用情况,用户可以自行定义虚拟的带宽通道,如用户可基于自身业务应用的情况,定义不同的Pipe和VC带宽通道,并将不同优先级的协议或业务应用加入到不同的VC通道中,达到多层次的带宽通道管理;通过基于优先级的、多通道的应用优先级管理功能,从而保证在组织的各种带宽使用的环境中,都能实现带宽的有效利用和控制。一条虚拟链路可以拥有独立的VC配置。VC是和网络数据包的应用类型密切相关, 一种或者几种类似的网络应用类型可以划分为一个vc,VC是系统中最底层的节点类型。Pipe是定义在VC之上的一个一定数量VC的集合,是为了体现立体的流量控制而引入的概念,以满足用户希望对某几种业务类型同时加以控制和约束的需求。一个VC只能属于一个确定的Pipe。Shared VC是定义在Pipe之下、VC之上的一个一定数量VC的集合。是为了体现交叉的流量控制而引入的概念,以满足用户希望某几种业务类型之间进行带宽资源的竞争使用的需求。一个Siared VC也只能属于一个确定的Pipe。Shared Pipe是定义在Pipe之上的一定数量的Pipe的集合。是为了体现更高层次的立体、交叉流控特性而引入的概念。Glared Pipe是最顶级的控制节点。其中,Vc、Pipe、Shared Vc,Shared Pipe都统称为“节点”,节点的节点属性包括 NONE 也称为Normal属性,拥有该属性的节点的带宽控制是全局的,不分用户或者IP
地址单独控制;并且该节点设置的带宽就是流经该节点的所有流量的总的带宽,即该节点下的所有用户共享这一个总带宽。PER-H0ST/PER-USER 拥有该属性的节点的带宽控制不是全局的,而是分IP、分用户的,即对每个IP或者用户进行单独控制。并且该节点需设置节点的最大带宽,以及流经该节点的每个IP或者每个用户所享有的带宽。如该节点带宽最大带宽为100Mbps, PER-HOST配置为1Mbps,那么,在该节点总带宽为100Mbps的前提下,每个主机都可以拥有 IMbps的带宽。权重只有可以加入到Siared类型节点下面作为子节点的节点类型才拥有该属性。因此在4种节点类型中,只有Pipe和Vc两种节点拥有此属性,并且只有其父节点是 Shared类型的节点时,该属性才起作用。其本质含义是表示该节点在其父节点上可以分得的带宽(保证带宽和最大带宽)。当VC或者Pipe加入到Siared VC或者Siared Pipe时, VC和Pipe能够分得的带宽是由权重比来决定的。
默认通道即系统运行后,为了能够进行数据包的转发,自动创建的通道。包括 Default Pipe和Default VC。在每条链路的每个方向Gn-bound/Out_bound)下都有一个 Default Pipe,每个Default Pipe下面都有一个Default VC。此外,每个Pipe下面也都有一个 Default VC。Default Pipe和Default VC和普通的Pipe/VC类似,其带宽等配置参数都可以修改,但不能被删除。如图1所示,本发明一实施方式中的多核并行无锁的QOS流量控制的系统采用包驱动的机制运行,QoS流控系统作为整个系统的重要组成部分,其核心就是对流入本系统的每个数据包都进行相应的处理,包括数据包所属用户和通道的识别、CAR (Committed Access Rate)令牌的计算、包的丢弃与缓存、包的选择和发送。其中,该多核并行无锁的QOS 流量控制的方法包括
51、接收数据包;
52、识别所述数据包;优选地,每个从网卡上接收到的数据包,通过DPI&DFI进行识别, 打上相应的VC和其来自的用户的ID标签;
53、通过QoS流控系统的调度器处理所述数据包。优选地,QoS调度器处理包括排队 (Enqueue)过程和出队(Dequeue)过程两大部分,排队过程负责将收到的数据包入队缓存或者丢弃,而出队过程负责找出系统中缓存的可以发送的数据包并交给Rm0n&Rm0n2模块,进行相关的统计只有再将其转发出去,并且只要能够找到符合条件的数据包,将一直持续下去,直到将所有缓存的数据包都发送出去或者找不到符合限速条件的数据包为止。如图2所示,本发明一实施方式调度器排队过程,以每用户进行流量管控为例,包括以下步骤
S10、根据该数据包上所标识的her ID和VC ID,到相应的VC通道下寻找对应用户所属的动态通道;
S20、如果找不到,则创建该通道,并且检查该VC通道是否存在Shared VC ; S30、如果存在,则确认Smred VC下对应的子动态通道的父动态通道是否存在; S40、如果过不存在,则需要创建Siared VC下相应的父动态通道; S50、如果存在,则增加其父动态通道的引用计数;同理,确认和创建Pipe和Smred Pipe下对应的各父动态通道,从而形成一条针对每个用户的通道通道限速链,与已经存在的VC/Shared VC/Pipe/Shared Pipe静态限速链相对应,协同工作(静态限速链针对所有的用户做整体限速控制;动态限速链针对每个用户做特定限速控制),并且,这些静态和动态的通道通过子通道指向父通道的指针连成一条自下而上的单向的链表; S60、从最底层的VC下的子动态通道开始,逐级检查其令牌;
S70、如果为负数,则首先按照单速/双速三色令牌桶算法进行令牌的填充,如果填充只有的令牌值仍然为赋值,则说明目前该用户的流量已经超过其限速值,因此,将收到的该数据包做丢弃处理,排队过程就此结束。S80、如果所有的动态限速链上的动态通道的令牌检查都通过,则说明当前该用户的流量并未超过其限速值,因此,收到的该数据包可以接受放入系统的缓存队列中排队,等待发送,并且,根据该数据包的长度,逐级减去各个动态通道相应的令牌值,排队过程结束。如图3所示,本发明一实施方式调度器出队过程,包括以下步骤5100、检查当前整个QoS流控系统缓存的数据包的数量是否为1?
5101、如果是,那么就进入快速路径直接从之前QoS调度器的排队过程中刚刚入包的那个VC通道下面试图出队出一个包;
5102、如果可以成功出队出一个数据包,则QoS调度器的出队过程就此结束;
5103、如果不可以成功出队出一个数据包,则进入慢速路径。在出队的慢速路径中,采用的是自上而下的轮询查找的机制,出队遍历的顺序是从最顶级的Siared Pipe通道开始,依次遍历各下级子通道,直到将系统中存在的所有的通道都遍历一遍或者在某个VC下面可以成功的出队到一个数据包,则结束此次出队过程。每次找到一个通道,则需要判断其令牌是否为正?如果不为正,则根据单速/双速三色令牌桶算法填充其令牌,如果填充之后令牌仍为负数,则表明当前该通道已经超过了限速值,放弃该通道,寻找下一个同级的通道;如果其令牌符合条件,则进一步检查其 DRR(Deficit round robin)是否为正(DRR是为了保证所有的通道都能够公平的得到发送机会而引入的机制任何一个通道,其可以连续发送的数据包的字节总和是有限制的,达到该限制值,则系统将自动切换到另外一个同级的通道,防止系统中出现某个通道一直在出包而其他的通道处于“饥饿”状态的不公平现象)?如果不为正,则填充其DRR值,并且切换到下一个同级的通道,继续寻找符合条件的通道。当找到VC通道时,则试图从该VC出队一个数据包,如果可以成功的出队到一个数据包,结束此次出队过程。如果遍历完系统中的所有通道,仍然不能够成功的出队出一个数据包,则结束此次出队过程。综上所述,相对于现有技术,本发明的优势在于可基于业务应用优先级的划分、 多级多层次的带宽通道,实现灵活、高效、可靠的带宽控制能力。其中,对带宽控制能力包括
利用系统的带宽分级功能,为组织中某种特定应用或某些重点客户指定最小的保留带宽,以保证用户在不同时间段、不同的网络使用环境中都能得到同样的带宽管理服务和网络使用感受;
为特定应用或某些客户指定最大使用带宽,从而限制非关键应用毫无节制的消耗宝贵的带宽资源,从而保证关键应用的服务质量;
基于保证带宽和最大带宽的控制,结合应用优先级的控制,高优先级协议可租借空闲或低优先级协议通道的带宽,从而保证带宽得到合理的、高效的使用和管理;
可以通过设置某个流量通道的动态子通道参数来控制进入此通道的每个IP地址/用户的保证带宽与最大带宽;
网管人员可以根据需求,可以将若干个Pipe (或者VC)放入一个共享通道中,并设置不同的权重,以达到多样化的流量控制目的。通过Pipe、VC的相关从属关系以及Share Rate Pool通道和权重的设定可以实现多级带宽嵌套的功能。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
权利要求
1.一种多核并行无锁的QOS流量控制的方法,其特征在于,所述方法包括以下步骤S1、接收数据包;S2、识别所述数据包;S3、通过QoS流控系统的调度器处理所述数据包。
2.根据权利要求1所述的方法,其特征在于,所述S2步骤包括通过DPI&DFI对所述数据包进行识别,并打上相应的VC和其来自的用户的ID标签。
3.根据权利要求1所述的方法,其特征在于,所述调度器处理包括排队过程和出队过程,其中,所述排队过程将收到的数据包入队缓存或者丢弃;所述出队过程负责找出系统中缓存的可以发送的数据包并交给Rm0n&Rm0n2模块处理,直到将所有缓存的数据包都发送出去或找不到符合限速条件的数据包为止。
4.根据权利要求3所述的方法,其特征在于,所述排队过程具体包括以下步骤S10、根据所述数据包上所标识的her ID和VC ID,到相应的VC通道下寻找对应用户所属的动态通道;S20、如果找不到,则创建该通道,并且检查该VC通道是否存在Shared VC ;S30、如果存在,则确认Smred VC下对应的子动态通道的父动态通道是否存在;S40、如果过不存在,则需要创建Siared VC下相应的父动态通道;S50、如果存在,则增加其父动态通道的引用计数;同时确认和创建Pipe和^ared Pipe下对应的各父动态通道,从而形成一条针对每个用户的通道通道限速链,与已经存在的VC/Shared VC/Pipe/Shared Pipe静态限速链相对应,协同工作,并将静态和动态的通道通过子通道指向父通道的指针连成一条自下而上的单向的链表;S60、从最底层的VC下的子动态通道开始,逐级检查其令牌;S70、如果为负数,则按照单速/双速三色令牌桶算法进行令牌的填充,如果填充只有的令牌值仍然为赋值,则将收到的该数据包做丢弃处理,排队过程结束;S80、如果所有的动态限速链上的动态通道的令牌检查都通过,则将所述数据包放入缓存队列中排队,等待发送,并根据该数据包的长度,逐级减去各个动态通道相应的令牌值, 排队过程结束。
5.根据权利要求3或4所述的方法,其特征在于,所述出队过程包括S100、检查当前整个QoS流控系统缓存的数据包的数量是否为1?S101、如果是,进入快速路径从QoS调度器的排队过程中VC通道下出队数据包;S102、如果可以成功出队一个数据包,则QoS调度器的出队过程就此结束;S103、如果不可以成功出队一个数据包,则进入慢速路径,其中,在所述慢速路径中,采用的是自上而下的轮询查找的机制,出队遍历的顺序是从最顶级的Glared Pipe通道开始,依次遍历各下级子通道,直到将系统中存在的所有的通道都遍历一遍或者在某个VC下面可以成功的出队到一个数据包,则结束此次出队过程。
全文摘要
本发明提供了一种多核并行无锁的QOS流量控制的方法,包括以下步骤S1、接收数据包;S2、识别所述数据包;S3、通过QoS流控系统的调度器处理所述数据包。相对于现有技术,本发明的优势在于可基于业务应用优先级的划分、多级多层次的带宽通道,实现灵活、高效、可靠的带宽控制能力。
文档编号H04L12/56GK102355422SQ201110315458
公开日2012年2月15日 申请日期2011年10月17日 优先权日2011年10月17日
发明者张庆, 王俊华, 胡斌 申请人:苏州迈科网络安全技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1