CN109510780B - 流控方法、交换芯片及网络设备 - Google Patents

流控方法、交换芯片及网络设备 Download PDF

Info

Publication number
CN109510780B
CN109510780B CN201811518973.9A CN201811518973A CN109510780B CN 109510780 B CN109510780 B CN 109510780B CN 201811518973 A CN201811518973 A CN 201811518973A CN 109510780 B CN109510780 B CN 109510780B
Authority
CN
China
Prior art keywords
protocol
cpu
protocol message
hardware
sent
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
CN201811518973.9A
Other languages
English (en)
Other versions
CN109510780A (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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN201811518973.9A priority Critical patent/CN109510780B/zh
Publication of CN109510780A publication Critical patent/CN109510780A/zh
Application granted granted Critical
Publication of CN109510780B publication Critical patent/CN109510780B/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/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • 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/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种流控方法、交换芯片及网络设备。在本申请实施例中,一方面,通过在交换芯片的入口设置多种协议类型的入口ACL,在交换芯片的入口处实现一定程度的报文流控;另一方面,通过对不同协议类型的协议报文配置不同优先级的硬件队列,并按照多个硬件队列之间的优先级,依次将其中的协议报文送入CPU,进一步实现了对需要送CPU的协议报文的流控。在本申请实施例中,通过在交换芯片的入口设置入口ACL以及对不同协议类型的协议报文配置不同优先级的硬件队列,在交换芯片上实现了对需要送CPU的协议报文的流控,整个过程无需CPU的参与,进而有助于降低CPU的资源消耗,减轻CPU的运行负担。

Description

流控方法、交换芯片及网络设备
技术领域
本申请涉及无线通信技术领域,尤其涉及一种流控方法、交换芯片及网络设备。
背景技术
网络设备在接收到其它设备发送的报文后,可由其交换芯片对该报文进行类型解析,以判断该报文是协议报文或是数据报文。当确定该报文是数据报文时,无需上送中央处理器(Central Processing Unit,CPU),交换芯片可对该报文继续进行其它处理。当确定该报文是协议报文,如地址解析协议(Address Resolution Protocol,ARP)报文时,会将该协议报文上送CPU,由CPU进行相关处理。但是,现有上传协议报文至CPU的方式有可能使CPU的负荷增大,导致 CPU崩溃。
发明内容
本申请的多个方面提供一种流控方法、交换芯片及网络设备,用以在交换芯片上实现对协议报文的流控处理,减小对CPU资源的消耗,进而减轻CPU的负荷。
本申请实施例提供一种流控方法,适用于网络设备中的交换芯片,该方法包括:
当接收到协议报文时,确定所述协议报文的协议类型;
根据与所述协议类型对应的入口访问控制列表(Access control list, ACL),判断所述协议报文是否需要送CPU;
若判断结果为是,则将所述协议报文送入所述交换芯片包含的多个硬件队列中与所述协议类型绑定的硬件队列中;
按照所述多个硬件队列之间的优先级,依次将所述多个硬件队列中的协议报文送入CPU。
本申请实施例还提供一种交换芯片,包括:输入端口、输出端口、控制模块、多个硬件队列;
所述输入端口,用于接收协议报文;
所述控制模块,用于在所述输入端口接收到协议报文时,确定所述接收到的协议报文的协议类型;根据与所述协议类型对应的入口ACL,判断所述接收到的协议报文是否需要送CPU;若判断结果为是,则将所述协议报文送入所述多个硬件队列中与所述协议类型绑定的硬件队列中;按照所述多个硬件队列之间的优先级,通过所述输出端口依次将所述多个硬件队列中的协议报文送入所述CPU。
本申请实施例还提供一种网络设备,包括上述交换芯片和CPU;所述交换芯片的输出端口与所述CPU连接。
在本申请实施例中,一方面,通过在交换芯片的入口设置多种协议类型的入口ACL,在交换芯片的入口处实现一定程度的报文流控;另一方面,通过对不同协议类型的协议报文配置不同优先级的硬件队列,并按照多个硬件队列之间的优先级,依次将其中的协议报文送入CPU,进一步实现了对需要送CPU的协议报文的流控。在本申请实施例中,通过在交换芯片的入口设置入口ACL以及对不同协议类型的协议报文配置不同优先级的硬件队列,在交换芯片上实现了对需要送CPU的协议报文的流控,整个过程无需CPU的参与,进而有助于降低CPU的资源消耗,减轻CPU的运行负担。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的一种网络设备的结构示意图;
图1b为本申请实施例提供的一种交换芯片的结构示意图;
图2为本申请实施例提供的一种流控方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有协议报文的流控方式需要消耗CPU资源而增加CPU的负荷的技术问题,本申请实施例提供一种解决方案,基本思路是:一方面,通过在交换芯片的入口设置多种协议类型的入口ACL,在交换芯片的入口处实现一定程度的报文流控;另一方面,通过对不同协议类型的协议报文配置不同优先级的硬件队列,并按照多个硬件队列之间的优先级,依次将其中的协议报文送入CPU,进一步实现了对需要送CPU的协议报文的流控。在本申请实施例中,通过在交换芯片的入口设置入口ACL以及对不同协议类型的协议报文配置不同优先级的硬件队列,在交换芯片上实现了对需要送CPU的协议报文的流控,整个过程无需CPU的参与,进而有助于降低CPU的资源消耗,减轻CPU的运行负担。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请实施例提供的一种网络设备的内部结构示意图。在本实施例中网络设备可以为交换机等。如图1a所示,网络设备包括:交换芯片101和CPU 102;其中交换芯片101的输出端口101b与CPU 102连接。
在本实施例中,交换芯片101可采用专门应用的集成电路(Application SpecificIntegrated Circuit,ASIC)芯片,例如现场可编程门阵列 (Field-Programmable GateArray,FPGA)是在可编程阵列逻辑器件 (Programmable Array Logic,PAL)、通用阵列逻辑器件(General Array Logic, GAL)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)等,但不限于此。如图1a所示,交换芯片101包括:输入端口101a、输出端口101b、控制模块101c以及多个硬件队列101d。
其中,输入端口101a配置有通信组件,用于接收协议报文。该通信组件可被配置为便于网络设备和其他设备之间的通信。网络设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术,射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
交换芯片101的输入端口101a不仅接收协议报文,还接收数据报文。相应地,控制模块101c在输入端口101a接收到报文时,还用于判断输入端口101a 接收到的报文是否为协议报文。可选地,可根据接收到的报文的报文头信息,判断接收到的报文是否为协议报文。如果报文头信息中包含有协议类型字段,则确定接收到的报文为协议报文,进一步可根据该协议类型字段确定出该协议报文所属的协议类型。相应地,如果接收到的报文信息中不含有协议类型字段,则确定接收到的报文不是协议报文,其可以是数据报文等,并将该数据报文进行相关处理。例如将数据报文转发给其他设备等。在本申请实施例中主要针对协议报文进行流控处理,因此对数据报文的处理不进行过多描述。
在本实施例中,交换芯片101的输入端口上设置有入口ACL,入口ACL设置有一定的匹配规则,用于检测输入端口101a接收到的协议报文是否为需要送 CPU 102的报文。进一步,在本实施例中,不同协议类型的协议报文设置有不同的入口ACL,且协议类型之间具有优先级。
另一方面,在本实施例中,多个硬件队列101d之间具有优先级,用于与协议类型之间的优先级进行绑定。其中,协议类型的优先级越高,绑定的硬件队列的优先级越高。这样,在同一时刻,优先级越高的硬件队列中的协议报文,越优先送入CPU 102。其中,多个硬件队列101d的数量由所采用的交换芯片的类型所决定,在本申请实施例中不进行限定。例如,以太网控制报文协议(Internet Control Message Protocol,IMCP)协议的优先级高于ARP协议的优先级,则将优先级高的硬件队列与IMCP协议进行绑定,将优先级低的硬件队列与ARP协议绑定,其中序号编码值越大的硬件队列,其优先级越高。
相应地,控制模块101c,用于:在输入端口接收到协议报文时,确定接收到的协议报文的协议类型;并根据与协议类型对应的入口ACL,判断接收到的协议报文是否需要送CPU;当判断结果为是时,将接收到的协议报文送入多个硬件队列101d中与该协议类型绑定的硬件队列中;之后,按照多个硬件队列101d之间的优先级,通过输出端口101b依次将多个硬件队列101d 中的协议报文送入CPU 102。
相应地,当判断接收到的协议报文不需要送CPU时,将该协议报文丢弃。
本实施例提供的网络设备,包括交换芯片和CPU。在本实施例中,一方面,通过在交换芯片的入口设置多种协议类型的入口ACL,在交换芯片的入口处实现一定程度的报文流控;另一方面,通过对不同协议类型的协议报文配置不同优先级的硬件队列,并按照多个硬件队列之间的优先级,依次将其中的协议报文送入CPU,进一步实现了对需要送CPU的协议报文的流控。在本实施例中,通过在交换芯片的入口设置入口ACL以及对不同协议类型的协议报文配置不同优先级的硬件队列,在交换芯片上实现了对需要送CPU的协议报文的流控,整个过程无需CPU的参与,进而有助于降低CPU的资源消耗,减轻CPU的运行负担。
在一可选实施例中,交换芯片101的输入端口101a的入口ACL包含有黑名单。其中,黑名单为网络设备拒绝接收的协议报文。则,控制模块101c可判断接收到的协议报文是否属于黑名单,并当判断出协议报文不属于黑名单时,确定协议报文需要送CPU。相应地,若判断出该协议报文属于黑名单,则将该协议报文丢弃。
进一步,交换芯片101的入口ACL还包含有白名单。其中,白名单为需要优先送CPU的协议报文。为了能够保证白名单的协议报文能够优先送CPU,可设置白名单和黑名单的匹配顺序为将接收到的协议报文优先与白名单进行匹配,即在判断协议报文是否属于黑名单之前,先判断协议报文是否属于白名单。若判断结果为该协议报文属于白名单,则确定该协议报文需要送CPU。若判断结果为该协议报文不属于白名单,再判断该协议报文是否属于黑名单。
在本申请实施例中,交换芯片101的入口ACL可根据协议报文的报文头信息进行设置。例如可以根据报文头信息中的目的MAC地址、源MAC地址、目的IP地址、源IP地址等进行设置。例如,当根据目的MAC地址设置入口ACL 时,可将一部分目的MAC地址设置为黑名单,另外一部分目的MAC地址设置为白名单。又例如,当根据目的IP地址设置入口ACL时,可将一部分目的IP 地址设置为黑名单,另外一部分目的IP地址设置为白名单等等。
基于上述基于报文头信息设置入口ACL的规则,控制模块101c在判断协议报文是否属于黑名单时,可根据协议报文的报文头信息中的协议类型,确定出该协议报文的协议类型,将协议报文的报文头信息与该协议类型的入口ACL 中的黑名单的报文头信息进行匹配,若该协议报文的报文头信息存在黑名单中,则确定该协议报文属于黑名单;否则,则确定该协议报文不属于黑名单,即确定该协议报文需要送CPU。例如,对于根据目的MAC地址设置的入口ACL,可将协议报文的报文头信息中的目的MAC地址与黑名单中的目的MAC地址进行匹配,若该协议报文的目的MAC地址存在于黑名单中,则确定该协议报文属于黑名单;反之,则确定该协议报文不属于黑名单,即协议报文需要送CPU。
同样的,也可将协议报文的报文头信息与该协议类型的入口ACL中的白名单的报文头信息进行匹配,来判断协议报文是否为白名单。具体实施方式与上述黑名单的确定方式相同,在此不再赘述。
可选地,交换芯片101的入口ACL还包含有灰名单和默认名单。其中,灰名单为需要对其进行限速的协议报文;默认名单为不属于黑白灰名单的其他协议报文,按照设定的速率上送CPU。可选地,为了使具有特殊性的协议报文能够优先处理,可设置入口ACL中各名单的优先级,可选地,按照优先级由高到低的顺序,入口ACL各名单的优先级依次为:白名单、黑名单、灰名单和默认名单。除属于黑名单之外的其他名单的协议报文,都需要送CPU。
基于入口ACL各名单的优先级,控制模块101c在确定出接收到的协议报文的协议类型时,先判断该协议报文是否属于上一优先级名单,当确定其不属于上一优先级名单时,再判断协议报文是否属于下一优先级名单。例如,将该协议报文优先与其协议类型对应的入口ACL的白名单进行匹配,若该协议报文不属于白名单,再与入口ACL的黑名单进行匹配等等。
在本申请实施例中,不仅为不同协议类型的协议报文配置不同优先级的硬件队列,以使优先级高的协议类型对应的协议报文可以优先转发;而且对于同一协议类型的协议报文中需要送CPU的协议报文也配置不同优先级的硬件队列,以使同一协议类型的协议报文中的白名单报文可以优先送CPU。如图1b所示,可为每个协议类型配置多个硬件队列,其中可使该协议类型下的白名单报文单独绑定一个硬件队列,且为了保证属于白名单的报文可以优先送CPU,可为白名单绑定该协议类型对应的多个硬件队列中优先级最高的硬件队列。在图 1b中以每个协议类型绑定2个硬件队列进行图示,并不对每个协议类型绑定的硬件队列的数量进行限制。
基于图1b所示的交换芯片,控制模块101c在判断出协议报文需要送CPU 时,进一步判断该协议报文是否属于白名单,若判断出协议报文属于白名单,则将协议报文送入与其协议类型绑定的硬件队列中的第一硬件队列。若协议报文不属于白名单报文,则将该协议报文送入与其协议类型绑定的硬件队列中的第二硬件队列。其中,第一硬件队列的优先级高于第二硬件队列的优先级。这样,属于白名单的协议报文单独使用一个优先级较高的硬件队列,对于属于同一协议类型的需要送CPU的协议报文,可优先将其中的属于白名单的协议报文送CPU。
对于入口ACL还包含有灰名单和默认名单,若判断出协议报文属于灰名单或默认名单,则将该协议报文送入与其协议类型绑定的硬件队列的第二硬件队列中。对于第二硬件队列中灰名单和默认名单,按照先入先出的顺序送CPU。
基于图1b所示的交换芯片,其具有16个硬件队列。其硬件队列的数量为协议类型的2倍,硬件队列的优先级与其绑定的协议类型的优先级存在对应关系。其中,白名单绑定的硬件队列的优先级为该协议类型的优先级乘以2再加1;灰名单和/或默认名单绑定的优先级队列的优先级为该协议类型的优先级乘以2。例如,假设IMCP协议的优先级为7,则与IMCP协议绑定的2个硬件队列的优先级分别为15和14;其中优先级为15的硬件队列与IMCP协议下的白名单进行绑定,优先级为14的硬件队列与IMCP协议下的灰名单、默认名单进行绑定。
进一步,考虑到交换芯片101将协议报文上送CPU 102的速率可能与CPU 的处理速率不匹配。若交换芯片101将协议报文上送CPU 102的速率过慢,且远小于CPU的最大处理速率,可能造成CPU资源的浪费;如果交换芯片101 将协议报文上送CPU 102的速率过快,大于CPU 102的最大处理速率,可会增加CPU 102的负荷,甚至导致CPU 102崩溃。基于此,可在交换芯片101的输出端口101b上设置出口ACL,用以限制协议报文上送CPU 102的速率。相应地,控制模块101c在通过输出端口101b将各硬件队列中的协议报文送入CPU 102时,可按照各硬件队列之间的优先级,依次将各硬件队列中的协议报文送至交换芯片101的输出端口101b上;并结合输出端口101b的出口ACL,将当前到达该输出端口的协议报文送入CPU 102。
进一步,考虑到如果交换芯片101将协议报文上送CPU 102的速率过快,大于CPU102的最大处理速率,可会增加CPU 102的负荷,甚至导致 CPU 102崩溃,可设置出口ACL规则为以小于CPU 102的最大处理速率的速率将输出端口101b处的协议报文送入CPU 102。相应地,控制模块102 在将当前到达输出端口101b的协议报文送入CPU 102时,可按照小于或等于设定速率的速率将当前到达输出端口101b的协议报文送入CPU,且设定速率小于CPU的最大处理速率。
值得说明的是,图1a和图1b中所示的协议类型的种类和数量、硬件队列的数量以及二者之间的绑定关系均为示例性说明,并不对其进行限定。可选地,若协议类型的种类超过网络设备允许的优先级数量,则可多种协议类型共用同一优先级,并共用相同的入口ACL。对于共用同一优先级的协议类型,可按照先入先出的顺序将协议报文送CPU。
除上述网络设备之外,本申请实施例还提供一种流控方法,适合于网络设备中的交换芯片。下面以交换芯片的角度,对本申请实施例提供的流控方法,进行示例性说明。
图2为本申请实施例提供的一种流控方法的流程示意图。该方法适用于网络设备中的交换芯片。其中交换芯片的结构可参见上述网络设备实施例中的相关描述,在此不再赘述。如图2所示,该方法包括:
201、当接收到协议报文时,确定该协议报文的协议类型。
202、根据与该协议类型对应的入口ACL,判断协议报文是否需要送 CPU。若判断结果为是,则执行步骤203。
203、将协议报文送入交换芯片包含的多个硬件队列中与协议类型绑定的硬件队列中。
204、按照多个硬件队列之间的优先级,依次将多个硬件队列中的协议报文送入CPU。
在本实施例中,交换芯片不仅接收协议报文,还接收数据报文。相应地,在步骤201之前,在接收到报文时,可判断接收到的报文是否为协议报文。可选地,可根据接收到的报文的报文头信息,判断接收到的报文是否为协议报文。如果报文头信息中包含有协议类型字段,则确定接收到的报文为协议报文,进一步可根据该协议类型字段确定出该协议报文所属的协议类型。相应地,如果接收到的报文信息中不含有协议类型字段,则确定接收到的报文不是协议报文,其可以是数据报文等,并将该数据报文进行相关处理。例如将数据报文转发给其他设备等。在本申请实施例中主要针对协议报文进行流控处理,因此对数据报文的处理不进行过多描述。
在本实施例中,交换芯片设置有入口ACL,入口ACL设置有一定的匹配规则,用于检测接收到的协议报文是否为需要送CPU的报文。进一步,在本实施例中,不同协议类型的协议报文设置有不同的入口ACL,且协议类型之间具有优先级。在步骤202中,若判断结果为否,即判断结果为该协议报文不需要送CPU时,则可将该协议报文丢弃。
另一方面,在本实施例中,多个硬件队列之间具有优先级,用于与协议类型之间的优先级进行绑定。其中,协议类型的优先级越高,绑定的硬件队列的优先级越高。这样,在同一时刻,优先级越高的硬件队列中的协议报文,越优先送入CPU。其中,多个硬件队列的数量由所采用的交换芯片的类型所决定,在本申请实施例中不进行限定。例如,如上述图1a所示,IMCP协议的优先级高于ARP协议的优先级,则将优先级高的硬件队列与IMCP协议进行绑定,将优先级低的硬件队列与ARP协议绑定,其中序号编码值越大的硬件队列,其优先级越高。
在本实施例中,一方面,通过在交换芯片的入口设置多种协议类型的入口 ACL,在交换芯片的入口处实现一定程度的报文流控;另一方面,通过对不同协议类型的协议报文配置不同优先级的硬件队列,并按照多个硬件队列之间的优先级,依次将其中的协议报文送入CPU,进一步实现了对需要送CPU的协议报文的流控。在本实施例中,通过在交换芯片的入口设置入口ACL以及对不同协议类型的协议报文配置不同优先级的硬件队列,在交换芯片上实现了对需要送CPU的协议报文的流控,整个过程无需CPU的参与,进而有助于降低CPU的资源消耗,减轻CPU的运行负担。
在一可选实施例中,交换芯片的入口ACL包含有黑名单。其中,黑名单为不上送的协议报文。则,步骤102的一种可选实施方式为:判断接收到的协议报文是否属于黑名单,并当判断出协议报文不属于黑名单时,确定协议报文需要送CPU。相应地,若判断出该协议报文属于黑名单,则将该协议报文丢弃。
进一步,交换芯片的入口ACL还包含有白名单。其中,白名单为需要优先送CPU的协议报文。为了能够保证白名单的协议报文能够优先送CPU,可设置白名单和黑名单的匹配顺序为将接收到的协议报文优先与白名单进行匹配,即在判断协议报文是否属于黑名单之前,先判断协议报文是否属于白名单。若判断结果为该协议报文属于白名单,则确定该协议报文需要送CPU。若判断结果为该协议报文不属于白名单,再判断该协议报文是否属于黑名单。
其中,判断协议报文是否属于黑名单和/或白名单的方式可参见上述实施例对图1a的相关描述,在此不再赘述。
可选地,交换芯片的入口ACL还包含有灰名单和默认名单。其中,灰名单为需要对其进行限速的协议报文;默认名单为不属于黑白灰名单的其他协议报文,按照设定的速率上送CPU。可选地,为了使具有特殊性的协议报文能够优先处理,可设置入口ACL中各名单的优先级,可选地,按照优先级由高到低的顺序,入口ACL各名单的优先级依次为:白名单、黑名单、灰名单和默认名单。除属于黑名单之外的其他名单的协议报文,都需要送CPU。
基于入口ACL各名单的优先级,在确定出接收到的协议报文的协议类型时,先判断该协议报文是否属于上一优先级名单,当确定其不属于上一优先级名单时,再判断协议报文是否属于下一优先级名单。例如,将该协议报文优先与其协议类型对应的入口ACL的白名单进行匹配,若该协议报文不属于白名单,再与入口ACL的黑名单进行匹配等等。
在本申请实施例中,不仅为不同协议类型的协议报文配置不同优先级的硬件队列,以使优先级高的协议类型对应的协议报文可以优先转发;而且对于同一协议类型的协议报文中需要送CPU的协议报文也配置不同优先级的硬件队列,以使同一协议类型的协议报文中的白名单报文可以优先送CPU,可为每个协议类型配置多个硬件队列,其中可使该协议类型下的白名单报文单独绑定一个硬件队列,且为了保证属于白名单的报文可以优先送CPU,可为白名单绑定该协议类型对应的多个硬件队列中优先级最高的硬件队列。其绑定方式可参见上述图1b,在此不再赘述。
基于图1b所示的交换芯片中协议类型与硬件队列的绑定方式,步骤203的一种可选实施方式为:若判断出协议报文属于白名单,则将协议报文送入与其协议类型绑定的硬件队列中的第一硬件队列。若协议报文不属于白名单报文,则将该协议报文送入与其协议类型绑定的硬件队列中的第二硬件队列。其中,第一硬件队列的优先级高于第二硬件队列的优先级。
对于入口ACL还包含有灰名单和默认名单,若判断出协议报文属于灰名单或默认名单,则将该协议报文送入与其协议类型绑定的硬件队列的第二硬件队列中。对于第二硬件队列中灰名单和默认名单,按照先入先出的顺序送CPU。
进一步,考虑到交换芯片将协议报文上送CPU的速率可能与CPU的处理速率不匹配。若交换芯片将协议报文上送CPU的速率过慢,且远小于CPU的最大处理速率,可能造成CPU资源的浪费;如果交换芯片将协议报文上送CPU 102 的速率过快,大于CPU的最大处理速率,可会增加CPU的负荷,甚至导致CPU 崩溃。基于此,可在交换芯片上设置出口ACL,用以限制协议报文上送CPU 102 的速率。相应地,步骤204的一种可选实施方式为:按照各硬件队列之间的优先级,依次将各硬件队列中的协议报文送至交换芯片的出口上;并结合交换芯片的出口ACL,将当前到达该出口的协议报文送入CPU。
进一步,考虑到如果交换芯片将协议报文上送CPU的速率过快,大于 CPU的最大处理速率,可能会增加CPU的负荷,甚至导致CPU崩溃,可设置出口ACL规则为以小于CPU的最大处理速率的速率将交换芯片出口上的协议报文送入CPU。相应地,在将当前到达交换芯片出口的协议报文送入 CPU时,可按照小于或等于设定速率的速率将当前到达交换芯片出口的协议报文送入CPU,且设定速率小于CPU的最大处理速率。
值得说明的是,若协议类型的种类超过交换芯片允许的优先级数量,则可多种协议类型共用同一优先级,并共用相同的入口ACL。对于共用同一优先级的协议类型,可按照先入先出的顺序将协议报文送CPU。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201和202的执行主体可以为设备A;又比如,步骤201的执行主体可以为设备A,步骤202 的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
本申请实施例还提供一种交换芯片,其中交换芯片的结构示意图,如上图 1a和图1b中的交换芯片101所示。交换芯片101包括:输入端口101a、输出端口101b、控制模块101c以及多个硬件队列101d。其中,交换芯片101的输入端口101a,用于接收协议报文。
控制模块101c,用于:在输入端口接收到协议报文时,确定接收到的协议报文的协议类型;并根据与协议类型对应的入口ACL,判断接收到的协议报文是否需要送CPU;当判断结果为是时,将接收到的协议报文送入多个硬件队列101d中与该协议类型绑定的硬件队列中;之后,按照多个硬件队列 101d之间的优先级,通过输出端口101b依次将多个硬件队列101d中的协议报文送入CPU 102。
其中,对于交换芯片101中的输入端口101a、输出端口101b、控制模块 101c以及多个硬件队列101d的具体描述,可参见上述实施例对图1a和图1b 的相关描述,在此不再赘述。
在本实施例中,一方面,通过在交换芯片的入口设置多种协议类型的入口 ACL,在交换芯片的入口处实现一定程度的报文流控;另一方面,通过对不同协议类型的协议报文配置不同优先级的硬件队列,并按照多个硬件队列之间的优先级,依次将其中的协议报文送入CPU,进一步实现了对需要送CPU的协议报文的流控。在本实施例中,通过在交换芯片的入口设置入口ACL以及对不同协议类型的协议报文配置不同优先级的硬件队列,在交换芯片上实现了对需要送CPU的协议报文的流控,整个过程无需CPU的参与,进而有助于降低CPU的资源消耗,减轻CPU的运行负担。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/ 或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (8)

