一种采样方法和网络芯片与流程

文档序号:13763302阅读:143来源:国知局
一种采样方法和网络芯片与流程

本发明涉及通信技术,尤指一种采样方法和网络芯片。



背景技术:

Netflow技术是一种基于网络流信息的统计与发布技术,通过Netflow协议能对网络协议(Internet Protocol,IP)/多协议标签交换(Multi-Protocol Label Switching,MPLS)网络的通信流量进行详细的行为模式分析和计量,并提供网络运行的详细统计数据。通过Netflow技术统计的流信息可以带来以下几个应用:网络流量分析及容量规划——经过长时间的数据采集,可以了解整体网络流量和重要应用带宽的占用状况及其变化趋势,用户的使用模式等信息,为今后的网络规划和升级提供决策参考;流量计费——基于Netflow可实现多种计费方式,如基于流量、不同的时间段、服务质量(Quality of Service,QoS)、应用类型、自治域计费等;网络监测——NetFlow提供近乎实时的网络监测能力。当网络出现问题时,它提供的信息可以帮助快速地定位问题或者可以发现潜在的网络问题。

Netflow技术是一般通过网络芯片(例如网络设备中的专用ASIC芯片)实现流量采样,通常通过计数器实现,比如采样比为N:1,典型的做法是网络芯片对报文进行统计,当计数达到N时,首先进行报文复制采样,其次网络芯片要对计数器进行清零。

现有技术方案中网络芯片对计数器的操作一般是RMW(Read+Modify+Write,读+更新+写)操作,比较费时,极大影响了网络芯片的转发性能。由于目前多重采样业务共存,比如端口采样,端口下各种报文类型的采样,流采样等同时存在,这些类型采样叠加在一起,造成了网络芯片和计数器间的访问带宽过大,降低了网络芯片的转发性能。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种采样方法和网络芯片,能够降低网络芯片和计数器间的访问带宽,提高网络芯片的转发性能。

为了达到本发明目的,本发明实施例提供了一种采样方法,所述方法包括:

当网络芯片确定需要采样时,所述网络芯片接收到报文后对计数器索引进行加X操作,并读取所述计数器的返回值,所述返回值中包含溢出标记的值以及加X操作后的所述计数器索引;其中,X为预先设定的值,所述溢出标记的值包括:第一预设值或第二预设值,所述第一预设值表示加X操作后所述计数器溢出,所述第二预设值表示加X操作后所述计数器未溢出;

所述网络芯片判断所述溢出标记的值是否为所述第一预设值;

若所述溢出标记的值为所述第一预设值,则所述网络芯片进行采样。

进一步的,所述方法还包括:

若所述溢出标记的值为所述第二预设值,则所述网络芯片转发所述报文,不进行采样。

进一步的,所述方法之前还包括:

所述网络芯片获取采样信息,所述采样信息中包括:采样标记、所述计数器索引以及X;其中,所述采样标记包括第一标记和第二标记,所述第一标记用于指示所述网络芯片需要采样,所述第二标记用于指示所述网络芯片不需要采样;

当所述网络芯片获取到的所述采样标记为所述第一标记时,确定需要采样。

进一步的,当所述计数器的位数为M且采样比为N时,X为2M/N,M和N均为正整数。

进一步的,所述采样包括:

端口采样、流采样,所述端口采样包括:单播类型采样、组播类型采样、或多协议标签交换MPLS类型采样。

本发明实施例提供了一种网络芯片,所述网络芯片包括:

处理单元,当确定需要采样时,在接收到报文后对计数器索引进行加X操作,并读取所述计数器的返回值,所述返回值中包含溢出标记的值以及加X操作后的所述计数器索引;其中,X为预先设定的值,所述溢出标记的值包括:第一预设值或第二预设值,所述第一预设值表示加X操作后所述计数器溢出,所述第二预设值表示加X操作后所述计数器未溢出;

判断单元,用于判断所述溢出标记的值是否为所述第一预设值;

采样单元,用于若所述溢出标记的值为所述第一预设值,则进行采样。

进一步的,所述网络芯片还包括:

转发单元,用于若所述溢出标记的值为所述第二预设值,则转发所述报文,不进行采样。

进一步的,所述网络芯片还包括:

获取单元,用于获取采样信息,所述采样信息中包括:采样标记、所述计数器索引以及X;其中,所述采样标记包括第一标记和第二标记,所述第一标记用于指示所述网络芯片需要采样,所述第二标记用于指示所述网络芯片不需要采样;

确定单元,用于当获取到的所述采样标记为所述第一标记时,确定需要采样。

进一步的,当所述计数器的位数为M且采样比为N时,X为2M/N,M和N均为正整数。

进一步的,所述采样包括:

端口采样、流采样,所述端口采样包括:单播类型采样、组播类型采样、或多协议标签交换MPLS类型采样。

本发明实施例提供的一种采样方法和网络芯片,当网络芯片确定需要采样时,网络芯片接收到报文后对计数器索引进行加X操作,并读取计数器的返回值,返回值中包含溢出标记的值以及加X操作后的计数器索引;其中,X为预先设定的值,溢出标记的值包括:第一预设值或第二预设值,第一预 设值表示加X操作后计数器溢出,第二预设值表示加X操作后计数器未溢出;网络芯片判断溢出标记的值是否为第一预设值;若溢出标记的值为第一预设值,则网络芯片进行采样。相较于现有技术方案中很多类型的采样叠加起来,会造成网络芯片和计数器间访问带宽太大,通过本发明实施例提供的采样方法,可以有效降低网络和计数器间的访问带宽,提高转发性能。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为网络芯片与计数器的连接示意图;

图2为现有的实现端口采样的端口表示意图;

图3为现有的实现端口采样的流程图;

图4为本发明实施例提供的一种采样方法的流程示意图一;

图5为本发明实施例提供的一种采样方法的流程示意图二;

图6为本发明实施例提供的一种网络芯片的结构示意图一;

图7为本发明实施例提供的一种网络芯片的结构示意图二;

图8为本发明实施例中的实施例一中提供的端口表示意图;

图9为本发明实施例中的实施例一中计数器返回的信息的结构示意图;

图10为本实施例中的实施例一中实现采样的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申 请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

为了便于理解本发明实施例提供的技术方案,先对现有的采样方法进行简要介绍:

图1所示为网络芯片与计数器的连接示意图,网络芯片收到报文后对报文进行计数,计数器通常存放在静态随机存取存储器(Static Random Access Memory,SRAM)或者同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)中,网络芯片对计数器实现读取,计数累加,回写三步操作。

图2所示为现有的实现端口采样的端口表示意图,SF为Sample Flag,即采样标记,标示是否要对报文进行采样,计数器索引Idx为该采样条目相应的计数器索引,N为采样比配置为N:1情况下的采样比。

图3所示为现有的实现端口采样的流程图,步骤为:

301、开始;

302、网络芯片读取端口表,获取采样信息;

303、网络芯片对302读取的采样标记SF进行判断,SF=0,则不采样,进入步骤308;SF=1,进入步骤304;

304、网络芯片以302读取的计数器索引Idx为索引,对计数器进行加一操作,并读取计数器返回的更新的计数器索引Idx的值m;

305、网络芯片判断是否达到采样比;

如果m<N,则未达到采样比,进入步骤308;否则进入步骤306;

306、网络芯片对计数器清零;

307、网络芯片进入采样流程,对报文进行复制,上送到目的地进行处理;

308、网络芯片正常转发报文。

本发明实施例提供一种采样方法,如图4所示,该方法包括:

步骤102、当网络芯片确定需要采样时,网络芯片接收到报文后对计数器索引进行加X操作,并读取计数器的返回值,返回值中包含溢出标记的值以及加X操作后的计数器索引;其中,X为预先设定的值,溢出标记的值包括:第一预设值或第二预设值,第一预设值表示加X操作后计数器溢出,第二预设值表示加X操作后计数器未溢出。

步骤104、网络芯片判断溢出标记的值是否为第一预设值。

步骤106、若溢出标记的值为第一预设值,则网络芯片进行采样。

进一步的,如图5所示,该方法还可以包括:

步骤107、若溢出标记的值为第二预设值,则网络芯片转发报文,不进行采样。

进一步的,如图5所示,该方法之前还可以包括:

步骤100、网络芯片获取采样信息,采样信息中包括:采样标记、计数器索引以及X;其中,采样标记包括第一标记和第二标记,第一标记用于指示网络芯片需要采样,第二标记用于指示网络芯片不需要采样。

步骤101、当网络芯片获取到的采样标记为第一标记时,确定需要采样。

示例性的,上述采样标记(Sample Flag,SF)包括的第一标记为1,第二标记为0,当SF=1时,网络芯片确定需要采样;当SF=0时,网络芯片确定不需要采样。

进一步的,当计数器的位数为M且采样比为N时,X为2M/N,M和N均为正整数。

进一步的,采样包括:端口采样、流采样,端口采样包括:单播类型采样、组播类型采样、或多协议标签交换(Multi-Protocol Label Switching,MPLS)类型采样。

需要说明的是,本发明实施例提供的技术方案对各种类型的采样都有效,比如端口采样、流采样等,对于流采样,可以借助访问控制列表(Access Control Lists,ACL)实现。另外,本本发明并不限于应用于上述采样方式。

本发明实施例提供的一种采样方法,当网络芯片确定需要采样时,网络芯片接收到报文后对计数器索引进行加X操作,并读取计数器的返回值,返回值中包含溢出标记的值以及加X操作后的计数器索引;其中,X为预先设定的值,溢出标记的值包括:第一预设值或第二预设值,第一预设值表示加X操作后计数器溢出,第二预设值表示加X操作后计数器未溢出;网络芯片判断溢出标记的值是否为第一预设值;若溢出标记的值为第一预设值,则网络芯片进行采样。相较于现有技术方案中很多类型的采样叠加起来,会造成网络芯片和计数器间访问带宽太大,通过本发明实施例提供的采样方法,可以有效降低网络和计数器间的访问带宽,提高转发性能。

本发明实施例提供一种网络芯片10,如图6所示,该网络芯片10包括:

处理单元11,当确定需要采样时,在接收到报文后对计数器索引进行加X操作,并读取计数器的返回值,返回值中包含溢出标记的值以及加X操作后的计数器索引;其中,X为预先设定的值,溢出标记的值包括:第一预设值或第二预设值,第一预设值表示加X操作后计数器溢出,第二预设值表示加X操作后计数器未溢出.

判断单元12,用于判断溢出标记的值是否为第一预设值。

采样单元13,用于若溢出标记的值为第一预设值,则进行采样。

进一步的,如图7所示,网络芯片还可以包括:

转发单元14,用于若溢出标记的值为第二预设值,则转发报文,不进行采样。

进一步的,如图7所示,网络芯片还可以包括:

获取单元15,用于获取采样信息,采样信息中包括:采样标记、计数器索引以及X;其中,采样标记包括第一标记和第二标记,第一标记用于指示网络芯片需要采样,第二标记用于指示网络芯片不需要采样;

确定单元16,用于当获取到的采样标记为第一标记时,确定需要采样。

进一步的,当计数器的位数为M且采样比为N时,X为2M/N,M和N均为正整数。

进一步的,采样包括:

端口采样、流采样,端口采样包括:单播类型采样、组播类型采样、或多协议标签交换MPLS类型采样。

本实施例用于实现上述各方法实施例,本实施例中各个单元的工作流程和工作原理参见上述各方法实施例中的描述,在此不再赘述。

本发明实施例提供的一种网络芯片,当网络芯片确定需要采样时,网络芯片接收到报文后对计数器索引进行加X操作,并读取计数器的返回值,返回值中包含溢出标记的值以及加X操作后的计数器索引;其中,X为预先设定的值,溢出标记的值包括:第一预设值或第二预设值,第一预设值表示加X操作后计数器溢出,第二预设值表示加X操作后计数器未溢出;网络芯片判断溢出标记的值是否为第一预设值;若溢出标记的值为第一预设值,则网络芯片进行采样。相较于现有技术方案中很多类型的采样叠加起来,会造成网络芯片和计数器间访问带宽太大,通过本发明实施例提供的采样方法,可以有效降低网络和计数器间的访问带宽,提高转发性能。

