流量统计方法及装置与流程

文档序号:12789334阅读:242来源:国知局
流量统计方法及装置与流程

本申请涉及网络通信技术领域,特别涉及一种流量统计方法及装置。



背景技术:

交换机、路由器等网络转发设备上可以配置路由口、路由子接口、三层聚合口、以及三层聚合子接口等三层以太网接口,网络转发设备需要对本设备上的各个三层以太网接口上的流量进行统计。

对于路由子接口和三层聚合子接口而言,可以为路由子接口和三层聚合子接口中的每个子接口分别配置不同的保留VLAN(Virtual Local Area Network,虚拟局域网),通过保留VLAN来对子接口上的入方向流量进行统计。

在对路由子接口和三层聚合子接口上的出方向流量进行统计时,是通过每个子接口所属VLAN(为三层VLAN)进行统计的。但是,这样就会存在以下问题:

若存在路由子接口和三层聚合子接口使用了同一子接口编号,此时该路由子接口和该三层聚合子接口所属VLAN相同,则通过该VLAN统计出的出方向流量中既包括该路由子接口上的出方向流量,也包括该三层聚合子接口上的出方向流量,因此,通过该方法统计得到的出方向流量不准确,无法准确统计出该路由子接口和该三层聚合子接口各自的出方向流量。



技术实现要素:

有鉴于此,本申请提供一种流量统计方法及装置。

具体地,本申请是通过如下技术方案实现的:

一方面,提供了一种流量统计方法,该方法应用于网络转发设备,该方法包括:

当需要从路由子接口上发出报文时,根据路由子接口所在物理端口和路由子接口所属VLAN对应的第一出方向逻辑接口索引,在出方向封装表中进行查表,并对第一出方向逻辑接口索引的查表次数进行累加;

根据第一出方向逻辑接口索引的查表次数确定路由子接口发送报文的数目,计算路由子接口在设定时间内的出方向流量。

另一方面,还提供了一种流量统计装置,该装置应用于网络转发设备上,该装置包括:

查表单元,用于当需要从路由子接口上发出报文时,根据路由子接口所在物理端口和路由子接口所属VLAN对应的第一出方向逻辑接口索引,在出方向封装表中进行查表,并对第一出方向逻辑接口索引的查表次数进行累加;

统计单元,用于根据第一出方向逻辑接口索引的查表次数确定路由子接口发送报文的数目,计算路由子接口在设定时间内的出方向流量。

在本申请的以上技术方案中,可以通过路由子接口对应的出方向逻辑接口(OutLIF)索引,来对路由子接口上的出方向流量进行统计,由于在分配出方向逻辑接口索引时结合了路由子接口所在物理端口,而物理端口不会同时作为路由子接口和加入三层聚合子接口,因此,可以为路由子接口分配单独的出方向逻辑接口索引,最终,可以通过该路由子接口对应的出方向逻辑接口索引准确的统计出该路由子接口上的出方向流量。

附图说明

图1是本申请实施例示出的路由子接口上的出方向流量统计方法的流程图;

图2是本申请实施例示出的三层聚合子接口上的出方向流量统计方法的流程图;

图3是本申请实施例示出的流量统计装置的一种结构示意图;

图4是本申请实施例示出的流量统计装置的另一种结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在现有技术中,若存在路由子接口和三层聚合子接口使用了同一子接口编号,此时该路由子接口和该三层聚合子接口所属VLAN相同,则通过该VLAN统计出的出方向流量中既包括该路由子接口上的出方向流量,也包括该三层聚合子接口上的出方向流量,因此,通过该方法统计得到的出方向流量不准确,无法准确统计出该路由子接口和该三层聚合子接口各自的出方向流量。

为了解决现有技术中存在的上述问题,本申请以下实施例中提供了一种流量统计方法,以及一种可以应用该方法的装置。交换机、路由器等网络转发设备可以使用本申请实施例的方法,来准确的统计路由子接口和三层聚合子接口在出方向上的三层数据流的流量。

本申请实施例的方法可以由网络转发设备来执行,在该方法中,在创建了路由子接口后,为该路由子接口所在物理端口和该路由子接口所属VLAN(三层VLAN)分配第一OutLIF(Out Logic Interface,出方向逻辑接口)索引;以及,在出方向封装表(记为Table1)中记录第一OutLIF索引对应的第一出方向逻辑接口表项,其中,第一出方向逻辑接口表项不包含封装信息。

在创建了三层聚合子接口后,针对该三层聚合子接口中包含的每个成员接口,为该成员接口所在物理端口和该三层聚合子接口所属VLAN分配一个第二OutLIF索引;以及,在出方向封装表Table1中记录每个第二OutLIF索引对应的第二出方向逻辑接口表项,其中,每个第二出方向逻辑接口表项不包含封装信息。其中,三层聚合子接口中包含多个成员接口。

通过上述OutLIF索引分配过程,路由子接口对应一个第一OutLIF索引,而三层聚合子接口对应多个第二OutLIF索引,由于在分配OutLIF索引时结合了物理端口,而同一物理端口不可能既作为路由子接口,也加入三层聚合子接口,因此,即使路由子接口和三层聚合子接口使用了同一子接口编号,该路由子接口和该三层聚合子接口所属VLAN相同,它们对应的OutLIF索引也不会相同,也就是说,路由子接口和三层聚合子接口中的每个子接口对应的OutLIF索引各不相同。

由于本申请实施例的方法仅仅是为了统计三层数据流的流量,因此,第一OutLIF索引对应的第一出方向逻辑接口表项、每个第二OutLIF索引对应的第二出方向逻辑接口表项中均不包含封装信息,从而,不会影响报文的正常三层转发。

基于此,假设,网络转发设备上的某个路由子接口和某个三层聚合子接口的子接口编号相同,均为.A,此时,这2个子接口所属VLAN均为Interface VLAN A。其中,路由子接口.A(即子接口编号为.A的路由子接口)所在物理端口为Port1_1;三层聚合子接口.A(即子接口编号为.A的三层聚合子接口)中包含3个成员接口,分别记为成员接口IF3_1、成员接口IF3_2、成员接口IF3_3,这3个成员接口所在物理端口分别为Port1_2、Port1_3、Port1_4。

针对路由子接口.A,为Port1_1和Interface VLAN A分配第一OutLIF索引为OutLIF2_1。此时,路由子接口.A对应于第一OutLIF索引OutLIF2_1。

针对三层聚合子接口.A中的成员接口IF3_1,为Port1_2和Interface VLAN A分配第二OutLIF索引为OutLIF2_2;针对三层聚合子接口.A中的成员接口IF3_2,为Port1_3和Interface VLAN A分配第二OutLIF索引为OutLIF2_3;针对三层聚合子接口.A中的成员接口IF3_3,为Port1_4和Interface VLAN A分配第二OutLIF索引为OutLIF2_4。此时,三层聚合子接口.A对应于3个第二OutLIF索引:OutLIF2_2、OutLIF2_3、OutLIF2_4。

如图1所示,本申请实施例中的路由子接口.A上的出方向流量统计方法,包括以下步骤:

步骤S101,当需要从路由子接口.A上发出报文时,根据该路由子接口.A所在物理端口Port1_1和该路由子接口.A所属Interface VLAN A对应的第一OutLIF索引OutLIF2_1,在出方向封装表Table1中进行查表,并对OutLIF2_1的查表次数进行累加;

当需要转发报文时,根据该报文的目的IP地址,在路由表中查找对应的下一跳信息,其中,下一跳信息中包括:出接口和OutLIF索引;若该出接口为路由子接口.A,则确定需要从路由子接口.A上发出该报文。

之后,根据该路由子接口.A所在物理端口Port1_1和该路由子接口.A所属Interface VLAN A对应的第一OutLIF索引OutLIF2_1,在出方向封装表Table1中查找匹配的第一出方向逻辑接口表项,由于第一出方向逻辑接口表项中不包含封装信息,因此,不会使用封装信息对报文进行封装,只需对OutLIF2_1的查表次数进行累加即可,以便对该路由子接口.A上的出方向流量进行统计;

另外,为了对报文进行转发,需要根据下一跳信息中的OutLIF索引,在另一出方向封装表(记为Table2)中查找对应的封装信息,使用该封装信息对该报文进行封装后,通过该路由子接口.A转发出去。

其中,出方向封装表Table2用于封装报文,而本申请实施例中的出方向封装表Table1用于统计出方向流量。

在实际实施过程中,可以在计数(Counter)表中记录出方向封装表Table1中各个OutLIF索引的查表次数,例如,每次根据OutLIF2_1在出方向封装表Table1中进行查表时,将计数表中记录的OutLIF2_1的查表次数加1。

每次从路由子接口.A上发出报文时,均会执行上述步骤S101,从而,可以记录得到路由子接口.A发送报文的数目。

步骤S102,根据OutLIF2_1的查表次数确定路由子接口.A发送报文的数目,计算路由子接口.A在设定时间内的出方向流量。