1.一种流控方法,适用于网络设备中的交换芯片,其特征在于,包括:
当接收到协议报文时,确定所述协议报文的协议类型;
根据与所述协议类型对应的入口访问控制列表ACL,判断所述协议报文是否需要送CPU;其中,设置所述访问控制列表ACL时包含协议报文的报文头信息;若判断结果为是,则将所述协议报文送入所述交换芯片包含的多个硬件队列中与所述协议类型绑定的硬件队列中;
入口ACL包括白名单,若所述协议报文需要送CPU且属于白名单,将所述协议报文送入与所述协议类型绑定的硬件队列中的第一硬件队列;
若所述协议报文需要送CPU但不属于白名单,将所述协议报文送入与所述协议类型绑定的硬件队列中的第二硬件队列;其中,所述第一硬件队列的优先级高于所述第二硬件队列的优先级;按照所述多个硬件队列之间的优先级,依次将所述多个硬件队列中的协议报文送入CPU。
2.根据权利要求1所述的方法,其特征在于,所述入口ACL还包括:黑名单,则根据与所述协议类型对应的入口ACL,判断所述协议报文是否需要送CPU,包括:
判断所述协议报文是否属于所述黑名单;
若所述协议报文不属于所述黑名单,则确定所述协议报文需要送CPU。
3.根据权利要求1-2任一项所述的方法,其特征在于,按照所述多个硬件队列之间的优先级,依次将所述各硬件队列中的协议报文送入CPU,包括:
按照所述多个硬件队列之间的优先级,依次将各硬件队列中的协议报文送至所述交换芯片的出口上;
结合所述交换芯片的出口ACL,将当前到达所述出口的协议报文送入CPU。
4.根据权利要求3所述的方法,其特征在于,结合所述交换芯片的出口ACL,将当前到达所述出口的协议报文送入CPU,包括:
在所述交换芯片的出口上,按照小于或等于设定速率的速率将当前到达所述交换芯片出口的协议报文送入所述CPU,所述设定速率小于所述CPU的最大处理速率。
5.一种交换芯片,其特征在于,包括:输入端口、输出端口、控制模块和多个硬件队列;
所述输入端口,用于接收协议报文;
所述控制模块,用于在所述输入端口接收到协议报文时,确定所述接收到的协议报文的协议类型;根据与所述协议类型对应的入口ACL,判断所述接收到的协议报文是否需要送CPU;
其中,设置访问控制列表ACL时包含协议报文的报文头信息;若判断结果为是,则所述协议报文送入所述多个硬件队列中与所述协议类型绑定的硬件队列中;
所述入口ACL包括白名单,若所述协议报文需要送CPU且属于白名单,将所述协议报文送入与所述协议类型绑定的硬件队列中的第一硬件队列;
若所述协议报文需要送CPU但不属于白名单,将所述协议报文送入与所述协议类型绑定的硬件队列中的第二硬件队列;
其中,所述第一硬件队列的优先级高于所述第二硬件队列的优先级;
按照所述多个硬件队列之间的优先级,通过所述输出端口依次将所述多个硬件队列中的协议报文送入所述CPU。
6.根据权利要求5所述的交换芯片,其特征在于,所述输出端口上设置有出口ACL;所述控制模块在按照所述多个硬件队列之间的优先级,通过所述依次将所述多个硬件队列中的协议报文送入所述CPU时,具体用于:
按照所述各硬件队列之间的优先级,依次将所述各硬件队列中的协议报文送至所述输出端口;
结合所述出口ACL,将当前到达所述输出端口的协议报文送入CPU。
7.根据权利要求6所述的交换芯片,其特征在于,所述结合所述交换芯片的出口ACL,将当前到达所述出口的协议报文送入CPU,包括:
在所述输出端口处,按照小于或等于设定速率的速率将当前到达所述输出端口的协议报文送入所述CPU,所述设定速率小于所述CPU的最大处理速率。
8.一种网络设备,其特征在于,包括CPU和权利要求5-7任一项所述的交换芯片;所述交换芯片的输出端口与所述CPU连接。
CN201811518973.9A 2018-12-12 2018-12-12 流控方法、交换芯片及网络设备 Active CN109510780B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811518973.9A CN109510780B (zh) 2018-12-12 2018-12-12 流控方法、交换芯片及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811518973.9A CN109510780B (zh) 2018-12-12 2018-12-12 流控方法、交换芯片及网络设备

