CN105991473A - 一种数据流转发方法及装置 - Google Patents
一种数据流转发方法及装置 Download PDFInfo
- Publication number
- CN105991473A CN105991473A CN201510143891.0A CN201510143891A CN105991473A CN 105991473 A CN105991473 A CN 105991473A CN 201510143891 A CN201510143891 A CN 201510143891A CN 105991473 A CN105991473 A CN 105991473A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- port
- data stream
- cpu
- binding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Abstract
本发明提供一种数据流转发方法及装置,所述方法应用于网络设备的多核CPU,每个CPU包括数据层和转发层,预先将所述网络设备中的出端口与转发层进行绑定,所述方法包括:数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此本发明可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据流转发方法及装置。
背景技术
随着通信技术的不断发展,网络设备在面临复杂的业务压力的同时又要求保证服务品质,因此很多网络架构中经常使用多核CPU(Central ProcessingUnit,中央处理器)来进行业务处理。
现有技术中多核CPU仅能够对数据流进行分流处理,而对于共享资源的访问却只能使用同步手段,因此经常出现多个CPU处理的数据流同时发往一个出端口的情况,由于各个CPU之间会竞争该出端口对应的QoS(Quality ofService,服务质量)调度器的资源,致使多个CPU在该出端口上发生互斥等待,从而降低多核CPU的业务处理效率。
发明内容
有鉴于此,本发明提供一种数据流转发方法及装置来解决多个CPU竞争QoS调度器资源,降低多核CPU业务处理效率的问题。
具体地,本发明是通过如下技术方案实现的:
一种数据流转发方法,所述方法应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,预先将所述网络设备中的出端口与转发层进行绑定,所述方法包括:
数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;
所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
进一步的,所述预先将所述网络设备中的出端口与转发层进行绑定,包括:
所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
进一步的,所述预先将所述网络设备中的出端口与转发层进行绑定,还包括:
将所述转发层与所述出端口对应的QoS调度器进行绑定。
进一步的,所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去,包括:
所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去。
进一步的,所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去,包括:
所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
基于相同的构思,本发明还提供一种数据流转发装置,所述装置应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,所述装置包括:
绑定单元,用于预先将所述网络设备中的出端口与转发层进行绑定;
添加单元,用于将数据层处理后的数据流添加至所述数据流的出端口对应的转发队列;
转发单元,用于调用所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
进一步的,所述绑定单元,具体用于将所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
进一步的,所述绑定单元,还用于将所述转发层与所述出端口对应的QoS调度器进行绑定。
进一步的,所述转发单元,包括:
调用子单元,用于控制所述出端口绑定的转发层调用所述出端口对应的QoS调度器;
转发子单元,用于控制QoS调度器将所述转发队列中的数据流从所述出端口转发出去。
进一步的,所述转发子单元,具体用于控制所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
附图说明
图1是现有技术中一种示例性实施方式中的数据流转发示意图;
图2是本发明一种示例性实施方式中的一种数据流转发方法的处理流程图;
图3是本发明一种示例性实施方式中的数据流转发示意图;
图4是本发明一种示例性实施方式中的另一种数据流转发方法的处理流程图;
图5是本发明一种示例性实施方式中数据流转发装置所在的网络设备的硬件结构图;
图6是本发明一种示例性实施方式中的一种数据流转发装置的逻辑结构图。
具体实施方式
网络设备中由于需要实现复杂的业务,同时要拥有卓越的性能,经常使用多核CPU来实现业务逻辑。传统多核CPU下的Qos业务处理流程如图1所示。
当数据流A、数据流B、数据流C进入多核CPU中时,根据分流策略可以将上述数据流A、数据流B、数据流C分别分配到CPU1、CPU2、CPU3上处理,CPU1、CPU2、CPU3处理完成后,会查找每个数据流所对应的出端口。当上述数据流A、数据流B、数据流C的出端口都是出端口1时,上述CPU1、CPU2、CPU3就会同时调用出端口1对应的QoS调度器1来转发数据流A、数据流B、数据流C,因此CPU1、CPU2、CPU3调用QoS调度器1时会产生竞争的情况,甚至在出端口1上发生互斥等待,从而降低多核CPU的业务处理效率。
为了解决上述问题,本发明提供了一种数据流转发方法及装置,可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
请参见图2,是本发明一种示例性实施方式中的一种数据流转发方法的处理流程图,该方法应用于网络设备的多核CPU,由于每个CPU都包括多个硬件线程,一部分线程用于处理数据流,另一部分线程用于转发该数据流,因此从业务分配角度来讲,每个CPU中都包括数据层和转发层。本发明可以预先将所述网络设备中的出端口与转发层进行绑定,在优选的的实施例中,该网络设备中的每个出端口都唯一绑定一个CPU的转发层,并可以在该转发层上记录绑定的出端口的端口号。另外,当出端口的数量大于转发层的数量时,可以一个转发层绑定多个出端口,由于多个出端口同时转发数据流的情况极少,因此在一个转发层上绑定多个出端口不会在该转发层上造成业务竞争。该网络设备的数据流转发方法包括:
步骤201、数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;
CPU的数据层处理完数据流后,可以获取该数据流指定的出端口,然后将该数据流添加到该出端口对应的转发队列中。
步骤202、所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
由于该出端口预先与该多核CPU中的一个转发层进行绑定,因此该转发层可以获取该出端口对应的转发队列。需要说明的是,该转发层可以是该多核CPU中的任一CPU中的转发层,不一定与上述数据层属于同一CPU。
在本发明可选的实施例中,所述转发层与出端口绑定后,进一步与该出端口对应的QoS调度器进行绑定。因此该转发层在获取出端口对应的转发队列后,可以调用该出端口对应的QoS调度器进行数据流转发。更进一步的,所述QoS调度器可以根据管理员预设的调度策略控制该转发队列中的数据流从该出端口转发出去。
由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
为使本发明的目的、技术方案及优点更加清楚明白,以下基于图3的数据流转发示意图,对本发明所述方案作进一步地详细说明。
假设该网络设备中包括CPU1和CPU2,其中CPU1中包括数据层1和转发层1;CPU2中包括数据层2和转发层2。该网络设备还包括出端口1和出端口2,并且每个出端口对应一个QoS调度器。管理员预先将出端口1及其QoS调度器1与转发层1进行绑定,将出端口2及其QoS调度器2与转发层2进行绑定。该网络设备将收到的数据流分配到该网络设备的2个数据层分别进行处理,即数据层1处理数据流A,数据层2处理数据流B和数据流C。该网络设备的数据流转发过程如图4所示,其中包括:
步骤401、数据层将处理后的数据流添加至该数据流的出端口对应的转发队列;
数据层1对数据流A处理后,查找数据流A的出端口,假设该数据流A的出端口为出端口1,那么数据层1可以将该数据流A发送到出端口1对应的转发队列1中。同理,数据层2对数据流B、数据流C处理后,分别查找数据流B、数据流C的出端口,假设该数据流B的出端口为出端口1,数据流C的出端口为出端口2,那么数据层2可以将数据流B发送到出端口1对应的转发队列1中,将数据流C发送到出端口2对应的转发队列2中。
步骤402、出端口绑定的转发层调用出端口对应的QoS调度器;
根据上述绑定关系可知,转发层1调用出端口1对应的QoS调度器1;转发层2调用端口2对应的QoS调度器2。
步骤403、根据QoS调度器的调度策略将转发队列中的数据流从出端口转发出去。
QoS调度器1获取转发层1上的转发队列1,并根据预设的拥塞避免、流量整型、队列限速、端口限速等调度策略,将转发队列1中的数据流A和数据流B从出端口1转发出去。同理,QoS调度器2获取转发层2上的转发队列2,并根据预设的调度策略,将转发队列2中的数据流C从出端口2转发出去。具体转发过程与本发明方案无关,此处不做赘述。
由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
基于相同的构思,本发明还提供一种数据流转发装置,所述装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的数据流转发装置作为一个逻辑意义上的装置,是通过其所在网络设备的CPU将存储器中对应的计算机程序指令读取后运行而成。
请参考图5及图6,是本发明一种示例性实施方式中的一种数据流转发装置600,所述装置应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,所述装置基本运行环境包括CPU,存储器以及其他硬件,从逻辑层面上来看,所述装置600包括:
绑定单元601,用于预先将所述网络设备中的出端口与转发层进行绑定;
添加单元602,用于将数据层处理后的数据流添加至所述数据流的出端口对应的转发队列;
转发单元603,用于调用所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
可选的,所述绑定单元601,具体用于将所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
可选的,所述绑定单元601,还用于将所述转发层与所述出端口对应的QoS调度器进行绑定。
可选的,所述转发单元603,包括:
调用子单元6031,用于控制所述出端口绑定的转发层调用所述出端口对应的QoS调度器;
转发子单元6032,用于控制QoS调度器将所述转发队列中的数据流从所述出端口转发出去。
可选的,所述转发子单元6032,具体用于控制所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
由此可见,本发明可以通过将所述网络设备中的出端口预先与CPU的转发层进行绑定,以使CPU的数据层可以将处理后的数据流添加至该数据流出端口对应的转发队列,并使该出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。因此可以避免多个CPU竞争同一个出端口资源的情况,从而提高多核CPU的业务处理效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种数据流转发方法,其特征在于,所述方法应用于网络设备的多核中央处理器CPU,其中每个CPU包括数据层和转发层,预先将所述网络设备中的出端口与转发层进行绑定,所述方法包括:
数据层将处理后的数据流添加至所述数据流的出端口对应的转发队列;
所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
2.根据权利要求1所述的方法,其特征在于,所述预先将所述网络设备中的出端口与转发层进行绑定,包括:
所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
3.根据权利要求1所述的方法,其特征在于,所述预先将所述网络设备中的出端口与转发层进行绑定,还包括:
将所述转发层与所述出端口对应的服务质量QoS调度器进行绑定。
4.根据权利要求3所述的方法,其特征在于,所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去,包括:
所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去。
5.根据权利要求4所述的方法,其特征在于,所述出端口绑定的转发层调用该出端口对应的QoS调度器将转发队列中的数据流从所述出端口转发出去,包括:
所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
6.一种数据流转发装置,其特征在于,所述装置应用于网络设备的多核CPU,其中每个CPU包括数据层和转发层,所述装置包括:
绑定单元,用于预先将所述网络设备中的出端口与转发层进行绑定;
添加单元,用于将数据层处理后的数据流添加至所述数据流的出端口对应的转发队列;
转发单元,用于调用所述出端口绑定的转发层将所述转发队列中的数据流从所述出端口转发出去。
7.根据权利要求6所述的装置,其特征在于,
所述绑定单元,具体用于将所述网络设备中的每个出端口唯一绑定一个CPU的转发层。
8.根据权利要求6所述的装置,其特征在于,
所述绑定单元,还用于将所述转发层与所述出端口对应的QoS调度器进行绑定。
9.根据权利要求8所述的装置,其特征在于,所述转发单元,包括:
调用子单元,用于控制所述出端口绑定的转发层调用所述出端口对应的QoS调度器;
转发子单元,用于控制QoS调度器将所述转发队列中的数据流从所述出端口转发出去。
10.根据权利要求9所述的装置,其特征在于,
所述转发子单元,具体用于控制所述QoS调度器根据预设的调度策略将所述转发队列中的数据流从所述出端口转发出去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510143891.0A CN105991473A (zh) | 2015-03-30 | 2015-03-30 | 一种数据流转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510143891.0A CN105991473A (zh) | 2015-03-30 | 2015-03-30 | 一种数据流转发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105991473A true CN105991473A (zh) | 2016-10-05 |
Family
ID=57040415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510143891.0A Withdrawn CN105991473A (zh) | 2015-03-30 | 2015-03-30 | 一种数据流转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105991473A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341066A (zh) * | 2016-11-30 | 2017-11-10 | 杭州迪普科技股份有限公司 | 一种线程空转频率基准值的获取方法及装置 |
WO2018094743A1 (zh) * | 2016-11-28 | 2018-05-31 | 华为技术有限公司 | 处理报文的方法和计算机设备 |
CN110875823A (zh) * | 2018-08-29 | 2020-03-10 | 大唐移动通信设备有限公司 | 一种业务面的数据处理系统及方法 |
CN112532531A (zh) * | 2020-11-12 | 2021-03-19 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699817A (zh) * | 2009-11-04 | 2010-04-28 | 杭州华三通信技术有限公司 | 报文上送cpu的控制方法和装置 |
CN103595654A (zh) * | 2013-11-01 | 2014-02-19 | 福建星网锐捷网络有限公司 | 基于多核CPU的HQoS实现方法、装置及网络设备 |
US8897292B2 (en) * | 2012-12-31 | 2014-11-25 | Telefonaktiebolaget L M Ericsson (Publ) | Low pass filter for hierarchical pipelined distributed scheduling traffic manager |
-
2015
- 2015-03-30 CN CN201510143891.0A patent/CN105991473A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699817A (zh) * | 2009-11-04 | 2010-04-28 | 杭州华三通信技术有限公司 | 报文上送cpu的控制方法和装置 |
US8897292B2 (en) * | 2012-12-31 | 2014-11-25 | Telefonaktiebolaget L M Ericsson (Publ) | Low pass filter for hierarchical pipelined distributed scheduling traffic manager |
CN103595654A (zh) * | 2013-11-01 | 2014-02-19 | 福建星网锐捷网络有限公司 | 基于多核CPU的HQoS实现方法、装置及网络设备 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018094743A1 (zh) * | 2016-11-28 | 2018-05-31 | 华为技术有限公司 | 处理报文的方法和计算机设备 |
CN108377671A (zh) * | 2016-11-28 | 2018-08-07 | 华为技术有限公司 | 处理报文的方法和计算机设备 |
CN108377671B (zh) * | 2016-11-28 | 2020-11-20 | 华为技术有限公司 | 处理报文的方法和计算机设备 |
CN107341066A (zh) * | 2016-11-30 | 2017-11-10 | 杭州迪普科技股份有限公司 | 一种线程空转频率基准值的获取方法及装置 |
CN107341066B (zh) * | 2016-11-30 | 2020-07-07 | 杭州迪普科技股份有限公司 | 一种线程空转频率基准值的获取方法及装置 |
CN110875823A (zh) * | 2018-08-29 | 2020-03-10 | 大唐移动通信设备有限公司 | 一种业务面的数据处理系统及方法 |
CN110875823B (zh) * | 2018-08-29 | 2021-07-23 | 大唐移动通信设备有限公司 | 一种业务面的数据处理系统及方法 |
CN112532531A (zh) * | 2020-11-12 | 2021-03-19 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105991473A (zh) | 一种数据流转发方法及装置 | |
US9031077B2 (en) | Systems, methods, and computer program products providing a data unit sequencing queue | |
KR101617323B1 (ko) | 서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
US9164771B2 (en) | Method for thread reduction in a multi-thread packet processor | |
CN103532876A (zh) | 数据流的处理方法与系统 | |
CN102891809B (zh) | 多核网络设备报文按接口保序方法及系统 | |
CN112799861B (zh) | 一种多核架构下流量限速无锁并发实现的方法 | |
CN106571978B (zh) | 数据包捕获方法及装置 | |
CN102868635A (zh) | 多核多线程的报文保序方法及系统 | |
CN105656808A (zh) | 报文处理方法及其系统 | |
KR20180126401A (ko) | 멀티코어 기반 데이터 처리 방법 및 장치 | |
US8121129B2 (en) | Optimizing throughput of data in a communications network | |
CN109417533A (zh) | 发送数据的方法和转发设备 | |
WO2023072065A1 (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN103595654A (zh) | 基于多核CPU的HQoS实现方法、装置及网络设备 | |
CN101272334B (zh) | 使用多核CPU处理QoS业务的方法、装置和设备 | |
CN110753008A (zh) | 基于dpaa的网络数据处理装置和方法 | |
CN102984089B (zh) | 流量管理调度方法及装置 | |
CN109951532B (zh) | 一种基于dpdk的流量模型自动变换装置 | |
CN105337888B (zh) | 基于多核转发的负载均衡方法、装置及虚拟交换机 | |
CN112995056A (zh) | 一种流量调度方法、电子设备及存储介质 | |
CN109257280B (zh) | 一种微引擎及其处理报文的方法 | |
CN104636206A (zh) | 一种系统性能的优化方法和装置 | |
WO2017016300A1 (zh) | 令牌申请处理方法、装置和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20161005 |
|
WW01 | Invention patent application withdrawn after publication |