一种数据流转发方法及装置的制造方法

文档序号:10626772阅读:359来源:国知局
一种数据流转发方法及装置的制造方法
【专利摘要】本发明提供一种数据流转发方法及装置,所述方法应用于网络设备的多核CPU,每个CPU包括数据层和转发层,预先将所述网络设备中的出端口与转发层进行绑定,所述方法包括:数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此本发明可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
【专利说明】
一种数据流转发方法及装置
技术领域
[0001]本发明涉及通信技术领域,尤其涉及一种数据流转发方法及装置。
【背景技术】
[0002]随着通信技术的不断发展,网络设备在面临复杂的业务压力的同时又要求保证服务品质,因此很多网络架构中经常使用多核CPU(Central Processing Unit,中央处理器)来进行业务处理。
[0003]现有技术中多核CPU仅能够对数据流进行分流处理,而对于共享资源的访问却只能使用同步手段,因此经常出现多个CPU处理的数据流同时发往一个出端口的情况,由于各个CPU之间会竞争该出端口对应的QoS (Quality of Service,服务质量)调度器的资源,致使多个CPU在该出端口上发生互斥等待,从而降低多核CPU的业务处理效率。

【发明内容】

[0004]有鉴于此,本发明提供一种数据流转发方法及装置来解决多个CPU竞争QoS调度器资源,降低多核CPU业务处理效率的问题。
[0005]具体地,本发明是通过如下技术方案实现的:
[0006]—种数据流转发方法,所述方法应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,预先将所述网络设备中的出端口与转发层进行绑定,所述方法包括:
[0007]数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;
[0008]所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
[0009]进一步的,所述预先将所述网络设备中的出端口与转发层进行绑定,包括:
[0010]所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
[0011]进一步的,所述预先将所述网络设备中的出端口与转发层进行绑定,还包括:
[0012]将所述转发层与所述出端口对应的QoS调度器进行绑定。
[0013]进一步的,所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去,包括:
[0014]所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去。
[0015]进一步的,所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去,包括:
[0016]所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
[0017]基于相同的构思,本发明还提供一种数据流转发装置,所述装置应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,所述装置包括:
[0018]绑定单元,用于预先将所述网络设备中的出端口与转发层进行绑定;
[0019]添加单元,用于将数据层处理后的数据流添加至所述数据流的出端口对应的转发队列;
[0020]转发单元,用于调用所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
[0021]进一步的,所述绑定单元,具体用于将所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
[0022]进一步的,所述绑定单元,还用于将所述转发层与所述出端口对应的QoS调度器进行绑定。
[0023]进一步的,所述转发单元,包括:
[0024]调用子单元,用于控制所述出端口绑定的转发层调用所述出端口对应的QoS调度器;
[0025]转发子单元,用于控制QoS调度器将所述转发队列中的数据流从所述出端口转发出去。
[0026]进一步的,所述转发子单元,具体用于控制所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
[0027]由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
【附图说明】
[0028]图1是现有技术中一种示例性实施方式中的数据流转发示意图;
[0029]图2是本发明一种示例性实施方式中的一种数据流转发方法的处理流程图;
[0030]图3是本发明一种示例性实施方式中的数据流转发示意图;
[0031]图4是本发明一种示例性实施方式中的另一种数据流转发方法的处理流程图;
[0032]图5是本发明一种示例性实施方式中数据流转发装置所在的网络设备的硬件结构图;
[0033]图6是本发明一种示例性实施方式中的一种数据流转发装置的逻辑结构图。
【具体实施方式】
[0034]网络设备中由于需要实现复杂的业务,同时要拥有卓越的性能,经常使用多核CPU来实现业务逻辑。传统多核CPU下的Qos业务处理流程如图1所示。
[0035]当数据流A、数据流B、数据流C进入多核CPU中时,根据分流策略可以将上述数据流A、数据流B、数据流C分别分配到CPU1、CPU2、CPU3上处理,CPUU CPU2、CPU3处理完成后,会查找每个数据流所对应的出端口。当上述数据流A、数据流B、数据流C的出端口都是出端口 I时,上述CPU1、CPU2、CPU3就会同时调用出端口 I对应的QoS调度器I来转发数据流A、数据流B、数据流C,因此CPU1、CPU2、CPU3调用QoS调度器I时会产生竞争的情况,甚至在出端口 I上发生互斥等待,从而降低多核CPU的业务处理效率。
[0036]为了解决上述问题,本发明提供了一种数据流转发方法及装置,可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
[0037]请参见图2,是本发明一种示例性实施方式中的一种数据流转发方法的处理流程图,该方法应用于网络设备的多核CPU,由于每个CPU都包括多个硬件线程,一部分线程用于处理数据流,另一部分线程用于转发该数据流,因此从业务分配角度来讲,每个CPU中都包括数据层和转发层。本发明可以预先将所述网络设备中的出端口与转发层进行绑定,在优选的的实施例中,该网络设备中的每个出端口都唯一绑定一个CPU的转发层,并可以在该转发层上记录绑定的出端口的端口号。另外,当出端口的数量大于转发层的数量时,可以一个转发层绑定多个出端口,由于多个出端口同时转发数据流的情况极少,因此在一个转发层上绑定多个出端口不会在该转发层上造成业务竞争。该网络设备的数据流转发方法包括:
[0038]步骤201、数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;
[0039]CPU的数据层处理完数据流后,可以获取该数据流指定的出端口,然后将该数据流添加到该出端口对应的转发队列中。
[0040]步骤202、所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
[0041]由于该出端口预先与该多核CPU中的一个转发层进行绑定,因此该转发层可以获取该出端口对应的转发队列。需要说明的是,该转发层可以是该多核CPU中的任一 CPU中的转发层,不一定与上述数据层属于同一 CPU。
[0042]在本发明可选的实施例中,所述转发层与出端口绑定后,进一步与该出端口对应的QoS调度器进行绑定。因此该转发层在获取出端口对应的转发队列后,可以调用该出端口对应的QoS调度器进行数据流转发。更进一步的,所述QoS调度器可以根据管理员预设的调度策略控制该转发队列中的数据流从该出端口转发出去。
[0043]由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
[0044]为使本发明的目的、技术方案及优点更加清楚明白,以下基于图3的数据流转发示意图,对本发明所述方案作进一步地详细说明。
[0045]假设该网络设备中包括CPUl和CPU2,其中CPUl中包括数据层I和转发层I ;CPU2中包括数据层2和转发层2。该网络设备还包括出端口 I和出端口 2,并且每个出端口对应一个QoS调度器。管理员预先将出端口 I及其QoS调度器I与转发层I进行绑定,将出端口 2及其QoS调度器2与转发层2进行绑定。该网络设备将收到的数据流分配到该网络设备的2个数据层分别进行处理,即数据层I处理数据流A,数据层2处理数据流B和数据流Co该网络设备的数据流转发过程如图4所示,其中包括:
[0046]步骤401、数据层将处理后的数据流添加至该数据流的出端口对应的转发队列;
[0047]数据层I对数据流A处理后,查找数据流A的出端口,假设该数据流A的出端口为出端口 1,那么数据层I可以将该数据流A发送到出端口 I对应的转发队列I中。同理,数据层2对数据流B、数据流C处理后,分别查找数据流B、数据流C的出端口,假设该数据流B的出端口为出端口 I,数据流C的出端口为出端口 2,那么数据层2可以将数据流B发送到出端口 I对应的转发队列I中,将数据流C发送到出端口 2对应的转发队列2中。
[0048]步骤402、出端口绑定的转发层调用出端口对应的QoS调度器;
[0049]根据上述绑定关系可知,转发层I调用出端口 I对应的QoS调度器I ;转发层2调用端口 2对应的QoS调度器2。
[0050]步骤403、根据QoS调度器的调度策略将转发队列中的数据流从出端口转发出去。
[0051]QoS调度器I获取转发层I上的转发队列1,并根据预设的拥塞避免、流量整型、队列限速、端口限速等调度策略,将转发队列I中的数据流A和数据流B从出端口 I转发出去。同理,QoS调度器2获取转发层2上的转发队列2,并根据预设的调度策略,将转发队列2中的数据流C从出端口 2转发出去。具体转发过程与本发明方案无关,此处不做赘述。
[0052]由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
[0053]基于相同的构思,本发明还提供一种数据流转发装置,所述装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的数据流转发装置作为一个逻辑意义上的装置,是通过其所在网络设备的CPU将存储器中对应的计算机程序指令读取后运行而成。
[0054]请参考图5及图6,是本发明一种示例性实施方式中的一种数据流转发装置600,所述装置应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,所述装置基本运行环境包括CPU,存储器以及其他硬件,从逻辑层面上来看,所述装置600包括:
[0055]绑定单元601,用于预先将所述网络设备中的出端口与转发层进行绑定;
[0056]添加单元602,用于将数据层处理后的数据流添加至所述数据流的出端口对应的转发队列;
[0057]转发单元603,用于调用所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
[0058]可选的,所述绑定单元601,具体用于将所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
[0059]可选的,所述绑定单元601,还用于将所述转发层与所述出端口对应的QoS调度器进行绑定。
[0060]可选的,所述转发单元603,包括:
[0061]调用子单元6031,用于控制所述出端口绑定的转发层调用所述出端口对应的QoS调度器;
[0062]转发子单元6032,用于控制QoS调度器将所述转发队列中的数据流从所述出端口转发出去。
[0063]可选的,所述转发子单元6032,具体用于控制所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
[0064]由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
[0065]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种数据流转发方法,其特征在于,所述方法应用于网络设备的多核中央处理器CPU,其中每个CPU包括数据层和转发层,预先将所述网络设备中的出端口与转发层进行绑定,所述方法包括: 数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列; 所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。2.根据权利要求1所述的方法,其特征在于,所述预先将所述网络设备中的出端口与转发层进行绑定,包括: 所述网络设备中的每个出端口唯一绑定一个CPU的转发层。3.根据权利要求1所述的方法,其特征在于,所述预先将所述网络设备中的出端口与转发层进行绑定,还包括: 将所述转发层与所述出端口对应的服务质量QoS调度器进行绑定。4.根据权利要求3所述的方法,其特征在于,所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去,包括: 所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去。5.根据权利要求4所述的方法,其特征在于,所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去,包括: 所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。6.一种数据流转发装置,其特征在于,所述装置应用于网络设备的多核CPU,其中每个(PU包括数据层和转发层,所述装置包括: 绑定单元,用于预先将所述网络设备中的出端口与转发层进行绑定; 添加单元,用于将数据层处理后的数据流添加至所述数据流的出端口对应的转发队列; 转发单元,用于调用所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。7.根据权利要求6所述的装置,其特征在于, 所述绑定单元,具体用于将所述网络设备中的每个出端口唯一绑定一个CPU的转发层。8.根据权利要求6所述的装置,其特征在于, 所述绑定单元,还用于将所述转发层与所述出端口对应的QoS调度器进行绑定。9.根据权利要求8所述的装置,其特征在于,所述转发单元,包括: 调用子单元,用于控制所述出端口绑定的转发层调用所述出端口对应的QoS调度器; 转发子单元,用于控制QoS调度器将所述转发队列中的数据流从所述出端口转发出去。10.根据权利要求9所述的装置,其特征在于, 所述转发子单元,具体用于控制所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
【文档编号】H04L12/865GK105991473SQ201510143891
【公开日】2016年10月5日
【申请日】2015年3月30日
【发明人】李喻
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1