技术领域
[0001] 本发明实施例涉及但不限于网络技术领域,特别是涉及一种网络拥塞控制方法、交换机、拥塞控制装置和计算机可读存储介质。
相关背景技术
[0002] 数据中心交换机在高性能计算、分布式存储以及人工智能的应用场景中,面对高并发、高突发的流量,对交换机的性能提出了越来越高的要求,需要交换机在复杂的组网中实现零丢包,以保证业务的可持续性。如果在拥塞处理过程中出现源端不及时响应或者无法响应的情况,将会导致网络业务出现严重的故障。
[0003] 然而在相关技术中,并没有考虑到源端设备不能及时响应或者无法响应拥塞控制报文的场景,一旦源端设备由于某种原因不能及时响应或无法响应拥塞控制报文时,会导致目的端设备持续不断的发送拥塞控制报文。在复杂的组网中,大量的拥塞控制报文得不到及时处理,会直接影响中间的交换机等网络设备的转发性能。
具体实施方式
[0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0021] 应了解,在本发明实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
[0022] 数据中心交换机在高性能计算、分布式存储以及人工智能的应用场景中,面对高并发、高突发的流量,对交换机的性能提出了越来越高的要求,需要交换机在复杂的组网中实现零丢包,以保证业务的可持续性。如果在拥塞处理过程中出现源端不及时响应或者无法响应的情况,将会导致网络业务出现严重的故障。
[0023] 然而在相关技术中,并没有考虑到源端设备不能及时响应或者无法响应拥塞控制报文的场景,一旦源端设备由于某种原因不能及时响应或无法响应拥塞控制报文时,会导致目的端设备持续不断的发送拥塞控制报文。在复杂的组网中,大量的拥塞控制报文得不到及时处理,会直接影响中间的交换机等网络设备的转发性能。
[0024] 本发明实施例提供了一种网络拥塞控制方法、拥塞控制装置、交换机和计算机可读存储介质,通过交换机从目的端设备获取拥塞控制报文,再将拥塞控制报文发送至对应的源端设备,并从源端设备获取第一数据报文,根据获取第一数据报文的报文速率确定源端设备未响应拥塞控制报文,对从该源端设备获取的第一数据报文进行拥塞控制管理。因此,本实施例提供的方案能够判断出目的端设备发送的拥塞控制报文得不到对应的源端设备响应的情形,使得交换机可以对从该源端设备获取的数据报文进行拥塞控制管理,从而减轻网络拥塞,避免造成交换机转发性能衰减。
[0025] 如图1所示,图1是本发明一个实施例提供的一种网络拥塞控制方法的流程图。该网络拥塞控制方法应用于交换机,其包括但不限于如下步骤:
[0026] 步骤101,从目的端设备获取拥塞控制报文。
[0027] 步骤102,将拥塞控制报文发送至对应的源端设备,从源端设备获取第一数据报文。
[0028] 步骤103,根据获取第一数据报文的报文速率确定源端设备未响应拥塞控制报文,对从该源端设备获取的第一数据报文进行拥塞控制管理。
[0029] 在一实施例中,当交换机连接目的端设备的目的端端口出现拥塞,交换机会从目的端设备获取拥塞控制报文,再将拥塞控制报文发送至对应的源端设备,为了判断源端设备有无响应拥塞控制报文,从源端设备获取第一数据报文,交换机根据获取第一数据报文的报文速率确定源端设备未响应拥塞控制报文,对从该源端设备获取的第一数据报文进行拥塞控制管理,实现主动对第一数据报文进行针对性的处理,使得交换机不出现拥塞丢包。因此,通过对拥塞控制报文及对应的第一数据报文进行采样,就能够判断出目的端设备发送的拥塞控制报文得不到对应的源端设备响应的情形,使得交换机可以对从该源端设备获取的数据报文进行拥塞控制管理,从而减轻网络拥塞,避免造成交换机转发性能衰减。需要指出的是,第一数据报文指的是在目的端设备持续向对应的源端设备发送相同的拥塞控制报文的情形下,交换机从源端设备获取的数据报文。
[0030] 在一实施例中,步骤103可以包括但不限于如下子步骤:
[0031] 当从源端设备获取的第一数据报文的报文速率不低于第一阈值,则确定该源端设备未响应拥塞控制报文。
[0032] 在本实施例中,当从源端设备获取的第一数据报文的报文速率不低于第一阈值,即说明源端设备发送给交换机的第一数据报文的报文速率并没有进行降速,从而可以确定该源端设备未响应拥塞控制报文。通过交换机主动识别出拥塞控制报文对源端设备无法生效,从而避免了不能及时应对该源端设备出现了无法及时响应拥塞控制报文或者无法响应拥塞控制报文的情形。
[0033] 需要指出的是,第一阈值为在交换机没出现端口拥塞的情形下,交换机从源端设备获取的数据报文的报文速率正常值,其用于与第一数据报文的报文速率进行参照比较,以衡量源端设备向交换机发送的第一数据报文的报文速率是否出现降速。因此,对第一阈值不作具体限制。
[0034] 在一实施例中,步骤103可以包括但不限于如下子步骤:
[0035] 向目的端设备发送第一数据报文,且对第一数据报文不作拥塞标记。
[0036] 需要注意的是,在原有的拥塞检测机制下,当交换机连接目的端设备的目的端端口出现拥塞,交换机向目的端设备发送的数据报文会作拥塞标记。
[0037] 在本实施例中,当确定源端设备未响应拥塞控制报文,交换机会向目的端设备发送第一数据报文,且对第一数据报文不作拥塞标记。在本实施例中,由于交换机识别出拥塞控制报文对源端设备无法生效,在网络中产生了大量重复无用的拥塞控制报文后,交换机会主动停止无意义的拥塞通知,因此,交换机不对发送给目的端设备的第一数据报文作拥塞标记,从而使目的端设备不再持续地对源端设备发送拥塞控制报文,以避免主动停止无用的拥塞控制报文影响交换机转发性能的功能。
[0038] 在一实施例中,步骤103可以包括但不限于如下子步骤:
[0039] 管控从该源端设备获取的第一数据报文。
[0040] 在本实施例中,交换机会管控从该源端设备获取的第一数据报文,即交换机可以主动对该源端设备发送的第一数据报文进行针对性处理,以防止交换机出现拥塞丢包。
[0041] 在一实施例中,管控从该源端设备获取的第一数据报文可以包括如下任意之一:
[0042] 对从该源端设备获取的第一数据报文进行限速;
[0043] 丢弃从该源端设备获取的第一数据报文;
[0044] 随机处理从该源端设备获取的第一数据报文。
[0045] 在本实施例中,当确定源端设备未响应拥塞控制报文,交换机可以主动对该源端设备发送的第一数据报文进行针对性处理,例如,可以对从该源端设备获取的第一数据报文进行限速;或者,丢弃从该源端设备获取的第一数据报文;或者,随机处理从该源端设备获取的第一数据报文。通过上述任意一种处理方式,以防止交换机出现拥塞丢包,保证在拥塞控制报文通知机制失效后,交换机不出现端口拥塞,从而提高网络的稳定性和健壮性。
[0046] 在一实施例中,还包括如下步骤:
[0047] 向外部设备发送提示信息,提示信息用于提示该源端设备未响应拥塞控制报文。
[0048] 在本实施例中,当确定源端设备未响应拥塞控制报文,交换机可以向外部设备发送提示信息,该提示信息用于提示该源端设备未响应拥塞控制报文,以提示用户及时进行处理。
[0049] 在一实施例中,还包括如下步骤:
[0050] 确定从该源端设备获取的第一数据报文的报文速率低于第一阈值,则恢复对发送给目的端设备的第一数据报文作拥塞标记。
[0051] 在本实施例中,交换机在连接源端设备的源端端口做流量统计,当确定从该源端设备获取的第一数据报文的报文速率低于第一阈值,则判断出源端设备已经降速,代表源端设备恢复了响应拥塞控制报文的功能,则可以恢复交换机的拥塞检测机制,重新对发送给目的端设备的第一数据报文作拥塞标记,从而保证拥塞检测能够自动恢复,保证交换机设备正常运行。
[0052] 以下通过具体的配置场景作为实例,进一步介绍本发明实施例提供的网络拥塞控制方法。
[0053] 如图2所示,图2是本发明一个实施例提供的一种交换机分别与源端设备和目的端设备连接的整体结构示意图。
[0054] 交换机分别通过源端端口1连接源端设备1、源端端口2连接源端设备2,源端端口3连接源端设备3、目的端端口4连接目的端设备4。其中,源端设备1、源端设备2、源端设备3以及目的端设备4都是默认支持RDMA(Remote Direct Memory Access,远程直接数据存取)标准的服务器设备,交换机默认使能拥塞检测和拥塞控制功能。
[0055] 源端设备1、源端设备2和源端设备3同时向目的端设备4发送线速流量,当交换机连接目的端设备4的目的端端口4出现拥塞,交换机将从目的端端口4出去的数据报文的标记为拥塞,表示端口拥塞。目的端设备4收到标记位为拥塞的数据报文之后,会根据报文的源端信息主动封装拥塞控制报文来回应源端设备。交换机收到对应的拥塞控制报文后,通过源端端口1、源端端口2以及源端端口3把对应的拥塞控制报文分别发送给源端设备1、源端设备2以及源端设备3。
[0056] 这里假定源端设备1、源端设备2以及源端设备3由于某种原因,收到拥塞控制报文后,无法及时响应拥塞控制报文,导致无法实现降速。
[0057] 此时,交换机根据分别从源端设备1、源端设备2以及源端设备3获取的第一数据报文的报文速率不低于第一阈值,即说明源端设备1、源端设备2以及源端设备3分别发送给交换机的第一数据报文的报文速率并没有进行降速,从而可以确定源端设备1、源端设备2以及源端设备3未响应拥塞控制报文。
[0058] 基于交换机识别出拥塞控制报文对源端设备1、源端设备2以及源端设备3无法生效,在网络中产生了大量重复无用的拥塞控制报文后,交换机会主动停止无意义的拥塞通知,因此,交换机不对发送给目的端设备4的第一数据报文作拥塞标记,即关闭交换机的拥塞检测机制,从而使目的端设备4不再持续地对源端设备1、源端设备2以及源端设备3发送拥塞控制报文,以避免主动停止无用的拥塞控制报文影响交换机转发性能的功能。
[0059] 另一方面,交换机可以主动对源端设备1、源端设备2以及源端设备3发送的第一数据报文进行针对性处理,例如,可以对从源端设备1、源端设备2以及源端设备3获取的第一数据报文进行限速;或者,丢弃从源端设备1、源端设备2以及源端设备3获取的第一数据报文;或者,随机处理从源端设备1、源端设备2以及源端设备3获取的第一数据报文。通过上述任意一种处理方式,以防止交换机出现拥塞丢包,保证在拥塞控制报文通知机制失效后,交换机不出现端口拥塞,从而提高网络的稳定性和健壮性。另外,交换机可以向外部设备发送提示信息,该提示信息用于提示源端设备1、源端设备2以及源端设备3未响应拥塞控制报文,以提示用户及时进行处理。
[0060] 同时,交换机分别在源端端口1、源端端口2以及源端端口3做流量统计,当确定从源端设备1、源端设备2以及源端设备3获取的第一数据报文的报文速率低于第一阈值,则判断出源端设备1、源端设备2以及源端设备3已经降速,代表源端设备1、源端设备2以及源端设备3恢复了响应拥塞控制报文的功能,则可以恢复交换机的拥塞检测机制,重新对发送给目的端设备4的第一数据报文作拥塞标记,从而保证拥塞检测能够自动恢复,保证交换机设备正常运行。基于此,当确定源端设备1、源端设备2以及源端设备3未响应拥塞控制报文,交换机可以自动调整拥塞检测机制,实现网络自动管理、自动运维以及自动修复。
[0061] 如图3所示,本发明实施例还提供了一种交换机。
[0062] 具体地,该交换机包括:一个或多个处理器和存储器,图3中以一个处理器及存储器为例。处理器和存储器可以通过总线或者其他方式连接,图3中以通过总线连接为例。
[0063] 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如上述本发明实施例中的网络拥塞控制方法。处理器通过运行存储在存储器中的非暂态软件程序以及程序,从而实现上述本发明实施例中的网络拥塞控制方法。
[0064] 存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述本发明实施例中的网络拥塞控制方法所需的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0065] 实现上述本发明实施例中的网络拥塞控制方法所需的非暂态软件程序以及程序存储在存储器中,当被一个或者多个处理器执行时,执行上述本发明实施例中的网络拥塞控制方法,例如,执行以上描述的图1中的方法步骤101至步骤103交换机从目的端设备获取拥塞控制报文,再将拥塞控制报文发送至对应的源端设备,并从源端设备获取第一数据报文,根据获取第一数据报文的报文速率确定源端设备未响应拥塞控制报文,对从该源端设备获取的第一数据报文进行拥塞控制管理。因此,本实施例提供的方案能够判断出目的端设备发送的拥塞控制报文得不到对应的源端设备响应的情形,使得交换机可以对从该源端设备获取的数据报文进行拥塞控制管理,从而减轻网络拥塞,避免造成交换机转发性能衰减。
[0066] 如图4所示,本发明实施例还提供了一种网络拥塞控制装置。
[0067] 具体地,该网络拥塞控制装置包括:一个或多个处理器和存储器,图4中以一个处理器及存储器为例。处理器和存储器可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0068] 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如上述本发明实施例中的网络拥塞控制方法。处理器通过运行存储在存储器中的非暂态软件程序以及程序,从而实现上述本发明实施例中的网络拥塞控制方法。
[0069] 存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述本发明实施例中的网络拥塞控制方法所需的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0070] 实现上述本发明实施例中的网络拥塞控制方法所需的非暂态软件程序以及程序存储在存储器中,当被一个或者多个处理器执行时,执行上述本发明实施例中的网络拥塞控制方法,例如,执行以上描述的图1中的方法步骤101至步骤103,交换机从目的端设备获取拥塞控制报文,再将拥塞控制报文发送至对应的源端设备,并从源端设备获取第一数据报文,根据获取第一数据报文的报文速率确定源端设备未响应拥塞控制报文,对从该源端设备获取的第一数据报文进行拥塞控制管理。因此,本实施例提供的方案能够判断出目的端设备发送的拥塞控制报文得不到对应的源端设备响应的情形,使得交换机可以对从该源端设备获取的数据报文进行拥塞控制管理,从而减轻网络拥塞,避免造成交换机转发性能衰减。
[0071] 此外,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行程序,该计算机可执行程序被一个或多个控制处理器执行,例如,被图4中的一个处理器执行,可使得上述一个或多个处理器执行上述本发明实施例中的网络拥塞控制方法,例如,执行以上描述的图1中的方法步骤101至步骤103,交换机从目的端设备获取拥塞控制报文,再将拥塞控制报文发送至对应的源端设备,并从源端设备获取第一数据报文,根据获取第一数据报文的报文速率确定源端设备未响应拥塞控制报文,对从该源端设备获取的第一数据报文进行拥塞控制管理。因此,本实施例提供的方案能够判断出目的端设备发送的拥塞控制报文得不到对应的源端设备响应的情形,使得交换机可以对从该源端设备获取的数据报文进行拥塞控制管理,从而减轻网络拥塞,避免造成交换机转发性能衰减。
[0072] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0073] 以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。