一种拥塞流识别方法及网络设备与流程

文档序号:17481287发布日期:2019-04-20 06:28阅读:187来源:国知局
一种拥塞流识别方法及网络设备与流程

本申请涉及通信领域,尤其涉及一种拥塞流识别方法及网络设备。



背景技术:

对于端口具有非拥塞流队列的网络设备(比如:输入排队的交换机和路由器),当前往不同输出端口或同一输出端口的不同虚通道的数据包在同一个非拥塞流队列中时,如果队首的数据包由于某些原因不能转发(比如:目标输出端口繁忙),其后的数据包即使满足转发的条件(比如:目标输出端口空闲),但由于同一队列中的数据包一般要执行先入先出的调度,所以也不能进行转发,即前一个数据包的停顿阻塞了后一个可转发的数据包,这种现象称为队头阻塞(英文全称:headoflineblocking,英文简称:holb)。

目前,为解决队头阻塞问题常采用一种动态拥塞隔离技术,该技术可以在拥塞发生时,动态识别可能引起队头阻塞的数据包,并将该数据包以及与该数据包特征匹配的其他数据包一同定义为拥塞流,随后将该拥塞流隔离到独立的拥塞流队列中去,从而消除了该拥塞流对其他非拥塞流的阻塞,其中对拥塞流的识别常采用以下方法:

为非拥塞流队列配置一个判断是否发生拥塞的队列长度阈值,当队列排队长度大于或等于阈值时,随机选择一个队列中的数据包,或选择正要入队的数据包,将该数据包所属流识别为拥塞流。

从以上描述中可以看出,这种技术虽然可以通过队列长度阈值判断是否有拥塞发生,但是随机选择数据包并将该数据包所属流识别为拥塞流的方式,导致拥塞流识别的准确性较低。



技术实现要素:

本申请实施例提供了一种拥塞流识别方法及网络设备,用于提高拥塞流识别的准确性。

有鉴于此,本申请实施例第一方面提供了一种拥塞流识别方法,包括:

网络设备获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;

当非拥塞流队列的队列长度大于或等于第一阈值时,网络设备确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;

当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流。

需要说明的是,网络设备可以通过查询转发信息库(forwardinformationdatabase,fib)中目标数据包与目标输出端口的对应关系来确定目标数据包对应的目标输出端口。

需要说明的是,网络设备确定了拥塞流之后会将拥塞流隔离到拥塞流队列。

网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口的利用率进行监控,当目标输出端口的利用率大于或等于第二阈值时即说明该目标输出端口输出的数据包较多可能引起阻塞,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。

结合本申请实施例第一方面,本申请实施例第一方面的第一种实施方式中,方法还包括:

当目标输出端口的利用率小于第二阈值时,网络设备判断目标输出端口是否受到流控并暂停发送;

若是,则网络设备确定与目标数据包对应的流为拥塞流。

本申请实施例提供了一种当目标输出端口利用率小于第二阈值时,进一步确定拥塞流的方法,扩充的了本申请实施例的实现方式。

结合本申请实施例第一方面,或第一方面的第一种实施方式,本申请实施例第一方面的第二种实施例中,网络设备确定与目标数据包对应的流为拥塞流之后,方法还包括:

网络设备将目标数据包的目标表示信息记录到拥塞流流表。

需要说明的是,该目标表示信息可以是该目标数据包的一元组信息,例如,目标数据包的目的互联网协议(internetprotocol,ip)地址,也可以是该目标数据包的多元组信息,例如,目标数据包的五元组信息,又或者可以是目标数据包的一元组或多元组加掩码形式的信息,例如,目标数据包的目的ip地址加掩码形式的信息,具体此处不做限定。

可以理解的是,流是表示信息相同的数据包的集合,那么该目标表示信息也就是目标数据包所属的拥塞流的表示信息。

需要说明的是,网络设备中的每个输入端口都有与之对应的拥塞流流表,除此之外,网络设备中的多个不同的输入端口可以共享同一个拥塞流流表,具体此处不做限定。

结合本申请实施例第一方面的第二种实施方式,本申请实施例第一方面的第三种实施方式中,方法还包括:

网络设备根据拥塞流流表进行入队控制。

需要说明的是,在数据包进入队列之前,网络设备可以通过查找比对拥塞流流表对还未进入队列的数据包分配队列。

