一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文拥塞控制方法及装置与流程

2022-03-16 00:55:59 来源:中国专利 TAG:


1.本技术涉及网络通信技术领域,特别涉及一种报文拥塞控制方法及装置。


背景技术:

2.smart nic即智能网卡,将虚拟交换机功能完全从服务器cpu转移到网卡,释放昂贵的服务器cpu的计算能力以返回给应用程序,从而更好地扩展网卡功能并提供更高的性能。
3.其核心是通过fpga(现场可编程门阵列)协助cpu处理网络负载,编程网络接口功能,通过fpga本地化编程支持数据面和控制面功能定制,协助cpu处理网络负载;通常包含多个端口和内部交换机,快速转发数据并基于网络数据包、应用程序套接字等智能映射到相关应用程序;smart nic能够提升应用程序和虚拟化性能,实现软件定义网络(sdn)和网络功能虚拟化(nfv)的诸多优势,将网络虚拟化、负载均衡和其他低级功能从服务器cpu中移除,确保为应用提供最大的处理能力。与此同时,智能网卡还能够提供分布式计算资源,使得用户可以开发自己的软件或提供接入服务,从而加速特定应用程序。
4.在超融合的网络中,一般会分为四张网络,管理网用于承载管理数据流量,业务网用于承载具体业务报文流量,存储内网和存储外网用于承载分布式存储的流量。
5.正常情况下,这四张网络应该分开,每张网络有自己独占的网卡端口。但现实中有些客户因为预算有限,或者服务器的pcie插槽有限,会将几张网络共用相同的网卡端口。比如将业务网和管理网复用网口,或者存储内网和存储外网复用网口。
6.然而,复用网口有可能会造成丢包。比如存储内网和存储外网共用10g网口,一旦存储内网和存储外网的流量大于10g就会丢包。假设某一时刻,存储外网流量为6g,存储外网流量为6g,加起来一共12g,就会导致有2g的流量被丢包。


技术实现要素:

7.本技术提供了一种报文拥塞控制方法及装置,用以解决现有技术中存在的多张网络复用网口时丢包的问题。
8.第一方面,本技术提供了一种报文拥塞控制方法,应用于智能网卡,所述智能网卡包括用于缓存待处理报文的第一报文缓存区,所述方法包括:
9.接收报文发送方发送的待处理报文;
10.若检测到接收到的待处理报文的总流量大于预设值,则将超过所述预设值的待处理报文缓存至所述第一报文缓存区;
11.向所述报文发送方发送报文阻塞通知,以使得所述报文发送方在接收到所述报文阻塞通知后,降低报文发送速率。
12.可选地,集成所述智能网卡的服务器包括用于缓存待处理报文的第二报文缓存区,所述方法还包括:
13.将超过所述预设值的待处理报文缓存至所述第二报文缓存区。
14.可选地,报文发送方基于滑动窗口机制向智能网卡发送报文,且所述报文发送方为多个报文发送方,则向所述报文发送方发送报文阻塞通知的步骤包括:
15.分别向各报文发送方发送减小发送窗口通知,其中,发送给各报文发送方的减小发送窗口通知中均携带有对应报文发送方需减小的发送窗口大小。
16.可选地,多个报文发送方用于承载不同业务优先级的业务;在分别向各报文发送方发送减小发送窗口通知之前,所述方法还包括:
17.基于各报文发送方所承载业务的业务优先级,分别确定各报文发送方需减小的发送窗口大小,其中,承载业务的业务优先级越高,需减小的发送窗口大小越小,承载业务的业务优先级越低,需减小的发送窗口大小越大。
18.可选地,所述智能网卡将接收到待处理报文发送至交换机;所述方法还包括:
19.若接收到所述交换机发送的流控协议报文,则基于预设协议规定,停止向所述交换机发送业务优先级较低的报文,并通知向各报文发送方发送减小发送窗口通知。
20.第二方面,本技术提供了一种报文拥塞控制装置,应用于智能网卡,所述智能网卡包括用于缓存待处理报文的第一报文缓存区,所述装置包括:
21.第一接收单元,用于接收报文发送方发送的待处理报文;
22.缓存单元,若检测到接收到的待处理报文的总流量大于预设值,则所述缓存单元用于将超过所述预设值的待处理报文缓存至所述第一报文缓存区;
23.发送单元,用于向所述报文发送方发送报文阻塞通知,以使得所述报文发送方在接收到所述报文阻塞通知后,降低报文发送速率。
24.可选地,集成所述智能网卡的服务器包括用于缓存待处理报文的第二报文缓存区,所述缓存单元还用于:
25.将超过所述预设值的待处理报文缓存至所述第二报文缓存区。
26.可选地,报文发送方基于滑动窗口机制向智能网卡发送报文,且所述报文发送方为多个报文发送方,则向所述报文发送方发送报文阻塞通知时,所述发送单元具体用于:
27.分别向各报文发送方发送减小发送窗口通知,其中,发送给各报文发送方的减小发送窗口通知中均携带有对应报文发送方需减小的发送窗口大小。
28.可选地,多个报文发送方用于承载不同业务优先级的业务;在分别向各报文发送方发送减小发送窗口通知之前,所述装置还包括:
29.确定单元,用于基于各报文发送方所承载业务的业务优先级,分别确定各报文发送方需减小的发送窗口大小,其中,承载业务的业务优先级越高,需减小的发送窗口大小越小,承载业务的业务优先级越低,需减小的发送窗口大小越大。
30.可选地,所述智能网卡将接收到待处理报文发送至交换机;所述装置还包括第二接收单元:
31.若所述第二接收单元接收到所述交换机发送的流控协议报文,则所述发送单元基于预设协议规定,停止向所述交换机发送业务优先级较低的报文,并通知向各报文发送方发送减小发送窗口通知。
32.第三方面,本技术实施例提供一种智能网卡,该智能网卡包括:
33.存储器,用于存储程序指令;
34.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上
述第一方面中任一项所述的方法的步骤。
35.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
36.综上可知,本技术实施例提供的报文拥塞控制方法,应用于智能网卡,所述智能网卡包括用于缓存待处理报文的第一报文缓存区,所述方法包括:接收报文发送方发送的待处理报文;若检测到接收到的待处理报文的总流量大于预设值,则将超过所述预设值的待处理报文缓存至所述第一报文缓存区;向所述报文发送方发送报文阻塞通知,以使得所述报文发送方在接收到所述报文阻塞通知后,降低报文发送速率。
37.采用本技术实施例提供的报文拥塞控制方法,智能网卡可以将接收到的超出处理能力的待处理报文缓存至本地/服务器上的缓冲区内,避免报文丢包,同时通知报文发送方实时调整报文发送速率,避免了多个网络复用一个网卡时,由于报文流量过大而导致丢包的问题。
附图说明
38.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
39.图1为本技术实施例提供的一种报文拥塞控制方法的详细流程图;
40.图2为本技术实施例提供的一种组网结构示意图;
41.图3为本技术实施例提供的一种虚拟机与智能网络通信过程示意图;
42.图4为本技术实施例提供的一种报文拥塞控制装置的结构示意图;
43.图5为本技术实施例提供的一种智能网卡的结构示意图。
具体实施方式
44.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
45.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
46.示例性的,参阅图1所示,为本技术实施例提供的一种报文拥塞控制方法的详细流程图,该方法应用于智能网卡,所述智能网卡包括用于缓存待处理报文的第一报文缓存区,该方法包括以下步骤:
47.步骤100:接收报文发送方发送的待处理报文。
48.示例性的,参阅图2所示,为本技术实施例提供的一种组网结构示意图,服务器上部署有只能网卡,服务器通过智能网卡与交换机通信,服务器上部署有多个虚拟机(如,vm1,vm2和vm3),各虚拟机用于承载业务,业务报文通过智能网卡发往外部网络设备(如,交换机)。
49.本技术实施例中,以报文发送方为服务器上的虚拟机为例进行说明,当多网合一时,多个虚拟机的流量会走同一块智能网卡上,这样,就可能会超出智能网卡的处理能力。比如智能网卡有两个25g端口,聚合起来就可以处理50g的流量,一旦收到60g的流量,便会遇到有10g流量无法及时处理的问题。
50.实际应用中,智能网卡包含cpu和内存,那么,本技术实施例中,预先在智能网卡的本地内存中开辟出一块报文缓冲区(第一报文缓存区),超带宽的这10g流量无需丢弃,可以先缓存至智能网卡的报文缓冲区中。
51.步骤110:若检测到接收到的待处理报文的总流量大于预设值,则将超过所述预设值的待处理报文缓存至所述第一报文缓存区。
52.具体的,若智能网卡检测到接收到的各虚拟机发送的待处理报文的总流量大于智能网卡的最大处理能力(如,智能网卡最大可以处理50g的流量,若接收到60g的流量,则有10g流量无法处理),则将超过最大处理能力的流量(10g)缓存至智能网卡的第一报文缓存区。
53.进一步的,集成所述智能网卡的服务器包括用于缓存待处理报文的第二报文缓存区,那么,还可以将超过所述预设值的待处理报文缓存至所述第二报文缓存区。
54.例如,由于智能网卡硬件资源有限,10g报文可能无法全部存放在智能网卡的报文缓冲区中。那么,还可以预先在服务器的内存中开辟一块报文缓冲区(第二报文缓冲区),因为服务器的内存都是几百g,因此可以存放较多报文。
55.步骤120:向所述报文发送方发送报文阻塞通知,以使得所述报文发送方在接收到所述报文阻塞通知后,降低报文发送速率。
56.实际应用中,若报文发送方一直这样超带宽发送报文,那么,报文缓冲区很快就会装满,当报文缓冲区被装满之后,就只能丢弃超带宽的报文了。因此,需要想办法通知虚拟机降低发送速率。
57.本技术实施例中,智能网卡将无法处理的流量缓存至第一缓存区和/或第二缓存区的同时,向报文发送方发送报文拥塞通知,报文发送方在接收到智能网卡发送的报文拥塞通知之后,降低报文发送速率。
58.较佳地,报文发送方基于滑动窗口机制向智能网卡发送报文,且所述报文发送方为多个报文发送方,那么,智能网卡向所述报文发送方发送报文阻塞通知时,一种较佳地时间方式为:
59.分别向各报文发送方发送减小发送窗口通知,其中,发送给各报文发送方的减小发送窗口通知中均携带有对应报文发送方需减小的发送窗口大小。
60.实际应用中,服务器上部署的不同虚拟机可用于承载不同的业务,
61.具体的,报文发送方基于tcp的滑动窗口机制向智能网卡发送报文,智能网卡的流表可以识别tcp连接,因此可以利用tcp滑动窗口机制,来通知发送方减小发送窗口。
62.实际应用中,由于智能网卡对无法处理的报文做了缓冲处理,报文接收方对报文
拥塞无感知,报文接收方不会主动要求报文发送方减小发送窗口。本技术实施例中,智能网卡来代替报文接收方要求发送方减小发送窗口。
63.若仅存在一个报文发送方,则通知该一个报文发送方减小发送窗口,该一个报文发送方在减小发送窗口之后,报文发送速率要低于智能网卡的报文处理速率。
64.若存在多个报文发送方,则分别通知各报文发送方减小发送窗口,各报文发送方在减小发送窗口后,各报文发送方的总发送速率要低于智能网卡的报文处理速率。
65.那么,就需要预先计算各报文发送方需减小的窗口大小。
66.本技术实施例中个,多个报文发送方用于承载不同业务优先级的业务;在分别向各报文发送方发送减小发送窗口通知之前,上述报文拥塞通知方法还可以包括以下步骤:
67.基于各报文发送方所承载业务的业务优先级,分别确定各报文发送方需减小的发送窗口大小,其中,承载业务的业务优先级越高,需减小的发送窗口大小越小,承载业务的业务优先级越低,需减小的发送窗口大小越大。
68.例如,智能网卡通过计算,要求每条tcp发送都减少一部分发送,总和为10g流量,这样就不会出现有些流量限制速率过低导致业务受影响的问题。当然,也可以根据业务优先级来做带有系数的减少发送,比如高优先级业务发送窗口由10减到8,低优先级业务发送窗口由10减到5。由于发送窗口减小,发送的报文速率由60g降到50g以内,之前缓冲区的报文按照先进先出的方式发送,慢慢可以将缓冲区报文全部发出,最终结果是缓冲区内没有报文,而且整个过程无丢包。
69.示例性的,参阅图3所示,为本技术实施例提供的一种虚拟机与智能网络通信过程示意图。虚拟机向智能网卡发送报文,智能网卡在检测到接收到的报文超带宽时,将超带宽报文缓存,不丢弃,并向虚拟机发送减小发送窗口的通知,虚拟机在接收到通知后,减小发送窗口,并继续向智能网卡发送报文。
70.进一步的,本技术实施例中,智能网卡将接收到待处理报文发送至交换机;上述报文拥塞处理方法还可以包括以下步骤:
71.若接收到所述交换机发送的流控协议报文,则基于预设协议规定,停止向所述交换机发送业务优先级较低的报文,并通知向各报文发送方发送减小发送窗口通知。
72.例如,当多个服务器的流量汇聚连接到上级交换机的端口时,交换机也会超带宽。如,接入交换机1端口和2端口连接服务器,3端口连接汇聚交换机,那么1端口和2端口进入的流量都会发送到3端口,可能造成流量超过3端口的带宽。
73.此时,接入交换机可以使用pfc等流控协议,要求服务器暂停发送报文。智能网卡收到流控协议报文后,可以按照协议规定来暂停部分低优先级流量的发送,保证高优先级流量不会在接入交换机上因为拥塞而被丢弃。同时,也可以智能地通知报文发送方减小发送窗口来降低报文发送速率,直到不再接收到接入交换机发来的流控协议报文为止。接入交换机不再发送流控协议报文就代表接入交换机不再拥塞。用户可以灵活地配置,是按照传统的流控协议处理,还是采用减少发送窗口的方式。本技术实施例中,在此不做具体限定。
74.更进一步的,当智能网卡的报文缓冲区没有报文时,可以认为此时没有拥塞。对比当前流量和端口带宽,可以知道是否有空闲带宽。比如带宽为50g,此时只有40g流量,那么还有10g流量空闲。智能网卡会记录之前通知减小发送窗口的ip地址,此时可以逐一通知这
些ip地址恢复发送窗口,直到所有虚拟机都恢复发送窗口,或者无带宽空闲。
75.基于与上述发明实施例同样的发明构思,示例性的,参阅图4所示,为本技术实施例提供的一种报文拥塞控制装置的结构示意图,该装置应用于智能网卡,所述智能网卡包括用于缓存待处理报文的第一报文缓存区,该装置包括:
76.第一接收单元40,用于接收报文发送方发送的待处理报文;
77.缓存单元41,若检测到接收到的待处理报文的总流量大于预设值,则所述缓存单元用于将超过所述预设值的待处理报文缓存至所述第一报文缓存区;
78.发送单元42,用于向所述报文发送方发送报文阻塞通知,以使得所述报文发送方在接收到所述报文阻塞通知后,降低报文发送速率。
79.可选地,集成所述智能网卡的服务器包括用于缓存待处理报文的第二报文缓存区,所述缓存单元41还用于:
80.将超过所述预设值的待处理报文缓存至所述第二报文缓存区。
81.可选地,报文发送方基于滑动窗口机制向智能网卡发送报文,且所述报文发送方为多个报文发送方,则向所述报文发送方发送报文阻塞通知时,所述发送单元具体用于:
82.分别向各报文发送方发送减小发送窗口通知,其中,发送给各报文发送方的减小发送窗口通知中均携带有对应报文发送方需减小的发送窗口大小。
83.可选地,多个报文发送方用于承载不同业务优先级的业务;在分别向各报文发送方发送减小发送窗口通知之前,所述装置还包括:
84.确定单元,用于基于各报文发送方所承载业务的业务优先级,分别确定各报文发送方需减小的发送窗口大小,其中,承载业务的业务优先级越高,需减小的发送窗口大小越小,承载业务的业务优先级越低,需减小的发送窗口大小越大。
85.可选地,所述智能网卡将接收到待处理报文发送至交换机;所述装置还包括第二接收单元:
86.若所述第二接收单元接收到所述交换机发送的流控协议报文,则所述发送单元42基于预设协议规定,停止向所述交换机发送业务优先级较低的报文,并通知向各报文发送方发送减小发送窗口通知。
87.以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
88.进一步地,本技术实施例提供的智能网卡,从硬件层面而言,所述智能网卡的硬件架构示意图可以参见图5所示,所述智能网卡可以包括:存储器50和处理器51,
89.存储器50用于存储程序指令;处理器51调用存储器50中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
90.可选地,本技术还提供一种智能网卡,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
91.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
92.这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
93.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
94.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
95.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
96.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
97.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
98.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
99.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献