一种拥塞控制方法、装置、计算设备及可读存储介质与流程

未命名 10-25 阅读:57 评论:0


1.本技术涉及通信技术领域,尤其涉及一种拥塞控制方法、装置、计算设备及可读存储介质。


背景技术:

2.目前,远程直接数据存取(remote direct memory access,rdma)技术越来越多地部署在数据中心中,为避免网络拥塞丢包给rdma造成性能损失,通常采用数据中心量化拥塞通知(data center quantized congestion notification,dcqcn)算法进行网络拥塞调节。例如,发送端网卡根据dcqcn算法调节发送端网卡向接收端网卡发送业务报文的发送速率,可以持续地对发送速率进行升速维护,在网络丢包,发送端网卡接收到拥塞通知报文(congestion notification packet,cnp)的情况下,对发送速率进行降速维护。即使dcqnc算法已经进行过参数调优并且稳定状态下控速性能良好,但是在频繁的加流撤流过程,或者在被控流已经处于稳定状态后突然出现网络拥塞需要快速降速等场景下,网络丢包仍然难以避免,在这些被控流状态瞬间变动的场景下,dcqnc算法的降速未能快速反应。


技术实现要素:

3.本技术实施例提供一种拥塞控制方法、装置、计算设备及可读存储介质,通过发送端设备包括的第一网卡在确定连续接收拥塞通知报文(congestion notification packet,cnp)的情况下,在数据中心量化拥塞通知(data center quantized congestion notification,dcqcn)算法等网络拥塞控制算法降速得到的第一速率的基础上,再次根据第一降速系数进行降速,生成第二速率,可以实现发送速率的额外降速,提升dcqcn算法的动态控制性能,减少网络丢包等情况的发生。
4.第一方面,本技术提供了一种拥塞控制方法,应用于第一网卡向第二网卡发送远程直接内存访问(remote direct memory access,rdma)业务报文的过程,该方法包括:第一网卡确定自上一次接收第二网卡发送的拥塞通知报文之后,是否通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护;在第一网卡未对第一网卡向第二网卡发送业务报文的发送速率进行升速维护,确定第一网卡发送rdma业务报文至第二网卡时连续接收第二网卡发送的拥塞通知报文的情况下,第一网卡根据第一降速系数将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率,第二速率小于第一速率,其中,第一降速系数是根据指示连续接收拥塞通知报文的数量的第一计数确定的,第一计数是第一网卡在连续接收拥塞通知报文的情况下,将上一次接收拥塞通知报文对应的第二计数加一得到的,第二计数为非负整数。在第一网卡确定第一网卡发送rdma业务报文至第二网卡时未连续接收第二网卡发送的拥塞通知报文的情况下,第一网卡通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,其中,第一拥塞控制策略包括通过第一网卡和第二网卡之间的交换机检测网络路径是否发生拥塞,交换机在网络路径发生拥塞的情况下在业
务报文上标注拥塞信息,第二网卡根据包含拥塞信息的业务报文返回拥塞通知报文至第一网卡,第一网卡通过数据中心量化拥塞通知dcqcn算法持续增加发送速率,或者,在接收拥塞通知报文的情况下通过dcqcn算法对发送速率进行降速,生成第一速率。
5.综上所述,本技术提供的拥塞控制方法通过第一降速系数对第一网卡根据第一拥塞控制策略生成的第一速率进行额外的降速,生成小于第一速率的第二速率,相较于当前第一网卡在连续接收第二网卡发送的拥塞通知报文的情况下,仅按照dcqcn算法对第一网卡向第二网卡发送业务报文的发送速率进行调整,生成第一速率的方法,可以在连续接收拥塞通知报文的情况下,对发送速率进行额外降速,提升了dcqcn算法的动态控制性能,且上述方法可以利用dcqcn算法的基础设施,易于实现。
6.在一种可能的实施方式中,第一网卡确定自上一次接收第二网卡发送的拥塞通知报文之后,是否通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护;在第一网卡未对第一网卡向第二网卡发送业务报文的发送速率进行升速维护的情况下,第一网卡确定第一网卡发送rdma业务报文至第二网卡时连续接收第二网卡发送的拥塞通知报文。第一网卡在接收第二网卡发送的拥塞通知报文之后,通过确定自上一次接收拥塞通知报文到此次接收拥塞通知报文的过程中是否对发送速率进行升速维护,以确定此次接收拥塞通知报文是否是连续接收的,从而可以确定网络拥塞程度,在网络拥塞程序较高的情况下,执行本技术提供的拥塞控制方法。
7.在一种可能的实施方式中,在第一网卡确定第一网卡发送rdma业务报文至第二网卡时出现连续接收第二网卡发送的拥塞通知报文的情况下,第一网卡根据接收的第二网卡发送的拥塞通知报文确定第一计数,第一计数用于确定第一降速系数。第一网卡根据连续接收的拥塞通知报文的数量确定第一计数,第一计数可以影响第一降速系数的取值,从而影响对发送速率进行额外降速的大小。
8.在一种可能的实施方式中,确定第一计数的具体过程如下:在第一网卡确定第一网卡发送rdma业务报文至第二网卡时出现连续接收第二网卡发送的拥塞通知报文的情况下,第一网卡将上一次接收的第二网卡发送的拥塞通知报文对应的计数加一,得到第一计数,其中,上一次接收的第二网卡发送的拥塞通知报文对应的计数为非负整数。例如,第一网卡上一次接收的第二网卡发送的拥塞通知报文是接收的第一个拥塞通知报文,对应的计数为零,第一网卡在连续接收第二网卡发送的拥塞通知报文的情况下,将第一个拥塞通知报文对应的计数加一,得到数值为1的第一计数。根据第一计数的数值可以确定连续接收的拥塞通知报文的数量,可以反映网络拥塞程度,第一计数越大,网络拥塞程度越高,根据第一计数生成的第一降速系数越大。
9.在一种可能的实施方式中,第一网卡根据第一降速系数将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率的具体过程如下:第一网卡确定大于第一计数的第一最小整数,根据第一最小整数生成减性第一降速系数,其中,第一最小整数是2的次方数;第一网卡根据减性第一降速系数以及dcqcn算法的降速算法,将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率。也就是说,将减性第一降速系数作为降速算法中的降速系数,将第一速率作为降速算法中的基准速率,计算得到新的第二速率。根据第一计数确定的减性第一降速系数生成第二速率,可以在存在网络拥塞的情况下,在根据dcqcn算法确定
第一速率的基础上,进行额外降速,以提升dcqcn算法的动态控制性能,减少网络丢包等问题。
10.在一种可能的实施方式中,第一网卡根据第一降速系数将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率的具体过程如下:第一网卡确定大于第一计数的第二最小整数,根据第二最小整数生成乘性第一降速系数,其中,第二最小整数是2的倍数;第一网卡根据乘性第一降速系数以及dcqcn算法的降速算法,将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率。也就是说,将乘性第一降速系数作为降速算法中的降速系数,将第一速率作为降速算法中的基准速率,计算得到新的第二速率。根据第一计数确定的乘性第一降速系数生成第二速率,可以实现在网络拥塞程度较高的情况下,在根据dcqcn算法确定第一速率的基础上,进行额外降速,以提升dcqcn算法的动态控制性能,减少网络丢包等问题。
11.在一种可能的实施方式中,该方法还包括:在第一网卡确定第一网卡发送rdma业务报文至第二网卡时未连续接收拥塞通知报文的情况下,第一网卡根据第一拥塞控制策略对发送速率进行降速维护;或者,在未接收拥塞通知报文的情况下,第一网卡根据第一拥塞控制策略对发送速率进行升速维护。
12.第二方面,本技术提供了一种拥塞控制装置,应用于向第二网卡发送rdma业务报文的第一网卡中,该装置包括接收模块,拥塞控制模块以及发送模块:接收模块,用于接收第二网卡发送的拥塞通知报文;拥塞控制模块,用于确定自上一次接收第二网卡发送的拥塞通知报文之后,是否通过所述第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护;拥塞控制模块,还用于在未对第一网卡向第二网卡发送业务报文的发送速率进行升速维护,确定第一网卡发送rdma业务报文至第二网卡时连续接收第二网卡发送的拥塞通知报文的情况下,根据第一降速系数将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率,第二速率小于第一速率,其中,第一降速系数是根据指示连续接收拥塞通知报文的数量的第一计数确定的,第一计数是第一网卡在连续接收拥塞通知报文的情况下,将上一次接收拥塞通知报文对应的第二计数加一得到的,第二计数为非负整数;拥塞控制模块,还用于在确定第一网卡发送rdma业务报文至第二网卡时未连续接收第二网卡发送的拥塞通知报文的情况下,通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,其中,第一拥塞控制策略包括通过第一网卡和第二网卡之间的交换机检测网络路径是否发生拥塞,交换机在网络路径发生拥塞的情况下在业务报文上标注拥塞信息,第二网卡根据包含拥塞信息的业务报文返回拥塞通知报文至第一网卡,拥塞控制模块通过数据中心量化拥塞通知dcqcn算法持续增加发送速率,或者,在接收模块接收拥塞通知报文的情况下通过dcqcn算法对发送速率进行降速,生成第一速率;发送模块,用于根据第一速率或者第二速率向第二网卡发送业务报文。
13.在一种可能的实施方式中,拥塞控制模块具体用于,确定大于第一计数的第一最小整数,根据第一最小整数生成减性第一降速系数,其中,第一最小整数是2的次方数;根据减性第一降速系数以及dcqcn算法的降速算法,将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率。
14.在一种可能的实施方式中,拥塞控制模块具体用于,确定大于第一计数的第二最小整数,根据第二最小整数生成乘性第一降速系数,其中,第二最小整数是2的倍数;第一网卡根据乘性第一降速系数以及dcqcn算法的降速算法,将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率。
15.在一种可能的实施方式中,拥塞控制模块还用于,在确定第一网卡发送rdma业务报文至第二网卡时接收模块未连续接收拥塞通知报文的情况下,根据第一拥塞控制策略对发送速率进行降速维护;或者,在未接收拥塞通知报文的情况下,根据第一拥塞控制策略对发送速率进行升速维护。
16.第三方面,本技术提供了一种计算设备,该计算设备包括处理器和存储器,存储器存储计算机程序,处理器执行计算机程序,以使计算设备执行上述第一方面所述的方法。
17.第四方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序,程序在计算设备上运行时,使计算设备执行上述第一方面所述的方法。
18.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
19.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
20.图1是本技术实施例提供的一种拥塞控制系统的结构示意图;图2是本技术实施例提供的一种拥塞控制方法的流程图;图3是本技术实施例提供的一种拥塞控制装置的结构示意图;图4是本技术实施例提供的一种具体的拥塞控制装置的结构示意图;图5是本技术实施例提供的一种计算设备的结构示意图。
具体实施方式
21.如图1所示,图1是本技术实施例提供的一种拥塞控制系统的结构示意图,该系统中包括发送端110、交换机120和接收端130,其中,发送端110包括第一网卡111,接收端130包括第二网卡131,发送端、交换机以及接收端之间通过网络相互连接。
22.发送端110和接收端130通过远程直接内存访问(remote direct memory access,rdma)技术进行数据交换,其中,rdma在以太网上运行称为rdma穿越汇聚以太网(rdma over converged ethernet,roce)技术,具体实现中,为了实现roce技术,交换机是支持pfc(优先流控制)操作系统的交换机,第一网卡和第二网卡也需选择适配roce技术的网卡。
23.为了避免网络拥塞丢包给roce带来性能损失,常采用数据中心量化拥塞通知(data center quantized congestion notification,dcqcn)算法等进行网络拥塞调节。具体实现中,为了实现dcqcn算法,交换机是支持加权随机先期检测(weighted random early detection,wred)和基于显示反馈的协议(explicit congestion notification,ecn)的交换机,交换机与第一网卡和第二网卡相结合,可以实现dcqcn算法的主要功能:拥塞点算法、响应点算法以及通知点算法。
24.在一种可能的实施方式中,交换机120作为拥塞点(congestion point ,cp),发送
端的第一网卡111作为响应点(reaction point,rp),接收端的第二网卡131作为通知点(notification point,np)。
25.第一网卡用于发送和接收业务报文,执行响应点算法,例如,调节第一网卡向第二网卡发送业务报文的发送速率,避免拥塞。在未接收到拥塞通知报文(congestion notification packet,cnp)的情况下,第一网卡持续地增加第一网卡向第二网卡发送业务报文的发送速率,在接收到cnp的情况下,第一网卡根据响应点算法对发送速率进行降速。
26.交换机用于检测当前的网络路径的拥塞情况并标记拥塞信息,例如,交换机在端口队列超过预设阈值的情况下,在转发报文时会按照一定的概率给报文携带ecn拥塞标记(ecn字段设置为11),以表示拥塞情况,上述标记过程由wred功能完成,交换机将携带拥塞标记的业务报文转发给下一跳的网络设备。
27.第二网卡用于发送和接收业务报文,执行通知点算法,第二网卡在接收到交换机发送的标注有ecn拥塞标记的业务报文转换为cnp报文发送给第一网卡,以使第一网卡进行发送速率的调节,在一种可能的实施方式中,第二网卡可以执行第一网卡的功能,第一网卡也可执行第二网卡的功能,对此本技术不作具体限定,此处不详细赘述。
28.上述本技术提供的拥塞控制系统仅为一种可能的实施方式,发送端和接收端可以是本地数据中心服务器、无线通讯基站设备、个人终端通讯电子设备、智能化车辆以及其他配置有支持rdma网关的设备等,第一网卡和第二网卡也可以独立地部署在拥塞控制系统中,对此本技术不作具体限定。拥塞控制系统还可以包括更多的交换机以及网关等部件,对此本技术不作具体限定。
29.当前,在网络拥塞丢包,第一网卡接收到第二网卡发送的拥塞通知报文的情况下,第一网卡根据dcqcn算法对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,通过多次迭代收敛到稳定的速率分布。即使dcqnc算法已经进行过参数调优并且稳定状态下控速性能良好,但是在频繁的加流撤流过程,或者在被控流已经处于稳定状态后突然出现网络拥塞需要快速降速等场景下,网络丢包仍然难以避免,在这些被控流状态瞬间变动的场景下,dcqnc算法的降速未能快速反应。
30.因此,本技术提供了一种拥塞控制方法,通过在利用dcqcn算法对第一网卡向第二网卡发送业务报文的发送速率进行降速,生成第一速率的基础上,利用第一降速系数对第一速率额外进行降速,生成小于第一速率的第二速率,从而实现在网络拥塞的情况下,额外对发送速率进行降速,提升dcqcn算法的动态控制性能,减少网络丢包等情况的发生,并且上述过程利用dcqcn算法的基础设施,易于实现。
31.如图2所示,图2是本技术实施例提供的一种拥塞控制方法的流程图,该方法应用于图1所示的系统中的第一网卡中,该方法包括以下多个步骤。
32.步骤s210:在未接收cnp报文的情况下,第一网卡根据通过第一拥塞控制策略生成的第一速率向第二网卡发送业务报文。
33.在未接收cnp报文的情况下,第一网卡根据第一拥塞控制策略生成的第一速率,向第二网卡发送业务报文,其中,第一拥塞控制策略可以是dcqcn算法,对此本技术不作具体限定。第一网卡根据dcqcn算法持续增加第一网卡向第二网卡发送业务报文的发送速率,生成一个或者多个第一速率,具体过程此处不详细赘述。
34.步骤s220:第一网卡接收第二网卡发送的cnp报文,并确定是否连续接收cnp报文。
35.由于第一网卡在发送业务报文的发包长度到达计数阈值,或者,连续发送业务报文的发包时间到达时间阈值的情况下,才根据第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护。因此,第一网卡在接收第二网卡发送的cnp报文后,通过确定自上一次接收第二网卡发送的cnp报文之后,是否通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护的情况,确定是否连续接收cnp报文。
36.在第一网卡确定自上一次接收第二网卡发送的cnp报文后,通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护的情况下,第一网卡确定未连续接收cnp报文。
37.在第一网卡确定自上一次接收第二网卡发送的cnp报文后,未通过第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护的情况下,第一网卡确定连续接收cnp报文。
38.第一网卡判断是否连续接收cnp报文,可以确定拥塞程度,在未连续接收cnp报文的情况下,拥塞程度较低,在连续接收cnp报文的情况下,拥塞程度较高,可以确定在接收到cnp报文后,根据哪种策略对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,从而提升网络拥塞控制算法的动态控制性能。
39.步骤s230:在第一网卡连续接收cnp报文的情况下,第一网卡根据第一降速系数将第一网卡向第二网卡发送业务报文的发送速率从第一速率降低到第二速率。
40.在第一网卡连续接收cnp报文的情况下,第一网卡根据第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,生成第一速率,并根据cnp报文生成第一降速系数,根据第一降速系数和第一速率生成第二速率,确定第一网卡向第二网卡发送业务报文的发送速率为第二速率,第二速率小于第一速率。
41.第一网卡根据cnp报文生成第一降速系数,需要先根据cnp报文确定第一计数。在第一网卡确定接收第二网卡cnp报文的情况下,第一网卡将上一次接收的第二网卡发送的cnp报文对应的计数加一,得到第一计数,其中,上一次接收的第二网卡发送的cnp报文对应的计数为非负整数。
42.在一种可能的实施方式中,第一网卡上一次接收的第二网卡发送的cnp报文是接收的第一个拥塞通知报文,对应的计数为零,第一网卡在连续接收第二网卡发送的拥塞通知报文的情况下,将第一个拥塞通知报文对应的计数加一,得到数值为1的第一计数,如第一网卡继续连续接收cnp报文,那么下一次接收的cnp报文对应的计数为2,如第一网卡下一次接收的cnp报文不是连续接收的cnp报文,则下一次接收的cnp报文对应的计数为0。根据第一计数的数值可以确定连续接收的拥塞通知报文的数量,可以反映网络拥塞程度,第一计数越大,网络拥塞程度越高,根据第一计数生成的第一降速系数越大。
43.在确定第一计数后,第一网卡根据第一计数确定第一降速系数。
44.在一种可能的实施方式中,第一网卡确定大于第一计数的第一最小整数,其中,第一最小整数是2的次方数,具体计算公式如下:
45.其中,cnt为第一计数,在确定第一最小整数后,第一网卡根据第一最小整数,生成减性第一降速系数。具体地,第一网卡根据,生成减性第一降速系数q,具体计算公式如
下:
[0046][0047]
在确定减性第一降速系数q的情况下,第一网卡根据减性第一降速系数以及dcqcn算法的降速算法,将第一网卡向第二网卡发送业务报文的发送速率从第一速率降低到第二速率,也就是,将减性第一降速系数q作为dcqcn算法的降速算法中的降速系数,将第一速率作为dcqcn算法的降速算法中的基准速率,从而在第一速率的基础上进行额外降速,生成第二速率,提升dcqcn算法的动态控制性能,并且上述过程较为简单,可以利用dcqcn算法的基础设施,易于实现。
[0048]
在另一种可能的实施方式中,第一网卡确定大于第一计数的第二最小整数,其中,第二最小整数是2的倍数,具体计算公式如下:
[0049]
其中,cnt为第一计数,在确定第二最小整数后,第一网卡根据第二最小整数,生成乘性第一降速系数。具体地,第一网卡根据,生成乘性第一降速系数v,具体计算公式如下:
[0050][0051]
在确定乘性第一降速系数v的情况下,第一网卡根据乘性第一降速系数以及dcqcn算法的降速算法,将第一网卡向第二网卡发送业务报文的发送速率从第一速率降低到第二速率,也就是,将乘性第一降速系数v作为dcqcn算法的降速算法中的降速系数,将第一速率作为dcqcn算法的降速算法中的基准速率,从而对发送速率进行额外降速,生成第二速率,提升dcqcn算法的动态控制性能,减少网络丢包等情况,并且上述过程可以利用dcqcn算法的基础设施,易于实现。
[0052]
步骤s240:在第一网卡未连续接收cnp报文的情况下,第一网卡根据第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,生成第一速率。
[0053]
在第一网卡未连续接收cnp报文的情况下,第一网卡还是根据dcqcn算法等对第一网卡向第二网卡发送业务报文的发送速率进行降速维护,生成第一速率,此时不存在频繁加流等情况,采用dcqcn算法相比于本技术提供的拥塞控制方法更加简单,可以节约计算资源,可以解决网络丢包等情况。
[0054]
综上所述,本技术提供的一种拥塞控制方法,通过第一网卡在确定连续接收拥塞通知报文的情况下,在根据dcqcn算法等网络拥塞控制算法降速得到的第一速率的基础上,再次根据第一降速系数进行额外的降速,生成第二速率,可以实现在网络拥塞的情况下,可以提升dcqcn算法的动态控制性能,减少网络丢包等情况的发生。
[0055]
如图3所示,图3本技术实施例提供的一种拥塞控制装置的结构示意图,该装置应用于图1所示系统中的第一网卡中,该拥塞控制装置300包括接收模块310,拥塞控制模块320以及发送模块330。其中,接收模块310,用于接收第二网卡发送的拥塞通知报文;拥塞控制模块320,用于确定自上一次接收第二网卡发送的拥塞通知报文之后,是否通过所述第一拥塞控制策略对第一网卡向第二网卡发送业务报文的发送速率进行升速维护;还用于在未对第一网卡向第二网卡发送业务报文的发送速率进行升速维护,确定第一网卡发送rdma业
务报文至第二网卡时连续接收第二网卡发送的拥塞通知报文的情况下,根据第一降速系数将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率,第二速率小于第一速率,其中,第一降速系数是根据指示连续接收拥塞通知报文的数量的第一计数确定的,第一计数是第一网卡在连续接收拥塞通知报文的情况下,将上一次接收拥塞通知报文对应的第二计数加一得到的,第二计数为非负整数;拥塞控制模块,还用于在确定第一网卡发送rdma业务报文至第二网卡时未连续接收第二网卡发送的拥塞通知报文的情况下,通过第一拥塞控制策略对第一网卡对第二网卡的访问速率进行降速维护,其中,第一拥塞控制策略包括通过第一网卡和第二网卡之间的交换机检测网络路径是否发生拥塞,交换机在网络路径发生拥塞的情况下,在业务报文上标注拥塞信息,第二网卡根据包含拥塞信息的业务报文返回拥塞通知报文至第一网卡,拥塞控制模块通过数据中心量化拥塞通知dcqcn算法持续增加发送速率,或者,在接收模块接收拥塞通知报文的情况下通过dcqcn算法对发送速率进行降速,生成第一速率;发送模块330,用于根据第一速率或者第二速率向第二网卡发送业务报文。
[0056]
接收模块用于执行图2所示的步骤s220,拥塞控制模块用于执行图2所示的步骤s210~s240,发送模块用于根据拥塞控制模块确定的发送速率向第二网卡发送业务报文。
[0057]
在一种可能的实施方式中,上述拥塞控制装置只是拥塞控制装置一种可能的实现方式,拥塞控制装置还可以包括更多或者更少的模块,对此本技术不作具体限定。
[0058]
在一种可能的实施方式中,上述拥塞控制模块可以包括多个单元,如图4所示,图4是本技术实施例提供的一种具体的拥塞控制装置的结构示意图,该装置中包括接收模块310,拥塞控制模块320以及发送模块330,拥塞控制模块320中包括发包计数单元321、发包计时单元322、降速系数选择单元323、速率计算单元324以及速率限制单元325。
[0059]
其中,发包计数单元321和发包计时单元322用于在接收模块310未接收到第二网卡发送的拥塞通知报文的情况下,对第一网卡向第二网卡发送业务报文的发送速率进行升速控制。例如,在发送模块330发送业务报文的发包长度到达计数阈值,或者,连续发送业务报文的发包时间到达时间阈值的情况下,发包计数单元321或者发包计时单元322向速率计算单元发送通知,以使速率计算单元根据dcqcn算法对第一网卡向第二网卡发送业务报文的发送速率进行升速计算。
[0060]
速率计算单元324除用于升速计算,还用于对第一网卡向第二网卡发送业务报文的发送速率进行降速操作,速率计算单元可以直接根据dcqcn算法进行降速,或者根据降速系数选择单元323发送的第一降速系数在dcqcn算法降速的基础上进行额外降速。
[0061]
在接收模块接收到第二网卡发送的拥塞通知报文的情况下,接收模块将接收cnp的通知发送给降速系数选择单元,降速系数选择单元323用于确定自上一次接收cnp通知之后,速率计算单元是否通过dcqcn算法对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升速控制,从而确定该cnp是否是接收模块连续接收的。在确定该cnp不是接收模块连续接收的情况下,降速系数选择单元不需选择第一降速系数发送给速率计算单元,速率计算单元仍根据dcqcn算法进行降速,生成第一速率。在确定该cnp是接收模块连续接收的情况下,降速系数选择单元根据cnp确定第一计数,并根据第一计数确定第一降速系数,将第一降速系数发送给速率计算单元。速率计算单元在根据dcqcn算法进行降速计算,生成第一速率后,再根据第一降速系数和第一速率进行额外的降速计算,生成第二速率,第
二速率小于第一速率。
[0062]
速率计算单元用于升降速控制,将升降速计算得到的速率发送给速率限制单元325,速率限制单元用于根据速率计算单元发送的速率限制发送模块发送业务报文的速率。
[0063]
需要说明的是,图4仅是一种本技术提供的拥塞控制装置可能的实施方式,接收模块310,拥塞控制模块320以及发送模块330中还可以包括更多或者更少的部件,对此本技术不作具体限定。
[0064]
如图5所示,图5是本技术提供的一种计算设备的结构示意图,可以应用于图1所示系统中的第一网卡,该计算设备500包括处理器510、存储器520、通信接口530以及总线540。其中,处理器、存储器、通信接口可以通过内部总线相互连接也可以通过无线传输等手段实现通信。
[0065]
处理器510可以由至少一个通用处理器构成,例如中央处理器(central processing unit, cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit, asic)、可编程逻辑器件(programmable logic device, pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device, cpld)、现场可编程逻辑门阵列(field-programmable gate array, fpga)、通用阵列逻辑(generic array logic, gal)或其任意组合。处理器510用于执行各种类型的数字存储指令。处理器可以通过执行相应的指令,实现图2所示的图中的任意步骤。
[0066]
存储器520可以是易失性存储器(volatile memory),例如随机存取存储器(random access memory, ram)、动态随机存储器(dynamic ram, dram)、静态随机存储器(static ram, sram)、同步动态随机存储器(synchronous dynamic ram, sdram)、双倍速率同步动态随机存储器(double data rate ram, ddr)、高速缓存(cache)等等,存储器还可以包括上述种类的组合。存储器520中可以包括程序以及数据,处理器510通过执行程序代码可以执行图2中的步骤,存储器还可以存储发送业务报文的数量以及各个业务报文对应的时间点,接收拥塞通知报文的数量以及各个拥塞通知报文对应的时间点等等。
[0067]
通信接口530可以用于实现数据交互,例如,第一网卡将业务报文发送给第二网卡等,本技术对此不作具体限定。
[0068]
需要说明的,图5仅仅是本技术实施例的一种可能的实现方式,实际应用中,计算设备还可以包括更多或更少的部件,这里不作限制。
[0069]
本技术实施例,还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在处理器上运行时,图2所示的方法流程得以实现。
[0070]
本技术实施例,还提供一种计算机程序产品,当计算机程序产品在处理器上运行时,图2所示的方法流程得以实现。
[0071]
在计算机上加载或执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0072]
计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line, dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心
进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含至少一个可用介质集合的服务器、数据中心等数据存储节点。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc, dvd)、或者半导体介质)。
[0073]
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术特征:
1.一种拥塞控制方法,其特征在于,应用于第一网卡向第二网卡发送远程直接内存访问rdma业务报文的过程,所述方法包括:所述第一网卡确定自上一次接收所述第二网卡发送的拥塞通知报文之后,是否通过第一拥塞控制策略对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升速维护;在第一网卡未对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升速维护,确定所述第一网卡发送所述rdma业务报文至所述第二网卡时连续接收所述第二网卡发送的拥塞通知报文的情况下,所述第一网卡根据第一降速系数将所述第一网卡向所述第二网卡发送业务报文的发送速率从根据所述第一拥塞控制策略生成的第一速率降低到第二速率,所述第二速率小于所述第一速率,其中,所述第一降速系数是根据指示连续接收所述拥塞通知报文的数量的第一计数确定的,所述第一计数是所述第一网卡在连续接收所述拥塞通知报文的情况下,将上一次接收所述拥塞通知报文对应的第二计数加一得到的,所述第二计数为非负整数;在第一网卡确定所述第一网卡发送所述rdma业务报文至所述第二网卡时未连续接收所述第二网卡发送的所述拥塞通知报文的情况下,所述第一网卡通过所述第一拥塞控制策略对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升降速维护;其中,所述第一拥塞控制策略包括通过所述第一网卡和所述第二网卡之间的交换机检测网络路径是否发生拥塞,所述交换机在所述网络路径发生拥塞的情况下在所述业务报文上标注拥塞信息,所述第二网卡根据包含所述拥塞信息的所述业务报文返回拥塞通知报文至所述第一网卡,所述第一网卡通过数据中心量化拥塞通知dcqcn算法持续增加发送速率,或者,在接收所述拥塞通知报文的情况下通过所述dcqcn算法对所述发送速率进行降速,生成所述第一速率。2.根据权利要求1所述的方法,其特征在于,所述第一网卡根据第一降速系数将所述第一网卡向所述第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率包括:所述第一网卡确定大于所述第一计数的第一最小整数,根据所述第一最小整数生成减性第一降速系数,其中,所述第一最小整数是2的次方数;所述第一网卡根据所述减性第一降速系数以及所述dcqcn算法的降速算法,将所述第一网卡向所述第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率。3.根据权利要求1所述的方法,其特征在于,所述第一网卡根据第一降速系数将所述第一网卡向所述第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率包括:所述第一网卡确定大于所述第一计数的第二最小整数,根据所述第二最小整数生成乘性第一降速系数,其中,所述第二最小整数是2的倍数;所述第一网卡根据所述乘性第一降速系数以及所述dcqcn算法的降速算法,将所述第一网卡向所述第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:在所述第一网卡确定所述第一网卡发送所述rdma业务报文至所述第二网卡时未连续
接收所述拥塞通知报文的情况下,所述第一网卡根据所述第一拥塞控制策略对所述发送速率进行降速维护;或者,在未接收所述拥塞通知报文的情况下,所述第一网卡根据所述第一拥塞控制策略对所述发送速率进行升速维护。5.一种拥塞控制装置,应用于向第二网卡发送远程直接内存访问rdma业务报文的第一网卡中,其特征在于,所述装置包括接收模块,拥塞控制模块以及发送模块:所述接收模块,用于接收所述第二网卡发送的拥塞通知报文;所述拥塞控制模块,用于确定自上一次接收所述第二网卡发送的拥塞通知报文之后,是否通过所述第一拥塞控制策略对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升速维护;所述拥塞控制模块,还用于在未对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升速维护,确定所述第一网卡发送所述rdma业务报文至所述第二网卡时连续接收所述第二网卡发送的拥塞通知报文的情况下,根据第一降速系数将所述第一网卡向所述第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率,所述第二速率所述第一速率,其中,所述第一降速系数是根据指示连续接收所述拥塞通知报文的数量的第一计数确定的,所述第一计数是所述第一网卡在连续接收所述拥塞通知报文的情况下,将上一次接收所述拥塞通知报文对应的第二计数加一得到的,所述第二计数为非负整数;所述拥塞控制模块,还用于在确定所述第一网卡发送所述rdma业务报文至所述第二网卡时未连续接收所述第二网卡发送的所述拥塞通知报文的情况下,通过所述第一拥塞控制策略对所述第一网卡向所述第二网卡发送业务报文的发送速率进行升降速维护;其中,所述第一拥塞控制策略包括通过所述第一网卡和所述第二网卡之间的交换机检测网络路径是否发生拥塞,所述交换机在网络路径发生拥塞的情况下在所述业务报文上标注拥塞信息,所述第二网卡根据包含所述拥塞信息的所述业务报文返回拥塞通知报文至所述第一网卡,所述拥塞控制模块通过数据中心量化拥塞通知dcqcn算法持续增加发送速率,或者,在所述接收模块接收所述拥塞通知报文的情况下通过所述dcqcn算法对所述发送速率进行降速,生成所述第一速率;所述发送模块,用于根据所述第一速率或者所述第二速率向所述第二网卡发送业务报文。6.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器存储计算机程序,所述处理器执行所述计算机程序,以使所述计算设备执行如权利要求1至4任一项所述的方法。7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序在计算设备上运行时,使所述计算设备执行如权利要求1至4任一项所述的方法。

技术总结
本申请公开了一种拥塞控制方法、装置、计算设备及可读存储介质,该方法应用于第一网卡向第二网卡发送远程直接内存访问业务报文的过程,该方法包括:在第一网卡确定第一网卡发送RDMA业务报文至第二网卡时连续接收第二网卡发送的拥塞通知报文的情况下,第一网卡根据第一降速系数,将第一网卡向第二网卡发送业务报文的发送速率从根据第一拥塞控制策略生成的第一速率降低到第二速率,第二速率小于第一速率。上述方法相较于第一网卡在接收拥塞通知报文时,通过DCQCN算法对发送速率进行降速,生成第一速率的方法,在第一速率的基础上进行额外降速,提升了DCQCN算法的动态控制性能,且利用了DCQCN算法的基础设施,易于实现。易于实现。易于实现。


技术研发人员:修强
受保护的技术使用者:珠海星云智联科技有限公司
技术研发日:2023.09.12
技术公布日:2023/10/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