结合本申请实施例第一方面的第三种实施方式,本申请实施例第一方面的第四种实施方式中,网络设备根据拥塞流流表进行入队控制包括:

网络设备提取第一数据包的第一表示信息,第一数据包为在目标数据包之后等待进入非拥塞流队列的数据包;

网络设备判断第一表示信息是否与拥塞流流表匹配;

若是,则网络设备分配第一数据包进入拥塞流队列,拥塞流队列包括拥塞流。

可以理解的是,网络设备查找拥塞流流表,并判断拥塞流流表中是否存在已经记录的某一拥塞流的表示信息与该第一表示信息匹配。

需要说明的是,当第一表示信息并未与拥塞流流表匹配时,网络设备可以有两种执行方式,第一种方式,网络设备分配第一数据包进入非拥塞流队列,这种情况即网络设备不在第一数据包入队前对其执行拥塞流识别;第二种方式,网络设备对第一数据包执行拥塞流识别的步骤,网络设备判断第一数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第一数据包对应的第一输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定第一数据包对应的流为拥塞流,进而将第一数据包的第一表示信息记录到拥塞流流表。

结合本申请实施例第一方面,或第一方面的第一种实施方式,本申请实施例第一方面的第五种实施方式中,方法还包括:

网络设备根据预置的调度策略进行出队调度。

需要说明的是,网络设备根据预置的调度策略首先可以确定需要调度出队的第二数据包,随后网络设备判断该第二数据包是否属于拥塞流队列,若是,则网络设备调度该第二数据包出队,若否,则说明第二数据包来自非拥塞流队列,网络设备将对第二数据包执行拥塞流识别步骤,网络设备判断第二数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第二数据包对应的第二输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定第二数据包对应的流为拥塞流,进而将第二数据包的第二表示信息记录到拥塞流流表。

本申请实施例第二方面提供了一种拥塞流识别的方法,包括:

网络设备获取非拥塞流队列的长度,非拥塞流队列包括数据包或数据包的描述信息;

当非拥塞流队列的队列长度大于或等于第一阈值时,网络设备确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;

当目标输出端口受到流控并暂停发送时,网络设备确定与目标数据包对应的流为拥塞流。

需要说明的是,网络设备可以通过查询fib中目标数据包与目标输出端口的对应关系来确定目标数据包对应的目标输出端口。

需要说明的是,网络设备确定了拥塞流之后会将拥塞流隔离到拥塞流队列。

网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口受到流控并暂停发送时,网络设备确定与目标数据包对应的流为拥塞流,目标输出端口的受流控时即说明该目标输出端口当前无法正常转发数据包,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。

结合本申请实施例第二方面,本申请实施例第二方面的第一种实施方式中,方法还包括:

当目标输出端口没有受到流控且可以继续发送时,网络设备判断目标输出端口的利用率是否大于或等于第二阈值;

若是,则网络设备确定与目标数据包对应的流为拥塞流。

本申请实施例提供了一种当目标输出端口没有受到流控时,进一步确定拥塞流的方法,扩充的了本申请实施例的实现方式。

结合本申请实施例第二方面,或第二方面的第一种实施方式,本申请实施例第二方面的第二种实施方式中,网络设备确定与目标数据包对应的流为拥塞流之后,方法还包括:

网络设备将目标数据包的目标表示信息记录到拥塞流流表。

需要说明的是,该目标表示信息可以是该目标数据包的一元组信息,例如,目标数据包的目的ip地址,也可以是该目标数据包的多元组信息,例如,目标数据包的五元组信息,又或者可以是目标数据包的一元组或多元组加掩码形式的信息,例如,目标数据包的目的ip地址加掩码形式的信息,具体此处不做限定。

需要说明的是,网络设备中的每个输入端口都有与之对应的拥塞流流表,除此之外,网络设备中的多个不同的输入端口可以共享同一个拥塞流流表,具体此处不做限定。

结合本申请实施例第二方面的第二种实施方式,本申请实施例第二方面的第三种实施方式中,方法还包括:

网络设备根据拥塞流流表进行入队控制。

需要说明的是,在数据包进入队列之前,网络设备可以通过查找比对拥塞流流表对还未进入队列的数据包分配队列。

结合本申请实施例第二方面的第三种实施方式,本申请实施例第二方面的第四种实施方式中,网络设备根据拥塞流流表进行入队控制包括:

