技术领域 本发明涉及网络流量统计技术,具体涉及一种流量统计装置及方法。 背景技术 网络设备中的流量统计是一个非常重要的规格,运行商可以凭借该功能和QoS(服务质量)共同实现用户网络的管理、计费。 随着网络技术的发展,核心路由器需要在100G上实现流量统计,包括包计数、字节计数等。当需要统计的队列在1K以下时,可以通过片内缓存实现,但如果需要统计的队列数目在100K以上时,占用片内缓存过大,就需要利用片外缓存实现。 如图1所示,为了实现流量统计,目前最为常用的技术是采用外挂RLDRAM(低延迟动态随机存储器)或QDR RAM(四倍数据速率随机存储器)等高速RAM(随机存储器)器件来实现。 当本设备100中的报文处理模块101收到一个IP包时,需要在入队、出队、丢弃时进行统计,根据实际规格可实现包数统计、包长统计。一个IP包最多可产生8个统计需求,其中入队、丢弃是互斥的。每完成一次统计操作,需要首先从RLD RAM中读出原统计值,然后加1再写入RLD RAM中。 当缓存读写控制模块102从CPU接口103接收到CPU下发的一个读统计操作时,需要从RLD RAM/QDR RAM中读出统计值,并写零到RLD RAM的同一地址。这样实现了读清的功能,可以保证长期统计的正确性。CPU读清操作相对于正常的统计可以看作是一种流量突发,在某些情况下导致读写带宽不够,正常统计需求被丢弃,从而统计不准。 以200MHz QDR RAM为例,最高可实现200M×4次读写操作,可以满足当前10G、40G网络设备的需求,但不能满足更高设备的统计需求。RLD RAM的读写带宽更小,目前只适用于10G的网络设备。如果要实现100G网络设备的统计需求,现有技术中必须同时外挂两片QDR RAM才能满足要求,需要将近200个I/O管脚,不仅成本高,而且结构复杂,对系统硬件、PCB(印刷电路板)布线等要求也很高。 发明内容 本发明实施例提供一种流量统计装置及方法,能够简单、方便地支持不同的统计规格,节省I/O管脚。 本发明实施例提供的一种流量统计装置,包括: 报文统计单元,用于对接收的报文进行统计,获得各报文的统计信息; 统计信息封装单元,用于将所述报文统计单元获得的多个报文的统计信息封装到一个统计报文中发送; 统计缓存处理单元,用于接收所述统计报文,并根据所述统计报文中的统计信息计算并保存统计值。 本发明实施例提供的一种流量统计方法,包括: 对接收的报文进行统计,获得各报文的统计信息; 将获得的多个报文的统计信息封装到一个统计报文,并发送所述统计报文到统计缓存处理单元; 由所述统计缓存处理单元根据所述统计报文中的统计信息计算并保存统计值。 本发明实施例提供的流量统计装置及方法,通过对接收的报文进行统计,获得各报文的统计信息;将所述报文统计单元获得的多个报文的统计信息封装到一个统计报文中发送到统计缓存处理单元,由所述统计缓存处理单元根据所述统计报文中的统计信息计算并保存统计值。从而可以由设计者定制统计缓存处理单元,灵活支持不同的统计规格。而且,由于不需外挂QDR RAM或RLDRAM,因此可以大大节省I/O管脚,相对现有技术外挂缓存的方案,可以节省近150个I/O管脚,简化了结构,降低了成本。 附图说明 图1是现有技术中采用RLDRAM或QDR实现流量统计的结构示意图; 图2是本发明实施例流量统计装置的结构示意图; 图3是本发明实施例中统计报文格式示意图; 图4是本发明实施例流量统计装置中统计缓存处理单元的结构示意图; 图5是本发明实施例流量统计方法的流程图。 具体实施方式 为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。 参照图2,是本发明实施例流量统计装置的结构示意图。 该装置包括:报文统计单元201、统计信息封装单元202和统计缓存处理单元203。其中,报文统计单元201,用于对接收的报文比如IP报文进行统计,获得各报文的统计信息;统计信息封装单元202,用于将所述报文统计单元201获得的多个报文的统计信息封装到一个统计报文中发送;统计缓存处理单元203,用于接收所述统计报文,并根据所述统计报文中的统计信息计算并保存统计值。 在该实施例中,统计信息封装单元202封装后的统计报文格式如图3所示。其中,Flow ID是指报文所属的队列ID;Length是指报文的长度;Cnt Type是指报文的统计类型,包括:入队统计、出队统计、丢弃统计等。 统计信息封装单元202和统计缓存处理单元203通过高速串行总线相连,比如SERDES(serializer/deserializer,串行/解串器)总线。 统计信息封装单元202收到报文统计单元201发送的报文的统计信息后,将其缓存至一FIFO(先进先出)队列中,积累到N(N的数值可以任意设定)个后,将这N个报文的统计信息封装成一个统一的统计报文,通过所述高速串行总线相连发送到统计缓存处理单元203中,由统计缓存处理单元203完成统计计数功能。 为了适用于不同流量等级统计需求,所述统计缓存处理单元可以有多个,如图2所示,统计缓存处理单元203和统计缓存处理单元204通过高速串行总线串连连接,各统计缓存处理单元的结构相同,可以采用一片ASIC(专用集成电路)来实现。 统计缓存处理单元203的一种优选结构如图4所示,其包括:总线选择子单元401和统计值保存子单元402。其中,总线选择子单元401,用于接收所述统计信息封装单元201发送的统计报文,并根据所述统计信息中的流标识分发所述统计报文;统计值保存子单元402,用于接收所述总线选择子单元401分发给自己的统计报文,并根据所述统计报文计算出统计值并保存。 为了存储不同类别的统计值,可以设置多个统计值保存子单元,如图4所示,统计值保存子单元402、403、404通过内部并行总线连接于总线选择子单元401。 假设总线选择子单元401根据所述统计信息中的流标识选择统计值保存子单元402,通过所述内部并行总线将所述统计报文写入统计值保存子单元402。统计值保存子单元402接收到分发给自己的统计报文后,提取其中的FlowID、Length、Cnt Type等内容,计算出统计值并保存。 可以将所述统计值保存子单元402看作是带有控制逻辑的SDRAM(同步动态随机存取存储器),在实际应用中,也可以通过对现有的SDRAM进行逻辑封装来实现。 当有多个统计值保存子单元时,每个统计值保存子单元可以存储不同类型的统计值,比如,统计值保存子单元402存储入队统计值,统计值保存子单元403存储出队统计值,统计值保存子单元404存储丢弃统计值。当然,在流量较小时,也可以只设置一个统计值保存子单元存储不同类型的统计值,在需要读写不同的统计值时,只需根据各统计值的地址即可读取或写入。 在设置有多个所述统计缓存处理单元时,为了保证各统计缓存处理单元从所述统计信息封装单元202收到的统计报文正确,并且不会因误操作使得分发的统计报文丢失,在所述统计缓存处理单元203中还可进一步设置有转发子单元405,同样,该转发子单元405通过内部并行总线与所述总线选择子单元401相连。 总线选择子单元401在收到所述统计信息封装单元202发送的统计报文后,根据所述统计报文中的信息将不属于本统计缓存处理单元203的统计报文发送给所述转发子单元405,由所述转发子单元405将该统计报文转发给其他统计缓存处理单元或丢弃。 在一片ASIC不能实现所述统计缓存处理单元的情况下,比如,一个统计缓存处理单元可以实现100K流队列的统计需求,要满足250K的规格可以使用3个统计缓存处理单元完成。当统计报文到达第一个统计缓存处理单元时,如果该统计报文不属于本统计缓存处理单元处理的统计信息,可以将该统计报文缓存至一个FIFO队列中,积累至预定个数后发送给下一个统计缓存处理单元,当然,也可以立即将该统计报文发送给下一个统计缓存处理单元。 在具体应用时,各统计缓存处理单元还可以自带CPU接口和PCI(外部设备互连标准接口),以便于和CPU及其他外部设备的互连。 本发明实施例的流量统计装置,可以由设计者定制统计缓存处理单元,灵活支持不同的统计规格。而且,由于不需外挂QDR RAM、或RLD RAM,因此可以大大节省I/O管脚。现有技术中用外挂存储器的方案需要外挂两片以上,每片需要70个左右的I/O管脚。本发明实施例的流量统计装置中,统计信息封装单元和统计缓存处理单元间使用高速串行接口,只需要4个I/O管脚。可见,相对现有技术外挂缓存的方案,可以节省近150个I/O管脚。 本发明实施例还提供了一种流量统计方法,如图5所示,是该方法的流程图,包括: 步骤501,对接收的报文进行统计,获得各报文的统计信息; 步骤502,将获得的多个报文的统计信息封装到一个统计报文,并发送所述统计报文到统计缓存处理单元; 封装后的统计报文的格式如前面所述,包括:Flow ID、Length、Cnt Type,其中,Cnt Type可以是:入队统计、出队统计、丢弃统计等。 所述统计缓存处理单元的结构在前面也有详细的描述,在此不在赘述。 需要说明的是,在具体应用中,根据流量统计的规格不同,可以设置一个或多个所述统计缓存处理单元,分别处理不同的统计报文。各统计缓存处理单元之间通过高速串行总线串接,而且,所述统计报文的发送也可以通过高速串行总线进行。 每个统计缓存处理单元接收到所述统计报文后,如果判断不是自己应处理的统计报文,比如根据所述统计报文中的Flow ID,通过所述高速串行总线将所述统计报文发送给下一级的缓存处理单元。 步骤503,由所述统计缓存处理单元根据所述统计报文中的统计信息计算并保存统计值。 对于每个所述统计缓存处理单元,需要根据接收到的统计报文中的统计信息,计算并保存相应的统计值。具体地,所述统计缓存处理单元根据所述统计信息中的流标识将所述统计报文分发到一个或多个统计值保存子单元;由所述统计值保存子单元根据分发给自己的统计报文计算出统计值并保存。 为了便于区分不同类型的统计值,可以设置多个统计值保存子单元,采用内部并行总线将所述统计报文分发到不同的统计值保存子单元。 例如,统计的类型包括:报文个数统计、报文长度统计。对于不同队列的统计,比如丢弃统计、入队统计、出队统计等的统计,采用同样的处理方式,将对应不同队列的统计值保存到不同的存储地址。 对于报文个数的统计,从相应的统计值保存子单元中取出原统计值,然后加1,再重写入该统计值保存子单元中。对于报文长度的统计,需要从相应的统计值保存子单元中取出原统计值,然后加上当前报文的长度值,再重新存入该统计值保存子单元中。 本发明实施例的流量统计方法,可以由设计者定制统计缓存处理单元,灵 活支持不同的统计规格。而且,由于不需外挂QDR RAM、或RLD RAM,因此可以大大节省I/O管脚。 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如:ROM/RAM、磁碟、光盘等。 以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。