一种自动识别网络流量并做限速的芯片实现方法与流程

文档序号:11156400阅读:1481来源:国知局
一种自动识别网络流量并做限速的芯片实现方法与制造工艺

本发明涉及网络流量限速技术,具体涉及一种自动识别网络流量并做限速的芯片实现方法。



背景技术:

随着网络技术的飞速发展,网络应用不断增加,高速网络传输承载着巨大的数据流量,为了提高用户的体验,交换机需要精确的识别各种流量,并根据不同的需求对不通过的流量做限速。

交换芯片是数据转发的核心,当前主流交换芯片实现精确流量识别并对流量做限速一般通过查找ACL(Access Control List,访问控制列表)来实现。ACL可以匹配多种关键信息,例如源IP地址、目的IP地址等,当网络流量通过交换芯片的时候,查询ACL表,如果匹配,则从ACL的AD(Associated Data,关联数据)中获取与限速有关的信息,并根据此信息决定是否丢弃这个报文,达到了限速的目的。

随着网络应用的不断增加、网络流量的不断增大,芯片需要识别的流量将变得越来越多,在巨大的流量背景下,要精确识别出不同的流量需要网络管理员配置多条流的信息,识别的流量越多需要配置的流的数目就越大,管理网络也变的来越复杂。



技术实现要素:

针对上述技术的不足,本发明的主要目的在于,提供一种方法,能够自动的识别出不同的流量,并使用令牌桶机制对每股流量做限速。

为实现前述目的,本发明公开了一种自动识别网络流量并做限速的芯片实现方法,具体包括:

芯片根据端口的属性,配置至少一种关键域作为Key存放到芯片内部的存储器中,Key值相同的报文视为同一条流;

在ACL表的关联数据中增加令牌数字段,用于记录流所需的令牌数;

芯片以固定的速率向令牌桶内发放令牌,同时更新所述关联数据中对应的令牌数;

基于上述设置,当报文进入芯片时,芯片根据报文信息新组成的Key值到所述存储器中进行匹配,查找是否存在相同的流,若存在相同的流,进一步查找该流在所述关联数据中对应的令牌数,若令牌数为0,则在芯片内做出标识并丢弃该报文;否则,发放令牌使其通过并相应地减少所述令牌数;若不存在相同的流,则将该报文信息作为一条新的流存入芯片。

优选地,所述将该报文信息作为一条新的流存入芯片包括:将当前报文的KEY值存入所述存储器中,同时根据端口属性在所述关联数据中设置对应的默认值。

优选地,所述关键域包括源IP地址、目的IP地址、TCP/UDP源端口号、TCP/UDP目的端口号、三层协议类型。

优选地,所述芯片以固定的速率向令牌桶内发放令牌包括:

芯片定时扫描每条流;

获取当前扫描的流的速率,据此计算出应为所述当前流发放的令牌数,并向令牌桶内增加令牌。

优选地,所述关联数据中还包括索引信息Profile Id,用于关联其他表的信息。

优选地,所述芯片以固定的速率向令牌桶内发放令牌包括:

芯片定时扫描每条流;

检查每条流对应的Profile Id是否为0,若Profile Id为0,则跳过当前流;若Profile Id不为0,则根据Profile Id索引其他表查询当前流的速率,据此计算出应为所述当前流发放的令牌数,并向令牌桶内增加令牌。

优选地,所述存储器包括RAM存储器。

与现有技术相比,本发明的优点在于:本发明公开的一种自动识别网络流量并做限速的芯片实现方法,通过配置关键域并由芯片自动匹配的方式进行网络流量识别,同时利用定时向令牌桶发放令牌的方式对识别出的不同流量进行限速,实现过程简单且便于网络管理,大大降低了网络管理的复杂度,从而提高网络效率。

附图说明

图1是本发明一实施例提出的一种自动识别网络流量并做限速的芯片实现方法中自动识别网络流量过程的示意图;

图2是本发明一实施例提出的一种自动识别网络流量并做限速的芯片实现方法中发放令牌过程的示意图。

具体实施方式

鉴于现有技术中的不足,本案发明人经长期研究和大量实践,得以提出本发明的技术方案。如下将对该技术方案、其实施过程及原理等作进一步的解释说明。

本发明实施例提出的一种自动识别网络流量并做限速的芯片实现方法,通过识别不同的流量并结合令牌桶机制对每股流量以一定的速率发送令牌,从而达到限速的目的。具体包括:

A.芯片根据端口的属性,配置至少一种关键域作为Key存放到芯片内部的存储器中,Key值相同的报文视为同一条流;

当报文从某个端口进入后,芯片会根据端口的属性,选择至少一个关键域来表示每股流量,源IP地址,目的IP地址,TCP/UDP源端口号,TCP/UDP目的端口号,三层协议类型等属性都可以作为关键域。芯片将关键域作为Key,存放到芯片内部的存储器,如RAM中,则RAM表项中每个存放Key的条目对应着一个流。

例如网络管理员配置关键域为源IP地址和目的IP地址,那么源IP地址和目的IP地址都相等的报文都将被视为属于同一股流量,并将源IP地址和目的IP地址作为这一条流的Key存入所述存储器的表项中。

通过配置关键域的方式识别流量,网络管理员只需要配置需要关注的端口属性,即可自动的识别出不同的流量。另外,若需要调整流量识别的精确度时,只需要调整组成Key的关键域的个数即可。

B.在ACL表的关联数据中添加流对应的令牌数信息,芯片以固定的速率向令牌桶内发放令牌,同时更新所述关联数据中对应的令牌数;

限速的功能是通过令牌桶机制实现的,在网络处理器中,令牌桶是网络设备中的内部存储池,而令牌是以给定的速率填充令牌的虚拟信息包,每个进入网络处理器的报文都需要取得相应的令牌后才能通过网络处理器,当令牌桶中没有令牌时会把报文丢弃。通过固定的速率向令牌桶中发放令牌,就能对网络流量达到限速的目的。

在ACL的AD中增加令牌数Token字段,用于存放每条流对应的令牌数。所述发放令牌的流程具体包括:

芯片定时扫描每条流;

获取当前扫描的流的速率,据此计算出应为所述当前流发放的令牌数,并向令牌桶内增加令牌。

基于上述A、B操作,当有报文进入芯片的端口时,处理流程为:

芯片根据当前报文的Key值匹配所述存储器中是否存在相同的流,若存在相同的流,则查找AD中流对应的Token值,并进一步判断:

若令牌数为0,则在芯片内做出标识并丢弃该报文;否则,发放令牌使其通过并相应地减少所述令牌数;

若不存在相同的流,则将该报文信息作为一条新的流存入芯片。

此处本领域技术人员需要注意的是,上述A、B标识仅用以区分本发明不同的操作内容,并不用来限制本发明的执行顺序。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

下面通过一实施例对本发明的技术方案进行进一步说明,图1为本发明一实施例提出的一种自动识别网络流量并做限速的芯片实现方法中自动识别网络流量过程的示意图,具体过程包括:

步骤101,根据报文信息新组成的Key进行查找;

对进入的报文,芯片会根据配置的关键域选择端口属性组成新的Key,并在存储器内进行查找。

步骤102,判断存储器的表项中是否存在匹配的条目,若存在,则执行步骤103;否则执行步骤104;

Key相同的报文视为同一股流量,若匹配到相同的Key,表示存储器中存在与当前报文相同的流信息;匹配不到则表示存储器中还不存在与当前报文相同的流信息。

步骤103,增加一条新的流;

将当前报文对应的Key值存入存储器,作为一条新增加的流信息。同时,应在关联数据中增加对应字段的默认值,默认值根据端口属性设置。

步骤104,判断对应的令牌数是否为0,若为0,执行步骤105;否则执行步骤106;

在存储器查询到与当前报文匹配的Key后,则进一步查询关联数据中对应的令牌数Token,检查Token是否为0,

步骤105,标识并丢弃报文,执行步骤107;

如果Token为0,表示无令牌可用,则在芯片内部做一个标识,并将此报文丢弃。

步骤106,发送令牌转发报文,同时相应地减少所述令牌数并更新AD中的Token值;

根据报文领走的令牌数,将对应的Token值减少,并且将更新后的Token值回写到对应的关联数据中;

步骤107,识别结束。

进一步地,所述关联数据AD中还包括索引信息Profile Id字段,用于关联其他表的信息。

图2是本发明一实施例提出的一种发送令牌过程的流程图,具体包括:

步骤201,定时扫描每条流,芯片以固定的时间间隔扫描每条流;

步骤202,判断Profile Id是否为0,若为0,返回步骤201;否则执行步骤203;

对每条流检查Profile Id是否为0,0表示无效,跳过这当前流。

步骤203,获取AD中的Token值和Profile Id值。

步骤204,计算令牌数,更新Token值,而后返回步骤201。

根据Profile Id得到当前流的速率,并据此计算出应发放多少张令牌,增加Token值,并将更新后的Token值回写到AD中。

应当理解,上述实施例仅为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1