网络设备提取第一数据包的第一表示信息,第一数据包为在目标数据包之后等待进入非拥塞流队列的数据包;

网络设备判断第一表示信息是否与拥塞流流表匹配;

若是,则网络设备分配第一数据包进入拥塞流队列,拥塞流队列包括拥塞流。

需要说明的是,当第一表示信息并未与拥塞流流表匹配时,网络设备可以有两种执行方式,第一种方式,网络设备分配第一数据包进入非拥塞流队列,这种情况即网络设备不在第一数据包入队前对其执行拥塞流识别;第二种方式,网络设备对第一数据包执行拥塞流识别的步骤,网络设备判断第一数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第一数据包对应的第一输出端口是否受到流控并暂停发送,若是,则网络设备确定第一数据包对应的流为拥塞流,进而将第一数据包的第一表示信息记录到拥塞流流表。

结合本申请实施例第二方面,或第二方面的第一种实施方式,本申请实施例第二方面的第五种实施方式中,方法还包括:

网络设备根据预置的调度策略进行出队调度。

需要说明的是,网络设备根据预置的调度策略首先可以确定需要调度出队的第二数据包,随后网络设备判断该第二数据包是否属于拥塞流队列,若是,则网络设备调度该第二数据包出队,若否,则说明第二数据包来自非拥塞流队列,网络设备将对第二数据包执行拥塞流识别步骤,网络设备判断第二数据包对应的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,则网络设备判断第二数据包对应的第二输出端口是否受到流控并暂停发送,若是,则网络设备确定第二数据包对应的流为拥塞流,进而将第二数据包的第二表示信息记录到拥塞流流表。

本申请实施例第三方面提供了一种网络设备,包括:

获取单元,用于获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;

确定单元,用于当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;

判断单元,用于判断所述目标输出端口的利用率是否大于或等于第二阈值;

或,

用于判断所述目标输出端口是否受到流控并暂停发送;

识别单元,用于当所述目标输出端口的利用率大于或等于第二阈值或所述目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流。

结合本申请实施例第三方面,本申请实施例第三方面的第一种实施方式中,网络设备还包括:

记录单元,用于将目标数据包的目标表示信息记录到拥塞流流表。

结合本申请实施例第三方面的第一种实施方式,本申请实施例第三方面的第二种实施方式中,网络设备还包括:

控制单元,用于根据拥塞流流表进行入队控制。

结合本申请实施例第三方面的第二种实施方式,本申请实施例第三方面的第三种实施方式中,控制单元包括:

提取子单元,用于提取第一数据包的第一表示信息,第一数据包为在目标数据包之后等待进入非拥塞流队列的数据包;

判断子单元,用于判断第一表示信息是否与拥塞流流表匹配;

分配子单元,用于当第一表示信息与拥塞流流表匹配时,分配第一数据包进入拥塞流队列,拥塞流队列包括拥塞流。

结合本申请实施例第三方面,本申请实施例第三方面的第四种实施方式中,网络设备还包括:

调度单元,用于根据预置的调度策略进行出队调度。

本申请实施例第四方面提供了一种网络设备,包括:

处理器、存储器、总线以及输入输出接口;

存储器中存储有程序代码;

处理器调用存储器中的程序代码时执行如下操作:

获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;

当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;

当目标输出端口受到流控并暂停发送时,确定与目标数据包对应的流为拥塞流。

本申请实施例第五方面提供了一种网络设备,包括:

处理器、存储器、总线以及输入输出接口;

存储器中存储有程序代码;

处理器调用存储器中的程序代码时执行如下操作:

获取非拥塞流队列的长度,非拥塞流队列包括数据包或数据包的描述信息;

当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;

当目标输出端口受到流控并暂停发送时,确定与目标数据包对应的流为拥塞流。

本申请实施例第六方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面拥塞流识别方法中的流程。

本申请实施例第七方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面拥塞流识别方法中的流程。

从以上技术方案可以看出,本申请实施例具有以下优点:

本实施例中,网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口的利用率进行监控,当目标输出端口的利用率大于或等于第二阈值时即说明该目标输出端口输出的数据包较多可能引起阻塞,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。

附图说明

图1为网络设备队头阻塞示意图;

图2为网络设备受到流控示意图;

图3为本申请拥塞流识别方法一个实施例示意图;

