一种流量拥塞隔离方法、装置和系统与流程

文档序号:25868309发布日期:2021-07-13 16:29阅读:113来源:国知局
一种流量拥塞隔离方法、装置和系统与流程

本申请涉及通信领域,特别涉及一种流量拥塞隔离方法、装置和系统。



背景技术:

为了解决网络中业务流传输时服务器端数据处理延迟的问题,目前一些数据中心网络中已开始使用roce(rdmaoverconvergedethernet,基于以太网的rdma技术)技术。使用rdma(remotedirectmemoryaccess,远程直接数据存取)技术可以在业务流的业务报文传输过程中无损不丢包的情况下具有很高的转发带宽,但是rdma技术对业务流的业务报文出现的延时或丢包问题较为敏感,特别是当roce网络中传输的业务流发生拥塞并导致丢包时,将会引起业务流的业务报文大面积重传,导致整个roce网络中业务流的传输速率严重下降。

相关技术中,为了解除roce网络中业务流所发生的拥塞以避免丢包,可以通过降低转发该拥塞业务流的交换机上用于存放该拥塞业务流的业务报文的报文转发队列的报文转发速率,来解除拥塞业务流所发生的拥塞。但是由于roce网络中设备在转发所有业务流时,将所有业务流的业务报文都存放在同一报文转发队列进行转发,也就是说,当降低该报文转发队列进行业务报文转发的速率时,会影响到报文转发队列中存在的未发生拥塞的正常业务流,导致这些未发生拥塞的正常业务流在roce网络中传输速率也被降低。



技术实现要素:

本申请公开了一种流量拥塞隔离方法、装置和系统,以隔离发生拥塞的拥塞业务流和未发生拥塞的正常业务流,避免影响到未发生拥塞的正常业务流的传输。

根据本申请实施例的第一方面,提供了一种流量拥塞隔离方法,该方法应用于交换机,包括:

当接收到反向拥塞通知报文cnp(congestionnotificationpacket)报文时,将所述cnp报文上送至控制器,所述cnp报文是由服务器在接收到携带了拥塞标记的业务报文时触发的;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;

接收所述控制器下发的拥塞隔离配置,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

根据本申请实施例的第二方面,提供了一种流量拥塞隔离方法,该方法应用于第一服务器,包括:

接收控制器下发的拥塞隔离配置;所述拥塞隔离配置是控制器接收到反向拥塞通知报文cnp报文时下发的;所述cnp报文是由第二服务器在接收到携带了拥塞标记的业务报文时触发的,所述第一服务器为所述业务报文的源端;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;

依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

根据本申请实施例的第三方面,提供了一种流量拥塞隔离装置,该装置应用于交换机,包括:

cnp报文上送单元,用于当接收到反向拥塞通知报文cnp报文时,将所述cnp报文上送至控制器,所述cnp报文是由服务器在接收到携带了拥塞标记的业务报文时触发的;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;

拥塞业务流隔离单元,用于接收所述控制器下发的拥塞隔离配置,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

根据本申请实施例的第四方面,提供了一种流量拥塞隔离装置,该装置应用于第一服务器,包括:

拥塞隔离配置接收单元,用于接收控制器下发的拥塞隔离配置;所述拥塞隔离配置是控制器接收到反向拥塞通知报文cnp报文时下发的;所述cnp报文是由第二服务器在接收到携带了拥塞标记的业务报文时触发的,所述第一服务器为所述业务报文的源端;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;

拥塞业务流隔离单元,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

根据本申请实施例的第五方面,提供一种流量拥塞隔离系统,所述系统包括:交换机,控制器、服务器;

其中,所述交换机接收到反向拥塞通知报文cnp报文时,将所述cnp报文上送至控制器,所述cnp报文是由服务器在接收到携带了拥塞标记的业务报文时触发的;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识;

所述控制器接收到所述交换机上送的cnp报文时,向所述交换机下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;

所述交换机接收到所述控制器下发的拥塞隔离配置时,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流;

或者,

所述控制器接收到反向拥塞通知报文cnp报文时,下发拥塞隔离配置至服务器,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;所述cnp报文是由另一服务器在接收到携带了拥塞标记的业务报文时触发的,所述控制器下发拥塞隔离配置至的服务器为所述业务报文的源端,所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识;

当服务器接收到所述控制器下发的拥塞隔离配置时,将待转发的属于所述拥塞业务流的业务报文中已有的优先级值修改为重新设置的优先级值并转发,以使交换机收到业务报文时依据业务报文携带的所述重新设置的优先级值将所述业务报文存放至所述拥塞预留队列。

本申请的实施例提供的技术方案可以包括以下有益效果:

由以上技术方案可知,本申请提供的方案中,交换机或者服务器(指拥塞业务流的源端)在接收到控制器下发的拥塞隔离配置之后,可以依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流,其中拥塞隔离配置是控制器在接收到反向拥塞通知报文cnp报文时下发的,反向拥塞通知报文cnp报文是另一服务器(如拥塞业务流的目的端)在接收到携带了拥塞标记的业务报文时触发的。由于本申请提供的方案将拥塞业务流与未发生拥塞的正常业务流进行了隔离,因此,在进一步消除拥塞业务流中出现的拥塞时,可以避免影响到未发生拥塞的正常业务流的传输。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本申请实施例提供的一种roce网络的组网架构图;

图2是本申请实施例提供的应用于交换机的流量拥塞隔离的方法流程图;

图3是本申请实施例提供的应用于控制器的流量拥塞隔离的方法流程图;

图4是本申请实施例提供的一种roce网络的组网架构示意图;

图5是本申请实施例提供的实现如图2所示方法的实施例流程示意图;

图6是本申请实施例提供的另一种roce网络的组网架构示意图;

图7是本申请实施例提供的实现如图3所示方法的实施例流程示意图;

图8是本申请实施例提供的应用于交换机的实现流量拥塞隔离的装置示意图;

图9是本申请实施例提供的应用于控制器的实现流量拥塞隔离的装置示意图。

具体实施方式

为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面先对本申请实施例中所涉及的相关技术进行描述:

如背景技术所描述的,当roce网络中传输的业务流发生拥塞并导致丢包时,将会引起业务流的业务报文大面积重传,导致整个roce网络中业务流的传输速率严重下降。因此,相关技术中提供了多种技术来解除业务流所发生的拥塞,比如基于业务流的ecn(explicitcongestionnotification,显示拥塞通知)技术、基于端口和队列的pfc(priority-basedflowcontrol,基于优先级的流量控制)技术等。

需要说明的是,上述的ecn技术在解除业务流所发生的拥塞时,是通过通知发送拥塞业务流的源端服务器降低发送拥塞业务流的业务报文的速率实现的,对拥塞业务流的传输过程影响较小,但是解决拥塞的力度不够大,可能会出现不能解决拥塞甚至拥塞越来越严重的情况。

而pfc技术是在检测到本设备上转发的业务流发生拥塞时,通知上一级设备降低转发该拥塞业务流的业务报文的速率,甚至通知上一级设备暂停转发该拥塞业务流的业务报文,此时上一级设备会将拥塞业务流的业务报文进行缓存,缓存的增加可能会导致上一级设备中发生拥塞,则上一级设备可以继续通知自己的上一级设备执行上述操作,如此一级级通知,直到通知到发送拥塞业务流的源端服务器,这样可以保证解决拥塞,避免出现丢包,但是对拥塞业务流的传输过程影响较大。

因此在实际应用中,会采用ecn+pfc组合的方案来保障roce网络中业务流的业务报文在传输过程中无损不丢包。

但是,如上描述的pfc技术是基于端口和队列实现的,使用pfc降低设备上转发该拥塞业务流的业务报文的速率,是通过降低是上一级设备向本设备发送业务流的速率实现的,具体通过降低转发拥塞业务流的端口中的存放该拥塞业务流的业务报文的报文转发队列的报文转发速率,来实现降低上一级设备向本设备发送业务流的速率。而在roce网络中所有业务流的业务报文都存放在同一报文转发队列进行转发,所以,在降低报文转发队列的报文转发速率时,将会影响到与该拥塞业务流使用同一报文转发队列的其他未发生拥塞的正常业务流,导致这些未发生拥塞的正常业务流在roce网络中传输速率也被降低,甚至出现正常业务流断流的情况。

下面以图1所示的roce组网对相关技术中pfc功能触发时对正常业务流的影响进行举例说明:

