CN110798342A - 一种基于软件实现旁路模式的方法及装置 - Google Patents

一种基于软件实现旁路模式的方法及装置 Download PDF

Info

Publication number
CN110798342A
CN110798342A CN201910974325.2A CN201910974325A CN110798342A CN 110798342 A CN110798342 A CN 110798342A CN 201910974325 A CN201910974325 A CN 201910974325A CN 110798342 A CN110798342 A CN 110798342A
Authority
CN
China
Prior art keywords
queue
packet
processed
full
data packet
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.)
Pending
Application number
CN201910974325.2A
Other languages
English (en)
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 CN201910974325.2A priority Critical patent/CN110798342A/zh
Publication of CN110798342A publication Critical patent/CN110798342A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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/6245Modifications to standard FIFO or LIFO

Landscapes

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

Abstract

本申请提供一种基于软件实现旁路模式的方法及装置。一种基于软件实现旁路模式的方法,应用于网络安全设备,该方法包括:接收网络中的数据包,从中确定一个待处理的数据包;判断对应于所述待处理的数据包的收包队列是否已满;在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列;在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。本申请与现有技术相比,可通过软件实现旁路模式,避免网络中断。

Description

一种基于软件实现旁路模式的方法及装置
技术领域
本申请涉及网络安全领域,特别涉及一种基于软件实现旁路模式的方法及装置。
背景技术
为了保证网络安全,不同的网络之间互相通信一般需要借助网络安全设备。网络安全设备对网络之间互相通信的数据包进行分析,以判断是否有威胁存在,然后将分析后确认为安全的数据包转发出去。因此,一旦某台网络安全设备发生了故障,通过这台设备连接的所有网络彼此之间就失去了联系,导致网络中断。在这种情况下,若想保证网络不中断,可以依靠旁路模式(bypass)实现。
旁路模式下,可以通过特定的触发状态,让网络之间传输的数据包不通过网络安全设备,而可以直接从物理上导通的端口转发出去,从而保证网络不会中断。传统的旁路模式依靠硬件才能实现,只能在断电或者死机这两个特定的情况下触发。然而,对于其它必须保证网络不中断的场合,传统旁路模式无法被触发,也就无法实现其功能。例如,在网络流量突增时,由于数据量大,网络安全设备达到处理性能的上限,也会导致网络卡顿甚至断网的情况,然而此种情况下可能并不涉及断电或死机,传统旁路模式无法发挥其功能。
发明内容
有鉴于此,本申请提供一种基于软件实现旁路模式的方法及装置,以实现在网络安全设备达到处理性能上限时,数据包能通过旁路模式转发出去。
一方面,本申请提供一种基于软件实现旁路模式的方法,应用于网络安全设备,该方法包括:
接收网络中的数据包,从中确定一个待处理的数据包;
判断对应于所述待处理的数据包的收包队列是否已满;
在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列;
在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。
另一方面,本申请提供一种基于软件实现旁路模式的装置,应用于网络安全设备,该装置包括:
接收模块,用于接收网络中的数据包,从中确定一个待处理的数据包;
判断模块,用于判断对应于所述待处理的数据包的收包队列是否已满;
入队模块,用于在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列;
转发模块,用于在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。
本申请提供了一种基于软件实现旁路模式的方法,以解决类似上述网络流量突增时产生的网络中断问题。本申请中,可以建立收包队列来接收网络中的数据包,并且在每次数据包入队前,先判断收包队列是否已满,从而采取相应的措施:若当前队列未满,则数据包可以入队;若当前队列已满,则可以将数据包通过预先封装好的旁路模式操作接口直接转发出去,依靠软件就能实现旁路模式。
本申请中基于数据包来检测突发性流量等状况的方法,能够精准地判断网络安全设备的处理性能是否达到上限,并且在设备的处理性能达到上限时触发旁路模式,从而解决了大流量等情形下的网络中断问题。
附图说明
图1为网络安全设备运行场景图的一种示例;
图2为本申请提供的基于软件实现旁路模式的方法流程图的一种示例;
图3为环形队列工作过程的一种示例;
图4为本申请提供的基于软件实现旁路模式的装置结构图的一种示例。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着网络的发展,网络中的数据越来越多。为了保证数据的安全,不同的网络之间进行数据传输,首先要依靠网络安全设备对数据进行检测,以判断是否存在威胁。常见的网络安全设备可以是防火墙、网关、VPN(Virtual Private Network)设备、流量监控设备等等。
网络安全设备可以应用在多个网络之间,例如外网与内网之间。正常工作状况下,网络安全设备负责对网络之间可能产生危险的数据进行拦截,而对确定为安全的数据进行转发。然而,一旦某台网络安全设备出现故障,通过这台设备的数据就无法进行检测,使得这台设备所连接的所有网络彼此之间失去联系,造成网络中断现象。这种情况下,若想保证数据还能继续传输,一般可以依靠旁路模式(bypass)实现。
旁路模式可以在特定的触发状态下,让网络之间传输的数据不通过网络安全设备的系统,而直接从物理上导通的端口转发出去。因此,在网络安全设备出现故障时,数据可以不通过安全设备的检测,而直接从安全设备上的bypass接口传输出去,避免网络中断。然而,传统的旁路模式基于硬件实现,即只能在断电或死机这两种情况下触发,对于网络安全设备发生其他故障而导致不能使用的情况,传统的旁路模式无法被触发,也就无法实现其功能。例如,在现网流量较大的情况下,网络安全设备的处理性能达到上限,可能会产生数据丢包,从而造成网络卡顿甚至网络中断的现象。然而此种情况下,由于可能并不涉及断电或死机,传统的旁路模式并不能被触发,也就无法解决网络中断问题。
基于此,本发明提供了一种基于软件实现旁路模式的方法。为了便于区分,本申请中将传统的旁路模式称为硬件bypass,将本申请中提出的基于软件实现的旁路模式称为软件bypass。
软件bypass,指的是依靠软件就能实现旁路模式的功能。具体地,可以在初始化流程中预先封装好软件bypass的操作接口,然后在设备运行过程中利用软件检测设备的运行情况,当达到符合软件bypass的条件后,触发旁路模式,将数据直接从预先封装好的软件bypass操作接口转发出去。软件bypass能够充分利用设备中已有的硬件功能,部署方便,不会影响现有的网络结构,且不会对当前的网速产生影响,能在网络安全设备发生故障或停止运行时,及时触发旁路模式,避免网络中断。
为了更好地理解本发明的方案,下面结合附图进行说明。参见图1,图1为网络安全设备运行场景图的一种示例。图1中存在网络1和网络2,其分别可以包含若干台终端设备。在这两个网络之间部署了一台网络安全设备,用于对网络间互相传输的数据进行安全检测。
若此时网络1需要向网络2传输数据流量,为了保证传输的安全性,这些数据流量必须要先通过网络安全设备的检测,以判断是否存在威胁。正常工作状态下,网络安全设备可以对接收到的数据流量进行封包处理,并将封包后的待处理数据包上送到指定的检测装置进行检测。由于数据包在持续不断地发送,为了保证接收过程不产生混乱,可以设置一条或多条收包队列,以按照顺序依次地接收待检测的数据包。进入收包队列的数据包可以按照进入队列的顺序,依次地被送往检测装置。对于检测为安全的数据包,可以通过网络安全设备上与网络2相连接的常规传输接口传输出去。
假设此时网络1发送的数据流量较大,由于系统中只存在一台网络安全设备,很容易导致其负荷过高,设备可能出现运行故障,例如可能对接收到的数据包进行丢包,产生网络卡顿甚至网络中断现象。
为了避免上述问题,现为网络安全设备配置软件bypass功能。首先,可以从网络安全设备中选择一个合适的接口,预先将其封装为软件bypass操作接口,上述接口可以是设备上已有的空闲接口,也可以是外接的接口。例如图1所示场景,“软件bypass接口”则是预先封装好的软件bypass操作接口,用于在旁路模式下,将网络1的数据直接传输给网络2。
下面结合图2来说明软件bypass的具体实现机制。图2为本申请基于软件实现旁路模式的方法流程图的一种示例,应用于网络安全设备,具体可以包括以下步骤:
S101,接收网络中的数据包,从中确定一个待处理的数据包;
不同网络之间互相通信,往往需要发送大量的数据。网络安全设备首先接收网络中的数据,通过封包处理后,从中确定一个待处理的数据包,所述待处理的数据包指的是需要进行安全检测的数据包。由于一台网络安全设备可以连接多个网络,因而可能同时接收来自多个网络的数据包,则可以按照接收的先后顺序对所有网络的数据包进行排列,按照排列顺序依次选择待处理的数据包。优选地,若上述多个网络中的某一网络当前的数据量大,网络安全设备还可以优先地选择该网络的数据包作为待处理的数据包。
S102,判断对应于所述待处理的数据包的收包队列是否已满;
首先,需要确定所述待处理的数据包对应的收包队列。所述收包队列可以为软件收包队列,也可以为硬件收包队列,下面以软件收包队列为例进行说明。
本申请的一种实施例中,收包队列可以是CPU(中央处理器)中的收包队列。进一步地,可以根据每个待处理的数据包中携带的信息,找到其对应的收包队列。例如,设备中可能存在多个CPU,每个CPU可以有一条收包队列,基于此,可以利用数据包中携带的目的CPU标识信息,找到对应的目的CPU从而将数据包上送目的CPU的收包队列。
所述收包队列可以为双端队列、顺序队列、环形队列等,本申请对此不作限制。首先,以环形队列为例进行说明,为了便于本领域技术人员的理解,下面结合附图简单说明环形队列的工作原理。参见图3,图3为环形队列工作过程的一种示例。
如图3中的环形队列,队列中存在8个空位,每个空位都对应其唯一的地址,即0-8,每个空位都可以存放一个待处理的数据包。队列中存在一个头指针和一个尾指针,用于指示当前队列中空间的占据情况。例如,当队列全空时,如图3(a)所示,头指针和尾指针都指向同一个空位,即头指针和尾指针的地址相同,都为0。
当有待处理的数据包进入队列时,头指针的地址向前偏移N1个单位,尾指针保持当前的地址不变。所述N1为预设的偏移值,可以为大于等于1的任意整数,可根据实际需求选择合适的N1数值。例如,当N1为1时,参见图3(b),数据包1进入环形队列,头指针的地址向前偏移1个单位,由0变为1,尾指针保持当前地址0不变。相同地,参见图3(c),数据包2进入队列后,头指针的地址向前偏移1个单位,由1变为2,尾指针保持当前地址0不变。
当有数据包出队时,头指针保持当前的地址不变,尾指针的地址向前偏移N1个单位。仍以N1为1进行说明,如图3(d)所示,数据包1出队,则头指针保持当前的地址2不变,尾指针的地址向前偏移1个单位,由0变为1。
根据上述数据包进、出环形队列的规则,进而可以判断环形队列是否已满:可以判断环形队列当前的头指针向前偏移N2个单位后的地址是否与当前尾指针的地址相同,若相同,则认为环形队列已满,所述N2为预设的数值,N2可以为大于等于1的任意整数。例如,取N2为1,参见图3(e),此时环形队列中共有7个数据包,当前头指针地址为0,尾指针地址为1,因此头指针的地址0向前偏移1个单位后为1,与尾指针地址相同,则认为此时环形队列已满。优选地,还可以根据实际需求将N2设为2、3等等,本申请对此不做限制。
此处引入N2来判断环形队列是否已满,目的是与环形队列全空的情况进行区分。若不设置N2,通过判断头尾指针地址是否相同来判断队列是否已满,则在队列全满或者全空时,头、尾指针地址均相同,因而无法区分这两种情况。引入N2后,通过牺牲了队列中N2个存储空间,可以将队列已满与队列全空的情况进行区分。
在本申请的另一实施例中,数据包出、入队的规则还可以是:
当有待处理的数据包进入队列时,头指针保持当前地址不变,尾指针的地址向后偏移N3个单位。所述N3为预设的偏移值,可以为大于等于1的任意整数,可根据实际需求选择合适的N3数值。
当有数据包出队时,头指针的地址向后偏移N3个单位,尾指针保持当前的地址不变。
同样的,基于上述数据包出、入队规则,判断队列是否已满的规则为:可以判断环形队列当前的尾指针向前偏移N4个单位后的地址是否与当前头指针的地址相同,若相同,则认为环形队列已满。所述N4可以是大于等于1的任意整数。
进一步的,在本申请的另一实施例中,若所述收包队列为双端队列、顺序队列等,则可以采取下述方式判断所述收包队列是否已满:
在待处理的数据包入队后,可以同时返回一个信息,用于指明队列中下一个存储空间是否为空。若返回的下一个存储空间为空,则认为队列未满;若返回的下一个存储空间不为空,则认为队列已满。
优选地,还可以使用一个计数器,用于记录队列中数据包的数量。队列的存储空间上限一般是可知的,例如,已知队列的容纳上限为8个存储空间,则将数值8记为计数器的计数上限。计数器的初始值可以设为0,数据包入队时后,计数器的数值+1;反之,数据包出队后,计数器的数值-1,当计数器的数值达到计数上限8后,则认为队列已满。实际情况中,也可以根据需求调整计数上限,本申请对此不作限制。
S103,若未满,将待处理的数据包以预设的规则送入收包队列;
在队列未满的情况下,待处理的数据包按照先后顺序依次被送入收包队列。进入队列的数据包遵从“先进先出”的规则,即数据包出队时也按照进入队列的先后顺序,依次出队。
S104,若已满,将待处理的数据包从预先封装好的旁路模式的操作接口转发出去。
本申请中,需要预先封装好软件旁路模式的操作接口,以将数据包直接转发出去。可选地,可以在网络安全设备进行初始化流程阶段,根据各个接口的使用情况,选择合适的接口作为所述旁路模式的操作接口。所述操作接口可以是基于包的,用于以包为单位将数据转发出去。
在所述收包队列已满的情况下,以将待处理的数据包从预先封装好的旁路模式的操作接口转发出去,实现软件旁路模式。
在本申请的另一实施例中,步骤S104可以是:在判断所述收包队列已满后开始计时,对计时时长T内的所有待处理数据包从预先封装好的软件旁路模式的操作接口转发出去。
在所述收包队列已满后,可以认为队列在未来一段时间内都是忙碌状态,没有多余的存储空间,则可以对后续接收到的数据包直接执行旁路模式,从而省去逐包地判断队列是否已满的操作。具体地,可以在队列已满后开始计时,对于计时时长T内接收到的所有待处理的数据包,不需要判断收包队列是否已满,直接将待处理的数据包通过旁路模式操作接口转发出去。所述计时时长T可根据实际情况进行设置。
在实际应用中,可以在现网流量较大且对网络流畅性要求较高的场合,开启计时,以避免网络中断现象。
上述基于软件实现旁路模式的方法相比于传统的旁路模式来说,软件bypass能够在除了断电或死机这两种情况下也能触发旁路模式,对于网络流量较大或时网络安全设备产生故障等情况下,也能启用旁路模式以避免网络通讯受阻。且软件bypass能够充分利用已有的硬件、软件资源,不会对现有的网络部署或设备结构产生影响,不需要额外增加设备也能实现本申请的方案。采用软件bypass不仅不会影响正常网络传输速度,还能起到监控网速的作用。
在上述软件bypass的基础下,本申请还提出了通过判断网络收包队列是否已满,来判断网络安全设备当前的工作性能是否达到上限的方法,以此决定是否要开启软件bypass。本申请中基于数据包逐包地进行判断,能够及时、精确地检测当前网络安全设备的接收能力,使其不会产生丢包现象。且相比于传统旁路模式中依靠断电或死机这两种触发方式,本申请提供的方案更具灵活性,能够对开启软件bypass的时机进行灵活操作,还能达到控制网络传输速度的效果。
与前述基于软件实现旁路模式方法的实施例相对应,本申请还提供了基于软件实现旁路模式装置的实施例。
参见图4,图4为本申请提供的基于软件实现旁路模式的装置结构图的一种示例。该装置可以包括:
接收模块110,用于接收网络中的数据包,从中确定一个待处理的数据包;
判断模块120,用于判断对应于所述待处理的数据包的收包队列是否已满;
入队模块130,用于在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列;
转发模块140,用于在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。
接收模块110用于接收网络中的数据包,从中确定一个待处理的数据包。由于不同网络之间互相通信往往需要发送大量的数据,接收模块110首先接收网络中的数据,通过封包处理后,从中确定一个待处理的数据包,所述待处理的数据包指的是需要进行安全检测的数据包。由于一台网络安全设备可以连接多个网络,因而接收模块110可能同时接收来自多个网络的数据包,则可以按照接收的先后顺序对所有网络的数据包进行排列,按照排列顺序依次选择待处理的数据包。优选地,若上述多个网络中的某一网络当前的数据量大,接收模块110还可以优先地选择该网络的数据包作为待处理的数据包。
判断模块120用于判断对应于所述待处理的数据包的收包队列是否已满。首先,需要确定所述待处理的数据包对应的收包队列。所述收包队列可以为软件收包队列,也可以为硬件收包队列,下面以软件收包队列为例进行说明。
本申请的一种实施例中,收包队列可以是CPU(中央处理器)中的收包队列。进一步地,可以根据每个待处理的数据包中携带的信息,找到其对应的收包队列。例如,设备中可能存在多个CPU,每个CPU可以有一条收包队列,基于此,可以利用数据包中携带的目的CPU标识信息,找到对应的目的CPU,从而将数据包上送目的CPU的收包队列。
所述收包队列可以为双端队列、顺序队列、环形队列等,本申请对此不作限制。
首先,以环形队列为例进行说明,环形队列的相关工作原理参见方法部分实施例,此处不再赘述。对于环形队列来说,当有待处理的数据包进入队列时,头指针的地址向前偏移N1个单位,所述N1为预设的偏移值,可以为大于等于1的任意整数,可根据实际需求选择合适的N1数值。当有数据包出队时,头指针保持当前的地址不变,尾指针的地址向前偏移N1个单位。
基于上述规则,判断模块120判断环形队列是否已满的规则为:可以判断环形队列当前的头指针向前偏移N2个单位后的地址是否与当前尾指针的地址相同,若相同,则认为环形队列已满,所述N2为预设的数值,N2可以为大于等于1的任意整数。
在本申请的另一实施例中,数据包出、入队的规则还可以是:当有待处理的数据包进入队列时,头指针保持当前地址不变,尾指针的地址向后偏移N3个单位。所述N3为预设的偏移值,可以为大于等于1的任意整数,可根据实际需求选择合适的N3数值。当有数据包出队时,头指针的地址向后偏移N3个单位,尾指针保持当前的地址不变。
同样的,基于上述数据包出、入队规则,判断模块120判断队列是否已满的规则为:可以判断环形队列当前的尾指针向前偏移N4个单位后的地址是否与当前头指针的地址相同,若相同,则认为环形队列已满。所述N4可以是大于等于1的任意整数。
进一步的,在本申请的另一实施例中,若所述收包队列为双端队列、顺序队列等,则判断模块120可以采取下述方式判断所述收包队列是否已满:
在待处理的数据包入队后,可以同时返回一个信息,用于指明队列中下一个存储空间是否为空。若判断模块120接收到下一个存储空间为空,则认为队列未满;若判断模块120接收到下一个存储空间不为空,则认为队列已满。
优选地,则判断模块120还可以是一个计数器,用于记录队列中数据包的数量。队列的存储空间上限一般是可知的,例如,已知队列的容纳上限为8个存储空间,则将数值8记为计数器的计数上限。计数器的初始值可以设为0,数据包入队时后,计数器的数值+1;反之,数据包出队后,计数器的数值-1,当计数器的数值达到计数上限8后,则认为队列已满。实际情况中,也可以根据需求调整计数上限,本申请对此不作限制。
入队模块130用于在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列。
转发模块140用于在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。
本申请中,需要预先封装好软件旁路模式的操作接口,以将数据包直接转发出去。可选地,可以在网络安全设备进行初始化流程阶段,根据各个接口的使用情况,选择合适的接口作为所述旁路模式的操作接口。所述操作接口可以是基于包的,用于以包为单位将数据转发出去。
在所述收包队列已满的情况下,转发模块140将待处理的数据包从预先封装好的旁路模式的操作接口转发出去,实现软件旁路模式。
在本申请的另一实施例中,转发模块140可以用于:在判断所述收包队列已满后开始计时,对计时时长T内的所有待处理数据包从预先封装好的软件旁路模式的操作接口转发出去。
在所述收包队列已满后,可以认为队列在未来一段时间内都是忙碌状态,没有多余的存储空间,则转发模块140可以对后续接收到的数据包直接执行旁路模式,从而省去逐包地判断队列是否已满的操作。具体地,转发模块140可以在队列已满后开始计时,对于计时时长T内接收到的所有待处理的数据包,不需要判断收包队列是否已满,直接将待处理的数据包通过旁路模式操作接口转发出去。所述计时时长T可根据实际情况进行设置。
在实际应用中,可以在现网流量较大且对网络流畅性要求较高的场合,开启计时,以避免网络中断现象。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种基于软件实现旁路模式的方法,应用于网络安全设备,其特征在于,所述方法包括:
接收网络中的数据包,从中确定一个待处理的数据包;
判断对应于所述待处理的数据包的收包队列是否已满;
在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列;
在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。
2.根据权利要求1所述方法,其特征在于,所述收包队列为环形队列。
3.根据权利要求2所述方法,其特征在于,所述将待处理的数据包以预设的规则送入收包队列,包括:
待处理的数据包入队后,环形队列的头指针的地址向前偏移N1个单位,尾指针保持当前的地址不变,所述头指针和尾指针用于指明当前环形队列的空间占据情况,所述N1为预设的偏移值,所述头指针与尾指针在队列为空时地址相同。
4.根据权利要求3所述方法,其特征在于,所述判断对应于所述待处理的数据包的收包队列是否已满,包括:
判断环形队列当前的头指针向前偏移N2个单位后的地址是否与当前尾指针的地址相同,若相同,则认为环形队列已满,所述N2为预设的数值。
5.根据权利要求1所述方法,其特征在于,所述在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去,包括:
在判断所述收包队列已满后开始计时,对计时时长T内的所有待处理数据包从预先封装好的软件旁路模式的操作接口转发出去。
6.一种基于软件实现旁路模式的装置,应用于网络安全设备,其特征在于,所述装置包括:
接收模块,用于接收网络中的数据包,从中确定一个待处理的数据包;
判断模块,用于判断对应于所述待处理的数据包的收包队列是否已满;
入队模块,用于在所述收包队列未满的情况下,将待处理的数据包以预设的规则送入收包队列;
转发模块,用于在所述收包队列已满的情况下,将待处理的数据包从预先封装好的软件旁路模式的操作接口转发出去。
7.根据权利要求6所述装置,其特征在于,所述收包队列为环形队列。
8.根据权利要求7所述装置,其特征在于,所述入队模块具体用于:
待处理的数据包入队后,环形队列的头指针的地址向前偏移N1个单位,尾指针保持当前的地址不变,所述头指针和尾指针用于指明当前环形队列的空间占据情况,所述N1为预设的偏移值,所述头指针与尾指针在队列为空时地址相同。
9.根据权利要求8所述装置,其特征在于,所述判断模块具体用于:
判断环形队列当前的头指针向前偏移N2个单位后的地址是否与当前尾指针的地址相同,若相同,则认为环形队列已满,所述N2为预设的数值。
10.根据权利要求6所述装置,其特征在于,所述转发模块具体用于:
在判断所述收包队列已满后开始计时,对计时时长T内的所有待处理数据包从预先封装好的软件旁路模式的操作接口转发出去。
CN201910974325.2A 2019-10-14 2019-10-14 一种基于软件实现旁路模式的方法及装置 Pending CN110798342A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910974325.2A CN110798342A (zh) 2019-10-14 2019-10-14 一种基于软件实现旁路模式的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910974325.2A CN110798342A (zh) 2019-10-14 2019-10-14 一种基于软件实现旁路模式的方法及装置

