专利名称:一种混合业务流的缓存处理方法、存储转发方法及装置的制作方法
技术领域:
本发明涉及以太网数据业务处理领域,具体的说涉及一种混合业务流的缓存处理方法、存储转发方法及装置。
背景技术:
对多端口输入混合业务流的数据处理,是一项比较复杂和麻烦的工作。目前,在对多端口输入的混合业务流程进行处理的过程中,依然采用和单一业务流一样的处理方式,即输入的数据流按照输入的顺序进行数据缓存申请和存储,完成入队的数据包被分配到相应的队列当中,等待输出的调度申请。每个队列有不同的输出属性,根据这些属性按照一定的调度策略进行调度处理。从而将数据包从缓存中读出,并按照约定或符合标准的格式将数据包输出,以完成数据包的存储转发的处理过程。
这样的设计,对于传统、简单的业务流而言,是能够胜任的。但是,伴随着数据业务的飞速发展,这样的处理已经显得有些捉襟见肘了,既不能满足混合业务处理的性能要求,也不利于对某一业务的处理和监测。同时,由于混合业务流的业务类型众多,业务输入的端口数量也呈增加之势,现有技术中这种仅按照输入顺序进行数据缓存的方式导致对混合业务流数据包的测试复杂度增加,测试的难度比较大。
发明内容
有鉴于上述背景,本发明提供了一种混合业务流的缓存处理方法、存储转发方法及装置,可以在对混合业务流的处理中,在简化设计的复杂性同时降低测试难度。
为了解决上述技术问题,本发明采用了如下技术方案
一种混合业务流的缓存处理方法,所述混合业务流由至少一个数据包构成,所述缓存处理方法包括如下步骤Al、为接受混合业务流输入的每一输入端口分别配置至少一个端口缓
存区,为混合业务流的每一种业务类型分别配置至少一个类型缓存区;
A2、将各个数据包的控制信息按各数据包的端口来源分别存入到对应 端口的端口缓存区;
A3、由数据包的控制信息识别各数据包的业务类型,按各数据包的业 务类型将各个数据包的控制信息分别存入到对应业务类型的类型缓存区。
进一步的,所述每一输入端口配置两个端口缓存区,所述各数据包的 控制信息包括数据包描述信息和数据包存储描述信息,所述数据包描述信 息和数据包存储描述信息分别存在所述两个端口缓存区中。
所述的缓存处理方法,在所述步骤A2和A3之间还可以包括步骤根 据数据包控制信息判断数据包是否为丢弃数据包,如是,对该数据包进行 丢弃处理。
本发明还公开了 一种混合业务流的存储转发方法,所述混合业务流由 至少一个数据包构成,所述存储转发方法包括数据包缓存处理过程和数据 包调度输出过程,所述数据包缓存处理过程包括如下步骤
Bl、为接受混合业务流输入的每一输入端口分别配置至少一个端口缓 存区,为混合业务流的每一种业务类型分别配置至少一个类型缓存区;
B2、将各个数据包的控制信息按各数据包的端口来源分别存入到对应 端口的端口缓存区;
B3、由数据包的控制信息识别各数据包的业务类型,按各数据包的业 务类型将各个数据包的控制信息分别存入到对应业务类型的类型缓存区;
所述数据包调度输出过程提取各业务类型缓存区中的数据包控制信 息,对各个数据包按预定方式进行调度输出。
所述的存储转发方法,其数据包调度输出过程具体包括如下步骤 Cl、提取各业务类型缓存区中的数据包控制信息,由数据包控制信息 获取相应的数据包并将其映射到相应的队列中;
C2、按预定的仲裁调度策略,对各队列中的数据包进行调度输出。
其中,所述预定的仲裁调度策略为RR轮询调度。
所述的存储转发方法,进一步的特点在于,所述每一输入端口配置两 个端口缓存区,所述各数据包的控制信息包括数据包描述信息和数据包存储描述信息,所述数据包描述信息和数据包存储描述信息分别存在所述两 个端口缓存区中。
所述的存储转发方法,在所述步骤B2和B3之间还可以包括步骤根
据数据包控制信息判断数据包是否为丢弃数据包,如是,对该数据包进行 丢弃处理。
本发明同时公开了一种混合业务流的存储转发装置,所述存储转发装 置包括数据包控制信息缓存模块、入队预处理模块和入队映射模块,所述 数据包控制信息缓存模块用于为接受混合业务流输入的每一输入端口分别 配置至少一个端口缓存区,并将各个数据包的控制信息按各数据包的端口
来源分别存入到对应端口的端口缓存区;所述入队预处理模块用于由端口 缓存区获取数据包的控制信息,由数据包的控制信息识别各数据包的业务 类型,按各数据包的业务类型将各个数据包的控制信息分别存入到对应业 务类型的类型缓存区;所述入队映射模块用于由类型缓存区获取数据包的 控制信息,按预定方式将数据包映射到相应的队列,并对各队列中的数据 包进行调度输出。
所述的存储转发装置,还可以包括统计模块,用于统计丢弃和接收的 不同业务类型的数据包数目。
本发明依据输入业务流的输入端口和业务类型的不同,采用端口 +类型 的方式将混合业务流的数据包缓存到对应的缓存区中并依次等待相应的处 理流程。这使得来自各端口的各类型的数据包享有独立的处理流程,因此, 不同端口、不同类型的数据包的控制流可以并行地处理,既提高了整体的 性能指标,又便于控制不同类型的数据包所占用的整体带宽的比例,同时 也具备良好的扩展性。
图1是本发明具体实施方式
的存储转发装置的原理框图; 图2是本发明具体实施方式
的存储转发方法的流程图3是本发明具体实施方式
的缓存处理的流程图。
具体实施例方式
下面对照附图并结合具体实施方式
对本发明做进一步详细说明。
对于包含多个数据包的混合业务流的处理,需要对输入的数据包进行 包头分析,从而进行数据包的分类处理,得到单播流、组播流、广播流以
及洪泛流或者其他类型的数据流。每种数据流都需要进行Policing的流量 监管,只有满足流量监管的要求才能进行数据包的入队处理。
数据包信息主要分为两个方面。 一个是控制流,主要包括数据包的控 制信息;另一个是数据流,主要是指数据包的内容部分。在本发明中,主 要涉及数据包的控制信息部分。
如图1所示,本发明具体实施方式
的存储转发装置,主要包括输入数 据包控制信息缓存模块,CPU接口模块,入队预处理模块,入队映射模块, 入队统计模块。数据包控制信息由数据包描述信息和数据包存储描述信息 两部分组成。在此,将数据包的控制流信息从整体上称为控制信息,将控 制信息中有关数据包属性和业务类型的信息称为数据包描述信息,将控制 信息中有关数据包的存储方面的信息称为数据包存储描述信息。 一方面, 包头数据经过包头分析,得到数据包所属的业务类型及数据包属性等相关 描述信息,作为输入送给输入数据包控制信息缓存模块;另一方面,数据 包的数据内容需要进行相应的缓存和管理,因此会得到数据包的相关存储 描述信息,作为另一个输入送给数据包控制信息缓存模块。数据包控制信 息缓存模块管理有至少一个端口缓存区,将数据包的控制信息按其数据包 的端口来源缓存到相应的端口缓存区中,可以一个端口对应一个端口缓存 区,优选的,还可以一个端口对应两个端口缓存区, 一个用于缓存控制信 息中的数据包描述信息,一个用于缓存控制信息中的数据包存储描述信息。
CPU接口模块主要是接受来自CPU控制模块的控制信息及配置数据。 主要的配置数据包括数据包所属业务类型,例如组播、广播和洪泛等数据 包的成员查找表,队列映射模式及队列映射表,以及由入队统计模块中读 出统计结果。
入队预处理模块,是本发明装置的关键处理部分。其管理有至少一个 类型缓存区,用于缓存对应业务类型的数据包控制信息。入队预处理部分 主要完成的功能有对数据包所属的业务类型进行识别,并存入到对应业 务类型的缓存区中。同时,对于不同业务类型的所有等待入队的缓存区的成员(即各数据包的控制信息),采用一定的仲裁和调度策略,选择某一业 务类型缓存区中的成员送给入队映射模块进行入队映射处理。入队预处理 部分的处理流程可以参照图2,具体过程将在后文描述。
入队映射模块,其主要功能是根据一定的队列映射原则(例如可以根
据802. 1P、数据包输入端口号和数据包输出端口号进行组合获得该数据包 的队列号等等),将不同业务类型入队缓存区中所有的数据包映射到相应的 队列中,以便于相同队列的数据包采用队列的方式进行存储和管理;同时, 所有的数据流业务也在各自队列中按照输入的顺序被调度出去。队列的映 射方式可以通过査找前述CPU接口模块中的配置表,得到相应的队列ID。 需要理解的是,对于数据包处理,是在数据包到来后,将数据包本身的数 据即数据包的内容存到外部缓存空间,之后只需要记录该数据包在外部缓 存空间中的起始和结束位置,就可以定位到整个数据包内容,在后续的处 理过程中,管理和传递的只是这个数据包的描述信息和该数据包在缓存空 间中的位置信息(即前述存储描述信息),当这个数据包需要发送出去时, 只需要根据存储位置信息,将整个数据包的内容提取出来,并按照数据包 的描述信息做针对性的修改,就是最后发送出去的数据了。因此在本文中, 从进入到输入数据包控制信息缓存模块后,所指的数据包就是数据包的控 制信息(包描述信息+存储描述信息),而不是指数据包的内容。
入队统计模块,统计丢弃和接收的不同业务类型的数据包数目;并且, 被丢弃的数据包需要识别出不同的丢弃类型。另外,对于在入队预处理部 分产生的丢弃包,入队统计模块也进行相关的统计。入队统计模块的作用 在于加强不同业务类型数据包的监控,提高混合业务流下模块的可测性。
图2所示为本发明具体实施方式
的存储转发流程图,其主要过程包括-
在对混合业务流的数据包进行存储管理之后,将数据包的存储描述信 息送入到数据包控制信息缓存模块,在对数据包进行包头分析后,得到数 据包的描述信息后,同样送入到数据包控制信息缓存模块。
在经过包缓存处理后,根据携带的端口信息从数据包控制信息相应的 缓存区中读出数据包的控制信息。如果该数据为丢弃数据包,则通知数据 包数据流控制部分,并设置数据包的入队次数为0,指出该数据包为丢弃 数据包,同时送回该数据包的相关信息,由数据包数据流控制部分根据丢 弃指示信息,完成被丢弃数据包所占用的数据存储空间的回收,释放后的
8数据存储空间将被再次分配使用。数据流控制部分的主要功能是存储空间 的分配和回收,如前所述,数据包的数据内容需要存放到外部缓存空间, 并记录下在外部缓存空间中的位置信息;当数据包的数据内容被读走以后, 该数据包所占用的存储空间需要被释放,以便在以后被分配以存储新的数 据包的数据内容。从结构上来说,该数据流控制部分和本发明所述装置是 处理紧邻的两个独立单元。
如果该数据不为丢弃数据包,则在接收到数据包控制信息后,对数据 包所属的类型进行识别。根据数据包的不同业务类型,数据包写入到相应 业务类型的缓存区中。各业务类型缓存区只是作为临时存放用途,然后进 行数据包控制信息的相应业务类型的处理,将处理完的控制信息存放在各
自类型所对应的下一级数据包入队缓存区中。需要注意的是,在图2中,
在业务类型判定框下的类型1分支在判断缓存区满后直接到达类型1入队
缓冲区,与类型2、 3、 4各分支的描述略有不同,这主要是为了体现不同 类型的业务流所处理的流程可能是不同的。
在数据包写入到类型缓存区时,如果类型缓存区满,则直接丢弃该数 据包。类型缓存区满丢弃的具体操作,和数据包为丢弃数据包时候的丢弃 操作是完全一样的。
在不同业务类型的入队缓存区中有控制信息存在时,就需要进行入队 缓存区的信息提取,进行队列映射及其他功能的处理。这就需要对不同业 务类型的入队缓存区进行仲裁和调度处理。考虑到仲裁调度的效率,每个 入队缓存区都要有激活的信息,如果没有激活的信息,将直接跳过当前被 调度的入队缓存区而进入到下一个入队缓存区进行调度。
尽管不像组播、广播包或洪泛包一样涉及到多个数据转发目的地址, 单播包在进入单播入队缓存区时,也需要将数据包的控制信息写入到入队 缓存区中。在完成队列映射及其他功能后,存放在单播入队缓存区中的单 播数据包按照约定的标准包描述符格式并依据一定的调度策略进行输出。
常见的数据业务类型有单播、组播、广播和洪泛业务,下面以这四种 常见的业务流从4个端口输入为例,对照图3对本发明作进一步的详细介 绍。
如图3所示,来自4个端口的数据流, 一方面包头数据经过包头分析, 得到数据包的类型及数据包属性等相关的数据包描述信息,根据数据包来
9自端口的不同,分别存放在不同的端口缓存区中,来自端口l的数据包描
述信息存放在端口 1缓存区l,来自端口 2的数据包描述信息存放在端口 2 缓存区2,来自端口3的数据包描述信息存放在端口3缓存区3,来自端口 4的数据包描述信息存放在端口 4缓存区4。
另一方面,来自4个端口的数据流,数据包的内容需要进行相应的缓 存和管理,因此得到数据包的相关存储方面的存储描述信息。来自端口 1 的数据包的存储描述信息存放在端口 1缓存区5,来自端口 2的数据包的 存储描述信息存放在端口 2缓存区6,来自端口 3的数据包的存储描述信 息存放在端口 3缓存区7,来自端口 4的数据包的存储描述信息存放在端 口 4缓存区8。
这里,缓存区1到缓存区8以FIF0 (先进先出)的形式来实现,每个 F工F0的深度为16。所有的缓存区不能进行数据包信息的丢弃,已经在数据 包包头数据分析部分完成操作获得的包类型及包属性等数据包描述信息必 存入到对应端口的缓存区1到缓存区4中。同理,已经在数据包缓存处理 部分完成操作获得的数据包存储描述信息必存入到对应端口的缓存区5到 缓存区8中。
只有在输入端口 1对应的缓存区1和缓存区5都不为空时,才能合成 端口 1的控制信息,并根据该数据包的类型送往对应类型的类型缓存区。 否则,如果输入端口 1对应的缓存区1或5有一个为空时,就不能进行数 据包控制信息的合成。端口 2、端口 3和端口 4的数据包控制信息的合成 原则与端口l相同。
在数据包控制信息进入到对应的类型缓存区后,可以对数据包进行仲 裁及调度处理,仲裁及调度处理的策略比较灵活多样,这里采用的是最简 单也是最常用的RR轮询调度方式。RR轮询调度的处理方式为本领域技术 人员所熟知,在此不再赘述。
以组播包为例,当组播入队缓存区不满时,从组播类型缓存区取出一 个待处理的组播包,从该组播包的控制信息中提取出组播组的成员首指针, 通过提取的组播组首指针查找组播成员表,得到该组播组的所有成员及待 修改或替换信息。
根据组播成员表的配置信息,再和输入的控制信息一起合成数据包新 的控制信息(即原来的控制信息+成员的配置信息二成员新的控制信息)。完成组播复制后的包描述符信息写入到组播入队缓存区中。每复制完 成一个组播成员,需要检测当前组播组所有成员是否复制完成,在成员复
制尚没有完成的情况下,继续复制;当复制完成后,重复前面的操作(即 重新从类型缓存区中取出组播包开始新的复制过程,直到所有的成员复制 完成为止)。
当组播成员入队缓存区满时,停止当前组播成员的复制,直到组播成 员入队缓存区不满时继续复制流程的处理。广播包、洪泛包和组播包的复 制和处理原则是相同的。
对于入队缓存区的仲裁和调度处理,根据不同类型的数据包以及对应 的带宽的要求的不同,可以灵活地选择相应的仲裁和调度处理策略。
上述描述的实例为4个端口的操作实例,并不仅仅意味着只能处理4 个端口的数据流,可以由此进行扩展到任意多个端口的输入数据流的处理。 同样的,虽然上文只列举单播包、组播包、广播包和洪泛包4种不同业务 类型,也并不仅仅意味着只能处理4个类型的包数据流,可以由此进行扩 展到其他类型数据包的处理。
本发明公开了一种实现混合业务流缓存处理、存储转发的方法和装置, 可以并行地处理不同类型的数据流,在提升了处理数据流的性能的同时, 亦可对不同的类型数据流占整体带宽的比例进行分配。设计流程简单、清 晰,同时,通过入队统计模块的设置,可以方便地检测不同数据流在业务 处理过程中的实时情况,增强了可测性,极大地降低了测试的难度。可以 较好地解决涉及不同类型的数据流以及不同的数据流在整体带宽中所占用 比例的要求的不同的问题。
与此同时,本发明具有很好的扩展性。随着通讯行业的不断发展,需 要处理的数据流业务越来越丰富,带宽越来越高的情况下,可以很方便在 本发明的基础上进行扩展,扩展到更多输入业务流端口、更多业务类型的 设计当中,而且也可以根据不同业务的类型及带宽的要求,灵活地采用不 同的调度策略。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种混合业务流的缓存处理方法,所述混合业务流由至少一个数据包构成,其特征在于,所述缓存处理方法包括如下步骤A1、为接受混合业务流输入的每一输入端口分别配置至少一个端口缓存区,为混合业务流的每一种业务类型分别配置至少一个类型缓存区;A2、将各个数据包的控制信息按各数据包的端口来源分别存入到对应端口的端口缓存区;A3、由数据包的控制信息识别各数据包的业务类型,按各数据包的业务类型将各个数据包的控制信息分别存入到对应业务类型的类型缓存区。
2. 如权利要求1所述的缓存处理方法,其特征在于,所述每一输入端 口配置两个端口缓存区,所述各数据包的控制信息包括数据包描述信息和 数据包存储描述信息,所述数据包描述信息和数据包存储描述信息分别存 在所述两个端口缓存区中。
3. 如权利要求1至2所述的缓存处理方法,其特征在于,在所述步骤 A2和A3之间还包括步骤根据数据包控制信息判断数据包是否为丢弃数 据包,如是,对该数据包进行丢弃处理。
4. 一种混合业务流的存储转发方法,所述混合业务流由至少一个数据 包构成,其特征在于,所述存储转发方法包括数据包缓存处理过程和数据包调度输出过程,所述数据包缓存处理过程包括如下步骤Bl、为接受混合业务流输入的每一输入端口分别配置至少一个端口缓 存区,为混合业务流的每一种业务类型分别配置至少一个类型缓存区;B2、将各个数据包的控制信息按各数据包的端口来源分别存入到对应 端口的端口缓存区;B3、由数据包的控制信息识别各数据包的业务类型,按各数据包的业 务类型将各个数据包的控制信息分别存入到对应业务类型的类型缓存区;所述数据包调度输出过程提取各业务类型缓存区中的数据包控制信 息,对各个数据包按预定方式进行调度输出。
5. 如权利要求4所述的存储转发方法,其特征在于,所述数据包调度 输出过程具体包括如下步骤Cl、提取各业务类型缓存区中的数据包控制信息,由数据包控制信息获取相应的数据包并将其映射到相应的队列中;C2、按预定的仲裁调度策略,对各队列中的数据包进行调度输出。
6. 如权利要求5所述的存储转发方法,其特征在于,所述预定的仲裁 调度策略为RR轮询调度。
7. 如权利要求4所述的存储转发方法,其特征在于,所述每一输入端 口配置两个端口缓存区,所述各数据包的控制信息包括数据包描述信息和 数据包存储描述信息,所述数据包描述信息和数据包存储描述信息分别存 在所述两个端口缓存区中。
8. 如权利要求4至7所述的存储转发方法,其特征在于,在所述步骤 B2和B3之间还包括步骤根据数据包控制信息判断数据包是否为丢弃数 据包,如是,对该数据包进行丢弃处理。
9. 一种混合业务流的存储转发装置,其特征在于,所述存储转发装置 包括数据包控制信息缓存模块、入队预处理模块和入队映射模块,所述数 据包控制信息缓存模块用于为接受混合业务流输入的每一输入端口分别配 置至少一个端口缓存区,并将各个数据包的控制信息按各数据包的端口来 源分别存入到对应端口的端口缓存区;所述入队预处理模块用于由端口缓 存区获取数据包的控制信息,由数据包的控制信息识别各数据包的业务类 型,按各数据包的业务类型将各个数据包的控制信息分别存入到对应业务 类型的类型缓存区;所述入队映射模块用于由类型缓存区获取数据包的控制信息,按预定方式将数据包映射到相应的队列,并对各队列中的数据包 进行调度输出。
10. 如权利要求9所述的存储转发装置,其特征在于,还包括入队统 计模块,用于统计丢弃和接收的不同业务类型的数据包数目。
全文摘要
本发明公开了一种混合业务流的缓存处理方法、存储转发方法及装置,所述缓存处理方法包括如下步骤A1.为接受混合业务流输入的每一输入端口分别配置至少一个端口缓存区,为混合业务流的每一种业务类型分别配置至少一个类型缓存区;A2.将各个数据包的控制信息按各数据包的端口来源分别存入到对应端口的端口缓存区;A3.由数据包的控制信息识别各数据包的业务类型,按各数据包的业务类型将各个数据包的控制信息分别存入到对应业务类型的类型缓存区。本发明使得来自各端口的各类型的数据包享有独立的处理流程,因此既提高了整体的性能指标,又便于控制不同类型的数据包所占用的整体带宽的比例,同时还具备良好的扩展性。
文档编号H04L12/56GK101656659SQ20081014247
公开日2010年2月24日 申请日期2008年8月19日 优先权日2008年8月19日
发明者帆 江 申请人:中兴通讯股份有限公司