参见图1,图1中dut设备为交换机,server1和server2是源端服务器,server3和server4是目的端服务器,并且图1中所有设备都开启了pfc及ecn功能。在图1所示的组网中,所有业务流都是基于rdma技术的流量,且交换机dut1使用同一队列转发所有业务流。其中业务流1从server1发出,经过dut1的port1和port3到达server3;业务流2从server2发出,经过dut1的port2和port3到达server3;业务流3从server2发出,经过dut1的port2和port4到达server4。

由于业务流1和业务流2在dut上从不同端口输入,但是在同一出端口port3输出,因此在port3处极有可能发生拥塞。当port3处业务流1和业务流2发生拥塞并触发pfc功能时,dut将生成pfc反压帧并从port1和port2发向上游的server1和server2,以抑制server1和server2向dut1发送流量的速率。可以看出,此时正常转发的业务流3实际并未在转发路径上形成拥塞,但依然会因为server2收到pfc反压帧而被迫降速。

有鉴于此,本申请提供以下流量拥塞隔离方法、装置和系统,以解决流量拥塞所导致的问题。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

下面通过图2对本申请提供的一种方法实施例进行描述:

参见图2,图2为本申请实施例提供的应用于交换机的流量拥塞隔离的方法流程图。作为一个实施例,图2所示的方法可以应用于如图4或图6所示的roce网络架构中。

如图2所示,该流程可以包括以下步骤:

步骤201,当接收到反向拥塞通知报文cnp报文时,将所述cnp报文上送至控制器,所述cnp报文是由服务器在接收到携带了拥塞标记的业务报文时触发的;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流。

需要说明的是,本申请实施例中,交换机中至少存在两个队列,其中一个队列为初始时,用于存放未发生拥塞的所有业务流的业务报文的报文转发队列,另一个队列为用于在出现拥塞业务流时,存放发生拥塞的拥塞业务流的业务报文的拥塞预留队列,在初始时,拥塞预留队列中可以不存放任何业务流的业务报文,并且拥塞预留队列的优先级低于报文转发队列。

作为一个实施例,当交换机检测到转发的业务流在本设备发生拥塞时,确定该业务流为拥塞业务流,将针对存放在报文转发队列中的待转发的拥塞业务流的业务报文,修改所述业务报文中携带的用于指示拥塞业务流未发生拥塞的未拥塞标记为拥塞标记,进而将携带拥塞标记的业务报文发送至服务器,该服务器为所述业务报文的目的端服务器。

具体实现时,以上拥塞标记可以通过在roce网络中为所有设备配置并开启ecn功能实现。在开启ecn功能之后,roce网络中源端服务器(即发送业务流的业务报文的源端)所发送的报文都将携带ecn01或ecn10的标记,该标记可以指示业务流未发生拥塞,并且转发业务流时可以使用ecn功能。当交换机检测到出现拥塞业务流时,将针对存放在报文转发队列中的待转发的拥塞业务流的业务报文,将拥塞业务流的业务报文所携带的ecn标记修改为ecn11,以使目的端服务器可以根据接收到的拥塞业务流的业务报文的ecn字段判断业务报文所属的拥塞业务流发生了拥塞。

可选的,交换机检测转发的业务流是否在本设备发生拥塞,可以通过检测交换机上用于接收业务流的入端口处的缓存占用是否超过预先设置的第一水线值实现。第一水线值可以根据交换机上入端口的缓存方案进行设置,比如当交换机上入端口的缓存为固定缓存时,可以设置一个静态值为第一水线值(比如设置第一水线值为2000个缓存单元),当交换机上入端口的缓存为共享缓存时,此时可以将第一水线值设置为动态值(比如设置第一水线值为分配给入端口的缓存的70%),具体设置可以根据业务情况,以及设置的详细过程可参考相关技术,这里不再赘述。

本申请实施例中,服务器在接收到携带了拥塞标记的业务报文时,将触发服务器生成cnp报文并返回给交换机,当交换机接收到反向拥塞通知报文cnp报文时,将所述cnp报文上送至控制器。可选的,这里交换机从接收到报文中确定cnp报文,可以通过对接收cnp报文的端口所接收的每一报文的opcode字段进行匹配,当匹配到该报文的opcode字段为129时,确定接收到的报文为cnp报文。

进一步的,本申请实施例在实施之前,可以通过控制器向交换机下发erspan(encapsulatedremoteswitchportanalyzer,一种三层远程流镜像技术)镜像配置,以指示交换机确定接收到的报文为cnp报文之后,将该cnp报文镜像至所述控制器,触发控制器下发拥塞隔离配置。

步骤202,接收所述控制器下发的拥塞隔离配置,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

需要说明的是,本步骤201中控制器所生成的拥塞隔离配置可以包括以下内容:匹配项和动作。

作为一个实施例,其中匹配项可以为拥塞业务流的业务流标识,动作为存放至拥塞预留队列,这里的拥塞预留队列不同于已设置的报文转发队列,在初始,未发生拥塞的所有业务流的业务报文均存放至所述报文转发队列。

示例性的,本申请实施例中拥塞报文所携带的业务流标识可以通过报文中的qpair字段实现,qpair是roce网络中所使用的rocev2报文中的一个字段,可以理解为一个字符串,用于标识一条业务流。

基于上述实施例中的拥塞隔离配置,当交换机接收到业务报文,并检测到接收到的业务报文所属的业务流的标识与所述匹配项中的业务流标识匹配时,会将接收到的业务报文存放至拥塞预留队列。

作为另一个实施例,本步骤201中控制器所生成的拥塞隔离配置的匹配项可以为业务流标识和转发速率阈值,

当所述匹配项包括拥塞业务流的业务流标识和转发速率阈值时,当交换机接收到业务报文,在接收到的业务报文所属的业务流的标识与所述匹配项中的业务流标识匹配,并检测到所述与所述匹配项中的业务流标识匹配的业务报文所属的业务流的转发速率大于或等于所述转发速率阈值时,将接收到的业务报文存放至所述拥塞预留队列。

针对上面两种拥塞隔离配置,由于控制器在拥塞业务流的拥塞未解除时不停接收到携带拥塞业务流的业务流标识的cnp报文,为了避免控制器不停下发拥塞隔离配置,作为一个实施例,可以设置一个延迟时间,在下发拥塞隔离配置之后,即使控制器接收到了携带该拥塞业务流的业务流标识的cnp报文,也不会再下发针对该拥塞业务流的拥塞隔离配置。

进一步的,当控制器在下发拥塞隔离配置之后,在指定时间内未收到携带该拥塞业务流的业务流标识的cnp报文,可以将向交换机下发拥塞隔离配置的解除命令,以使交换机在拥塞业务流的拥塞解除之后,使用报文转发队列存放已解除拥塞的拥塞业务流的业务报文,以进一步保证拥塞预留队列不会存放未发生拥塞的业务流的业务报文,实现隔离所述拥塞业务流与未发生拥塞的正常业务流。

作为另一个实施例,本实施例中控制器在生成针对拥塞业务流的拥塞隔离配置时也可以设置一个老化时间,并在下发拥塞隔离配置时,将拥塞隔离配置的老化时间也下发给交换机。在该老化时间内,即使控制器接收到了携带该拥塞业务流的业务流标识的cnp报文,也不会下发针对该拥塞业务流的拥塞隔离配置。

进一步的,当交换机上接收到拥塞隔离配置的时间等于老化时间时,该拥塞隔离配置将自动从交换机上自动解除。比如当老化时间为n秒时,n大于0,当交换机上接收到拥塞隔离配置的时间达到n秒,交换机将从本设备上删除该达到老化时间的拥塞隔离配置。同时,当控制器检测到已下发的针对拥塞业务流的拥塞隔离配置达到老化时间,此时若接收到了携带该拥塞业务流的业务流标识的cnp报文,将继续根据该cnp报文下发针对该拥塞业务流的拥塞隔离配置。

至此,完成图2所示流程。

需要说明的是,在本申请实施例中交换机将接收到的拥塞业务流的业务报文存放至拥塞预留队列进行转发之后,若交换机接收拥塞流量的入端口处的缓存占用继续增长,并超过预先设置的第二水线值时(第二水线值的设置可以参照第一水线值,第二水线值高于第一水线值),可以触发本交换机降低通过拥塞流量队列发送业务报文的速率,来防止拥塞导致丢包,具体可以通过在交换机上设置pfc功能实现。此时,由于本申请中通过拥塞预留队列隔离了拥塞业务流与未发生拥塞的正常业务流,所以降低拥塞流量队列通过拥塞流量队列发送业务报文的速率不会影响到未发生拥塞的正常业务流。

通过图2所示的流程可以看出,本实施例中交换机在接收到控制器下发的拥塞隔离配置之后,可以依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流,其中拥塞隔离配置是控制器在接收到反向拥塞通知报文cnp报文时下发的,反向拥塞通知报文cnp报文是另一服务器(如拥塞业务流的目的端)在接收到携带了拥塞标记的业务报文时触发的。由于本申请提供的方案将拥塞业务流与未发生拥塞的正常业务流进行了隔离,因此,在进一步消除拥塞业务流中出现的拥塞时,可以避免影响到未发生拥塞的正常业务流的传输。

下面通过图3对本申请提供的另一种方法实施例进行描述:

参见图3,图3为本申请实施例提供的应用于服务器的流量拥塞隔离的方法流程图。作为一个实施例,图3所示的方法可以应用于如图6所示的roce网络架构中。

如图3所示,该流程可以包括以下步骤:

步骤301,接收控制器下发的拥塞隔离配置;所述拥塞隔离配置是控制器接收到反向拥塞通知报文cnp报文时下发的;所述cnp报文是由第二服务器在接收到携带了拥塞标记的业务报文时触发的,所述第一服务器为所述业务报文的源端;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流。

需要说明的是,本实施例中,生成cnp报文的服务器和本实施例所应用的服务器不同,生成cnp报文的服务器为拥塞业务流的业务报文的目的端服务器,本实施例所应用的服务器为拥塞业务流的业务报文的源端服务器。

本实施例中,由于控制器与服务器之间存在连接,因此控制器接收的cnp报文可以是roce网络中可以是交换机使用已配置的镜像功能(如erspan功能)向控制器上送的cnp报文,也可以是目的端服务器直接向控制器发送的cnp报文。

步骤302,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

作为一个实施例,本步骤301中控制器下发的拥塞隔离配置可以包括以下内容:

重新为所述拥塞业务流设置的优先级值,该重新设置的优先级值低于所述拥塞业务流之前设置的优先级值;该重新设置的优先级值与连接所述第一服务器的交换机上的拥塞预留队列匹配,所述拥塞预留队列不同于已设置的报文转发队列,在初始,未发生拥塞的所有业务流的业务报文均存放至所述报文转发队列。

基于该拥塞隔离配置,拥塞业务流的源端服务器针对服务器中待转发的属于所述拥塞业务流的业务报文,可以将所述业务报文中已有的优先级值修改为所述重新设置的优先级值并转发,以使所述交换机收到业务报文时依据业务报文携带的所述重新设置的优先级值将所述业务报文存放至所述拥塞预留队列。

示例性的,本实施例中业务报文中携带的优先级值为ip报文中的优先级信息字段:dscp(differentiatedservicescodepoint,差分服务代码点)字段。本申请实施例中配置交换机上的报文转发队列和拥塞预留队列时,同时配置了报文转发队列和拥塞预留队列分别对应的dscp值。当交换机接收到业务报文时,将根据业务报文中携带的dscp值查找该dscp值对应的队列,并将接收到的业务报文存放至该dscp值对应的队列进行转发。

需要说明的是,本实施例中cnp报文和携带了拥塞标记的业务报文的生成过程和转发过程,以及其他内容均可参照图2所示方法实施例中的描述,本申请不再赘述。

至此,完成图3所示流程。

通过图3所示的流程可以看出,本实施例中服务器(指拥塞业务流的源端)在接收到控制器下发的拥塞隔离配置之后,可以依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流,其中拥塞隔离配置是控制器在接收到反向拥塞通知报文cnp报文时下发的,反向拥塞通知报文cnp报文是另一服务器(如拥塞业务流的目的端)在接收到携带了拥塞标记的业务报文时触发的。由于本申请提供的方案将拥塞业务流与未发生拥塞的正常业务流进行了隔离,因此,在进一步消除拥塞业务流中出现的拥塞时,可以避免影响到未发生拥塞的正常业务流的传输。

下面通过两个实施例对本申请提供的方法进行描述:

实施例1:

本实施例1应用于如图4所示的roce组网架构中,图4中dut设备为交换机,server是服务器,controller是控制器,其中交换机和控制器之间存在连接,交换机和服务器之间存在连接。这里所有设备都配置了ecn功能和pfc功能,且每个交换机都配置了erspan镜像功能和两个不同的队列,其中一个队列为初始时,用于存放未发生拥塞的所有业务流的业务报文的报文转发队列,在初始情况下交换机接收到业务流1、业务流2和业务流3的业务报文时都存放至报文转发队列进行转发,另一个队列为用于在出现拥塞业务流时,存放发生拥塞的拥塞业务流的业务报文的拥塞预留队列,在初始时,拥塞预留队列中可以不存放任何业务流的业务报文,并且拥塞预留队列的优先级低于报文转发队列。

下面通过如图5所示的流程图对本实施例1进行描述:

步骤501,当交换机检测到自身任一接收业务流的入端口的缓存占用超过用于指示拥塞的第一水线值时,确定该入端口所接收的业务流为在出端口处发生拥塞的拥塞业务流,则针对当前存放在所述交换机的报文转发队列中的该拥塞业务流的业务报文,将所述拥塞业务流的业务报文中的未拥塞标记修改为拥塞标记并转发。

以dut3所转发的业务流1和业务流2发生拥塞为例,当检测到dut3上的port4端口和port5端口的缓存占用达到各自设置的触发ecn功能的第一水线值时,表明port6端口已经出现了拥塞,此时dut3所转发的业务流1和业务流2即拥塞业务流。在触发ecn功能之后,dut3在转发设备待转发的业务流1和业务流2的业务报文之前,将修改业务流1和业务流2的业务报文中所携带的ecn字段为ecn11,并将修改后的携带拥塞标记ecn11的业务报文发送给server3。

步骤502,当第二服务器接收到携带了拥塞标记的业务报文时,触发所述第二服务器生成并返回反向拥塞通知报文cnp报文,所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识。

本实施例1中,server3(即第二服务器)在接收到携带了ecn11字段的业务报文之后,将触发server3生成cnp报文。server3在生成cnp报文时,将解封装拥塞报文获取拥塞报文中携带的qpair值(qpair值为业务流标识),并将该qpair值携带在cnp报文中。进一步的,server3在生成cnp报文后,会将该cnp报文返回给dut3。

步骤503,交换机在接收到所述cnp报文时,将所述cnp报文上送至控制器。

可选的,dut3在port6接收到报文时,对接收到的报文的opcode字段进行匹配,当匹配到接收到的报文的opcode字段为129,则确定该报文为cnp报文,并触发dut3使用已配置的erspan镜像功能复制接收到的cnp报文,将复制的cnp报文发送给控制器controller。

步骤504,控制器依据接收到的cnp报文中携带的拥塞业务流的业务流标识,向与控制器所连接的所有交换机下发用于隔离所述拥塞业务流与未发生拥塞的正常业务流的拥塞隔离配置。

本实施例1中controller在接收到cnp报文并根据cnp报文携带的qpair字段识别出该cnp报文用于通知业务流1和业务流2发生拥塞之后,将针对业务流1和业务流2向dut1、dut2、dut3下发拥塞隔离配置。

步骤505,交换机接收所述控制器下发的拥塞隔离配置,并在接收到与所述拥塞隔离配置中匹配项匹配的业务报文时,将接收到的业务报文存放至所述拥塞预留队列。

dut1、dut2、dut3在接收到拥塞隔离配置后,如果该拥塞隔离配置为上述图2所示方法实施例中匹配项为业务流标识的拥塞隔离配置,则在接收到业务报文时,若该业务报文所携带的qpair值与业务流1或者业务流2的业务流标识匹配,则将该业务报文存放至各自的拥塞预留队列中进行转发。

或者,如果dut1、dut2、dut3所接收到拥塞隔离配置的匹配项为拥塞业务流的业务流标识和转发速率阈值,则在接收到业务报文时,若该业务报文所携带的qpair值与业务流1或者业务流2的业务流标识匹配,并且该业务报文所属的业务流的转发速率超过了转发速率阈值,则将该业务报文存放至各自的拥塞预留队列中进行转发。

本实施例1最终使发生拥塞流量的业务流1和业务流2都通过拥塞预留队列转发,这样当检测到dut3上的port4端口和/或port5端口的缓存占用达到各自设置的触发pfc功能的第二水线值时,通过pfc功能解除业务流1和业务流2产生的拥塞时,也不会影响到业务流3的传输。

实施例2:

本实施例2应用于如图6所示的roce组网架构中,图6所示的组网架构控制器与服务器之间连接,设备上的其他配置均与实施例1相同。

下面通过如图7所示的流程图对本实施例2进行描述:

步骤701,当交换机检测到自身任一接收业务流的入端口的缓存占用超过用于指示拥塞的第一水线值时,确定该入端口所接收的业务流为在出端口处发生拥塞的拥塞业务流,则针对当前存放在所述交换机的报文转发队列中的该拥塞业务流的业务报文,将所述拥塞业务流的业务报文中的未拥塞标记修改为拥塞标记并转发。

步骤702,当第二服务器接收到携带了拥塞标记的业务报文时,触发所述第二服务器生成并返回反向拥塞通知报文cnp报文,所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识。

步骤703,由交换机在接收到所述cnp报文时,将所述cnp报文上送至控制器;或者由第二服务器将所述cnp报文上送至控制器。

本实施例2中同样以dut3所转发的业务流1和业务流2发生拥塞为例,本实施例2中server3(即第二控制器)在生成cnp报文后之前的步骤与实施例1可以一致,但是在server3在生成cnp报文后,可以将该cnp报文返回给dut3,使dut3将cnp报文上送给控制器controller,也可以将cnp报文直接通过controller与server3之间的连接发送给cnp报文。

步骤704,控制器依据接收到的cnp报文中携带的拥塞业务流的业务流标识,确定所述发送拥塞业务流的源端(记为第一服务器),向所述第一服务器下发用于隔离所述拥塞业务流与未发生拥塞的正常业务流的拥塞隔离配置。

本实施例中,controller在接收到cnp报文之后,将根据cnp报文携带的qpair字段识别出发生拥塞的业务流为业务流1和业务流2,进一步控制器将依据cnp报文中携带的qpair值查找到这业务流1的源端服务器是server1,业务流1的源端服务器是server2。

步骤705,第一服务器根据接收到的拥塞隔离配置,针对待转发的属于所述拥塞业务流的业务报文,将所述业务报文中已有的优先级值修改为所述重新设置的优先级值并转发,以使所述交换机收到业务报文时依据业务报文携带的所述重新设置的优先级值将所述业务报文存放至所述拥塞预留队列。

可选的,将所述业务报文中已有的优先级值修改为所述重新设置的优先级值,可以是将业务报文中已有的报文转发队列对应的dscp值(即优先级值)修改为拥塞预留队列对应的dscp值。

本实施例2通过直接在拥塞业务流的源端服务器修改拥塞业务流的业务报文中修改的优先级值,使交换机收到业务报文时依据业务报文携带的所述重新设置的优先级值将所述业务报文存放至所述拥塞预留队列,最终可以实现发生拥塞的业务流1和业务流2的业务报文在交换机上都通过拥塞预留队列转发,这样当检测到dut3上的port4端口和port5端口的缓存占用达到已设置的触发pfc功能的第二水线值时,通过pfc功能解除业务流1和业务流2产生的拥塞时,也不会影响到业务流3的传输。

以上对本申请实施例提供的方法进行了描述。下面对本申请实施例提供的装置进行描述:

参见图8,图8为本申请实施例提供的一种实现流量拥塞隔离的装置示意图,该装置实施例应用于交换机。该装置包括:

cnp报文上送单元801,用于当接收到反向拥塞通知报文cnp报文时,将所述cnp报文上送至控制器,所述cnp报文是由服务器在接收到携带了拥塞标记的业务报文时触发的;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流。

拥塞业务流隔离单元802,用于接收所述控制器下发的拥塞隔离配置,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

可选的,所述拥塞隔离配置包括:匹配项和动作;所述匹配项为所述业务流标识、或者为所述业务流标识和转发速率阈值;所述动作为存放至拥塞预留队列,所述拥塞预留队列不同于已设置的报文转发队列,在初始,未发生拥塞的所有业务流的业务报文均存放至所述报文转发队列。