图4为本申请拥塞流识别方法另一实施例示意图;

图5为本申请拥塞流识别方法另一实施例示意图;

图6为本申请拥塞流识别方法另一实施例示意图;

图7为本申请网络设备一个实施例示意图;

图8为本申请网络设备另一实施例示意图;

图9为本申请网络设备另一实施例示意图;

图10为本申请网络设备另一实施例示意图。

具体实施方式

本申请实施例提供了一种拥塞流识别方法及网络设备,用于提高拥塞流识别的准确性。

本实施例可以应用于局域网、广域网等交换网络中的网络设备,图1所示的是网络设备中出现队头阻塞的场景,其中a、b、c、d为四条不同的流,流可以理解为具有相同表示信息的数据包的集合,每个流都有与之对应的输出端口,如图中的流a、流b及流d对应输出端口1,流c对应输出端口2,流a位于队列1中,流b及流c位于队列2中,流d位于队列3中。此时流a、流b及流d竞争输出端口1,在同一时刻它们中某一个流正在向输出端口1转发数据包时,其他流的数据包需要在队列中等待。因此某一时刻队列1、队列2及队列3中属于流a、流b及流d的数据包可能需要等待而不能正常转发。流c对应的输出端口2是相对空闲的理应正常转发,不过由于此时位于队列2队头流b的数据包无法正常转发,阻挡了队列2中流c的数据包的转发,这样就有可能造成队列2出现拥塞。

另外,队头阻塞在使用链路级流控的网络中表现的更加明显,如图2所示,网络设备1中的队列2出现了拥塞,流c无法正常转发,这时网络设备1会向网络设备2发送流控,抑制网络设备2向网络设备1发送数据包,也就是说网络设备2的输出端口2受到流控无法发送数据包。此时,网络设备2的队列2中属于流c且要发往该设备输出端口2的数据包需要在队列中等待而不能正常转发。由于网络设备2的队列2中的流c阻挡了流e,导致流e也不能正常转发,进一步可能造成网络设备2中的队列2的拥塞。可以看出,在使用链路级流控的网络中,下游设备拥塞时向上游设备发送流控,可能进而造成上游设备也发生拥塞引起连锁反应,即引起拥塞扩散。

可以理解的是,识别出引起队列拥塞的拥塞流并将该拥塞流从队列中隔离出去是解决队列拥塞的必要方式。

为便于理解,下面对本申请实施例中的具体流程进行描述,本申请实施例可以分为两个方案。

方案一:当网络设备中的非拥塞流队列的队列长度大于或等于第一阈值时,网络设备判断与目标数据包对应的目标输出端口的利用率是否大于或等于第一阈值,若是,则确定目标数据包对应的流为拥塞流。

请参阅图3,本申请实施例中拥塞流识别方法的一个实施例包括:

301、网络设备获取非拥塞流队列的队列长度。

本实施例中,网络设备获取非拥塞流队列的队列长度,可以理解的是,该网络设备可以是交换机,除此之外,该网络设备也可以是其他设备,例如:路由器,具体此处不做限定。

需要说明的是,该非拥塞流队列可以包括数据包,除此之外,该非拥塞流队列也可以包括该数据包的描述信息,具体此处不做限定,可以理解的是,网络设备可以通过该描述信息确定数据包对应的输出端口。

需要说明的是,非拥塞流队列中具有相同表示信息的数据包的集合可以定义为流。

可以理解的是,流可以是一元组相同的数据包的集合,例如:目的ip地址相同的数据包的集合,除此之外,流也可以是多元组相同的数据包的集合,例如:五元组相同的数据包的集合,又或者流也可以是一元组或多元组加掩码相同的数据包的集合,例如:目的ip地址以及掩码都相同的数据包的集合,具体此处不做限定。

302、网络设备判断队列长度是否大于或等于第一阈值,若是,则执行步骤303。

本实施例中,网络设备获取到非拥塞流队列的队列长度后,判断该队列长度是否大于或等于第一阈值。

303、网络设备确定目标数据包的目标输出端口。

当非拥塞流队列的队列长度大于或等于第一阈值时,则说明该输出队列发生了拥塞,进而网络设备会确定目标数据包对应的目标输出端口。

需要说明的是,该目标数据包可以是等待进入该非拥塞流队列的数据包,除此之外,该目标数据包也可以是其他数据包,例如:该目标数据包也可以是等待从该非拥塞流队列输出的数据包,具体此处不做限定。

需要说明的是,网络设备中的数据包都有与之对应的输出端口,网络设备可以通过查找fib确定数据包对应的输出端口,可以理解的是,网络设备可以在数据包进入非拥塞流队列时查找fib确定其输出端口,除此之外,网络设备也可以在数据包从非拥塞流队列输出时查找fib确定其输出端口,具体此处不做限定。

304、网络设备判断目标输出端口的利用率是否大于或等于第二阈值,若是,则执行步骤305。

本实施例中,网络设备在确定了目标输出端口之后,判读该目标输出端口的利用率是否大于或等于第二阈值。

需要说明的是,端口利用率=端口发送速率/端口带宽,可以理解的是,端口发送速率可以是当前端口的发送速率,除此之外,也可以是一段时长内端口发送的平均速率,具体此处不做限定。

305、网络设备确定与目标数据包对应的流为拥塞流。

当目标输出端口的利用率大于或等于第二阈值时,则说明该目标输出端口转发的数据包较多,可能出现转发停顿的情况,此时,网络设备可以确定需要从该目标输出端口输出的目标数据包所对应的流为拥塞流。

本实施例中,网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口的利用率大于或等于第二阈值时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口的利用率进行监控,当目标输出端口的利用率大于或等于第二阈值时即说明该目标输出端口输出的数据包较多可能引起阻塞,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。

方案二:当网络设备中的非拥塞流队列的队列长度大于或等于第一阈值时,网络设备判断与目标数据包对应的目标输出端口是否受到流控,若是,则确定目标数据包对应的流为拥塞流。

请参阅图4,本申请实施例中拥塞流识别方法的另一实施例包括:

401、网络设备获取非拥塞流队列的队列长度。

本实施例中,步骤401与图3所示的实施例中的步骤301类似,此处不再赘述。

402、网络设备判断队列长度是否大于或等于第一阈值,若是,则执行步骤303。

本实施例中,步骤402与图3所示的实施例中的步骤302类似,此处不再赘述。

403、网络设备确定目标数据包的目标输出端口。

本实施例中,步骤403与图3所示的实施例中的步骤303类似,此处不再赘述。

404、网络设备判断目标输出端口是否受到流控,若是,则执行步骤405。

本实施例中,网络设备在确定了目标输出端口之后,判读该目标输出端口是否受到流控,可以理解的是,网络设备中受到流控的输出端口将无法正常转发数据包。

需要说明的是,当网络设备所在的网络支持流控且流控功能开启时,才会判断目标输出端口是否受到流控,若网络不支持流控或未开启流控功能,可以认为网络设备的输出端口都处于不受流控的状态。

405、网络设备确定与目标数据包对应的流为拥塞流。

当目标输出端口受到流控时,则说明该目标输出端口受到抑制无法正常转发数据包,此时,网络设备可以确定需要从该目标输出端口输出的目标数据包所对应的流为拥塞流。

本实施例中,网络设备可以获取非拥塞流队列的长度,随后当非拥塞流队列的长度大于或等于第一阈值时,网络设备确定与目标数据包对应的目标输出端口,进而当目标输出端口受到流控时,网络设备确定与目标数据包对应的流为拥塞流,该方法对目标输出端口是否受到流控进行监控,当目标输出端口受到流控时即说明该目标输出端口无法正常转发数据包,那么需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。

在实际应用中,网络设备识别拥塞流的时机有多种,下面分别进行说明:

1、网络设备选择等待进入队列的目标数据包,进而判断该目标数据包对应的流是否是拥塞流:

本实施例中,网络设备中的目标数据包在进入队列前需要与拥塞流流表进行比对,若该目标数据包与拥塞流流表匹配,则网络设备分配该目标数据包进入拥塞流队列,若并未匹配,那么当该目标数据包对应的队列拥塞时,网络设备判断该目标数据包对应的流是否是拥塞流。

请参阅图5,本申请实施例中拥塞流识别方法的另一实施例包括:

501、网络设备确定目标数据包。

本实施例中,网络设备确定的目标数据包为等待进入队列的数据包,该目标数据包可以是一个也可以是多个,具体此处不做限定。

502、网络设备确定目标数据包的目标输出端口。

本实施例中,网络设备确定了目标数据包之后,进一步可以通过查找fib确定与该目标数据包对应的目标输出端口。

503、网络设备判断目标数据包的表示信息是否与拥塞流流表匹配,若是,则执行步骤504,若否,则执行步骤505。

本实施例中,网络设备会提取等待进入队列的目标数据包的表示信息,随后网络设备查找拥塞流流表,并判断拥塞流流表中是否存在已经记录的某一拥塞流的表示信息与该目标数据包的表示信息匹配。

需要说明的是,该表示信息可以是该目标数据包的一元组,例如:该目标数据包的目的ip地址,除此此外,该表示信息还可以是该目标数据包的多元组,例如:该目标数据包的五元组,又或者该表示信息也可以是该目标数据包的一元组或多元组加掩码,例如:该目标数据包的目的ip地址以及掩码,具体此处不做限定。

需要说明的是,网络设备中的每个输入端口都有与之对应的拥塞流流表,除此之外,网络设备中的多个不同的输入端口可以共享同一个拥塞流流表,具体此处不做限定。

504、网络设备分配目标数据包进入拥塞流队列。

本实施例中,当目标数据包的表示信息与拥塞流流表匹配时,则说明目标数据包属于网络设备中已经记录的拥塞流,那么网络设备分配该目标数据包进入拥塞流所属的拥塞流队列。

505、网络设备判断非拥塞流队列长度是否大于或等于第一阈值,若是,则执行步骤507,若否,则执行步骤506。

本实施例中,当目标数据包的表示信息并未与拥塞流流表匹配时,则说明目标数据包不属于网络设备中已经记录的拥塞流,进一步网络设备判断目标数据包所对应的非拥塞流队列的队列长度是否大于或等于第一阈值。

506、网络设备分配目标数据包进入非拥塞流队列。

本实施例中,当目标数据包所对应的非拥塞流队列的队列长度低于第一阈值时,则说明该非拥塞流队列处于正常状态,进一步网络设备分配目标数据包进入该非拥塞流队列。

507、网络设备判断目标输出端口的利用率是否大于或等于第二阈值,若是,则执行步骤509,若否,则执行步骤508。

本实施例中,当非拥塞流队列的队列长度大于或等于第一阈值时,则说明该非拥塞流队列发生了拥塞,进而网络设备判断目标输出端口的利用率是否大于或等于第二阈值。

需要说明的是,端口利用率=端口发送速率/端口带宽,可以理解的是,端口发送速率可以是当前端口的发送速率,除此之外,也可以是一段时长内端口发送的平均速率,具体此处不做限定。

508、网络设备判断目标输出端口是否受到流控,若是,则执行步骤509,若否,则执行步骤512。

本实施例中,当目标输出端口的利用率小于第二阈值时,进一步网络设备将判断该目标输出端口是否受到流控,可以理解的是,网络设备中受到流控的输出端口将无法正常转发数据包。

需要说明的是,步骤507与步骤508没有固定的时序关系,除了先执行步骤507再执行步骤508之外,还可以先执行步骤508在执行步骤507,即执行508步骤的判断,若是,则执行步骤509,若否,则执行步骤507,也可以是步骤507与步骤508同时执行,至少有一个判断为是即可执行步骤509,否则执行步骤512,具体此处不做限定。

509、网络设备确定目标数据包对应的流为拥塞流。

本实施例中,当目标输出端口的利用率大于或等于第二阈值时又或者目标输出端口受到流控时,则说明该目标输出端口转发的数据包较多,可能出现转发停顿的情况,此时,网络设备确定目标数据包对应的流为拥塞流。

510、网络设备将目标数据包的表示信息记录到拥塞流流表。

本实施例中,网络设备确定了拥塞流之后,会将目标数据包的表示信息记录到拥塞流流表,可以理解的是,目标数据包的表示信息就是该目标数据包所属的拥塞流的表示信息。

需要说明的是,关于表示信息以及拥塞流流表的描述与步骤503中的描述类似,此处不再赘述。

511、网络设备将拥塞流隔离到拥塞流队列。

本实施例中,网络设备确定了拥塞流之后,会将该拥塞流隔离到拥塞流队列,可以理解的是,该拥塞流队列可以是网络设备中已经存在的拥塞流队列,也可以是新创建的拥塞流队列,具体此处不做限定。