当需要统计路由子接口.A在T时间内的出方向流量时,可以获取t1时刻的OutLIF2_1的查表次数Count_t1,以及t2=t1+T时刻的OutLIF2_1的查表次数Count_t2,计算Count_t2与Count_t1的差值,将该差值除T即可得到路由子接口.A在T时间内的出方向流量。

如图2所示,本申请实施例中的三层聚合子接口.A上的出方向流量统计方法,包括以下步骤:

步骤S201,当需要从三层聚合子接口.A上发出报文时,从三层聚合子接口.A的3个成员接口中选择一个成员接口IF3_2用于转发该报文;

具体的,当需要转发报文时,根据该报文的目的IP地址,在路由表中查找对应的下一跳信息,其中,下一跳信息中包括:出接口和OutLIF索引;若该出接口为三层聚合子接口.A,则确定需要从三层聚合子接口.A上发出该报文。由于三层聚合子接口.A中包含3个成员接口,因此,需要使用Hash算法从这3个成员接口中选择一个成员接口来转发该报文,假设选中的成员接口为成员接口IF3_2。

步骤S202,根据成员接口IF3_2所在物理端口Port1_3和三层聚合子接口.A所属Interface VLAN A对应的第二OutLIF索引OutLIF2_3,在出方向封装表Table1中进行查表,对OutLIF2_3的查表次数进行累加;

根据成员接口IF3_2所在物理端口Port1_3和三层聚合子接口.A所属Interface VLAN A对应的第二OutLIF索引OutLIF2_3,在出方向封装表Table1中查找匹配的第二出方向逻辑接口表项,由于第二出方向逻辑接口表项中不包含封装信息,因此,不会使用封装信息对报文进行封装,只需对OutLIF2_3的查表次数进行累加即可,以便对成员接口IF3_2上的出方向流量进行统计;

另外,为了对报文进行转发,需要根据下一跳信息中的OutLIF索引,在另一出方向封装表Table2中查找对应的封装信息,使用该封装信息对该报文进行封装后,通过成员接口IF3_2转发出去。

其中,出方向封装表Table2用于封装报文,而本申请实施例中的出方向封装表Table1用于统计出方向流量。

在实际实施过程中,可以在计数(Counter)表中记录出方向封装表Table1中各个OutLIF索引的查表次数,例如,每次根据OutLIF2_3在出方向封装表Table1中进行查表时,将计数表中记录的OutLIF2_3的查表次数加1,可见,OutLIF2_3的查表次数即为成员接口IF3_2发送报文的数量。

每次从三层聚合子接口.A上发出报文时,均会执行上述步骤S201至步骤S202的流程,从而,可以记录得到三层聚合子接口.A中的成员接口IF3_1、成员接口IF3_2、以及成员接口IF3_3各自发送报文的数量。

步骤S203,根据OutLIF2_2的查表次数、OutLIF2_3的查表次数、OutLIF2_4的查表次数,计算总和;根据计算得到的总和确定三层聚合子接口.A发送报文的数目,计算三层聚合子接口.A在设定时间内的出方向流量。

当需要统计三层聚合子接口.A在T时间内的出方向流量时,可以获取t1时刻的OutLIF2_2的查表次数、OutLIF2_3的查表次数、OutLIF2_4的查表次数的总和Sum_t1,以及获取t2=t1+T时刻的OutLIF2_2的查表次数、OutLIF2_3的查表次数、OutLIF2_4的查表次数的总和Sum_t2,计算Sum_t2与Sum_t1的差值,将该差值除T即可得到三层聚合子接口.A在T时间内的出方向流量。

后续,三层聚合子接口.A中包含的成员接口可能会发生变化,当三层聚合子接口.A中新增了成员接口IF3_4时,为新增成员接口IF3_4所在物理端口Port1_5和三层聚合子接口.A所属Interface VLAN A分配一个新增的第二OutLIF索引OutLIF2_5;在出方向封装表Table1中记录新增的第二OutLIF索引OutLIF2_5对应的第二出方向逻辑接口表项,其中,该新增的第二OutLIF索引OutLIF2_5对应的第二出方向逻辑接口表项不包含封装信息。此时,三层聚合子接口.A对应于4个OutLIF:OutLIF2_2、OutLIF2_3、OutLIF2_4、OutLIF2_5。

另外,当三层聚合子接口.A中删除了成员接口IF3_3时,删除成员接口IF3_3所在物理端口Port1_4和三层聚合子接口.A所属Interface VLAN A对应的第二OutLIF索引OutLIF2_4,并且,删除出方向封装表Table1中OutLIF2_4对应的第二出方向逻辑接口表项。之后,还可以将计数表中记录的OutLIF2_4的查表次数清0。

本申请上述实施例中,可以通过路由子接口和三层聚合子接口中的每个子接口对应的OutLIF索引,来对该子接口上的出方向流量进行统计,由于在分配OutLIF索引时结合了物理端口,从而,在路由子接口和三层聚合子接口使用了同一子接口编号,所属VLAN相同的情况下,可以使得它们对应的OutLIF索引不同,最终,通过各自OutLIF索引准确的统计出各自的出方向流量,解决了现有技术中存在的统计得到的出方向流量不准确,无法准确统计出路由子接口和三层聚合子接口各自的出方向流量的问题。

显然,本申请实施例的上述方法,对于任意的路由子接口和三层聚合子接口均适用,无论是使用了同一子接口编号的路由子接口和三层聚合子接口,还是使用不同子接口编号的路由子接口和三层聚合子接口,均适用于该方法。

网络转发设备在使用本申请实施例的方法,统计得到路由子接口和三层聚合子接口上的出方向流量后,当网络管理系统(Network Management System,NMS)对该网络转发设备进行管理时,可以向该网络转发设备获取各个接口上的流量,其中包括路由子接口和三层聚合子接口上的出方向流量。

与前述流量统计方法的实施例相对应,本申请还提供了流量统计装置的实施例,该装置应用于网络转发设备上。

请参考图3,本申请实施例的流量统计装置中包括:查表单元301和统计单元302,其中:

查表单元301,用于当需要从路由子接口上发出报文时,根据路由子接口所在物理端口和路由子接口所属VLAN对应的第一出方向逻辑接口索引,在出方向封装表中进行查表,并对第一出方向逻辑接口索引的查表次数进行累加;

统计单元302,用于根据第一出方向逻辑接口索引的查表次数确定路由子接口发送报文的数目,计算路由子接口在设定时间内的出方向流量。

其中,查表单元301,还用于当需要从三层聚合子接口上发出报文时,从三层聚合子接口的两个以上成员接口中选择一个成员接口用于转发该报文;根据所选的成员接口所在物理端口和三层聚合子接口所属VLAN对应的第二出方向逻辑接口索引,在出方向封装表中进行查表,对所选的成员接口所在物理端口和三层聚合子接口所属VLAN对应的第二出方向逻辑接口索引的查表次数进行累加;

统计单元302,还用于根据每个成员接口所在物理端口和三层聚合子接口所属VLAN对应的第二出方向逻辑接口索引的查表次数,计算总和;根据总和确定三层聚合子接口发送报文的数目,计算三层聚合子接口在设定时间内的出方向流量。

如图4所示,上述流量统计装置中还包括:第一更新单元303,用于在需要从路由子接口上发出报文之前,为路由子接口所在物理端口和路由子接口所属VLAN分配第一出方向逻辑接口索引;在出方向封装表中记录第一出方向逻辑接口索引对应的第一出方向逻辑接口表项;第一出方向逻辑接口表项不包含封装信息。

如图4所示,上述流量统计装置中还包括:第二更新单元304,用于在需要从三层聚合子接口上发出报文之前,为每个成员接口所在物理端口和三层聚合子接口所属VLAN分配一个第二出方向逻辑接口索引;在出方向封装表中记录每个第二出方向逻辑接口索引对应的第二出方向逻辑接口表项;每个第二出方向逻辑接口表项不包含封装信息。

如图4所示,上述流量统计装置中还包括:第三更新单元305,还用于当三层聚合子接口中新增了成员接口时,为新增成员接口所在物理端口和三层聚合子接口所属VLAN分配一个新增的第二出方向逻辑接口索引;在出方向封装表中记录新增的第二出方向逻辑接口索引对应的第二出方向逻辑接口表项;新增的第二出方向逻辑接口索引对应的第二出方向逻辑接口表项不包含封装信息;还用于当三层聚合子接口中删除成员接口时,删除成员接口所在物理端口和三层聚合子接口所属VLAN对应的第二出方向逻辑接口索引及其第二出方向逻辑接口表项。

显然,在实际实施过程中,第一更新单元303、第二更新单元304、第三更新单元305可以分别独立设置,也可以将其中的任意两个单元集成到同一单元中部署,或者,还可以将这三者集成到同一单元中部署,本申请实施例对此不做限定。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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