所述拥塞业务流隔离单元802依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流包括:

当所述匹配项仅包括所述业务流标识时,若接收到业务报文,则在接收到的业务报文所属的业务流的标识与所述匹配项中的业务流标识匹配时,将接收到的业务报文存放至所述拥塞预留队列。

当所述匹配项包括所述业务流标识和转发速率阈值时,若接收到业务报文,则在接收到的业务报文所属的业务流的标识与所述匹配项中的业务流标识匹配,并检测到所述与所述匹配项中的业务流标识匹配的业务报文所属的业务流的转发速率大于或等于所述转发速率阈值时,将接收到的业务报文存放至所述拥塞预留队列。

可选的,cnp报文上送单元801还用于接收所述控制器下发的镜像配置,所述镜像配置用于指示将cnp报文镜像至所述控制器。

所述cnp报文上送单元801将所述cnp报文上送至控制器包括:

根据所述镜像配置对接收到的cnp报文进行镜像,将镜像后得到的cnp报文发送给控制器。

至此,完成图8所示装置实施例的结构图。

参见图9,图8为本申请实施例提供的另一种实现流量拥塞隔离的装置示意图,该装置实施例应用于服务器:

拥塞隔离配置接收单元901,用于接收控制器下发的拥塞隔离配置;所述拥塞隔离配置是控制器接收到反向拥塞通知报文cnp报文时下发的;所述cnp报文是由第二服务器在接收到携带了拥塞标记的业务报文时触发的,所述第一服务器为所述业务报文的源端;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识,以使所述控制器下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流。

拥塞业务流隔离单元902,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

可选的,所述拥塞隔离配置包括:

重新为所述拥塞业务流设置的优先级值,该重新设置的优先级值低于所述拥塞业务流之前设置的优先级值;该重新设置的优先级值与连接所述第一服务器的交换机上的拥塞预留队列匹配,所述拥塞预留队列不同于已设置的报文转发队列,在初始,未发生拥塞的所有业务流的业务报文均存放至所述报文转发队列。

所述拥塞业务流隔离单元902依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流包括:

针对待转发的属于所述拥塞业务流的业务报文,将所述业务报文中已有的优先级值修改为所述重新设置的优先级值并转发,以使所述交换机收到业务报文时依据业务报文携带的所述重新设置的优先级值将所述业务报文存放至所述拥塞预留队列。

至此,完成图9所示装置实施例的结构图。

以上对本申请实施例提供的方法和装置进行了描述。下面对本申请实施例提供的系统进行描述:

本申请提供的流量拥塞隔离系统中包括:交换机,控制器、服务器,交换机和控制器之间连接,交换机和服务器之间连接,进而可以实现隔离拥塞业务流与未发生拥塞的正常业务流,以避免在解决拥塞业务流的拥塞时影响未发生拥塞的正常业务流。

其中,所述交换机接收到反向拥塞通知报文cnp报文时,将所述cnp报文上送至控制器,所述cnp报文是由服务器在接收到携带了拥塞标记的业务报文时触发的;所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识。

所述控制器接收到所述交换机上送的cnp报文时,向所述交换机下发拥塞隔离配置,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流。

所述交换机接收到所述控制器下发的拥塞隔离配置时,依据所述拥塞隔离配置隔离所述拥塞业务流与未发生拥塞的正常业务流。

或者,若本申请提供的流量拥塞隔离系统中,控制器和服务器之间也存在连接,则所述控制器接收到反向拥塞通知报文cnp报文时,下发拥塞隔离配置至服务器,所述拥塞隔离配置用于隔离所述拥塞业务流与未发生拥塞的正常业务流;所述cnp报文是由另一服务器在接收到携带了拥塞标记的业务报文时触发的,所述控制器下发拥塞隔离配置至的服务器为所述业务报文的源端,所述cnp报文携带所述业务报文所属的拥塞业务流的业务流标识。

当服务器接收到所述控制器下发的拥塞隔离配置时,将待转发的属于所述拥塞业务流的业务报文中已有的优先级值修改为重新设置的优先级值并转发,以使交换机收到业务报文时依据业务报文携带的所述重新设置的优先级值将所述业务报文存放至所述拥塞预留队列。

以上举例只是为了便于理解,本申请实施例并不具体限定。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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