CN108040019B - 报文转发的方法及装置 - Google Patents

报文转发的方法及装置 Download PDF

Info

Publication number
CN108040019B
CN108040019B CN201711392001.5A CN201711392001A CN108040019B CN 108040019 B CN108040019 B CN 108040019B CN 201711392001 A CN201711392001 A CN 201711392001A CN 108040019 B CN108040019 B CN 108040019B
Authority
CN
China
Prior art keywords
queue
exit
message
egress
port
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.)
Active
Application number
CN201711392001.5A
Other languages
English (en)
Other versions
CN108040019A (zh
Inventor
王倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201711392001.5A priority Critical patent/CN108040019B/zh
Publication of CN108040019A publication Critical patent/CN108040019A/zh
Application granted granted Critical
Publication of CN108040019B publication Critical patent/CN108040019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/623Weighted service order

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种报文转发的方法及装置,所述方法包括:在确定当前报文的出端口后,获取所述出端口对应的上一报文所属出口队列;按照预设指定规则,根据所述上一报文所属出口队列为当前报文指定出口队列;通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去。本申请通过将报文分配到不同的出口队列中,以减少默认出口队列的报文突发压力导致的出口丢包问题。并且本申请只是为报文指定出口队列,并不影响CPU对报文的业务处理。

Description

报文转发的方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种报文转发的方法及装置。
背景技术
随着网络技术的发展,各行业对安全设备(例如防火墙、流量审计设备、入侵防御系统设备等)集采的测试精度要求越来越高,即安全设备的交换芯片接收到报文后,将报文上交CPU(Central Processing Unit,中央处理器),由CPU的相应业务软件进行策略控制、流量审计、病毒防护等业务处理,然后再转发出去。然而业务软件的处理速度小于交换芯片收包速率,这样会造成CPU负担过载。在相关技术中,通过调节DPI(Dots Per Inc,单位时间内上送业务软件处理的报文比例)降低CPU负担,即一部分报文由CPU查会话表后,由交换芯片直接转发,另一部分报文由业务软件进行业务处理再转发。然而,如果会话表中没有报文的会话,则CPU需要新建会话,而CPU新建会话速率小于交换芯片收包速率,因此报文会在CPU的收包队列缓存。而在无新建会话情况下,CPU查会话表转发速率大于交换芯片的发包速率,因此在收包队列中报文的会话均已建立情况下,会造成交换芯片瞬时超带宽发包而丢包的问题。
发明内容
有鉴于此,本申请提供一种报文转发的方法及装置,以解决在收包队列中报文的会话均已建立情况下,会造成交换芯片瞬时超带宽发包而丢包的问题。
根据本申请实施例的第一方面,提供一种报文转发的方法,所述方法包括:
在确定当前报文的出端口后,获取所述出端口对应的上一报文所属出口队列;
按照预设指定规则,根据所述上一报文所属出口队列为当前报文指定出口队列;
通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去。
根据本申请实施例的第二方面,提供一种报文转发的装置,所述装置包括:
获取模块,用于在确定当前报文的出端口后,获取所述出端口对应的上一报文所属出口队列;
指定模块,用于按照预设指定规则,根据所述上一报文所属出口队列为当前报文指定出口队列;
转发模块,用于通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去。
应用本申请实施例,在确定当前报文的出端口后,可以获取该出端口对应的上一报文所属出口队列,并按照预设指定规则,根据上一报文所属出口队列为当前报文指定出口队列,并通过交换芯片根据指定的出口队列将当前报文从该出端口转发出去。基于上述实现方式,通过将报文分配到不同的出口队列中,以减少默认出口队列的报文突发压力导致的出口丢包问题。并且本申请只是为报文指定出口队列,并不影响CPU对报文的业务处理。
附图说明
图1A为本申请根据一示例性实施例示出的一种报文转发的方法的实施例流程图;
图1B为本申请根据图1A所示实施例示出的一种报文转发流程示意图;
图2为本申请根据一示例性实施例示出的一种安全设备的硬件结构图;
图3为本申请根据一示例性实施例示出的一种报文转发的装置的实施例结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1A为本申请根据一示例性实施例示出的一种报文转发的方法的实施例流程图;图1B为本申请根据图1A所示实施例示出的一种报文转发流程示意图,该实施例可以应用于安全设备(例如,防火墙、流量审计设备、入侵防御系统设备等)上,该安全设备可以包括交换芯片和CPU。在本申请实施例中,通过对业务处理流程和转发流程的分析,发现现有的报文转发不注重报文在交换芯片的出口走哪一出口队列,通常默认走第一个出口队列,即cos0,其他出口队列成为闲置资源,导致第一个出口队列因报文突发出现丢包的问题,因此如果将报文分配到不同的出口队列中,可以缓减第一个出口队列的报文突发压力,避免出口丢包问题。下面对本实施例的实现流程进行详细阐述,如图1A所示,该报文转发的方法包括如下步骤:
步骤101:在确定当前报文的出端口后,获取该出端口对应的上一报文所属出口队列。
在一实施例中,安全设备的交换芯片接收到报文后,将报文上交CPU,由CPU进行业务处理(例如流量审计、病毒防护、策略控制等),然后查找策略路由确定报文的出端口;或者CPU直接查会话表确定报文的出端口,如果会话表中不存在报文的会话,则新建会话,以确定报文的出端口,并将新建的会话添加到会话表中。
在一实施例中,由于交换芯片的端口有多个,因此CPU可以记录每个端口对应的上一报文所属出口队列,以区分从各个端口转发出去的报文走的是哪一个出口队列。
其中,端口的出口队列用于暂时缓存要转发出去的报文,属于交换芯片的MMU(Memory Management Unit,内存管理单元)资源,通常一个端口对应多个出口队列,通常利用cos值作为出口队列的标识,例如,端口1作为出口时,其对应的出口队列可以有8个,即cos0~cos7。
步骤102:按照预设指定规则,根据上一报文所属出口队列为当前报文指定出口队列。
在一实施例中,安全设备的CPU可以判断上一报文所属出口队列是否为该出端口对应的出口队列中的最后一个出口队列,若是,则将该出端口对应的出口队列中的第一个出口队列确定为当前报文所属出口队列;若否,则将上一报文所属出口队列的下一个出口队列确定为当前报文所属出口队列。
其中,CPU按照顺序将报文平均分配到不同的出口队列中,以确保每个出口队列中的报文个数相同,从而缓减第一个出口队列的报文突发压力,并且使交换芯片的闲置资源得到了充分利用。
在一示例性场景中,交换芯片的端口1为出端口,其对应的出口队列为cos0~cos7,上一报文所属出口队列为cos7,为最后一个出口队列,因此可以将第一个出口队列cos0确定为当前报文所属出口队列。
在一实施例中,CPU在根据上一报文所属出口队列为当前报文指定出口队列之后,可以为该出端口记录当前报文所属出口队列,即将为当前报文指定的出口队列确定为该出端口对应的上一报文所属出口队列,以为下一个报文指定出口队列作参考。
值得说明的是,通常安全设备为多核CPU,报文的会话建立、查找会话表有可能在多个核上进行的,因此CPU为每个端口记录的上一报文所属出口队列可以作为全局变量,从而无论在哪一个核上,均能够确保按照顺序将报文平均分配到不同的出口队列中。
步骤103:通过交换芯片根据指定的出口队列将当前报文从该出端口转发出去。
在一实施例中,CPU可以通过HiGig通道将当前报文、指定的出口队列的标识、出端口的标识发送至交换芯片,以使交换芯片将当前报文分配到指定的出口队列的标识对应的出口队列,并从该出端口的标识对应的端口转发出去。
其中,CPU与交换芯片之间通过HiGig连接,因此CPU与交换芯片之间形成HiGig通道,通过HiGig协议实现交互。CPU可以将指定的出口队列的标识和出端口的标识封装到HiGig报文头中,当前报文数据封装到HiGig报文的数据部分。
在一示例性场景中,如图1B所示,交换芯片中的端口port1对应的出口队列有8个,即cos0~cos7,CPU将报文1、指定的出口队列的标识cos1、出端口的标识port1封装到HiGig报文中,并通过HiGig通道将HiGig报文发送至交换芯片,交换芯片提取HiGig报文中的报文1、指定的出口队列的标识cos1、出端口的标识port1,并将报文1放入cos1对应的出口队列中,并从port1将报文1转发出去。
在一实施例中,安全设备的CPU可以根据预设指定规则,为该出端口对应的每个出口队列设置WRR权值,以达到流保序的目的。
其中,WRR(Weighted Round Robin,加权循环)是一种加权循环调度算法,指的是在一个循环周期内,根据每个出口队列的WRR权值进行调度转发。如上述步骤102所述,每次为每个出口队列分配一个报文,如果出端口对应的出口队列为cos0~cos7,则cos0~cos7的WRR权值比例可以为1:1:1:1:1:1:1:1,即每个出口队列每次发送一个报文,从而确保每个出口队列中的报文实现FIFO(First In First Out,先进先出)的目的。
由上述实施例可知,在确定当前报文的出端口后,可以获取该出端口对应的上一报文所属出口队列,并按照预设指定规则,根据上一报文所属出口队列为当前报文指定出口队列,并通过交换芯片根据指定的出口队列将当前报文从该出端口转发出去。基于上述实现方式,通过将报文分配到不同的出口队列中,以减少默认出口队列的报文突发压力导致的出口丢包问题。并且本申请只是为报文指定出口队列,并不影响CPU对报文的业务处理。
与前述报文转发的方法的实施例相对应,本申请还提供了报文转发的装置的实施例。
本申请报文转发的装置的实施例可以应用在安全设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请根据一实施例性实施例示出的一种安全设备的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3为本申请根据一示例性实施例示出的一种报文转发的装置的实施例结构图,该实施例可以应用于安全设备上,如图3所示,该报文转发的装置包括:获取模块310、指定模块320以及转发模块330。
其中,获取模块310,用于在确定当前报文的出端口后,获取所述出端口对应的上一报文所属出口队列;
指定模块320,用于按照预设指定规则,根据所述上一报文所属出口队列为当前报文指定出口队列;
转发模块330,用于通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去。
在一可选的实现方式中,所述指定模块320,具体用于判断所述上一报文所属出口队列是否为所述出端口对应的出口队列中的最后一个出口队列;若是,则将所述出端口对应的出口队列中的第一个出口队列确定为当前报文所属出口队列;若否,则将所述上一报文所属出口队列的下一个出口队列确定为当前报文所属出口队列。
在一可选的实现方式中,所述装置还包括(图3中未示出):
设置权值模块,用于根据所述预设指定规则,设置所述出端口对应的每个出口队列的WRR权值。
在一可选的实现方式中,所述装置还包括(图3中未示出):
记录模块,用于所述指定模块320在根据所述上一报文所属出口队列为当前报文指定出口队列之后,将为当前报文指定的出口队列确定为所述出端口对应的上一报文所属出口队列。
在一可选的实现方式中,所述转发模块330,具体用于通过HiGig通道将当前报文、指定的出口队列的标识、所述出端口的标识发送至交换芯片,以使所述交换芯片将当前报文分配到指定的出口队列的标识对应的出口队列,并从所述出端口的标识对应的端口转发出去。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (8)

1.一种报文转发的方法,其特征在于,所述方法包括:
在确定当前报文的出端口后,获取所述出端口对应的上一报文所属出口队列;
判断所述上一报文所属出口队列是否为所述出端口对应的出口队列中的最后一个出口队列;
若是,则将所述出端口对应的出口队列中的第一个出口队列确定为当前报文所属出口队列;
若否,则将所述上一报文所属出口队列的下一个出口队列确定为当前报文所属出口队列;
通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预设指定规则,为所述出端口对应的每个出口队列设置加权循环WRR权值。
3.根据权利要求1所述的方法,其特征在于,所述根据所述上一报文所属出口队列为当前报文指定出口队列之后,所述方法还包括:
将为当前报文指定的出口队列确定为所述出端口对应的上一报文所属出口队列。
4.根据权利要求1所述的方法,其特征在于,所述通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去,包括:
通过HiGig通道将当前报文、指定的出口队列的标识、所述出端口的标识发送至交换芯片,以使所述交换芯片将当前报文分配到指定的出口队列的标识对应的出口队列,并从所述出端口的标识对应的端口转发出去。
5.一种报文转发的装置,其特征在于,所述装置包括:
获取模块,用于在确定当前报文的出端口后,获取所述出端口对应的上一报文所属出口队列;
指定模块,用于判断所述上一报文所属出口队列是否为所述出端口对应的出口队列中的最后一个出口队列;若是,则将所述出端口对应的出口队列中的第一个出口队列确定为当前报文所属出口队列;若否,则将所述上一报文所属出口队列的下一个出口队列确定为当前报文所属出口队列;
转发模块,用于通过交换芯片根据指定的出口队列将当前报文从所述出端口转发出去。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
设置权值模块,用于根据预设指定规则,为所述出端口对应的每个出口队列设置加权循环WRR权值。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
记录模块,用于所述指定模块在根据所述上一报文所属出口队列为当前报文指定出口队列之后,将为当前报文指定的出口队列确定为所述出端口对应的上一报文所属出口队列。
8.根据权利要求5所述的装置,其特征在于,所述转发模块,具体用于通过HiGig通道将当前报文、指定的出口队列的标识、所述出端口的标识发送至交换芯片,以使所述交换芯片将当前报文分配到指定的出口队列的标识对应的出口队列,并从所述出端口的标识对应的端口转发出去。
CN201711392001.5A 2017-12-21 2017-12-21 报文转发的方法及装置 Active CN108040019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711392001.5A CN108040019B (zh) 2017-12-21 2017-12-21 报文转发的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711392001.5A CN108040019B (zh) 2017-12-21 2017-12-21 报文转发的方法及装置

Publications (2)

Publication Number Publication Date
CN108040019A CN108040019A (zh) 2018-05-15
CN108040019B true CN108040019B (zh) 2021-12-24

Family

ID=62100618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711392001.5A Active CN108040019B (zh) 2017-12-21 2017-12-21 报文转发的方法及装置

Country Status (1)

Country Link
CN (1) CN108040019B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806924B (zh) * 2018-08-06 2022-06-07 大唐移动通信设备有限公司 一种基于cpu占用率的网络处理方法及装置
CN109688069A (zh) * 2018-12-29 2019-04-26 杭州迪普科技股份有限公司 一种处理网络流量的方法、装置、设备及存储介质
CN109818882B (zh) * 2019-02-22 2022-11-01 杭州迪普科技股份有限公司 一种执行QoS策略的方法及装置
CN110061924B (zh) * 2019-04-18 2022-05-06 东软集团股份有限公司 一种报文转发方法、装置及相关产品
CN110768915A (zh) * 2019-10-31 2020-02-07 杭州迪普科技股份有限公司 一种分流方法及装置
CN112994943B (zh) * 2021-02-28 2022-05-27 新华三信息安全技术有限公司 一种报文统计方法及装置
CN113676423A (zh) * 2021-08-13 2021-11-19 北京东土军悦科技有限公司 一种端口流量控制方法、装置、交换芯片和存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7701849B1 (en) * 2006-06-23 2010-04-20 Juniper Networks, Inc. Flow-based queuing of network traffic
US7782770B1 (en) * 2006-06-30 2010-08-24 Marvell International, Ltd. System and method of cross-chip flow control
CN101378364B (zh) * 2008-09-25 2011-01-19 杭州华三通信技术有限公司 广域网出口调度方法及单元
US8639862B2 (en) * 2009-07-21 2014-01-28 Applied Micro Circuits Corporation System-on-chip queue status power management
CN102377645B (zh) * 2010-08-12 2014-05-28 盛科网络(苏州)有限公司 交换芯片及其实现方法
CN102231697A (zh) * 2011-06-17 2011-11-02 瑞斯康达科技发展股份有限公司 一种报文队列的带宽调度方法、报文上报方法及其装置
CN102263701B (zh) * 2011-08-19 2017-03-22 中兴通讯股份有限公司 队列调整方法及装置
CN102594663A (zh) * 2012-02-01 2012-07-18 中兴通讯股份有限公司 队列调度方法及装置
CN105978824B (zh) * 2016-07-18 2017-09-29 湖南恒茂高科股份有限公司 帧队列调度流量整形方法与系统

Also Published As

Publication number Publication date
CN108040019A (zh) 2018-05-15

Similar Documents

Publication Publication Date Title
CN108040019B (zh) 报文转发的方法及装置
US10135636B2 (en) Method for generating forwarding information, controller, and service forwarding entity
US9185047B2 (en) Hierarchical profiled scheduling and shaping
US9608926B2 (en) Flexible recirculation bandwidth management
US10135735B2 (en) Method and system for managing flows in a network
KR101893963B1 (ko) 소프트웨어 정의 프로토콜 네트워크 노드를 위한 시스템 및 방법
JP7288980B2 (ja) 仮想サービスネットワークにおけるサービス品質
US20150146527A1 (en) System, Method and Apparatus for Network Congestion Management and Network Resource Isolation
US10225204B2 (en) Content based overload protection
US9882817B2 (en) Inter-device policing on network interface devices in LAG configuration
US20200236051A1 (en) Congestion Flow Identification Method And Network Device
US20150366000A1 (en) Architecture for radio access network and evolved packet core
WO2018013443A1 (en) Multiple core software forwarding
CN103414594A (zh) 一种用于计费和监控的ip流信息统计方法
CN107147585B (zh) 一种流量控制方法及装置
JP6461834B2 (ja) ネットワーク負荷分散装置および方法
Osiński et al. Achieving end-to-end network visibility with host-int
CN109792405B (zh) 用于传输节点中共享缓冲器分配的方法和设备
EP3989515A1 (en) Packet processing method and apparatus, and communications device
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
KR101773528B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
JP2019009630A (ja) ネットワーク負荷分散装置および方法
CN111953598B (zh) 一种分布式流量转发方法、装置及系统
Wei et al. A performance simulation and verification method of packet scheduling algorithms for data stream based on QoS
CN116846834A (zh) 数据传输方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant