CN115473855B - 网络系统、数据传输方法 - Google Patents
网络系统、数据传输方法 Download PDFInfo
- Publication number
- CN115473855B CN115473855B CN202211007447.2A CN202211007447A CN115473855B CN 115473855 B CN115473855 B CN 115473855B CN 202211007447 A CN202211007447 A CN 202211007447A CN 115473855 B CN115473855 B CN 115473855B
- Authority
- CN
- China
- Prior art keywords
- bandwidth
- weight
- data
- data stream
- bandwidth weight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000001514 detection method Methods 0.000 claims abstract description 34
- 239000000523 sample Substances 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 15
- 238000012790 confirmation Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 6
- 230000000452 restraining effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 239000000872 buffer Substances 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 238000003786 synthesis reaction Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/76—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
- H04L47/765—Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the end-points
Abstract
本说明书实施例提供网络系统、数据传输方法,其中所述数据传输方法,包括:发送端的可编程网卡根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定第一数据流的初始发送带宽权重,使交换机测量第一数据流的网络拥塞信息,并写入探测包以收集传输路径上的网络拥塞信息,使接收端的可编程网卡计算第一数据流的接收端约束带宽权重,发送端的可编程网卡利用网络拥塞信息、初始发送带宽权重与接收端约束带宽权重确定发送端约束带宽权重。
Description
技术领域
本说明书实施例互联网技术领域,特别涉及一种数据传输方法。
背景技术
数据中心网络,用于承载数据中心计算和存储两大服务。当前计算的高并发和存储的池化对高性能网络提出了更高的要求。首先,网络需要提供极高的数据传输性能,具备高带宽、低时延和低CPU负载的特性。其次,网络需要稳定地提供可靠服务,对于网络故障能做到及时探测和规避,从而达到高性能和高稳定性。
目前,为了满足上层应用对于高性能和高稳定性的要求,主要通过应用的改造使应用获取尽可能多的网络信息,从而做出综合判断。但是,这种跨层的设计无法适应数据中心大规模网络架构的发展。云供应商无法修改云上租户的应用,暴露底层网络信息给租户也存在安全隐患。因此,一些方案中,在虚拟化层通过按权重分配CPU避免丢包,根据接收端延迟控制发送端限速保障带宽。还有一些方案在网卡或交换机上通过流量计数对某特定流量进行限速。
但是,这些方案仍然存在资源瓶颈,难以在全网范围向上层的租户、应用提供高性能、高可靠的带宽、延迟、丢包的保障。
发明内容
有鉴于此,本说明书实施例提供了一种网络系统。本说明书一个或者多个实施例同时涉及数据传输方法,计算设备,计算机可读存储介质以及计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种网络系统,包括:发送端的可编程网卡,被配置为根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重,按所述初始发送带宽权重对应的带宽传输所述第一数据流,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端;交换机,被配置为测量经过所述交换机的第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息;接收端的可编程网卡,被配置为接收所述第一数据流以及所述探测包,利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端;所述发送端的可编程网卡,还被配置为接收所述网络拥塞信息以及所述接收端约束带宽权重,利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
根据本说明书实施例的第二方面,提供了一种数据传输方法,应用于发送端的可编程网卡,包括:根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重;按所述初始发送带宽权重对应的带宽传输所述第一数据流;将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端;从接收端接收所述第一数据流的网络拥塞信息以及接收端约束带宽权重;利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流的发送端约束带宽权重。
根据本说明书实施例的第三方面,提供了一种数据传输方法,应用于交换机,包括:测量经过所述交换机的第一数据流的网络拥塞信息;将所述网络拥塞信息写入探测包;将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在路径上的网络拥塞信息。
根据本说明书实施例的第四方面,提供了一种数据传输方法,应用于接收端的可编程网卡,包括:接收第一数据流以及探测包,所述探测包中收集了所述第一数据流在传输路径上的网络拥塞信息;从发送端接收所述第一数据流的发送端约束带宽权重;利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重;将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端。
根据本说明书实施例的第五方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据传输方法的步骤。
根据本说明书实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据传输方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据传输方法的步骤。
本说明书一个实施例提供了网络系统,由于该系统中发送端的可编程网卡根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重,按所述初始发送带宽权重对应的带宽传输所述第一数据流,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,而且交换机测量经过所述交换机的第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息,接收端的可编程网卡利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端,从而发送端的可编程网卡能够利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。另外,系统可以按需(如定期)重新计算接收端约束带宽权重,达到按流量类型对应的带宽权重合理动态地分配网络资源的目的。可见,该系统充分利用了可编程交换机以及可编程网卡提供的定制化能力,针对不同流量类型的数据流,根据交换机收集的网络拥塞信息以及接收端的反馈综合进行带宽以及发送窗口的精确控制,实现了以数据流为切片的网络保障架构,也即,运行在相同物理网络上的不同流量类型的各个数据流均能够得到符合流量类型的带宽保障,不仅可以做到带宽的隔离,而且可以迅速减小网络丢包,能够在全网范围内实现针对不同流量的传输提供可预期的差异化服务。
附图说明
图1是本说明书一个实施例提供的一种网络系统在云数据中心场景的示意图;
图2a是本说明书一个实施例提供的一种网络系统的结构示意图;
图2b是本说明书另一个实施例提供的一种网络系统的结构示意图;
图3是本说明书一个实施例提供的一种数据传输方法的流程图;
图4a是本说明书一个实施例提供的数据传输方法的处理过程流程图;
图4b是本说明书一个实施例提供的端侧实现架构的示意图;
图5是本说明书一个实施例提供的一种数据传输方法处理过程流程图;
图6是本说明书另一个实施例提供的一种数据传输方法处理过程流程图;
图7是本说明书一个实施例提供的一种数据传输装置结构示意图;
图8是本说明书另一个实施例提供的一种数据传输方法的流程图;
图9是本说明书一个实施例提供的交换机的架构示意图;
图10是本说明书另一个实施例提供的一种数据传输装置结构示意图;
图11是本说明书又一个实施例提供的一种数据传输方法的流程图;
图12是本说明书又一个实施例提供的一种数据传输方法处理过程流程图;
图13是本说明书再一个实施例提供的一种数据传输方法处理过程流程图;
图14是本说明书再一个实施例提供的一种数据传输装置结构示意图;
图15是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
NIC:Network Interface Card,是指主机侧的网卡设备,用于转发和接收网络数据。
Network Telemetry:网络遥测,是一种在数据平面运行的,网络状态的收集和汇报的框架。数据包能够逐跳收集交换机的状态信息,并最终在其头部携带每跳交换机的信息,作为信息的汇报。
SLA:Service Level Agreement,服务质量保障。是指对于应用提供的网络服务的质量承诺,例如最小可用带宽、延迟、丢包等的保障。
当前数据中心网络要求降低网络传输IO(Input/Output,输入/输出)长尾,减少网络带宽抢占、拥塞、丢包造成的时延影响,减少网络丢包,甚至在RDMA(Remote DirectMemory Access,远程直接数据存取)等高性能网络中需要网络基本无丢包等等。然而,当前数据中心网络无法满足越来越高的性能和稳定性的需求,难以在全网范围向上层的租户、应用提供高性能、高可靠的带宽、延迟、丢包的保障。而且,由于数据中心需要支持多个租户不同类型的服务,导致了差异化的SLA需求。因此,如何保证不同类型的服务的资源需求,避免资源瓶颈,实现在全网范围向上层的租户、应用提供高性能、高可靠的带宽、延迟、丢包的保障,是一个难点。
有鉴于此,在本说明书中,提供了网络系统,本说明书同时涉及数据传输方法,数据传输装置,计算设备,以及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本说明书一个实施例提供的网络系统在云数据中心场景的示意图。图1中示意的元素含义表示如下:Host表示主机;A1,B1,A2,A3,B2表示应用;Prob表示发送的探测包;Resp表示探测包对应的返回包;r1,r2,r3,r4,r5表示流量速率;DCN表示数据中心网络;Path表示路径。如图1所示,在云数据中心场景中,网络系统中包括若干个主机,如主机1、主机2、主机3,主机之间通过数据中心网络中的交换机进行通信。主机上运行了不同租户的各种流量类型的应用,如主机1上运行了应用A1、B1,主机2上运行了应用A2,主机3上运行了应用A3、B2。以主机1上运行的应用为例,从A1上发出的第一流量类型的数据流1通过主机1上的可编程网卡,以路径1经过数据中心网络中的交换机,传输到主机3;从A1发出的第一流量类型的数据流2通过主机1上的可编程网卡,以路径2经过数据中心网络中的交换机,传输到主机2;从B1发出的第二流量类型的数据流3通过主机1上的可编程网卡,以路径3经过数据中心网络中的交换机,传输到主机3。在该应用场景中,根据本说明书实施例提供的网络系统,保障数据流1的网络服务的处理过程如下:
主机1的可编程网卡,根据多种流量类型分别对应的带宽权重以及待转发的数据流1的第一流量类型,确定数据流1的初始发送带宽权重,按所述初始发送带宽权重对应的带宽传输数据流1,并将所述初始发送带宽权重作为发送端约束带宽权重发送给主机3的可编程网卡;
交换机1,测量经过本地的数据流1的网络拥塞信息,将所述网络拥塞信息写入探测包(探测包如1所示的“prob”),将所述探测包发送给数据流1的下一跳,下一跳为交换机2。交换机2测量经过本地的数据流1的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给数据流1的下一跳,下一跳为交换机3。交换机3测量经过本地的数据流1的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给数据流1的下一跳,下一跳为主机3。如此,探测包在到达主机3的可编程网卡时收集了数据流1在传输路径上的网络拥塞信息。
主机3的可编程网卡,接收数据流1以及探测包,定期利用接收到的所述发送端约束带宽权重计算数据流1的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给主机1。
主机1的可编程网卡,定期接收主机3返回的所述网络拥塞信息以及所述接收端约束带宽权重,利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定数据流1在传输路径上的发送端约束带宽权重。另外,主机1的可编程网卡还可以将所述发送端约束带宽权重发送给主机3的可编程网卡,利用所述网络拥塞信息计算出数据流1被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口,利用所述发送窗口以所述接收端约束带宽权重对应的带宽继续传输数据流1。
在上述应用场景中,保障其他数据流,如数据流2,数据流3的网络服务的处理过程如上过程类似,在此不再赘述。可见,该系统充分利用了可编程交换机以及可编程网卡提供的定制化能力,针对云数据中心场景以及边缘云场景中不同租户的各种流量类型的数据流,根据交换机收集的网络拥塞信息以及接收端的反馈综合进行带宽的精确控制,或者进一步进行发送窗口的精确控制,实现以数据流为切片的网络保障架构,也即,运行在相同物理网络上的不同租户的各种流量类型的数据流均能够得到符合流量类型的延迟、带宽、可达性的保障,能够在全网范围内实现针对不同流量的传输提供可预期的差异化服务。
参见图2a,图2a示出了根据本说明书一个实施例提供的网络系统的结构示意图。如图2a所示,该系统可以包括:
发送端的可编程网卡202,被配置为根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重,按所述初始发送带宽权重对应的带宽传输所述第一数据流,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端;
交换机204,被配置为被配置为测量经过所述交换机的第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息;
接收端的可编程网卡206,被配置为接收所述第一数据流以及所述探测包,利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端;
所述发送端的可编程网卡202,还被配置为接收所述网络拥塞信息以及所述接收端约束带宽权重,利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
可选地,所述发送端的可编程网卡202还可以将所述发送端约束带宽权重发送给接收端,利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口,利用所述发送窗口以所述接收端约束带宽权重对应的带宽继续传输所述第一数据流。
该系统充分利用了可编程交换机以及可编程网卡提供的定制化能力,针对不同流量类型的数据流,根据交换机收集的网络拥塞信息以及接收端的反馈综合进行带宽的精确控制,还可以进一步进行发送窗口的精确控制,实现以数据流为切片的网络保障架构,也即实现分层的网络架构设计,使得应用能够关注应用的逻辑和资源调度,网络基础设施提供完整的SLA保障,由网络基础设施保障运行在相同物理网络上的上层应用的不同流量类型的各个数据流均能够得到符合流量类型的延迟、带宽、可达性的保障,能够在全网范围内实现针对不同流量的传输提供可预期的差异化服务。
本说明书实施例提供的系统,基于网络基础设施实现可预期网络服务,可以针对全网实现从端到网络的整体的SLA保障。另外,一些实施例中还考虑了发送端/接收端网络资源以及端侧到网卡交互过程中PCIe(Peripheral Component Interconnect express,高速串行计算机扩展总线标准)的资源瓶颈,从而向上层的租户、应用提供一套高性能、高可靠的传输服务,可以包括带宽、延迟、丢包的保障,使得上层应用能享受分层设计和性能保障。
例如,如图2b示出了结合本说明书多个实施例的网络系统的结构示意图。如图2b所示,Host表示主机,SmartNIC表示主机的可编程网卡,Scheduler表示网卡内的调度器,Programmable Switch表示交换机。结合本说明书多个实施例的网络系统,至少可以解决五个方面的问题:
1.发送端PCIe资源管理,包括:发送端主机与可编程网卡之间通过按流量类型划分节点对队列,加权轮询队列来实现PCIe资源管理,不同流量可以得到适当的带宽资源;2.发送端内部发送调度,包括:网卡内部通过按流量类型划分服务队列,加权轮询队列来调度网卡端口资源,避免抢占;3.网络内按权带宽共享,包括:利用交换机收集的网络拥塞信息,根据流量类型动态竞争网络资源,实现网络内按权带宽共享,在充分利用网络资源的同时避免互相争抢引发的拥塞;4.接收端队列资源管理,包括:接收端根据流量类型分配独立的缓存空间(例如,一个接收队列对应一个流量类型)来接收不同流量类型的数据包,避免单一流量打满整个缓存而导致影响其他应用;5.接收端PCIe资源管理,包括:不同流量类型各自分配独立的消息队列来上送数据包到主机,避免不同流量类型的数据包通过PCIe上送时出现带宽资源争抢。
下面,再分别对发送端的可编程网卡,交换机,接收端的可编程网卡各自应用的数据传输方法进行一一说明。
参见图3,图3示出了根据本说明书一个实施例提供的数据传输方法的流程图。图3所示方法应用于发送端的可编程网卡,如图3所示,该方法可以包括:
步骤302:根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重。
例如,可以先根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一流量类型的基础带宽权重,再根据所述第一流量类型的基础带宽权重以及从所述发送端发出的所述第一流量类型数据流的路径的数目,确定所述第一数据流的初始发送带宽权重。
所述流量类型,是指将流量按照不同网络服务对带宽的占用需求划分为多个优先级或多个服务类,一个流量类型对应一个基础带宽权重,一个网络的所有流量类型的基础带宽权重总和为满带宽。例如,数据中心网络中,按照不同网络服务对带宽的占用需求划分为8个流量类型,对应的基础带宽权重分别为10%,10%,10%,20%,20%,10%,10%,10%。
数据流,是指从发送端传输到接收端的数据包序列,发送端为起点,传输端为终端。因此,一个数据流对应一条传输路径,也即对应从发送端到接收端的一条连接。一个流量类型的所有数据流共同分享该流量类型的基础带宽权重。
所述初始发送带宽权重,是指一个数据流初始状态时从基础带宽权重中分享到的带宽权重。本说明书中,一个流量类型的所有数据流分享基础带宽权重的分配方式不限,例如,可以平均分配的方式分享,也可以根据场景需要按一定比例分配的方式分享。以平均分配为例,S_W[i]=W_base[i]/S_Num[i],其中,S_W[i]表示流量类型i的任一数据流的初始发送带宽权重,W_base[i]表示流量类型i的基础带宽权重,S_Num[i]表示流量类型i所有数据流的路径数目。假设第一流量类型的基础带宽权重为10%,从所述发送端发出的所述第一流量类型数据流的路径的数目为10,则第一数据流的初始发送带宽权重为1%。
步骤304:按所述初始发送带宽权重对应的带宽传输所述第一数据流。
所述第一数据流,用于使交换机测量经过所述交换机的第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息。
以第一数据流的初始发送带宽权重为1%为例,假设网络的满带宽为100G,则发送端将第一数据流以1G的带宽来传输数据。
步骤306:将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端。
所述发送端约束带宽权重,是发送端评估出的允许数据流占用的带宽权重,用于使接收端利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端。
所述网络拥塞信息,是表征交换机在传输数据流时的网络传输性能的信息。例如,本说明书一个或多个实施例中,所述网络拥塞信息可以包括:经过所述交换机的数据流的权重之和、经过所述交换机的数据流的发送速率之和、交换机的发送队列长度、交换机已发送的数据量以及端口线速。
所述接收端约束带宽权重,是接收端接收数据流时,接收端允许该数据流占用的最大带宽权重。发送端根据接收到的接收端约束带宽权重来为数据流分配带宽。
需要说明的是,本说明书实施例提供的方法中,除了网络拥塞信息以外,还可以通过获取网络反馈的其他信息来感知网络状态,进行网络资源隔离等处理。例如,交换机可以维护其他资源使用信息/资源预留信息,或者端侧向网络发送的其他资源使用信息,或者全局控制器感知网络使用情况进而计算得到网络信息,等等,本说明书实施例提供的方法对此并不进行限制。
步骤308:从接收端接收所述第一数据流的网络拥塞信息以及接收端约束带宽权重。
步骤310:利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
可选地,发送端的可编程网卡还可以进一步将所述发送端约束带宽权重发送给接收端。
例如,所述发送端约束带宽权重w=max{S_W[i],s_w2},其中,S_W[i]表示流量类型i的初始发送带宽权重,s_w2表示发送端建议带宽权重,发送端建议带宽权重是发送端的可编程网卡本地计算出的带宽权重,可以通过将第一流量类型未使用的带宽对允许额外分配带宽的路径进行额外分配的方式计算得到。
发送端的可编程网卡可以为每条路径定期生成探测包(可与INT探测合并),根据路径上发送的数据流的流量类型,携带根据该定期计算得到的发送端约束带宽权重至接收端。探测包的生成周期,例如可以默认8ms。INT(Inband Network Telemetry),是带内网络遥测技术,是一种借助数据面进行网络状况的收集、携带、整理、上报的技术。
另外,发送端的可编程网卡还可以进一步利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口。
由于网络的传输性能是变化的,随着传输性能的变化,数据流在传输时的链路利用率相应不同,因此数据流实际占用带宽比例与发送端为数据流分配的带宽比例有一定差距,而发送端对数据流的发送窗口应该根据数据流实际占用带宽比例相应调整,这样才能使数据流的传输更加符合数据流被分配的带宽。其中,第一数据流的实际占用带宽比例,能够根据链路的网络拥塞信息计算得到,进而可以根据实际占用带宽比例确定对应的发送窗口。可以理解的是,本说明书所述发送窗口也可以按照发送窗口与发送速率之间的换算关系对应替换为发送速率。
另外,结合本说明书实施例提供的端和网络协商的方式,一些实施例中,还可以通过拓展当前的拥塞控制手段,将端上的拥塞和权重也引入到拥塞控制中,从而达到端到端的带宽保障,例如,可以考虑网卡内部的处理瓶颈,网络流量到不同项目之间的处理瓶颈等等。本说明书实施例对此并不进行限制。
基于上述实施例,发送端的可编程网卡可以利用所述发送窗口以所述接收端约束带宽权重对应的带宽继续传输所述第一数据流。并且,还可以继续接收接收端返回的网络拥塞信息以及接收端约束带宽权重,定期重新进入步骤308以达到动态地按流量类型对应的带宽权重合理分配网络资源的目的。
可见,该方法充分利用了可编程交换机以及可编程网卡提供的定制化能力,针对不同流量类型的数据流,根据交换机收集的网络拥塞信息以及接收端的反馈综合进行带宽以及发送速率的精确控制,实现了以数据流为切片的网络保障架构,也即,运行在相同物理网络上的不同流量类型的各个数据流均能够得到符合流量类型的延迟、带宽、可达性的保障,能够在全网范围内实现针对不同流量的传输提供可预期的差异化服务。
为了更加全面地数据传输方法,需要综合考虑网络服务全链路过程中可能遇到的竞争问题,包括主机-网卡收/发方向的PCIe资源竞争、发送端/接收端的网卡资源竞争、网路中多流量互相竞争等。因此,本说明书一个或多个实施例中,还对发送端与主机交互方向上的PCIe资源的竞争通过发送端节点对队列进行按流量类型的管理,以满足上层应用对于高性能和高稳定性的要求。
具体地,参见图4a,图4a示出了本说明书一个实施例提供的数据传输方法的处理过程流程图,具体包括以下步骤。
步骤402:主机的可编程网卡面向主机交互方向预先设置所述多种流量类型分别对应的节点对队列,其中,一个所述节点对队列用于从所述主机接收一个发送端到一个目的端的数据包,一个所述节点对队列对应一种流量类型。
步骤404:通过加权轮询的方式轮询所述节点对队列取出数据包。
其中,所述加权轮询的方式,包括:
轮询队列,如果轮询到的队列不为空,且轮询到的队列的信用权重有余额,则通过消耗所述信用权重的余额从轮询到的队列取出与消耗大小相应的数据包;
在达到余额恢复条件时,将所述多种流量类型分别对应的队列的信用权重的余额按照多种流量类型分别对应的带宽权重成比例地恢复。
例如,可编程网卡面向主机交互方向设置M个Doorbell(门铃)队列DQ[0,M-1](Doorbell队列即为所述节点对队列)。其中,M大于流量类型的数量N。每个QP(发送和接收的队列对)的doorbell根据配置的流量类型映射到相应队列中。Doorbell调度管理的目的是控制不同流量对于PCIe资源的使用情况,通过安全分配保证不同类型的流相互隔离,并根据理想分配共享主机到网卡方向的PCIe资源。因此,每个Doorbell队列可以根据流量类型设置对应的信用权重Credit[0,M-1]以及周期性恢复量CU[0,M-1],深度不限,例如深度可以为16bits。在初始状态下,各个Doorbell队列的信用权重Credit[0,M-1]可以相同,也可以不同。在对各个Doorbell队列的信用权重使用周期性恢复量CU[0,M-1]更新信用权重时,恢复量CU[0,M-1]按照流量类型对应的带宽权重取值,由此,能够实现按照所述多种流量类型分别对应的带宽权重设置队列的权重的目的。
具体地,Credit更新时,Credit[i]=Credit[i]+CU[i],CU[i]值根据不同流量类型对应的带宽权重分配。其中,Credit更新可以由两个事件中的任何一个触发:一个事件是周期性更新事件,例如,默认更新周期8us;另一个事件是信用权重耗尽时的更新事件,例如,当任何一个DQ[i]的Credit[i]耗尽,且所有其他未耗尽Credit[i]的DQ[i]都为空时,所有DQ[i]的Credit[i]更新。
响应Doorbell的逻辑包括:轮询DQ[i],如果对应有信用权重credit,且队列不为空,则取出一个Doorbell响应以从Doorbell队列取出数据包。相应地,Credit[i]=Credit[i]–L_SQE,其中L_SQE为当前SQE(发送事件)对应发送的数据长度。
步骤406:将取出的数据包按流量类型放入对应的服务队列,一种流量类型对应一个服务队列。
所述服务队列,可以用于实现发送端流量WRR调度。WRR调度,是指加权循环(WRR)所有服务队列,并且将优先权分配给较高优先级队列。流量WRR调度的核心目的是保证不同流量类型在使用发送端网卡资源时可以总体上按照需要的比例分配。因此,发送端的可编程网卡可以为N个服务队列相应维护N个发送权重令牌WT[0,N-1]以及周期性恢复量TU[0,N-1],N是流量类型的数量。
步骤408:通过加权轮询的方式轮询所述服务队列取出数据包以转发数据包,其中,所述加权轮询的方式中按照所述多种流量类型分别对应的带宽权重设置队列的权重。
该步骤中的加权轮询如前述方式实施,在此不再赘述。通过加权轮询,每个QP在实际发送数据包时,除了检测满足拥塞控制算法计算出来的的速率与窗口限制以外,还需要保证对应的WT[i]有足够的发送令牌。发送数据包后WT[i]=WT[i]–Pkt_len。所有WT周期性更新,更新量为TU[i]。其中,更新量TU[i]按照流量类型对应的带宽权重取值。
在该实施例中,不同流量类型的数据流从主机下发时经过PCIe DMA至网卡,PCIe资源的竞争由节点对队列对应的权重调配,使不同流量类型能够得到适当的资源,数据流在进入网卡内部后,端口资源的竞争由服务队列对应的权重调配,使不同流量类型能够得到整体调度,保证它们按给定权重共享发送端口资源,避免抢占。可见,通过该实施例,可以达到不同流量类型的数据流相互隔离的目的,并能够根据流量类型按带宽权重分享主机到网卡方向的PCIe资源,不同流量类型在使用发送端网卡资源时可以总体上按照理想的比例分配。
另外,根据本说明书实施例提供的方法,还可以通过网卡与端侧交互实现PCIe资源的管理与保障,例如,可以修改主机内部驱动来实现PCIe资源管理,其他带外通信方式实现资源管理等,本说明书对此并不进行限制。
为了使本说明书实施例提供的应用于发送端的可编程网卡的障数据中心网络服务的方法更加易于理解,下面结合图4b示出的端侧实现架构的示意图进行详细说明。图4b中示意的元素含义表示如下:
Main Memory表示主存储器;CPU表示处理器;App flow表示按流量类型划分的流;Descriptors,表示描述符;Packets表示数据包;Config/Mgm表示配置与管理信息;DMAEngine表示DMA引擎;SQ表示发送队列;RQ表示接收队列;CQ表示完成队列;SQE表示发送事件;RQE表示接收事件;CQE表示完成事件;Packet Scheduler表示数据包调度器;VM-pair表示节点对队列;WQ表示按流量类型划分的队列;WFQ表示按权轮询;Context Tables表示上下文表;Path monitor表示路径状态监测模块;VF表示网络资源切片;Tx Desc.表示发送描述符;Rx Desc.表示接收描述符;TX/RX pipes表示发送/接收流水线;Pkt payload表示数据包内容。
如图4b所示,端侧可以划分为主机与网卡两部分。其中,主机侧包括主存储器以及处理器。主存储器包括描述符模块以及数据包模块。描述符模块中包括按流量类型划分的若干个数据流。处理器包括配置与信息管理模块,用于对网卡内相关配置与信息的管理。网卡侧包括DMA引擎,配置与信息管理接口,数据包调度器,上下文表模块,路径状态监测模块,发送/接收流水线处理模块,MAC地址处理模块。如图4b所示的架构,端侧网卡面向主机交互方向预先设置若干个节点对队列,通过加权轮询的方式轮询所述节点对队列取出数据包,将取出的数据包按流量类型放入对应的服务队列,通过加权轮询的方式轮询所述服务队列取出数据包以转发数据包。
下面,再结合图5,对发送端的可编程网卡利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重的处理过程进行详细说明。图5示出了本说明书另一个实施例提供的数据传输方法处理过程流程图,所述利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重,具体包括以下步骤。
步骤502:发送端的可编程网卡根据所述网络拥塞信息以及所述接收端约束带宽权重确定所述第一流量类型未使用的发送带宽权重以及发送端允许所述第一流量类型额外分配带宽的路径数目。
为了便于计算,发送端的可编程网卡可以为各个流量类型分别维护激活连接的总路径数目(S_Num[0,N-1])、基础带宽权重W_base[0,N-1]、数据流的初始发送带宽权重S_W[i]、未使用的发送带宽权重S_UW[0,N-1]、发送端允许额外分配带宽的路径数目S_UCnt[0,N-1],以及,所有流量类型的总权重之和SUM_W。还可以为每条路径维护从接收端收到的接收端约束带宽权重s_w1以及本地计算出的发送端建议带宽权重s_w2,以及发送端实际监测到的发送速率tx_r。
例如,发送端的可编程网卡可以遍历第一流量类型的所有数据流的路径,通过以下步骤确定所述第一流量类型未使用的发送带宽权重以及发送端允许所述第一流量类型额外分配带宽的路径数目:
如果遍历到的路径的初始发送带宽权重大于接收端约束带宽权重,则发送端将未用完的部分加入S_UW,否则,记录其为可以额外分配的路径。其中,发送端将未用完的部分加入S_UW的算式可以表示为S_UW[i]=S_UW[i]+S_W[i]-s_w1;记录额外分配的路径S_UCnt[i]的算式可以表示为S_UCnt[i]=S_UCnt[i]+1。相当于如果接收端能分配的权重更小,那么发送端将未用完的部分加入S_UW;如果接收端分配的权重更大,那么记录其为可以额外分配的路径。如果发送端实际监测到的发送速率小于按接收端约束带宽权重传输时理论上的发送速率,表示实际使用量不足分配量,则将未用完的部分加入S_UW,算式可以表示为:S_UW[i]=S_UW[i]+(s_w1*C/SUM_W-tx_r)*SUM_W/C。其中,按接收端约束带宽权重传输时理论上的发送速率等于s_w1*C/SUM_W。
其中,C是端口线速,tx_r是发送端实际监测到的发送速率。(s_w1*C/SUM_W-tx_r)表示未使用的带宽的量,通过SUM_W/C将这个带宽的量换算为权重的量。
步骤504:如果所述初始发送带宽权重大于所述接收端约束带宽权重,则发送端建议带宽权重等于所述接收端约束带宽权重。
步骤506:如果所述初始发送带宽权重小于等于所述接收端约束带宽权重,则发送端建议带宽权重等于所述初始发送带宽权重与第一额外分配权重之和,其中,所述第一额外分配权重等于所述第一流量类型未使用的发送带宽权重除以所述发送端允许所述第一流量类型额外分配带宽的路径数目。
具体地,发送端的可编程网卡判断是否接收端返回的接收端约束带宽权重比初始发送带宽权重小,如果是,则按照接收端返回的接收端约束带宽权重作为发送端建议带宽权重,否则,发送端建议带宽权重为初始发送带宽权重加上单个路径允许额外使用的量,也即
s_w2=S_W[i]+S_UW[i]/S_UCnt[i]。
步骤508:将所述发送端建议带宽权重与所述初始发送带宽权重中的较大值作为发送端约束带宽权重。
也即,所述发送端约束带宽权重w取S_W[i]与s_w2中的较大值。
在上述实施例中,通过对第一流量类型未使用的带宽进行重分配的方式来计算得到发送端建议带宽权重,将发送端建议带宽权重与初始发送带宽权重中的较大值作为发送端约束带宽权重发送给接收端,从而接收端能够利用发送端约束带宽权重重新计算所述第一数据流的接收端约束带宽权重,实现动态地根据网络拥塞情况,按流量类型对应带宽比例合理调整带宽的目的,使不同流量类型的数据流在网络中合理动态竞争网络资源,在充分利用网络资源的同时避免互相争抢引发的拥塞。
下面,再结合图6,对发送端的可编程网卡利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口的处理过程进行详细说明。图6示出了本说明书另一个实施例提供的数据传输方法处理过程流程图,所述利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口,具体包括以下步骤。
步骤602:响应于接收到确认应答包,判断所述确认应答包中是否存在压力报警标记。
其中,所述确认应答包具体可以表现为接收端响应于接收到数据包而返回的ACK包。所述压力报警标记由所述接收端在接收到所述确认应答包对应的数据包时,根据所述数据包对应的第一流量类型的流量压力达到预设报警范围,将所述压力报警标记插入所述确认应答包。
例如,接收端在接收数据流时,为不同流量类型分别预留缓存,从逻辑上隔离不同流量类型,并对每个流量类型的流量压力进行监测,当流量压力超过预期时,将压力报警标记插入确认应答包并反馈至发送端以使发送端可以根据确认应答包进行发送速率的调速。
步骤604:如果存在压力报警标记,按照预设减速策略,降低所述第一数据流在传输路径上的发送窗口。
步骤606:如果不存在压力报警标记且所述第一数据流的当前发送窗口不足一个窗口,则按照预设增速策略,增大所述第一数据流在所述传输路径上的发送窗口。
步骤608:如果不存在压力报警标记且所述第一数据流的当前发送窗口大于或等于一个窗口,利用所述网络拥塞信息确定所述第一数据流被分配所述接收端约束带宽权重时实际占用带宽比例,根据所述第一数据流实际占用带宽比例确定符合所述比例的发送窗口,将符合所述比例的发送窗口与端口线速对应的发送窗口中的较小值作为所述第一数据流在传输路径上的发送窗口。
具体地,发送端的可编程网卡可以响应于每收到一个ACK,计算一次发送窗口,包括:
判断收到的ACK包是否有压力报警标记,如压力报警标记可以用ECN表示。如果有压力报警标记,则继续判断当前发送窗口是否小于一个窗口,如果是,则将当前发送窗口减掉预设的固定值得到更新的发送窗口,如固定值β。如果不小于一个窗口,则将当前发送窗口按预设的比例如η减速得到更新的发送窗口。如果没有压力报警标记,则在当前发送窗口小于一个窗口的情况下,根据接收端约束带宽权重适当增速,例如,按照算式window=window+α*s_w1/cwnd得到更新的发送窗口,其中,α是表现为固定值的参数,cwnd是拥塞窗口的大小;在当前发送窗口不小于一个窗口的情况下,根据算式 计算得到更新的发送窗口,该算式表示更新的发送窗口window取/> 与C×T中的较小值,其中,φ是发送端为数据流分配的带宽权重,Φ是经过该交换机的链路的带宽权重之和,T是数据流的发送时长。由此,/>表示当前数据流被分配带宽权重φ时在共享带宽中实际占用的带宽比例,/>表示计算当前链路利用率,Window表示数据流经过交换机时,交换机所有链路的窗口总和,/>表示刚好用满带宽合适的窗口大小。可以理解的是,每条链路经过的交换机可能是多个,在计算时,可以根据每一跳交换机收集的网络拥塞信息计算出一个w的结果,最终在多个w结果里面取最小值,得到最终结果w。
在上述实施例中,通过为每个数据流定期动态地计算接收端约束带宽权重并按接收端约束带宽权重分配带宽继续传输数据流,进而能够响应于确认应答包,根据接收端约束带宽权重以及网络拥塞信息控制调速,最终实现按比例分配带宽,在充分利用网络资源的同时避免互相争抢引发的拥塞。
另外,考虑到不同数据流在选到相同路径而导致不可避免的网络拥塞时,会导致性能难以保障。因此,本说明书一个或多个实施例中,发送端的可编程网卡还根据所述网络拥塞信息重新选择所述第一数据流的传输路径。
具体地,例如,发送端的可编程网卡能够感知拥塞并通过主动调整路径来充分利用网络中的多路径资源,从而最终提供可预期的网络服务。例如,可以基于源路由的路径管理方法。首先通过观测分配给不同流的发送端约束带宽权重以及其最终在网络中获得的带宽情况,判断是否其对应的带宽需求得到了满足,在持续带宽无法得到满足时,触发源路由计算。在源路由计算中,根据探测结果得知所有可用等价路径的负载情况,并重新选择一个新的路径,将数据流转移至新路径。例如,路径选择方式可以包括:根据不同路径上的激活流的权重之和进行排序,并以此为权重按权选择。激活流是指当前存在数据被传输的数据流。同时为避免多个源端同时发现拥塞,同时进行路径切换而导致的路由震荡,还可以在触发路径选择的条件中加入随机时间窗口,同一随机时间窗口内只可以发起一次切换,这样最终使得路径管理可以快速收敛。
另外,还可以通过探测故障路径的方案,主动绕行并减少丢包。路径选择方案不仅可以通过源路由的方式完成,还可以通过网络内自带的负载均衡或者端网协同的方式来完成,本说明书实施例对此并不进行限制。
与上述方法实施例相对应,本说明书还提供了配置于发送端的可编程网卡的装置实施例,图7示出了本说明书一个实施例提供的一种数据传输装置的结构示意图。如图7所示,该装置包括:
初始权重确定模块702,可以被配置为根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重。
初始传输模块704,可以被配置为按所述初始发送带宽权重对应的带宽传输所述第一数据流,所述第一数据流,用于使交换机测量经过所述交换机的第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息。
发送端约束权重初始发送模块706,可以被配置为将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,所述发送端约束带宽权重,用于使接收端利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端。
发送端约束权重重新确定模块708,可以被配置为利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
可选地,所述发送端约束权重重新确定模块708还可以将所述发送端约束带宽权重发送给接收端。另外,所述数据传输装置还可以包括:
发送窗口计算模块710,可以被配置为利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口。
数据流传输模块712,可以被配置为利用所述发送窗口以所述接收端约束带宽权重对应的带宽继续传输所述第一数据流。
上述为本实施例的一种数据传输装置的示意性方案。需要说明的是,该数据传输装置的技术方案与上述的数据传输方法的技术方案属于同一构思,数据传输装置的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
参见图8,图8示出了根据本说明书又一个实施例提供的数据传输方法的流程图。图8所示方法应用于交换机,如图8所示,该方法可以包括:
步骤802:测量经过所述交换机的第一数据流的网络拥塞信息。
步骤804:将所述网络拥塞信息写入探测包。
步骤806:将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在路径上的网络拥塞信息。
所述第一数据流,是由发送端根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述述第一数据流的初始发送带宽权重之后,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,按所述初始发送带宽权重对应的带宽传输到所述交换机的。
所述发送端约束带宽权重,用于使接收端利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端;
所述接收端约束带宽权重以及所述网络拥塞信息,用于使所述发送端接收所述网络拥塞信息以及所述接收端约束带宽权重之后,利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
其中,所述网络拥塞信息包括:经过所述交换机的数据流的权重之和、经过所述交换机的数据流的发送速率之和、交换机的发送队列长度、交换机已发送的数据量以及端口线速。
例如,所述交换机可以基于Network Telemetry(NT,网络遥测计数)去测量精确的网络拥塞信息。发送端的可编程网卡发送出来的探测包携带发送端约束带宽权重(φ)以及分配的发送窗口(window)。网络中每个交换机根据该方法实现的交换机的架构如图9所示,在探测包中插入维护激活流被分配的权重之和(Φ),发送窗口之和(Window)。其中,激活流被分配的权重是指发送端接收端返回给发送端的接收端约束带宽权重。同时交换机根据自身发送流量统计出发送队列长度(q),发送队列已发送数据计数(tx),端口线速(C),并将这些信息写入探测包中发送至下一跳,直到探测包到达接收端。
可见,应用该方法的交换机充分利用了可编程交换机以及可编程网卡提供的定制化能力,针对不同流量类型的数据流,根据交换机收集的网络拥塞信息以及接收端的反馈综合进行带宽以及发送窗口的精确控制,实现了以数据流为切片的网络保障架构,也即,运行在相同物理网络上的不同流量类型的各个数据流均能够得到符合流量类型的延迟、带宽、可达性的保障,能够在全网范围内实现针对不同流量的传输提供可预期的差异化服务。
与上述方法实施例相对应,本说明书还提供了配置于交换机的数据传输装置实施例,图10示出了本说明书一个实施例提供的一种数据传输装置的结构示意图。如图10所示,该装置包括:
拥塞信息测量模块1002,可以被配置为测量经过所述交换机的第一数据流的网络拥塞信息。
信息写入模块1004,可以被配置为将所述网络拥塞信息写入探测包。
探测包发送模块1006,可以被配置为将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在路径上的网络拥塞信息。
所述第一数据流,是由发送端根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述述第一数据流的初始发送带宽权重之后,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,按所述初始发送带宽权重对应的带宽传输到所述交换机的;
所述发送端约束带宽权重,用于使接收端利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端;
所述接收端约束带宽权重以及所述网络拥塞信息,用于使所述发送端接收所述网络拥塞信息以及所述接收端约束带宽权重之后,利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
上述为本实施例的一种数据传输装置的示意性方案。需要说明的是,该数据传输装置的技术方案与上述的数据传输方法的技术方案属于同一构思,数据传输装置的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
参见图11,图11示出了根据本说明书又一个实施例提供的数据传输方法的流程图。图11所示方法应用于接收端的可编程网卡,如图11所示,该方法可以包括:
步骤1102:接收第一数据流以及探测包。
所述第一数据流,是由发送端根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述述第一数据流的初始发送带宽权重之后,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,按所述初始发送带宽权重对应的带宽传输到所述接收端的。
所述探测包,是由交换机测量第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包并将所述探测包发送给所述第一数据流的下一跳的,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息。
步骤1104:从发送端接收所述第一数据流的发送端约束带宽权重。
步骤1106:利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重。
步骤1108:将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端。
由此,可以使所述发送端利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重,将所述发送端约束带宽权重发送给接收端,利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口,利用所述发送窗口以所述接收端约束带宽权重对应的带宽继续传输所述第一数据流。
另外,接收端的可编程网卡,可以定期接收到所述发送端约束带宽权重,相应定期进入步骤904计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端,从而使发送端定期更新发送窗口大小,按照更新的发送窗口以更新的接收端约束带宽权重对应的带宽继续传输第一数据流,从而使不同流量类型的数据流在网络中合理动态竞争网络资源,在充分利用网络资源的同时避免互相争抢引发的拥塞。
应用该方法的接收端的可编程网卡充分利用了可编程交换机以及可编程网卡提供的定制化能力,针对不同流量类型的数据流,根据交换机收集的网络拥塞信息以及接收端的反馈综合进行带宽以及发送窗口的精确控制,实现了以数据流为切片的网络保障架构,也即,运行在相同物理网络上的不同流量类型的各个数据流均能够得到符合流量类型的延迟、带宽、可达性的保障,能够在全网范围内实现针对不同流量的传输提供可预期的差异化服务。
下面,再结合图12,对发送端的可编程网卡利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重的处理过程进行详细说明。图12示出了本说明书另一个实施例提供的数据传输方法处理过程流程图,所述利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,具体包括以下步骤。
步骤1202:根据第一流量类型对应的带宽权重以及所述第一流量类型数据流到达接收端的路径的数目,确定所述第一数据流的初始接收带宽权重。
第一流量类型是预设的多种流量类型中的任一种,所述多种流量类型具有各自对应的带宽权重。
另外,为了便于计算,接收端的可编程网卡可以为各个流量类型分别维护激活连接的总路径数(R_Num[0,N-1]),如深度16bits、未使用的接收带宽权重R_UW[0,N-1]、接收端允许额外分配带宽的路径数目R_UCnt[0,N-1]。
步骤1204:将所述初始接收带宽权重与所述发送端约束带宽权重进行比较,得到比较结果。
步骤1206:根据所述比较结果确定所述第一流量类型未使用的接收带宽权重以及接收端允许所述第一流量类型额外分配带宽的路径数目。
例如,接收端的可编程网卡可以遍历第一流量类型的所有数据流的路径,通过以下步骤确定所述第一流量类型未使用的接收带宽权重以及接收端允许所述第一流量类型额外分配带宽的路径数目:
如果遍历到的路径的初始接收带宽权重大于发送端约束带宽权重,则接收端将未用的部分加入R_UW,如可以通过算式R_UW[i]=R_UW[i]+W_base[i]/R_Num[i]-w得到未使用的接收带宽权重R_UW,否则,记录其为可以额外分配的路径,记录额外分配的路径R_UCnt[i]的算式可以表示为R_UCnt[i]=R_UCnt[i]+1。步骤1208:如果所述初始接收带宽权重大于所述发送端约束带宽权重,则所述第一数据流的接收端约束带宽权重等于所述发送端约束带宽权重与第二额外分配权重之和,所述第二额外分配权重等于所述第一流量类型未使用的接收带宽权重除以所述接收端允许所述第一流量类型额外分配带宽的路径数目。
具体地,接收端的可编程网卡判断是否接收端的初始接收带宽权重大于发送端约束带宽权重,则在s_w1中返回rw,rw等于w加上额外可以分配的权重量,用算式表示为r_w=w+R_UW[i]/R_UCnt[i],rw表示接收端约束带宽权重,否则,按照发送端约束带宽权重返回接收端约束带宽权重。
在上述实施例中,通过接收端对第一流量类型未使用的带宽进行重分配的方式来计算得到接收端约束带宽权重,使发送端按照接收端约束带宽权重重新分配带宽继续发送数据流,从而实现动态地根据网络拥塞情况,按流量类型对应带宽比例合理调整带宽的目的,使不同流量类型的数据流在网络中合理动态竞争网络资源,在充分利用网络资源的同时避免互相争抢引发的拥塞。
下面,再结合图13,对接收端的可编程网卡对队列的管理方式进行详细说明。在该实施例中,接收端的可编程网卡在接收方向上为不同流量类型分别预留缓存,从逻辑上隔离不同流量类型,并对每个流量类型的流量压力进行监测,当流量压力超过预期时,将压力报警标记插入确认应答包并反馈至发送端以使发送端可以根据确认应答包进行发送速率的调速。具体地,图13示出了根据本说明书又一个实施例提供的数据传输方法的流程图。图13所示方法应用于接收端的可编程网卡,如图13所示,该方法还可以包括:
步骤1302:接收端的可编程网卡响应于接收到任一第一数据包,判断用于接收所述任一第一数据包的接收队列的队列深度是否达到流量类型对应的第一报警范围,其中,一个接收队列对应接收一个流量类型的数据包。
步骤1304:如果是,将压力报警标记插入所述任一第一数据包对应的确认应答包。
例如,接收队列可以采用虚拟队列的方式实现。维护N个虚拟队列深度值VQ[0,N-1]。同时存储缓存容量上限Max_Q[0,N-1]以及ECN标记水线ECN_Q[0,N-1]。由此,每个数据包到达时,解析其对应的流量类型i,对应的VQ[i]=VQ[i]+Pkt_len。如果VQ[i]>Max_Q[i],则直接丢弃该数据包;如果VQ[i]>ECN_Q[i],则为数据包打上ECN标记。
步骤1306:在将任一第二数据包放入面向主机交互方向的消息队列时,根据所述消息队列的队列深度达到流量类型对应的第二报警范围,将所述压力报警标记插入所述任一第二数据包对应的确认应答包,其中,一个消息队列对应一种流量类型的数据包。
在该步骤中,接收端上送主机的管理核心在于管理不同类型流量对于网卡到主机方向的PCIe资源分配。网卡将数据包存入对应消息队列RQ,消息队列RQ总长度为N,每个RQ对应有两个ECN标记水位ECN_RQ_L[i]和ECN_RQ_H[i],如果RQ深度低于ECN_RQ_L[i],可以不做特殊操作,如果RQ深度高于ECN_RQ_H[i],则可以为高于ECN_RQ_H[i]的每个数据包对应的ACK打上ECN标记。对于在ECN_RQ_L[i]和ECN_RQ_H[i]之间的每个数据包,则可以以预设概率计算公式,如(RQ_L[i]-ECN_RQ_L[i])/(ECN_RQ_H[i]-ECN_RQ_L[i])计算出的概率进行ECN标记,其中RQ_L[i]为RQ队列深度。
在该实施例中,接收端的可编程网卡收到数据流后根据流量类型分配独立的缓存空间,避免单一流量打满整个缓存而导致影响其他流量的服务。而且,在经过网卡处理后,考虑到数据流通过PCIe上送仍然可能出现带宽资源争抢,通过插入压力报警标记减速来保障流量在该瓶颈点能得到符合预期的资源分配,最终构成了完整的端到端可预期网络服务。
与上述方法实施例相对应,本说明书还提供了配置于接收端的可编程网卡的装置实施例,图14示出了本说明书一个实施例提供的一种数据传输装置的结构示意图。如图14所示,该装置包括:
接收模块1402,可以被配置为接收第一数据流以及探测包。
所述第一数据流,是由发送端根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述述第一数据流的初始发送带宽权重之后,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,按所述初始发送带宽权重对应的带宽传输到所述接收端的。
所述探测包,是由交换机测量第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包并将所述探测包发送给所述第一数据流的下一跳的,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息。
接收端约束带宽计算模块1404,可以被配置为利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重。
权重返回模块1406,可以被配置为将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端,使所述发送端利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
上述为本实施例的一种数据传输装置的示意性方案。需要说明的是,该数据传输装置的技术方案与上述的数据传输方法的技术方案属于同一构思,数据传输装置的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
图15示出了根据本说明书一个实施例提供的一种计算设备1500的结构框图。该计算设备1500的部件包括但不限于存储器1510和处理器1520。处理器1520与存储器1510通过总线1530相连接,数据库1550用于保存数据。
计算设备1500还包括接入设备1540,接入设备1540使得计算设备1500能够经由一个或多个网络1560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备1500的上述部件以及图15中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图15所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1500还可以是移动式或静止式的服务器。
其中,处理器1520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据传输方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据传输方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据传输方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据传输方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据传输方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据传输方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (14)
1.一种网络系统,包括:
发送端的可编程网卡,被配置为根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重,按所述初始发送带宽权重对应的带宽传输所述第一数据流,将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端;
交换机,被配置为测量经过所述交换机的第一数据流的网络拥塞信息,将所述网络拥塞信息写入探测包,将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在传输路径上的网络拥塞信息;
接收端的可编程网卡,被配置为接收所述第一数据流以及所述探测包,利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述发送端;
所述发送端的可编程网卡,还被配置为接收所述网络拥塞信息以及所述接收端约束带宽权重,利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流在所述传输路径上的发送端约束带宽权重。
2.一种数据传输方法,应用于发送端的可编程网卡,包括:
根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型,确定所述第一数据流的初始发送带宽权重;
按所述初始发送带宽权重对应的带宽传输所述第一数据流;
将所述初始发送带宽权重作为发送端约束带宽权重发送给接收端,其中,所述发送端约束带宽权重,用于使所述接收端计算所述第一数据流的接收端约束带宽权重;
从所述接收端接收所述第一数据流的网络拥塞信息以及接收端约束带宽权重;
利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流的发送端约束带宽权重。
3.根据权利要求2所述的方法,还包括:
利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口;
利用所述发送窗口以所述接收端约束带宽权重对应的带宽继续传输所述第一数据流。
4.根据权利要求2所述的方法,还包括:
根据所述网络拥塞信息重新选择所述第一数据流的传输路径。
5.根据权利要求2所述的方法,还包括:
面向主机交互方向预先设置所述多种流量类型分别对应的节点对队列,其中,一个所述节点对队列用于从所述主机接收一个发送端到一个目的端的数据包,一个所述节点对队列对应一种流量类型;
通过加权轮询的方式轮询所述节点对队列取出数据包;
将取出的数据包按流量类型放入对应的服务队列,一种流量类型对应一个服务队列;
通过加权轮询的方式轮询所述服务队列取出数据包以转发数据包,其中,所述加权轮询的方式中按照所述多种流量类型分别对应的带宽权重设置队列的权重;
其中,所述加权轮询的方式,包括:
轮询队列,如果轮询到的队列不为空,且轮询到的队列的信用权重有余额,则通过消耗所述信用权重的余额从轮询到的队列取出与消耗大小相应的数据包;
在达到余额恢复条件时,将所述多种流量类型分别对应的队列的信用权重的余额按照多种流量类型分别对应的带宽权重成比例地恢复。
6.根据权利要求2所述的方法,所述利用所述网络拥塞信息、所述初始发送带宽权重与所述接收端约束带宽权重重新确定所述第一数据流的发送端约束带宽权重,包括:
根据所述网络拥塞信息以及所述接收端约束带宽权重确定所述第一流量类型未使用的发送带宽权重以及发送端允许所述第一流量类型额外分配带宽的路径数目;
如果所述初始发送带宽权重大于所述接收端约束带宽权重,则发送端建议带宽权重等于所述接收端约束带宽权重;
如果所述初始发送带宽权重小于等于所述接收端约束带宽权重,则发送端建议带宽权重等于所述初始发送带宽权重与第一额外分配权重之和,其中,所述第一额外分配权重等于所述第一流量类型未使用的发送带宽权重除以所述发送端允许所述第一流量类型额外分配带宽的路径数目;
将所述发送端建议带宽权重与所述初始发送带宽权重中的较大值作为发送端约束带宽权重。
7.根据权利要求3所述的方法,所述利用所述网络拥塞信息计算出所述第一数据流被分配所述接收端约束带宽权重时,实际占用带宽比例对应的发送窗口,包括:
响应于接收到确认应答包,判断所述确认应答包中是否存在压力报警标记,其中,所述压力报警标记由所述接收端在接收到所述确认应答包对应的数据包时,根据所述数据包对应的第一流量类型的流量压力达到预设报警范围,将所述压力报警标记插入所述确认应答包;
如果存在压力报警标记,按照预设减速策略,降低所述第一数据流在传输路径上的发送窗口;
如果不存在压力报警标记且所述第一数据流的当前发送窗口不足一个窗口,则按照预设增速策略,增大所述第一数据流在所述传输路径上的发送窗口;
如果不存在压力报警标记且所述第一数据流的当前发送窗口大于或等于一个窗口,利用所述网络拥塞信息确定所述第一数据流被分配所述接收端约束带宽权重时实际占用带宽比例,根据所述第一数据流实际占用带宽比例确定符合所述比例的发送窗口,将符合所述比例的发送窗口与端口线速对应的发送窗口中的较小值作为所述第一数据流在传输路径上的发送窗口。
8.一种数据传输方法,应用于交换机,包括:
测量经过所述交换机的第一数据流的网络拥塞信息,其中,所述第一数据流为上述权利要求1的网络系统中发送端的可编程网卡按初始发送带宽权重对应的带宽传输的数据流,所述初始发送带宽权重为所述发送端的可编程网卡根据多种流量类型分别对应的带宽权重以及待转发的第一数据流的第一流量类型确定的;
将所述网络拥塞信息写入探测包;
将所述探测包发送给所述第一数据流的下一跳,使所述探测包在到达接收端时收集了所述第一数据流在路径上的网络拥塞信息。
9.根据权利要求8所述的方法,所述网络拥塞信息包括:经过所述交换机的数据流的权重之和、经过所述交换机的数据流的发送速率之和、交换机的发送队列长度、交换机已发送的数据量以及端口线速。
10.一种数据传输方法,应用于接收端的可编程网卡,包括:
接收第一数据流以及探测包,所述探测包中收集了所述第一数据流在传输路径上的网络拥塞信息;
接收所述第一数据流的发送端约束带宽权重;
利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重;
将所述网络拥塞信息以及所述接收端约束带宽权重返回给所述第一数据流的发送端。
11.根据权利要求10所述的方法,所述利用接收到的所述发送端约束带宽权重计算所述第一数据流的接收端约束带宽权重,包括:
根据所述第一数据流的第一流量类型对应的带宽权重以及所述第一流量类型数据流到达接收端的路径的数目,确定所述第一数据流的初始接收带宽权重,所述第一流量类型是预设的多种流量类型中的任一种,所述多种流量类型具有各自对应的带宽权重;
将所述初始接收带宽权重与所述发送端约束带宽权重进行比较,得到比较结果;
根据所述比较结果确定所述第一流量类型未使用的接收带宽权重以及接收端允许所述第一流量类型额外分配带宽的路径数目;
如果所述初始接收带宽权重大于所述发送端约束带宽权重,则所述第一数据流的接收端约束带宽权重等于所述发送端约束带宽权重与第二额外分配权重之和,所述第二额外分配权重等于所述第一流量类型未使用的接收带宽权重除以所述接收端允许所述第一流量类型额外分配带宽的路径数目。
12.根据权利要求11所述的方法,还包括:
响应于接收到任一第一数据包,判断用于接收所述任一第一数据包的接收队列的队列深度是否达到第一报警范围,其中,一个接收队列对应接收一个流量类型的数据包;
如果是,将压力报警标记插入所述任一第一数据包对应的确认应答包;
在将任一第二数据包放入面向主机交互方向的消息队列时,根据所述消息队列的队列深度达到第二报警范围,将所述压力报警标记插入所述任一第二数据包对应的确认应答包,其中,一个消息队列对应一种流量类型的数据包。
13.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求2至12任意一项所述数据传输方法的步骤。
14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求2至12任意一项所述数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211007447.2A CN115473855B (zh) | 2022-08-22 | 2022-08-22 | 网络系统、数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211007447.2A CN115473855B (zh) | 2022-08-22 | 2022-08-22 | 网络系统、数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115473855A CN115473855A (zh) | 2022-12-13 |
CN115473855B true CN115473855B (zh) | 2024-04-09 |
Family
ID=84366000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211007447.2A Active CN115473855B (zh) | 2022-08-22 | 2022-08-22 | 网络系统、数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115473855B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865822A (zh) * | 2023-02-07 | 2023-03-28 | 江苏为是科技有限公司 | 流量整形方法及装置 |
CN117240796B (zh) * | 2023-11-14 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种网卡限速方法、系统、设备以及存储介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007113645A2 (en) * | 2006-03-31 | 2007-10-11 | Gridpoint Systems Inc. | Smart ethernet edge networking system |
KR20120134252A (ko) * | 2011-06-01 | 2012-12-12 | 삼성에스디에스 주식회사 | 홉 수를 이용한 전송 대역 할당 장치 및 그 방법 |
KR20130050334A (ko) * | 2013-04-29 | 2013-05-15 | 삼성에스디에스 주식회사 | 홉 수를 이용한 전송 대역 할당 장치 및 그 방법 |
WO2014100986A1 (zh) * | 2012-12-26 | 2014-07-03 | 华为技术有限公司 | 共享无线接入网的方法、发送端和接收端 |
CN105024946A (zh) * | 2015-06-16 | 2015-11-04 | 清华大学 | 一种基于滑动窗口的带宽分配方法、装置和系统 |
US9455927B1 (en) * | 2012-10-25 | 2016-09-27 | Sonus Networks, Inc. | Methods and apparatus for bandwidth management in a telecommunications system |
CN106063206A (zh) * | 2015-02-18 | 2016-10-26 | 英特尔公司 | 基于优先级和带宽分配的通信量类别仲裁 |
CN107196877A (zh) * | 2016-03-14 | 2017-09-22 | 华为技术有限公司 | 网络流量控制的方法及其网络设备 |
WO2018053688A1 (zh) * | 2016-09-20 | 2018-03-29 | 华为技术有限公司 | 一种拥塞控制的方法、装置及系统 |
CN109120544A (zh) * | 2018-09-30 | 2019-01-01 | 华中科技大学 | 一种数据中心网络中基于主机端流量调度的传输控制方法 |
CN109218193A (zh) * | 2018-11-29 | 2019-01-15 | 上海微小卫星工程中心 | 一种抑制卫星网络中的路由拥塞的方法 |
WO2019033932A1 (zh) * | 2017-08-18 | 2019-02-21 | 华为技术有限公司 | 数据中心的拥塞控制方法和装置 |
CN110199505A (zh) * | 2016-12-21 | 2019-09-03 | 英国电讯有限公司 | 确定通信链路的带宽 |
CN112054965A (zh) * | 2019-06-05 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN112311610A (zh) * | 2020-12-25 | 2021-02-02 | 视联动力信息技术股份有限公司 | 一种非ip体系下实现qos保障的通信方法和装置 |
CN114124826A (zh) * | 2021-11-28 | 2022-03-01 | 天津大学 | 拥塞位置可感知的低时延数据中心网络传输系统及方法 |
CN114866474A (zh) * | 2022-04-29 | 2022-08-05 | 鹏城实验室 | 一种端网协同流量调度方法、装置、系统及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9007898B2 (en) * | 2011-02-01 | 2015-04-14 | Google Inc. | System to share network bandwidth among competing applications |
US9929956B2 (en) * | 2015-02-26 | 2018-03-27 | Citrix Systems, Inc. | System for bandwidth optimization with initial congestion window determination |
CN109104373B (zh) * | 2017-06-20 | 2022-02-22 | 华为技术有限公司 | 网络拥塞的处理方法、装置及系统 |
US11102129B2 (en) * | 2018-09-09 | 2021-08-24 | Mellanox Technologies, Ltd. | Adjusting rate of outgoing data requests for avoiding incast congestion |
-
2022
- 2022-08-22 CN CN202211007447.2A patent/CN115473855B/zh active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007113645A2 (en) * | 2006-03-31 | 2007-10-11 | Gridpoint Systems Inc. | Smart ethernet edge networking system |
KR20120134252A (ko) * | 2011-06-01 | 2012-12-12 | 삼성에스디에스 주식회사 | 홉 수를 이용한 전송 대역 할당 장치 및 그 방법 |
US9455927B1 (en) * | 2012-10-25 | 2016-09-27 | Sonus Networks, Inc. | Methods and apparatus for bandwidth management in a telecommunications system |
WO2014100986A1 (zh) * | 2012-12-26 | 2014-07-03 | 华为技术有限公司 | 共享无线接入网的方法、发送端和接收端 |
KR20130050334A (ko) * | 2013-04-29 | 2013-05-15 | 삼성에스디에스 주식회사 | 홉 수를 이용한 전송 대역 할당 장치 및 그 방법 |
CN106063206A (zh) * | 2015-02-18 | 2016-10-26 | 英特尔公司 | 基于优先级和带宽分配的通信量类别仲裁 |
CN105024946A (zh) * | 2015-06-16 | 2015-11-04 | 清华大学 | 一种基于滑动窗口的带宽分配方法、装置和系统 |
CN107196877A (zh) * | 2016-03-14 | 2017-09-22 | 华为技术有限公司 | 网络流量控制的方法及其网络设备 |
WO2018053688A1 (zh) * | 2016-09-20 | 2018-03-29 | 华为技术有限公司 | 一种拥塞控制的方法、装置及系统 |
CN110199505A (zh) * | 2016-12-21 | 2019-09-03 | 英国电讯有限公司 | 确定通信链路的带宽 |
WO2019033932A1 (zh) * | 2017-08-18 | 2019-02-21 | 华为技术有限公司 | 数据中心的拥塞控制方法和装置 |
CN109120544A (zh) * | 2018-09-30 | 2019-01-01 | 华中科技大学 | 一种数据中心网络中基于主机端流量调度的传输控制方法 |
CN109218193A (zh) * | 2018-11-29 | 2019-01-15 | 上海微小卫星工程中心 | 一种抑制卫星网络中的路由拥塞的方法 |
CN112054965A (zh) * | 2019-06-05 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种拥塞控制方法、设备及计算机可读介质 |
CN112311610A (zh) * | 2020-12-25 | 2021-02-02 | 视联动力信息技术股份有限公司 | 一种非ip体系下实现qos保障的通信方法和装置 |
CN114124826A (zh) * | 2021-11-28 | 2022-03-01 | 天津大学 | 拥塞位置可感知的低时延数据中心网络传输系统及方法 |
CN114866474A (zh) * | 2022-04-29 | 2022-08-05 | 鹏城实验室 | 一种端网协同流量调度方法、装置、系统及存储介质 |
Non-Patent Citations (1)
Title |
---|
一种基于速率的提高网络公平性拥塞控制算法;肖萍萍;田彦涛;杨晓萍;;系统仿真学报(第24期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115473855A (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101468833B1 (ko) | 계층적 프로파일 스케줄링 및 쉐이핑 | |
CN115473855B (zh) | 网络系统、数据传输方法 | |
CN112887226B (zh) | 有线无线融合的卫星时间敏感网络队列管理调度方法 | |
US6320845B1 (en) | Traffic management and flow prioritization on a routed computer network | |
CA2451764A1 (en) | Method and apparatus for allocating link bandwidth | |
CN110808920B (zh) | 一种ccsds帧和ip报文共存的卫星通信流量控制方法 | |
US9439102B2 (en) | Transmitting apparatus, transmission method, and transmission system | |
US9940471B2 (en) | Virtual output queue authorization management method and device, and computer storage medium | |
CN109314673A (zh) | 一种客户业务传输方法和装置 | |
CN101692648A (zh) | 一种队列调度方法及系统 | |
US20210352020A1 (en) | Packet forwarding apparatus, method and program | |
CN112005528B (zh) | 一种数据交换方法、数据交换节点及数据中心网络 | |
US8467401B1 (en) | Scheduling variable length packets | |
JP2003348144A (ja) | パケット転送装置、パケット転送方法及びコンピュータプログラム | |
CN115665060A (zh) | 一种用于异构网络的多路径传输调度方法及装置 | |
EP4102791A1 (en) | Data validity based network buffer management system | |
US10742710B2 (en) | Hierarchal maximum information rate enforcement | |
CN113824652B (zh) | 一种用于调度队列的方法及装置 | |
CN115589602A (zh) | 一种网络配置方法、设备和系统 | |
CN113824652A (zh) | 一种用于调度队列的方法及装置 | |
Popescu et al. | Dynamic time sharing: a new approach for congestion management | |
WO2011026509A1 (en) | Resource allocation | |
JP2003023460A (ja) | レート制御装置 | |
JP2003023457A (ja) | 到着レート検出装置 | |
JP2003023459A (ja) | 到着レート検出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |