RoCE网络流量控制方法、装置、设备及存储介质与流程

文档序号:25991770发布日期:2021-07-23 21:03阅读:444来源:国知局
RoCE网络流量控制方法、装置、设备及存储介质与流程

本说明书涉及流量控制技术领域,尤其是涉及一种roce网络流量控制方法、装置、设备及存储介质。



背景技术:

roce(rdmaoverconvergedethernet,rdma技术与以太网融合技术)是基于udp(userdatagramprotocol,用户数据报协议)无连接的传输层协议。roce网络可靠性一般较差,且roce网络对于丢包异常敏感,十万分之一的丢包就会造成传输性能的急剧下降,所以roce网络的部署离不开有效的流控机制来保证高速可靠的传输。目前roce网络中一般使用pfc(priority-basedflowcontrol,基于优先级的流量控制)技术来保障无损转发,但pfc的机制运行在端口级,流控时常简单粗暴地将交换机端口流量全部停止,会使其他业务流受害,甚至造成pfc风暴和死锁,甚至扩散影响全局网络。



技术实现要素:

本说明书实施例的目的在于提供一种roce网络流量控制方法,以实现在降低roce网络拥塞率的同时,兼顾roce网络的运行稳定性。

为达到上述目的,一方面,本说明书实施例提供了一种roce网络流量控制方法,包括:

获取源端集合内各源端的网间通信描述信息及网卡剩余发送能力信息;

根据所述网间通信描述信息中的目的端,从所述源端集合内分离出目的端相同的源端子集合;

对于每个所述源端子集合,根据其内各源端的网卡剩余发送能力信息,确定其内各源端的流量分配比例;

获取每个所述目的端的网卡剩余接收能力信息;

对于每个所述源端子集合,根据对应的流量分配比例及对应目的端的网卡剩余接收能力信息,确定其内各源端的单次传输流量上限;

向每个所述源端发送对应的单次传输流量上限,以使每个所述源端基于其单次传输流量上限发送数据流。

本说明书的实施例中,所述获取源端集合内各源端的网间通信描述信息及网卡剩余发送能力信息,包括:

接收源端集合内各源端在指定时机发送的网间通信描述信息及网卡剩余发送能力信息。

本说明书的实施例中,所述指定时机包括:源端在确定要外发一条数据流时。

本说明书的实施例中,所述网间通信描述信息包括源地址和目的地址。

本说明书的实施例中,所述网间通信描述信息还包括:roce协议。

本说明书的实施例中,所述对于每个所述源端子集合,根据其内各源端的网卡剩余发送能力信息,确定其内各源端的流量分配比例,包括:

对于每个所述源端子集合,根据公式确定其内各源端的流量分配比例;

其中,rij为第i个源端子集合内第j个源端的流量分配比例,bij为第i个源端子集合内第j个源端的网卡剩余发送能力;n为第i个源端子集合内的源端数量。

本说明书的实施例中,所述对于每个所述源端子集合,根据对应的流量分配比例及对应目的端的网卡剩余接收能力信息,确定其内各源端的单次传输流量上限,包括:

对于每个所述源端子集合,根据公式fij=rij*bi确定每个所述源端的单次传输流量上限;

其中,fij为第i个源端子集合内第j个源端的单次传输流量上限;bi为第i个源端子集合对应的目的端的网卡剩余接收能力信息。

另一方面,本说明书实施例还提供了一种roce网络流量控制装置,包括:

第一获取模块,用于获取源端集合内各源端的网间通信描述信息及网卡剩余发送能力信息;

源端分组模块,用于根据所述网间通信描述信息中的目的端,从所述源端集合内分离出目的端相同的源端子集合;

比例确定模块,用于对于每个所述源端子集合,根据其内各源端的网卡剩余发送能力信息,确定其内各源端的流量分配比例;

第二获取模块,用于获取每个所述目的端的网卡剩余接收能力信息;

上限确定模块,用于对于每个所述源端子集合,根据对应的流量分配比例及对应目的端的网卡剩余接收能力信息,确定其内各源端的单次传输流量上限;

上限发送模块,用于向每个所述源端发送对应的单次传输流量上限,以使每个所述源端基于其单次传输流量上限发送数据流。

另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。

另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。

由以上本说明书实施例提供的技术方案可见,在说明书的实施例中,可以获取源端的网卡剩余发送能力和网间通信描述信息,并可以获取目的端的网卡剩余接收能力信息;对于目的端相同的各个源端,可以根据源端的网卡剩余发送能力确定其在向该目的端传输的流量分配比例,并可以根据该流量分配比例和该目的端的网卡剩余接收能力信息,确定各源端的单次传输流量上限,并对应提供给各源端,从而使得每个源端可以基于其单次传输流量上限发送数据流。如此,就实现了在不依赖pfc流控机制的条件下对roce网络进行流量控制,从而实现了在roce网络拥塞率的同时,兼顾了roce网络的运行稳定性,降低了roce网络的运维难度。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了本说明书一些实施例中roce网络流量控制的应用场景示意图;

图2示出了本说明书一些实施例中roce网络流量控制方法的流程图;

图3示出了本说明书一实施例中源端集合的示意图;

图4示出了从图3所示源端集合中分离出的一个源端子集合的示意图;

图5示出了从图3所示源端集合中分离出的另一个源端子集合的示意图;

图6示出了本说明书一些实施例中roce网络流量控制装置的结构框图;

图7示出了本说明书一些实施例中计算机设备的结构框图。

【附图标记说明】

100、源端;

200、流控服务器;

300、目的端;

61、第一获取模块;

62、源端分组模块;

63、比例确定模块;

64、第二获取模块;

65、上限确定模块;

66、上限发送模块;

702、计算机设备;

704、处理器;

706、存储器;

708、驱动机构;

710、输入/输出接口;

712、输入设备;

714、输出设备;

716、呈现设备;

718、图形用户接口;

720、网络接口;

722、通信链路;

724、通信总线。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

本说明书实施例主要涉及roce网络的流量控制技术,可以应用于金融领域或其他领域中收发双方(即下文中的源端和目的端)均采用了roce协议的场景,在此场景下收发双方一般都配置有智能网卡。现有roce网络中一般使用pfc技术来保障无损转发,但pfc的机制运行在端口级,流控时常简单粗暴地将交换机端口流量全部停止,会使其他业务流受害,甚至造成pfc风暴和死锁,从而影响了roce网络的运行稳定性。

有鉴于此,为了在降低roce网络的同时,兼顾roce网络的运行稳定性。本说明书实施例提供了一种roce网络的流量控制方法。结合图1所示,所述roce网络的流量控制方法可以应用于roce网络中的流控服务器200(即用于实现roce网络中流量控制的服务器)上,以实现源端100向目的端300发送数据流时的流量控制。

本领域技术人员可以理解,本说明书实施例中的源端和目的端是相对的,在一次数据流传输中,发送方即为源端,接收方即为目的端。例如,在一次数据流传输中,a向b转发数据流,则此时a为源端,b为目的端。在另一次数据流传输中,b向a转发数据流,则此时b为源端,a为目的端。

不仅如此,本说明书实施例中对于源端和目的端的节点类型不作限定。任何一方既可以为客户端,也可以为服务器。其中,所述客户端可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜、智能头盔等。当然,所述客户端并不限于上述具有一定实体的电子设备(或称为计算机设备),其还可以为运行于上述电子设备中的软体。所述服务器可以为具有运算和网络交互功能的电子设备(或称为计算机设备);也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软体。

参考图2所示,在说明书一些实施例中,所述roce网络的流量控制方法可以包括以下步骤:

s201、获取源端集合内各源端的网间通信描述信息及网卡剩余发送能力信息。

s202、根据所述网间通信描述信息中的目的端,从所述源端集合内分离出目的端相同的源端子集合。

s203、对于每个所述源端子集合,根据其内各源端的网卡剩余发送能力信息,确定其内各源端的流量分配比例。

s204、获取每个所述目的端的网卡剩余接收能力信息。

s205、对于每个所述源端子集合,根据对应的流量分配比例及对应目的端的网卡剩余接收能力信息,确定其内各源端的单次传输流量上限。

s206、向每个所述源端发送对应的单次传输流量上限,以使每个所述源端基于其单次传输流量上限发送数据流。

在说明书的实施例中,可以获取源端的网卡剩余发送能力和网间通信描述信息,并可以获取目的端的网卡剩余接收能力信息;对于目的端相同的各个源端,可以根据源端的网卡剩余发送能力确定其在向该目的端传输的流量分配比例,并可以根据该流量分配比例和该目的端的网卡剩余接收能力信息,确定各源端的单次传输流量上限,并对应提供给各源端,从而使得每个源端可以基于其单次传输流量上限发送数据流。如此,就实现了在不依赖pfc流控机制的条件下对roce网络进行流量控制,从而实现了在roce网络拥塞率的同时,兼顾了roce网络的运行稳定性,降低了roce网络的运维难度。

在本说明书的实施例中,源端集合可以是指roce网络中当前所有需要外发数据流的源端。例如,在一个roce网络中有十个节点,其中,有五个节点当前有外发数据流的需求,则这五个节点可以作为源端集合。这里的外发数据流是指:roce网络中一个节点向roce网络中其他节点传输数据。

网间通信描述信息一般可以包括源地址和目的地址。其中,源地址即为源端的网卡ip地址,目的地址即为目的端的网卡ip地址。当然,在本说明书其他的实施例中,网间通信描述信息中还可以包括roce协议等其他信息。如此,对此节点中配置有多个传输协议(例如roce协议、infiniband协议等)的应用场景中,网间通信描述信息包含roce协议,还可以使得当使用roce协议的外发数据流时,发送方才可以作为源端集合中的元素之一。从而实现有针对性的流量控制。

在本说明书一些实施例中,所述获取源端集合内各源端的网间通信描述信息及网卡剩余发送能力信息,可以包括:接收源端集合内各源端在指定时机发送的网间通信描述信息及网卡剩余发送能力信息。其中,指定时机可以根据实际需要选择。例如,在本说明书一实施例中,所述指定时机可以为源端在确定要外发一条数据流(虽然尚未发送,但已确定是发送给哪个目的端)时,如此可以实现网间通信描述信息及网卡剩余发送能力信息的按需发送,从而有利于降低通信成本。当然,这里仅是示例性举例,在本说明书其他的实施例中,指定时机也可以为定时发送的计时时间到达等其他任何合适的时机。

由于在通信中一般可采用五元组信息(源地址、源端口、目的地址、目的端口和传输层协议)等标识节点间的网间通信。为了便于实现,在说明书一些实施例中,源端发送的网间通信描述信息也可以为五元组信息。相应的,当流控服务器接收到五元组信息后,可以从中提取出源地址和目的地址等信息。

一个源端的网卡剩余发送能力信息用于表征该源端的智能网卡剩余(即实际可用)的上行传输能力(即网卡发送能力)。由于网络环境动态变化,智能网卡的上行传输能力也会动态变化。因此,网卡剩余发送能力信息一般用于表征源端的智能网卡在当前时刻的剩余上行传输能力。其中,上行传输能力可以用上行实际传输速率等参数表示。

源端集合内每个源端都准备向特定的目的端发送数据流。因此,对于同一个目的端而言,同时可能会收到一个或多个源端发送的数据流。为了实现对各个数据流的流量控制,可以先按照目的端相同的方式,将源端集合内的源端分组。例如,在图3所示的示例性实施例中,在由五个源端(即源端s1~源端s5)组成的源端集合中,源端s1和源端s3当前均欲向目的端d1发送数据流,因此二者具有相同的目的端,可以从源端集合分离出如图4所示的源端子集合(参见图4中的虚线框所示)。类似的,源端s2、源端s4和源端s5当前均欲向目的端d2发送数据流,因此三者具有相同的目的端,可以从源端集合分离出如图5所示的源端子集合(参见图5中的虚线框所示)。

与上述网卡剩余接收能力信息类似,一个目的端的网卡剩余接收能力信息用于表征该目的端的智能网卡剩余(即实际可用)的下行传输能力(即网卡接收能力)。由于网络环境动态变化,智能网卡的下行传输能力也会动态变化。因此,目的端的网卡剩余接收能力信息一般用于表征该目的端的智能网卡在当前时刻的剩余下行传输能力。其中,剩余下行传输能力可以用下行实际传输速率等参数表示。

在本说明书一些实施例中,流控服务器获取网卡剩余接收能力信息的方式可是主动获取,也可以是被动获取,具体可以根据需要选择。其中,主动获取可以是指:流控服务器基于事件触发方式主动向目的端索取其网卡剩余接收能力信息。被动获取可以是指:目的端定时向流控服务器上报其网卡剩余接收能力。

由于源端子集合内所有的源端均可以同时向同一个目的端发流量,为了充分利用源端子集合内各个源端的网卡发送能力,且保证源端子集合内所有的源端均可以发送数据流,可以根据源端子集合内各个源端的网卡剩余发送能力对应分配发送流量占比。即在源端子集合中,源端被分配的发送流量占比与其网卡剩余发送能力正相关。换而言之,一个源端的网卡剩余发送能力越强,其被分配发送流量占比越大,反之越小。

在本说明书一些实施例中,所述对于每个所述源端子集合,根据其内各源端的网卡剩余发送能力信息,确定其内各源端的流量分配比例,可以包括:

对于每个所述源端子集合,根据公式确定其内各源端的流量分配比例。其中,rij为第i个源端子集合内第j个源端的流量分配比例,bij为第i个源端子集合内第j个源端的网卡剩余发送能力;n为第i个源端子集合内的源端数量。

例如,以图4所示的源端子集合为例,假设该源端子集合内,源端s1和源端s3的网卡剩余发送能力分别为b1和b3,则在该源端子集合内:

源端s1的流量分配比例r1可以表示为:

源端s3的流量分配比例r3可以表示为:

再如,以图5所示的源端子集合为例,假设该源端子集合内,源端s2、源端s4和源端s5的网卡剩余发送能力分别为b2、b4和b5,则在该源端子集合内:

源端s2的流量分配比例r2可以表示为:

源端s4的流量分配比例r4可以表示为:

源端s5的流量分配比例r5可以表示为:

由于源端子集合内所有的源端均可以同时向同一个目的端发流量,但是同一个目的端接收能力有限,为了使源端子集合内所有源端的发送总量(即源端子集合内各个源端单次发送的数据量之和)不超出对应目的端的网卡接收能力,且保证源端子集合内所有的源端均可以发送,可以为源端子集合内每个源端设定单次传输流量上限。

在本说明书一些实施例中,所述对于每个所述源端子集合,根据对应的流量分配比例及对应目的端的网卡剩余接收能力信息,确定其内各源端的单次传输流量上限,可以包括:

对于每个所述源端子集合,根据公式fij=rij*bi确定每个所述源端的单次传输流量上限。其中,fij为第i个源端子集合内第j个源端的单次传输流量上限;bi为第i个源端子集合对应的目的端的网卡剩余接收能力信息。

例如,以图4所示的源端子集合为例,假设目的端d1的网卡剩余接收能力为b1,根据公式fij=rij*bi可以分别计算出该源端子集合内每个源端的单次传输流量上限。具体的:

源端s1的单次传输流量上限f1可以表示为:f1=r1×b1;

源端s3的单次传输流量上限f3可以表示为:f3=r3×b1。

再如,以图5所示的源端子集合为例,假设目的端d2的网卡剩余接收能力为b2,根据公式fij=rij*bi可以分别计算出该源端子集合内每个源端的单次传输流量上限。具体的:

源端s2的单次传输流量上限f2可以表示为:f2=r2×b2;

源端s4的单次传输流量上限f4可以表示为:f4=r4×b2。

源端s5的单次传输流量上限f5可以表示为:f5=r5×b2。

虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。

与上述的方法对应,本说明书实施例还提供了一种roce网络流量控制装置,其可以安装或配置于上述的流控服务器中。参考图6所示,在本说明书一些实施例中,所述roce网络流量控制装置包括:

第一获取模块61,可以用于获取源端集合内各源端的网间通信描述信息及网卡剩余发送能力信息;

源端分组模块62,可以用于根据所述网间通信描述信息中的目的端,从所述源端集合内分离出目的端相同的源端子集合;

比例确定模块63,可以用于对于每个所述源端子集合,根据其内各源端的网卡剩余发送能力信息,确定其内各源端的流量分配比例;

第二获取模块64,可以用于获取每个所述目的端的网卡剩余接收能力信息;

上限确定模块65,可以用于对于每个所述源端子集合,根据对应的流量分配比例及对应目的端的网卡剩余接收能力信息,确定其内各源端的单次传输流量上限;

上限发送模块66,可以用于向每个所述源端发送对应的单次传输流量上限,以使每个所述源端基于其单次传输流量上限发送数据流。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本说明书的实施例还提供一种计算机设备。如图7所示,在本说明书一些实施例中,所述计算机设备702可以包括一个或多个处理器704,诸如一个或多个中央处理单元(cpu)或图形处理器(gpu),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器706上并可在处理器704上运行的计算机程序,所述计算机程序被所述处理器704运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。

计算机设备702还可以包括输入/输出接口710(i/o),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口718(gui)。在其他实施例中,还可以不包括输入/输出接口710(i/o)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。

通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。

本申请是参照本说明书一些实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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