Publications (1)

Publication Number Publication Date
CN110798342A true CN110798342A (zh) 2020-02-14

Family

ID=69440263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910974325.2A Pending CN110798342A (zh) 2019-10-14 2019-10-14 一种基于软件实现旁路模式的方法及装置

Country Status (1)

Country Link
CN (1) CN110798342A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111917730A (zh) * 2020-07-10 2020-11-10 浙江邦盛科技有限公司 一种基于http旁路流量的机器行为分析方法
CN114401218A (zh) * 2021-12-28 2022-04-26 绿盟科技集团股份有限公司 一种数据报文的旁路转发方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675920B1 (en) * 2005-04-22 2010-03-09 Sun Microsystems, Inc. Method and apparatus for processing network traffic associated with specific protocols
CN104601413A (zh) * 2015-02-13 2015-05-06 上海小蚁科技有限公司 网络评估方法及装置
CN106603427A (zh) * 2017-01-17 2017-04-26 汉柏科技有限公司 防火墙中实现软件bypass的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675920B1 (en) * 2005-04-22 2010-03-09 Sun Microsystems, Inc. Method and apparatus for processing network traffic associated with specific protocols
CN104601413A (zh) * 2015-02-13 2015-05-06 上海小蚁科技有限公司 网络评估方法及装置
CN106603427A (zh) * 2017-01-17 2017-04-26 汉柏科技有限公司 防火墙中实现软件bypass的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111917730A (zh) * 2020-07-10 2020-11-10 浙江邦盛科技有限公司 一种基于http旁路流量的机器行为分析方法
CN114401218A (zh) * 2021-12-28 2022-04-26 绿盟科技集团股份有限公司 一种数据报文的旁路转发方法及装置
CN114401218B (zh) * 2021-12-28 2023-07-21 绿盟科技集团股份有限公司 一种数据报文的旁路转发方法及装置