需要说明的是,步骤510与步骤511之间没有固定的时序关系,可以先执行步骤510,也可以先执行步骤511,也可以同时执行步骤510与步骤511,具体此处不做限定。

512、网络设备结束拥塞流识别。

本实施例中,当目标输出端口没有受到流控时,则说明该目标输出端口可以正常转发数据包,相应的目标数据包也不属于拥塞流,那么网络设备将结束对该目标数据包进行的拥塞流识别。

本实施例中,当等待进入队列的目标数据包的表示信息没有与拥塞流流表匹配时,网络设备判断目标数据包所属的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,网络设备将判断目标数据包对应的目标输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定该目标数据包对应的流为拥塞流,若否,网络设备将进一步判断目标端口是否受到流控,若是,则网络设备可以确定该目标数据包对应的流为拥塞流,该方法提高了拥塞流识别的准确性。

2、网络设备选择等待从队列输出的目标数据包,进而判断该目标数据包对应的流是否是拥塞流:

本实施例中,网络设备根据预置的调度策略进行出队调度,从而可以确定等待从队列输出的目标数据包,进而当该目标数据包属于非拥塞流队列且该非拥塞流队列拥塞时,网络设备判断该目标数据包对应的流是否是拥塞流。

请参阅图6,本申请实施例中拥塞流识别方法的另一实施例包括:

601、网络设备确定目标数据包。

本实施例中,网络设备根据预置的调度策略进行数据包的出队调度,网络设备确定的目标数据包为等待从队列输出的数据包,该目标数据包可以是一个也可以是多个,具体此处不做限定。

602、网络设备确定目标数据包的目标输出端口。

本实施例中,步骤602与图5所示的实施例中的步骤502类似,具体此处不再赘述。

603、网络设备判断目标数据包是否属于拥塞流队列,若是,则执行步骤604,若否,则执行步骤605。

本实施例中,网络设备确立了目标数据包后,将判断该目标数据包是否属于拥塞流队列。

604、网络设备判断非拥塞流队列长度是否大于或等于第一阈值,若是,则执行步骤606,若否则执行步骤605。

本实施例中,当目标数据包不属于拥塞流队列时,则说明该目标数据包属于网络设备中的非拥塞流队列,进一步网络设备判断该非拥塞流队列的长度是否大于或等于第一阈值。

605、网络设备转发目标数据包。

本实施例中,当目标数据包属于网络设备中已经存在的拥塞流队列时或目标数据包属于非拥塞状态的非拥塞流队列时,网络设备转发该目标数据包。

606、网络设备判断目标输出端口的利用率是否大于或等于第二阈值,若是,则执行步骤608,若否,则执行步骤607。

607、网络设备判断目标输出端口是否受到流控,若是,则执行步骤608,若否,则执行步骤611。

608、网络设备确定目标数据包对应的流为拥塞流。

609、网络设备将目标数据包的表示信息记录到拥塞流流表。

610、网络设备将拥塞流隔离到拥塞流队列。

611、网络设备结束拥塞流识别。

本实施例中,步骤606至步骤611与图5所示的实施例中的步骤507至步骤512类似,具体此处不再赘述。

本实施例中,当等待从队列中输出的目标数据包属于非拥塞流队列时,网络设备判断目标数据包所属的非拥塞流队列的队列长度是否大于或等于第一阈值,若是,网络设备将判断目标数据包对应的目标输出端口的利用率是否大于或等于第二阈值,若是,则网络设备确定该目标数据包对应的流为拥塞流,若否,网络设备将进一步判断目标端口是否受到流控,若是,则网络设备可以确定该目标数据包对应的流为拥塞流,该方法提高了拥塞流识别的准确性。

上面对本申请实施例中的拥塞流识别方法进行了描述,下面对本申请实施例中的网络设备进行描述:

请参阅图7,本申请实施例中网络设备的一个实施例包括:非拥塞流队列701以及拥塞流识别模块702。

其中,拥塞流识别模块702进一步包括:

获取单元7021、用于获取非拥塞流队列的队列长度,非拥塞流队列包括数据包或数据包的描述信息;

确定单元7022、用于当非拥塞流队列的队列长度大于或等于第一阈值时,确定目标数据包的目标输出端口,目标数据包为等待进入非拥塞流队列的数据包或下一个等待从非拥塞流队列输出的数据包;