为了使本领域技术人员能够更清楚地理解本发明提供的技术方案,下面通过具体的实施例,对本发明提供的技术方案进行详细说明:

实施例一

图8所示为本发明实施例中的端口表示意图,与图2相比,增加了一个字段,该字段存储预先设定的采样步进值X。示例性的,如果采样比配置为N:1,需要预先计算X,假设计数器计数位宽为M,则当计数累加到2M-1后翻转,设置2M/N作为步进值X写到端口表中。例如M为10且N=32时,X=2M/N=32。值得一提的是,当2M/N不是整数时,在某些不需严格满足采样比值N的情况下,X可以是对2M/N取整。

图9为本发明实施例中的计数器返回的信息的结构示意图,与传统计数器相比,计数器每次返回的信息中需要增加一个溢出标记(Overflow Flag,OF),由于本发明实施例提供的技术方案中网络芯片并不对计数器进行清零操作,当计数器计数时会发生翻转时计数器会将溢出标记OF置为第一标记例如置为1,溢出标记OF可以反映计数器的溢出状态,在每次超过计数器最大 值2M-1都会将溢出标记OF置为第一标记(例如将溢出标记OF置1),网络芯片读取计数器更新计数后的返回结果中也包含当前的溢出标记OF的值,另外,需要指出的是,计数器更新时如果没有发生溢出,溢出标记OF保持为第二标记,例如,第二标记可以为0也即计数器更新计数时如果没有发生溢出,溢出标记OF保持为0。

需要说明的是,现有的采样的技术方案中是网络芯片收到每个报文后计数器加1,在本发明实施例提供的技术方案中网络芯片收到每个报文后,计数器不是加1,而是加上一个预先设定的采样步进值X。现有的采样的技术方案中是计数器一直累加到N,网络芯片进行计数器清零,重新开始新一轮采样计数,即0,1,2,….,N,0(网络芯片清零操作),1,2,….;而本发明实施例中的计数器是自然翻转的,比如,计数器位数为M,每次步进值X,即计数值为0,X,2X,….,0(计数器步进N次,自然翻转),X,2X,….。

图10为本实施例实现采样的流程图,步骤包括:

401、开始;

402、网络芯片读取端口表,获取采样信息;

403、网络芯片对402读取的采样标记SF进行判断,SF=0,则不采样,进入步骤407;SF=1,进入步骤404;

404、网络芯片以402读取的计数器索引Idx为索引,对计数器进行加X操作,并读取计数器返回值,其中包含了溢出标记OF以及更新的计数器索引Idx的值m;

405、网络芯片判断404步骤计数器返回值中的OF标记;

如果OF=0,则未达到采样比,进入步骤407;否则进入步骤406;

需要说明的是,由于本发明实施例中的计数器是自然翻转的,比如,计数器位数为M,每次步进值X,即计数值为0,X,2X,….,0(计数器步进N次,自然翻转),X,2X,….,每次计数器累加到2M-1后会发生翻转,则溢出标记OF=1。当OF=1,表示计数器溢出,需要对该报文进行采样,否则未到采样门限,不需要采样。

406、网络芯片进入采样流程,对报文进行复制,上送到目的地进行处理;

407、网络芯片正常转发报文。

与现有技术相比较,由于网络芯片访问计数器的延时较大,本发明实施例提供的技术方案针对现有采样判断流程网络芯片多次访问计数器造成转发性能下降的问题,对现有惯用的采样判断流程进行改进,并且在计数器每次更新计数后返回的信息中增加一个溢出标记OF,这样减少了网络芯片对计数器的访问次数,大大减少了网络芯片和计数器间的访问带宽,具有极大的应用价值。

以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另一点,所显示或讨论的模块相互之间的连接可以是通过一些接口,可以是电性,机械或其它的形式。所述各个模块可以是或者也可以不是物理上分开的,可以是或者也可以不是物理单元。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理包括,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

上述以软件功能单元的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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