Similar Documents

Publication Publication Date Title
EP2642704B1 (en) Reducing headroom
US6192422B1 (en) Repeater with flow control device transmitting congestion indication data from output port buffer to associated network node upon port input buffer crossing threshold level
US9998389B2 (en) Method and apparatus for blocking transmission of frames from a network device
EP0529774B1 (en) Method and apparatus for traffic congestion control in a communication network bridge device
US7889659B2 (en) Controlling a transmission rate of packet traffic
US20200213908A1 (en) System and method of a pause watchdog
US20160080033A1 (en) Physical unidirectional communication apparatus and method
EP2075974A1 (en) A method and a device for aggregating ports
US11115389B2 (en) Media access control security (MACsec) enabled links of a link aggregation group (LAG)
JP2009253557A (ja) 車載用の中継接続ユニット
CN110798342A (zh) 一种基于软件实现旁路模式的方法及装置
CN107257301B (zh) 一种并行冗余网络中重复报文的检测方法和装置
CN103428101A (zh) 负载分担的方法和装置
CN102611630B (zh) 一种报文接收控制方法及系统
US6680910B1 (en) Network interface unit
US20210111978A1 (en) Fault detection for lacp packet timeout
CN106534399B (zh) Vsm分裂的检测方法和装置
CN112543128B (zh) 用于指示维护模式操作的双向转发检测控制分组
JP2017147583A (ja) ネットワーク中継装置
US20060013137A1 (en) Network interface unit
US11563622B2 (en) Event-triggered adaptiveness to toggle timers/modes in fast-detection OAM protocols
CN104113449A (zh) 一种链路检测方法及装置
US11968115B2 (en) Method for verifying data center network performance
JP2001285300A (ja) 通信方法及び通信システム
CN116418750A (zh) 一种pfc风暴的检测方法以及相关设备

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200214

RJ01 Rejection of invention patent application after publication