Publications (2)

Publication Number Publication Date
CN109510780A CN109510780A (zh) 2019-03-22
CN109510780B true CN109510780B (zh) 2023-02-17

Family

ID=65753178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811518973.9A Active CN109510780B (zh) 2018-12-12 2018-12-12 流控方法、交换芯片及网络设备

Country Status (1)

Country Link
CN (1) CN109510780B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111030943A (zh) * 2019-12-13 2020-04-17 迈普通信技术股份有限公司 一种报文的处理方法、装置、转发设备及存储介质
CN113037691A (zh) * 2019-12-24 2021-06-25 中国移动通信集团浙江有限公司 报文处理方法、装置及系统
CN111294291B (zh) * 2020-01-16 2022-07-12 新华三信息安全技术有限公司 一种协议报文的处理方法和装置
CN111401985B (zh) * 2020-02-26 2024-01-16 京东科技控股股份有限公司 信息的展示方法和装置、存储介质和电子装置
CN112468415A (zh) * 2020-10-21 2021-03-09 浪潮思科网络科技有限公司 一种协议报文处理方法、装置、设备及介质
CN112367313B (zh) * 2020-10-30 2022-07-12 新华三技术有限公司合肥分公司 一种报文防攻击方法及设备
CN112511527B (zh) * 2020-11-26 2022-10-21 杭州迪普科技股份有限公司 报文传输方法及装置
CN112486681A (zh) * 2020-11-26 2021-03-12 迈普通信技术股份有限公司 通信方法及网络设备
CN112866114B (zh) * 2020-12-31 2022-12-13 锐捷网络股份有限公司 组播报文的处理方法及装置
CN113114584B (zh) * 2021-03-01 2023-02-28 杭州迪普科技股份有限公司 一种网络设备的保护方法及装置
CN114745340A (zh) * 2022-03-23 2022-07-12 新华三技术有限公司合肥分公司 一种报文处理方法及装置
CN115333853B (zh) * 2022-09-13 2024-04-26 杭州迪普科技股份有限公司 网络入侵检测方法、装置与电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034116A (zh) * 2015-03-13 2016-10-19 国家计算机网络与信息安全管理中心 减少恶意网络流量的方法和系统
CN107959638A (zh) * 2017-11-23 2018-04-24 迈普通信技术股份有限公司 报文发送方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571412B2 (en) * 2014-11-21 2017-02-14 Cavium, Inc. Systems and methods for hardware accelerated timer implementation for openflow protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034116A (zh) * 2015-03-13 2016-10-19 国家计算机网络与信息安全管理中心 减少恶意网络流量的方法和系统
CN107959638A (zh) * 2017-11-23 2018-04-24 迈普通信技术股份有限公司 报文发送方法及装置

Also Published As

Publication number Publication date
CN109510780A (zh) 2019-03-22

Similar Documents

Publication Publication Date Title
CN109510780B (zh) 流控方法、交换芯片及网络设备
WO2021180073A1 (zh) 报文传输方法、装置、网络节点及存储介质
US11968111B2 (en) Packet scheduling method, scheduler, network device, and network system
US20080196033A1 (en) Method and device for processing network data
US9125089B2 (en) Method and apparatus for packet aggregation in a network controller
US9338073B2 (en) Enhanced dynamic multicast optimization
WO2015112460A2 (en) System and method for a software defined protocol network node
WO2020087523A1 (zh) 网络通信的方法、装置及电子设备
CN109699089B (zh) 一种信道接入方法及装置
US11696364B2 (en) Selective multiple-media access control
KR101948872B1 (ko) 비면허 대역에서 lte와 wlan의 공존을 위한 채널 선택 및 프레임 스케줄링 동시 최적화 방법
CN103281257A (zh) 一种协议报文处理方法和设备
US20170195227A1 (en) Packet storing and forwarding method and circuit, and device
EP2834753A2 (en) Systems and methods for selective data redundancy elimination for resource constrained hosts
US11246134B2 (en) Carrier selecting method, terminal device, and computer storage medium
CN108810927A (zh) 一种调度请求的处理方法及系统
US10085273B2 (en) Method and device for transmitting enhanced transmission selection standard configuration information
CN111385220B (zh) 传输报文的方法和装置
US20060120387A1 (en) Methods and apparatus for processing traffic at a wireless mesh node
US11012378B2 (en) Methods and apparatus for shared buffer allocation in a transport node
CN112804166A (zh) 一种报文收发方法、装置及存储介质
FI127540B (en) Network resource management of communication resources
CN115552956A (zh) 数据传输方法、装置和通信设备
US10193905B2 (en) Method and apparatus for adaptive cache management
US20120106343A1 (en) Flow transfer apparatus and method for transferring flow based on characteristics of flow, terminal apparatus and flow processing method

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