判断单元7023、用于判断目标输出端口的利用率是否大于或等于第二阈值;

或,

用于判断目标输出端口是否受到流控并暂停发送;

识别单元,用于当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流。

本实施例中,获取单元7021可以获取非拥塞流队列的队列长度,当非拥塞流队列的队列长度大于或等于第一阈值时,确定单元7022确定目标数据包对应的目标输出端口,判断单元7023可以判断目标输出端口的利用率是否大于或等于第二阈值或目标输出端口是否受到流控并暂停发送,当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,识别单元7024确定目标数据包对应的流为拥塞流,当目标输出端口的利用率大于或等于第二阈值或者目标输出端口受到流控并暂停发送时,需要从该目标输出端口输出的流是拥塞流的可能性就较高,所以该方法提高了拥塞流识别的准确性。

为便于理解,下面分别从数据包入队时识别拥塞流以及数据包出队时识别拥塞流两个方面对本申请实施例中的网络设备进行详细描述。

请参阅图8,本申请实施例中网络设备另一实施例包括:

拥塞流流表801、拥塞流识别模块802、入队控制模块803、拥塞流队列804及非拥塞流队列805。

入队控制模块803进一步包括:

提取单元8031、用于提取目标数据包的表示信息;

第一判断单元8032、用于判断目标数据包的表示信息是否与拥塞流流表801匹配;

分配单元8033、用于当目标数据包的表示信息与拥塞流流表匹配801时,分配目标数据包进入拥塞流队列804。

拥塞流识别模块802进一步包括:

获取单元8021、用于当目标数据包的表示信息没有与拥塞流流表801匹配时,获取目标数据包对应的非拥塞流队列的队列长度;

确定单元8022、用于确定目标数据包的目标输出端口;

第二判断单元8023、用于判断目标输出端口的利用率是否大于或等于第二阈值;

或,

用于判断目标输出端口是否受到流控并暂停发送;

识别单元8024、用于当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流;

记录单元8025、用于当目标数据包对应的流为拥塞流时,记录目标数据包的目标表示信息到拥塞流流表801;

隔离单元8026、用于当目标数据包对应的流为拥塞流时,将该拥塞流隔离到拥塞流队列804。

请参阅图9,本申请实施例中网络设备另一实施例包括:

出队调度模块901、拥塞流识别模块902、拥塞流流表903、非拥塞流队列904及拥塞流队列905。

出队调度模块901进一步包括:

第一判断单元9011、用于判断目标数据包是否属于拥塞流队列905;

转发单元9012、用于当目标数据包属于拥塞流队列905时,转发该目标数据包。

拥塞流识别模块902进一步包括:

获取单元9021、用于当目标数据包不属于拥塞流队列905时,获取目标数据包对应的非拥塞流队列的队列长度;

确定单元9022、用于确定目标数据包的目标输出端口;

第二判断单元9023、用于判断目标输出端口的利用率是否大于或等于第二阈值;

或,

用于判断目标输出端口是否受到流控并暂停发送;

识别单元9024、用于当目标输出端口的利用率大于或等于第二阈值或目标输出端口受到流控并暂停发送时,确定与所述目标数据包对应的流为拥塞流;

记录单元9025、用于当目标数据包对应的流为拥塞流时,记录目标数据包的目标表示信息到拥塞流流表903;

隔离单元9026、用于当目标数据包对应的流为拥塞流时,将该拥塞流隔离到拥塞流队列905。

上面从模块化功能实体的角度对本发明实施例中的网络设备进行描述,下面从硬件处理的角度对本发明实施例中的网络设备进行描述:

请参阅图10,本申请中网络设备一个实施例可以包括一个或一个以上中央处理器1001,存储器1002,输入输出接口1003,有线或无线网络接口1004,电源1005。

存储器1002可以是短暂存储或持久存储。更进一步地,中央处理器1001可以配置为与存储器1002通信,在网络设备上执行存储器1002中的一系列指令操作。

本实施例中,中央处理器1001可以执行前述图3至图6所示实施例中网络设备所执行的操作,具体此处不再赘述。

本实施例中,中央处理器1001中的具体功能模块划分可以与前述图7至9中所描述的拥塞流识别模块、入队控制模块、出队调度模块、获取单元、记录单元、隔离单元等单元的功能模块划分方式类似,此处不再赘述。

本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)并不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的方案,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1