CN109995608A - 网络速率计算方法和装置 - Google Patents
网络速率计算方法和装置 Download PDFInfo
- Publication number
- CN109995608A CN109995608A CN201810006056.6A CN201810006056A CN109995608A CN 109995608 A CN109995608 A CN 109995608A CN 201810006056 A CN201810006056 A CN 201810006056A CN 109995608 A CN109995608 A CN 109995608A
- Authority
- CN
- China
- Prior art keywords
- data packet
- rate
- network equipment
- data
- flow
- 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.)
- Granted
Links
Classifications
-
- 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
- H04L43/0894—Packet rate
-
- 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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了一种网络速率计算方法和装置,所述方法包括:所述第一网络设备在多个更新周期的每个更新周期内,接收自至少一个发送设备的多个数据包,所述多个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述第一网络设备根据更新周期内接收的第一数据包的数量确定第一数据流的数目,根据第一参数计算所述更新周期内的第一速率,所述第一参数包括第一流量和所述第一数据流的数目,以及向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率,以使各个发送设备按照该第一速率发送数据包,由于各个发送设备发送数据包的速率总和不会超过第一网络设备的出口速率或出口带宽,所以避免了在第一网络设备发生拥塞。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种网络速率计算方法和装置。
背景技术
远程直接内存访问(Remote Direct Memory Access,RDMA)技术是为了解决网络传输中 服务器端数据处理的延迟而产生的。如图1所示,一个RDMA网络中,在进行通信之前需要在 应用系统中注册内存,然后RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系 统快速移动到远程系统存储器中,主机通道适配器(Host Channel Adapter,HCA)便可以直 接读写相应存储区域的数据,从而避免由于数据的发送和接收而在处理器内核中进行多次拷 贝,进而可以大大地缩短通信延迟。另一方面,RDMA网卡实现了协议栈卸载,即由网卡来完 成报文的封装和配置,通过硬件卸载,释放了CPU资源,从而可以节省出更多的CPU资源分 配给用户使用。
传统上,RDMA技术主要应用于高性能计算领域,并且是基于Infiniband(简称:IB)网 络来实现的。但是,在云计算场景下,需要兼容以太网,所以业界提出了一种基于融合以太 网的RDMA技术,简称:RoCE(RDMA over Converged Ethernet)。RDMA提供了一套软件传输 接口,方便用户创建传输请求(Work Request,WR),WR中描述了应用希望传输到信道(Channel) 对端的消息内容,对发送机而言,当上层应用需要发送数据时,会生成工作队列元素(Work Queue Ellement,WQE)请求。当有多个WQE请求时,会排列形成一个WQE的发送队列,由于 数据被存放在缓存(buffer)中,所以当发送机每处理完一个WQE请求,发送机中的网卡就 会在buffer里找到对应的数据并发送给交换机。对于交换机而言,当其接收并需要处理和转 发的数据包或报文数量很多时,就会将部分数据包或报文排列存放在buffer里,并按排列顺 序进行处理,并通过相应的端口发出,所以,当进入交换机入口的流量大于出口流量时,就 会发生拥塞,进而影响链路带宽的利用率。
发明内容
本发明实施例提供了一种网络速率计算方法和装置,用于调整链路的传输速率,通过统 计流经一网络设备的数据流的数目,能够结合网络中实际的数据流的传输情况计算网络设备 可分配给流经该网络设备的数据流的发送速率,从而为调整数据流的发端的发送速率提供更 准确的依据,进而减少RDMA网络拥塞。
第一方面,本申请提供了一种网络速率计算方法,该方法用于调整RDMA网络中的发送设 备的传输速率,具体地,所述方法包括:
所述网络中的第一网络设备在多个更新周期的每个更新周期内,执行以下步骤:
第一网络设备在所述更新周期内,接收自至少一个发送设备的多个数据包,其中,所述 多个数据包中包括至少一个第一数据包,所述第一数据包携带有头标签或者尾标签,所述头 标签用于指示第一数据包为一个RDMA数据流的首个数据包,所述尾标签用于指示第一数据包 为一个RDMA数据流的最后一个数据包;
所述第一网络设备根据所述更新周期内接收的所述第一数据包的数量,确定所述更新周 期内的第一数据流的数目,所述更新周期内的第一数据流的数目为在所述更新周期内通过所 述第一网络设备传输的RDMA数据流的数目;
所述第一网络设备根据第一参数计算所述更新周期内的第一速率,所述第一参数包括第 一流量和所述更新周期内的第一数据流的数目,所述第一流量为所述第一网络设备出口带宽, 所述第一速率为根据公平算法,每个所述第一数据流使用所述第一流量中的部分流量发送数 据的速率;所述出口容量为所述第一网络设备的一个出口最大可以通过的总流量或者带宽;
所述第一网络设备向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率。
本方面中,网络设备通过统计流经一网络设备的数据流的数目,能够结合网络中实际的 数据流的传输情况计算网络设备可分配给流经该网络设备的数据流的发送速率,从而为调整 数据流的发端的发送速率提供更准确的依据,进而减少RDMA网络拥塞。
此外,本申请提供的方法,通过RDMA数据流的数目和公平算法可以直接计算出第一速率, 进而可以指示发送设备直接按照该第一速率发送数据包,相比于探测式地利用前一个更新周 期逐步计算的速率的方法,节约了计算耗时,使得发送设备快速地达到第一速率,同时按照 该第一速率发送数据包还保证了发送设备与网络设备间链路带宽的充分利用。
结合第一方面,在第一方面的一种实现方式中,所述第一网络设备根据所述更新周期内 接收的所述第一数据包的数量,确定第一数据流的数目,包括:所述第一网络设备计算包括 所述头标签的第一数据包的数量和包括所述尾标签的第一数据包的数量的差值,以得到所述 第一数据流的数目。
可选的,所述第一网络设备在每个更新周期内接收到一个头标签的数据包时,对应的第 一数据流的数目加1,当接收到一个尾标签的数据包时,对统计的第一数据流的数目减1。
结合第一方面,在第一方面的另一种实现方式中,所述第一网络设备根据第一参数计算 所述更新周期内的第一速率,包括:
在所述第一网络设备检测到相邻两个更新周期内的所述第一数据流数目不同的情况下, 或者,在任意相邻的两个更新周期内通过第一网络设备的平均流量的变化值在预设范围内的 情况下,则按照第一公式计算所述第一速率;
其中,所述第一网络设备的平均流量为通过所述第一网络设备出口的数据量与更新周期 时长的比值,所述第一公式为:
R(t)表示t时刻的所述第一速率,C表示第一网络设备的出口带宽,y(t)表示t时刻第 一网络设备的平均流量、T表示更新周期的时长,Q(t)表示所述第一网络设备的缓存队列的 深度,所述缓存队列的深度为存储在缓存队列的字节长度,d表示通过所述第一网络设备的 多条数据流的往返延迟RTT的移动平均值,所述移动平均值为指定时间段,对时间序列数据 进行移动计算平均值,N(t)表示所述第一数据流的数目,α和β表示调节参数,且为常量。
结合第一方面,在第一方面的又一种实现方式中,所述第一网络设备根据第一参数计算 第一速率,包括:在连续的P个更新周期内所述第一网络设备的流量利用率均小于预设比例 的情况下,则根据速率控制协议RCP算法、所述第一流量和所述更新周期内的第一数据流的 数目计算所述第一速率。其中,所述P为大于等于2的正整数,所述第一网络设备的流量利 用率用于表示所述第一网络设备所提供的流量被通过所述第一网络设备的数据流使用的情 况。
本实现方式应用于具有多瓶颈交换机的RDMA网络中,基于上述利用第一公式计算第一速 率,并分配第一网络设备的出口带宽,在这种情况下,第一网络设备的流量利用率仍小于预 设比例,即由于受到RDMA网络中的交换机瓶颈限制,仍有部分带宽未被利用,则可根据RCP 算法将这部分剩余带宽分配到传输中,从而保证链路带宽的充分利用。
结合第一方面,在第一方面的又一种实现方式中,第一网络设备的上一跳设备为第二网 络设备,所述第一参数还包括第二速率,所述第二速率用于指示所述第二网络设备发送一个 数据流的数据包的速率,所述方法还包括:
所述第一网络设备接收来自所述第二网络设备的第三数据包,所述第三数据包中包括第 二速率;根据所述第一流量、所述更新周期内的第一数据流的数目以及公平算法得到第三速 率,以及将所述第三速率与所述第二速率中的较小值作为所述第一速率的值。
本实现方式中,选择较小值的速率发送给发送设备,能够将第一网络设备的出口带宽分 配给更多的发送设备,从而实现多个数据流同时传输。
第二方面,本申请还提供了一种网络速率计算方法,所述方法包括:第一网络设备在多 个更新周期的每个更新周期内,执行以下步骤:
第一网络设备在更新周期内接收自至少一个发送设备的一个数据包,其中,在所述接收 的数据包中携带有头标签或者尾标签,所述头标签用于指示一RDMA数据流的首个数据包,所 述尾标签用于指示一RDMA数据流的最后一个数据包;
所述第一网络设备根据所述更新周期内接收的携带有标签的数据包的数量确定更新周期 内的第一数据流的数目,所述更新周期内的第一数据流的数目为在所述更新周期内通过所述 第一网络设备传输的RDMA数据流的数目;
所述第一网络设备根据第一参数计算所述更新周期内的第一速率,所述第一参数包括第 一流量和所述更新周期内的第一数据流的数目,所述第一流量为所述第一网络设备出口带宽, 所述第一速率为根据公平算法,每个所述第一数据流使用所述第一流量中的部分流量发送数 据的速率;
所述第一网络设备向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率。
第三方面,本申请还提供了一种网络速率计算方法,所述方法包括:
所述发送设备向接收设备发送多个数据包,所述多个数据包用于承载RDMA数据,所述多 个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指 示所述第一数据包为一RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一 RDMA数据流的最后一个数据包;
所述发送设备接收来自所述接收设备的ACK报文,所述ACK报文中包括第一速率,所述 第一速率为所述发送设备和所述接收设备之间的网络设备根据第一参数确定出的速率,所述 第一参数中包括所述多个数据包中携带的头标签和尾标签的数量;
所述发送设备按照所述第一速率发送数据包。
本方面提供的方法,发送设备通过对RDMA数据流中的首个数据包和最后一个数据包设置 标签,使得第一网络设备,例如交换机能够准确地计算出RDMA数据流的数量,并利用该RDMA 数据流的数量和公平算法计算第一速率,由于所述第一网络设备按照数据流的数量合理地分 配出口带宽,所以保证了各个发送设备在按照该第一速率发送数据包的总带宽不超过第一网 络设备的出口带宽,进而可避免发生拥塞。
此外,本方法能够准确地计算出RDMA数据流的数量,并快速计算第一速率,从而使得发 送设备一次性地按照该第一速率发送设备包,避免采用探测式的方式逐步地改变发送速率, 减少耗时,并能够使的各个发送设备的RDMA数据流速率快速地收敛到第一速率,保证链路带 宽的充分利用。
结合第三方面,在第三方面的一种实现方式中,所述方法还包括:所述发送设备将待发 送的至少一个RDMA数据流的数据包,放入所述发送设备的至少一个发送缓存队列中,每个所 述发送缓存队列用于存储一个RDMA数据流的数据包,其中,放入在一发送缓存队列的第一个 数据包为携带有头标签的第一数据包,放入在一发送缓存队列的最后一个数据包为携带有尾 标签的第一数据包。
可选的,在发送设备为数据包设置标签的过程中,如果该待发送缓存队列中只包含一个 数据包,则在该数据包中携带头标签;并且在该缓存队列中生成一个空数据包,设置该空数 据包中携带尾标签。
可选的,如果该待发送的缓冲队列中包含两个或两个以上数据包,则在第一数据包中携 带头标签,在最后一个数据包中携带尾标签,对中间的数据包不携带标签。
可选的,所述发送设备向所述第一网络设备发送携带有标签的数据包,具体包括:发送 设备每设置完一个数据包的标签,按照缓存队列的顺序,将该携带有标签的数据包发送给第 一网络设备。
结合第三方面,在第三方面的又一种实现方式中,所述方法还包括:在所述发送设备为 第一数据包设置标签的过程中,所述发送设备将其自身设置为开启状态,所述开启状态表示 所述发送设备正在为数据包设置标签;当所述发送设备在设置完第一数据包的尾标签,或者, 发送完携带有尾标签的第一数据包后,将所述开启状态切换为关闭状态,所述关闭状态表示 所述发送设备完成对数据包标签的设置。
本实现方式中,通过对发送设备进行状态设置,能够快速判断出发送设备是否在进行标 签设置,便于发送设备的各个结构部件工作间的协调和实现。
第四方面,本申请还提供了一种网络设备,所述网络设备包括:接收单元、处理单元和 发送单元,此外,还可以包括存储单元等其他单元或部件;且这些单元用于执行第一方面及 第一方面各实现方式,或第二方面中的方法,以使各个发送设备按照网络设备计算的第一速 率发送数据包的总速率不超过第一网络设备的出口速率,进而避免了网络设备出口发生拥塞。
可选的,所述网络设备包括交换机或路由器等。
第五方面,本申请还提供了一种发送设备,所述发送设备包括:接收单元、处理单元和 发送单元等功能单元,用于执行上述第三方面及第三方面各个实现方式中的方法。
第六方面,在具体的硬件实现层面,本申请还提供了一种网络设备,例如交换机,包括 收发器、处理器和存储器,所述存储器中存储有程序和指令,所述处理器可以执行所述存储 器中所存储的程序或指令,从而实现上述第一方面以及第一方面的各种实现方式,或第二方 面中的网络速率计算方法。
第七方面,本申请还提供了一种物理机,该物理机可以为发送设备或者为接收设备,进 一步地,所述物理机包括:收发器、处理器和存储器,所述存储器中存储有程序和指令,所 述处理器可以执行所述存储器中所存储的程序或指令,从而实现上述第三方面以及第三方面 的各种实现方式中的网络速率计算方法。
第八方面,本申请还提供了一种计算机存储介质,该计算机存储介质可存储有指令,该 指令执行时可实现本申请提供的网络速率计算方法各实施例中的部分或全部步骤。
第九方面,本申请还提供了一种RDMA网络系统,该系统包括至少一个发送设备、至少一 个交换机和接收设备,具体地,每个所述发送设备用于向交换机发送数据包,其中,部分数 据包的包头中携带有头标签或尾标签,交换机根据一定时间统计的标签数量确定RDMA数据流 的数目,并根据该RDMA数据流的数目和公平算法计算第一速率,并将该第一速率发送给下一 跳设备;如果所述下一跳设备是接收设备,则接收设备在接收到来自交换机的第一速率后, 提取并通过ACK报文的方式将所述第一速率发送给对应的至少一个发送设备,以使每个所述 发送设备按照该第一速率发送数据包,由于各个发送设备按照第一速率发送的数据包的速率 总和不会超过交换机的出口速率,所以能够有效地避免交换机出口发生拥塞。
本申请提供的网络速率计算方法和装置,通过发送设备在发送的数据包中设置标签,使 得中间的网络设备能够准确地确定各个更新周期内RDMA数据流的数目,进而能够快速地计算 出第一速率,避免采用探测式的方法逐步调整发送设备的发送速率,节约了耗时。
此外,在RDMA网络动态变化时,第一网络设备能够根据一个更新周期内统计的数据包的 标签数量快速地计算出第一速率,并指示各个发送设备快速地按照该第一速率发送数据包, 从而还避免了发送设备的发送速率更新不及时导致汇聚到第一网络设备的入口速率总和超过 出口速率,导致拥塞。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介 绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
图1为本申请提供的一种RDMA网络采用零拷贝方式读写数据的示意图;
图2为本申请提供的一种RDMA网络架构的示意图;
图3为本申请提供的一种网络速率计算方法的流程图;
图4为本申请提供的一种交换机状态转换的示意图;
图5为本申请提供的一种标签设置方法的流程图;
图6为本申请提供的一种发送设备的形态示意图;
图7为本申请提供的一种网络速率计算方法的流程图;
图8为本申请提供的一种RDMA网络架构的示意图;
图9a为本申请提供的一种基于RRCP的动态速率变化的示意图;
图9b为本申请提供的一种基于RCP的动态速率变化的示意图;
图10a为本申请提供的另一种基于RRCP的网络架构的示意图;
图10b为本申请提供的一种比较RRCP和RCP下公平速率波动变化的示意图;
图11为本申请提供的一种网络设备的结构示意图;
图12为本申请提供的一种交换机的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的 上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中的技术方案作详 细的说明。
在对本申请实施例的技术方案说明之前,首先对本申请的技术场景进行说明。本申请各 个实施例的技术方案应用于RDMA网络,RDMA通过网络把资料直接传入计算机的存储区,将 数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,进而可避免 占用计算机的处理资源,RDMA消除了外部存储器复制和文本交换操作,避免了数据在发送设 备和接收设备之间多次拷贝,进而大幅缩减了传输延迟,并且,还能够释放了内存资源,使 得更多的CPU资源可以分配给用户使用。
为了提高RDMA网络的性能,减少拥塞,要求RDMA的数据流能迅速公平分享网络带宽, 例如交换机的出口带宽或出口容量,所述出口容量是指网络设备的一个出口最大可以通过的 总流量或者带宽,在本申请中,由于网络设备的一个出口只通过一个线路连接至下一跳设备, 所以,如下各实施例中,网络设备的出口带宽或出口容量等于链路容量。进一步地,所述链 路容量指一条链路最大允许通过的总流量或总带宽,本申请中,所述的链路可认为是从一个 节点到相邻节点的一段物理线路(cable或光纤)。在实际情况中,所述一端物理线路可以被 划分为多个链路,例如,一条光纤可以通过多个不同的波长,每个波长可认为对应一条链路。
需要说明的是,本申请所述的带宽和流量的含义相同,其单位可以通过每秒比特数(bits per seconds,简称:bps)表示。所述带宽(bandwidth)为通信领域中的专有名词,常用于 通信和信号处理中。所述流量可定义为单位时间内通过一条链路的数据流的数量,速率包括 网络设备指示发送设备发送数据包的第一速率,其物理量单位可以通过bps表示,且网络设 备分配给发送设备的速率可以认为是该网络设备分配给所述发送设备的带宽或流量。
所述公平分享网络带宽是指网络设备将其出口带宽合理地分配给各个发送设备,以使不 同的发送设备按照相同的速率发送数据包。其中,一个发送设备将RDMA数据以数据包或报文 的方式发送给网络设备,RDMA数据从一发送端到一网络设备之间的流向可称为一个RDMA数 据流。
目前的,网络设备指示各个发送设备发送数据包的速率是根据发送设备上一个更新周期 的状态来确定,或者根据上一个时刻发送设备的状态逐步地调整发送速率,进而导致发送设 备从初始速率变化到公平速率(Equilibrium Rate,ER)所需的时间较长,尤其对于在网络 发生动态变化时,发送设备的发送速率不能及时变化会导致汇聚在网络设备入口的总速率超 过其出口速率,进而发生拥塞。
为解决网络拥塞,本申请提出了一种对RDMA数据流标记的机制。该机制主要是利用RDMA 网卡的特性,发送设备通过在数据流的起始和结束时刻对发送的数据包进行标记,例如在数 据包中携带头标签或者尾标签。进而使得接收的网络设备能够利用标签的数目确定数据流的 数目,并利用该数据流的数目快速计算出分配给各个发送设备的公平速率,从而指示各个发 送设备按照计算的公平速率来发送数据包,避免各个发送设备汇聚到网络设备入口的总速率 超过出口速率,发生拥塞。
进一步地,参见图2为本申请实施例提供的一种RDMA网络架构的示意图。该网络架构中 包括发送设备(Sender)、第一交换机(Router1)、第二交换机(Router2)和接收设备(Receiver)。此外,还可以包括其它的网络设备,例如服务器、基站、路由器等,本申请不 予限制。
本申请的一实施例提供了一种网络速率计算方法,该方法应用于通信系统中的第一网络 设备,以第一网络设备为第一交换机为例,如图3所示,该方法具体包括如下:
第一交换机在多个更新周期的每个更新周期内,执行以下步骤:
步骤301:第一交换机在更新周期内接收自至少一个发送设备的多个数据包,其中,所 述多个数据包中包括至少一个第一数据包。
其中,所述更新周期为第一交换机计算一次网络速率的时间间隔,具体地,所述更新周 期的时长可根据第一交换机能力自定义。可选的,所述更新周期为无阻塞情况下一个往返延 迟(Round Trip Time,RTT)的时间。
所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一个 RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一个RDMA数据流的最后 一个数据包。所述第一数据包泛指携带有头标签或尾标签的一类数据包。
可选的,所述头标签或尾标签被配置在数据包的包头位置。
步骤302:第一交换机统计所述更新周期内接收的所述第一数据包的数量,并根据所述 数据包的数量确定该更新周期内的第一数据流的数目。
具体地,所述第一交换机根据所述第一数据包的数量确定第一数据流的数目,包括:
第一交换机解析接收的来自各个发送设备的数据包,其中,有的数据包中携带标签,有 的不携带标签。第一交换机在更新周期内统计所有的包括头标签的数据包数量,和包括尾标 签的数据包;计算所述头标签的数据包数量与所述尾标签的数据包数量的差值,以得到所述 第一数据流的数目。
例如,第一交换机当接收到一个携带有头标签的第一数据包时,对应的第一数据流的数 目增加1;如果接收到一个携带有尾标签的第一数据包,则将所述第一数据流的数目对应减1。
步骤303:第一交换机根据第一参数计算所述更新周期内的第一速率(或公平速率),所 述第一参数包括第一流量和所述更新周期内的第一数据流的数目。
所述第一流量为所述第一网络设备的出口带宽或出口容量,所述第一速率为根据公平算 法,每个所述第一数据流使用所述第一流量中的部分流量发送数据的速率。所述公平算法包 括TCP算法。
步骤304:第一交换机向下一跳设备发送第二数据包,所述第二数据包中包括所述第一 速率。所述下一跳设备包括:第二交换机或接收机。
可选的,第一交换机在发送所述第二数据包之前,还包括:将所述第一速率与来自接收 设备的数据包的期望公平速率进行比较,并将较小的速率通过第二数据包发送给下一跳设备。 一般地,每个发送设备设置数据包的期望公平速率为正无穷大,所以相比较而言,第一交换 机计算出的第一速率为较小值,进而将该第一速率发送给下一跳。
本实施例提供的方法,网络设备通过统计流经一网络设备的数据流的数目,能够结合网 络中实际的数据流的传输情况计算网络设备可分配给流经该网络设备的数据流的发送速率, 从而为调整数据流的发端的发送速率提供更准确的依据,进而减少RDMA网络拥塞。
此外,本申请提供的方法,通过RDMA数据流的数目和公平算法可以直接计算出第一速率, 进而可以指示发送设备直接按照该第一速率发送数据包,相比于探测式地利用前一个更新周 期逐步计算的速率的方法,节约了计算耗时,使得发送设备快速地达到第一速率,同时按照 该第一速率发送数据包还保证了发送设备与网络设备间链路带宽的充分利用。
具体地,在上述步骤303,第一交换机计算一个更新周期内的第一速率的过程中,可根 据第一交换机不同的状态来计算所述第一速率。进一步地,如图4所示,交换机维护一个本 地状态机,定义交换机包括三个状态:探测旁路状态(PB),稳定状态(S),探测状态(P)。
第一交换机的初始状态为PB。定义计算第一速率R(t)的更新周期为T,通常T为无阻 塞情况下一个RTT的时间,所述往返延迟为从发送端发送数据包到收到该数据包的确认报文 ACK所需的时间。在每个更新周期末端时刻t,第一交换机需要重新计算一次第一速率R(t)。 所述R(t)与当前交换机状态、t时刻统计的第一数据流的数目N(t)、第一交换机的出口 带宽C、t时刻第一交换机的平均流量y(t),以及第一网络设备缓存队列深度Q(t)和第一交换机的多条数据流的RTT的移动平均值d有关。
其中,所述平均流量y(t)可定义为更新周期的末端时刻统计的通过第一交换机出口的 数据量与更新周期时长T的比值,所述缓存队列深度Q(t)可以通过缓存队列的字节长度表 示。
当检测到N发生变化时,第一交换机利用公式(1)计算第一速率。
公式(1)
其中,α,β为调节参数,且为常量,用于调节R的调节幅度,所述调节幅度越大,发送设备由初始速率变化到第一速率的时间越短,即汇聚到第一速率的速度越快;相反,调节幅度越小,表示发送设备需要变化的发送速率幅度越小,稳定性越好。
进一步地,C/N(t)表示将第一交换机的出口带宽C合理地分配给N个RDMA数据流,α·(C-y(t))/N(t)表示将上一个更新周期中剩余的带宽合理地分配给N个RDMA数据流,表示若上一个更新周期在交换机上还有缓存队列的数据,则需要降低第一速率 R(t)以清空缓存队列。
进一步地,所述α和β的具体值可根据网络状态和用户需求制定,本实施例不予限制。
第一交换机在PB状态下,在m个连续更新周期内,检测任意两个更新周期T内通过该交 换机的平均流量之间的变化值,其中,m可根据网络环境确定,如m=5。如果任意两个更新周 期的平均流量的变化值在一定预设范围内(如5%),则将第一交换机由PB状态切换至S状态, 表示该第一交换机处于稳定状态。
在第一交换机处于S状态的情况下,所述第一速率可通过公式(1)计算获得。
此后,第一交换机在每个更新周期内继续监测平均流量和第一数据流的数目N,若N发 生变化,则第一交换机返回PB状态;若N未发生变化,则继续监测在连续的P个更新周期内, 第一交换机的流量利用率是否小于预设比例(如90%),所述P为大于等于2的正整数,所述 第一交换机的流量利用率用于表示所述第一交换机所提供的流量被通过第一交换机的数据流 使用的情况。进一步地,所述第一交换机的流量利用率为已使用的链路流量与第一交换机的 链路容量的比值。其中,P可根据网络环境确定,本实施例对此不予限制。
如果所述第一交换机的流量利用率低于预设百分比,即表示在多瓶颈 (multi-bottleneck,MB)的RDMA网络条件下,则第一交换机将S状态切换至P状态。
在第一交换机处于P状态下,仍会有剩余带宽未被利用,因此可以采用探测式流量控制 机制更新第一速率R(t),例如采用速率控制协议(Rate Control Protocol,RCP)算法, 公式(2)来计算R(t),并以此调节公平速率使剩余带宽能够被分配使用,进而保证链路的 充分利用率。
公式(2)
其中,R(t-T)为第一交换机在当前更新周期的上一个更新周期T内计算的公平速率。
若N发生变化,则第一交换机跳转至PB状态。并且,在每个交换机计算出R之后,将R与数据包头中的原始R值(比如第二公平速率)进行比较,取二者中的较小值作为新的R值,并将该新的R值通过包头封装,发送给下一跳设备,例如,发送给第二交换机或者接收设备。
需要说明的是,本实施例中仅例举了采用公式(1)和公式(2)两种公平算法计算公平 速率,还可以对公式(1)和公式(2)进行相应地变形,或者采用其它方法得到公平速率,对此,本申请不做具体限制。
在第一交换机发送携载第一公平速率的数据包之后,接收的下一跳设备需要接收并进一 步处理该数据包,具体过程可以包括以下两种情况:
一种可能的情况是,所述第二交换机接收到来自第一交换机的数据包,该数据包中的包 头中携带第一功率,此外,第二交换机还接收来自第一交换机的数据包,所述数据包中可能 携带标签,也可能不携带标签;第二交换机根据获取的第一交换机的数据包标签数量确定当 前更新周期内活跃数据流的数目。
第二交换机按照上述三种不同状态下公平速率R的计算方法,先确定其所在的状态,在 根据当前状态和RDMA数据流的数目确定计算R的公式,并计算出新的R值,如第三公平速率。 最后比较第三公平速率与第一公平速率的大小,取二者较小值发送给下一跳设备。具体地, 计算所述第三公平速率的方法与前述计算第一公平速率的方法相同,可参考第一交换机计算 第一公平速率的方法,不再赘述。
另一种可能的情况是,接收设备接收来自第一交换机或第二交换机的数据包,所述数据 包的包头中携带公平速率,且所述公平速率为较小值,所述接收设备解析所述数据包,得到 所述公平速率R,对所述公平速率R进行封装,生成ACK报文,并将该ACK报文发送给至少 一个发送设备,以使每个所述发送设备均按照所述ACK报文中的公平速率发送数据包。
需要说明的是,本实施例中,发送设备、交换机或接收设备在发送数据包时,在数据包 中都携带本身的IP地址,和发送端的IP地址,以使接收端设备能够根据所述IP地址确定需 要转发的目标对象。例如,发送设备在向第一交换机发送RDMA数据包中包括其自身的IP地 址。
本实施例还提供了一种交换机的状态机维护机制,具体包括:定义交换机的三种状态: 探测旁路状态(PB),稳定状态(S)和探测状态(P)。其中,交换机的初始状态为PB。当RDMA 数据流的数目N发生变化时,交换机跳转至PB状态,此时,发送设备可以按照接收到的公平 速率进行快速地切换;当速率维持在某个范围内一段时候后切换至S状态;在进入S状态后 若监测到交换机的流量利用率低于某阈值时,即在多瓶颈链路下,将交换机的状态切换至P 状态,并采用探测式机制将剩余带宽继续分配、调整速率,以保证多瓶颈链路下剩余的带宽 被充分利用。
本实施例,利用交换机的状态机维护,首先保证在RDMA流数目变化时快速调整至新的公 平速率;其次在多瓶颈链路下将未利用的剩余带宽继续分配,并且通过引入稳定状态来保证 状态机状态过渡的平稳,避免了由于网络变化导致通过交换机的入口带宽超过其出口带宽发 生拥塞,同时还对多瓶颈情况下的剩余带宽做充分利用。提高了链路带宽的利用率。
此外,在本实施例中,对于发送设备端还提供了一种标签设置方法,用于为数据包打标 签,该方法可以应用于发送设备或发送端,具体地,如图5所示,方法包括:
步骤501:发送设备向接收设备发送多个数据包,所述多个数据包用于承载RDMA数据, 所述多个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签 用于指示所述第一数据包为一RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据 包为一RDMA数据流的最后一个数据包。
其中,在所述发送设备和所述接收设备之间还包括至少一个网络设备,例如第一交换机。
具体地,发送设备利用网卡特性获取RDMA数据。所述RDMA网络中数据积压在网卡中, 所以网卡预先知道后续是否有数据要发送。
对发送设备而言,当上层应用需要发送数据时,会生成多个WQE请求,所述多个WQE请 求按照预设顺序排列生成缓存队列,并存储在发送设备的buffer中,每当发送设备处理完一 个WQE请求,网卡就会在buffer里找到对应的数据,并发送给交换机。
其中,所述缓存队列中可以包括多个WQE,每个WQE可对应至少一个数据包,发送设备 在该缓存队列的所有数据包中,对第一个数据包设置头标签,对最后一个数据包设置尾标签。
可选的,如果缓存队列中只有一个数据包,则将该数据包中设置头标签,并且设置一个 空数据包作为最后一个数据包,并对该空数据包设置尾标签。如果缓存队列中有两个或两个 以上数据包,则可以按照预设顺序设置头标签和尾标签。所述预设顺序可以由系统预先生成, 还可以根据发送设备接收到外部服务请求的顺序确定,具体地,每个服务请求可对应生成一 个WQE,且将先接收到的服务请求对应的WQE的优先级设置为高,将后接收到的服务请求对 应的WQE优先级设置为低。
其中,所述发送设备将待发送的至少一个RDMA数据流的数据包,放入所述发送设备的至 少一个发送缓存队列中,每个所述发送缓存队列用于存储一个RDMA数据流的数据包,其中, 放入在一发送缓存队列的第一个数据包为携带有头标签的第一数据包,放入在一发送缓存队 列的最后一个数据包为携带有尾标签的第一数据包。
在具体实现中,发送设备可以先生成至少一个发送缓存队列,然后在该缓存队列中设置 头标签和尾标签,或者,先对待发送的多个数据包设置标签,然后再生成发送缓存队列;或 者,发送设备还可以在为数据包设置标签的同时生成缓存队列。
步骤502:所述发送设备接收来自所述接收设备的ACK报文,所述ACK报文中包括第一 速率,所述第一速率为所述发送设备和所述接收设备之间的网络设备根据第一参数确定出的 速率或公平速率,所述第一参数中包括所述多个数据包中携带的头标签和尾标签的数量。
所述接收设备为接收端,其中,一个发送设备与一个接收设备之间的连接(connection) 可以称为一个通路,即端到端路径(end-to-end path),在该发送设备与接收设备之间还包 括第一交换机,则所述发送设备与该第一交换机之间为一条链路。
步骤503:所述发送设备按照所述第一速率发送数据包。
本实施例中,发送设备通过对缓存队列的多个数据包设置标签,进而为交换机统计RDMA 数据流的数目提供了便利,即通过记录设置有标签的数据包的数目,从而为快速计算公平速 率提供了依据。
另外,在前述步骤501,发送设备发送携带有标签的多个数据包的过程中,所述多个数 据包中还包括第二数据包,所述第二数据包中携带有期望公平速率,所述期望公平速率用于 表示所述发送设备预设的一数据流的数据的发送速率,所述第一参数还包括所述期望公平速 率。可选的,所述期望公平速率为无穷大。
此外,为了提高发送设备设置数据包标签的效率连续、不中断,本实施例中还对发送设 备的状态进行设置,具体包括:设置发送设备的状态包括:“开启”(ON)状态和“关闭”(OFF) 状态。
如果发送设备当前是OFF状态,则标记第一个数据包为“头”标签,并将所述发送设备 的状态切换为ON;如果当前是ON状态,并且满足关系式:sq_wqebb_counter= sq_wqebb_processed_counter,表示此时接收的是最后一个WQE,则标记当前WQE的最后一 个数据包为“尾”标签,并将发送设备的状态切换为OFF;或者在最后一个数据包发送之后 的一段时间,发送一个设有“尾”标签的数据包,将状态切换为OFF。
可选的,如果发送设备收到“头”标签的数据包或者携带有“请求速率”的ACK,则将当前数据包的下一个数据包标记为“请求速率”数据包。
在发送设备设置标签的过程中,在设置标签时,将发送设备的状态切换至ON,以表示自 己正在处于忙碌状态,暂时无法做其它的处理,并显示在网络中,从而避免网络中的其它网 络设备向该发送设备发请求,而影响网络性能。当标签设置完成时,即设置完最后一个“尾” 标签时,将状态切换至OFF,表示自己当前处于空闲状态,可以处理外部服务请求。这种发 送设备状态切换的方式,能够避免在发送设备一端由于数据处理不及时导致网络拥塞,进一 步地提高了设置效率和资源的利用率。
需要说明的是,本实施例中,发送设备在设置为头标签和尾标签之后可以错开时间先后 发送数据包,或者,同时发送设有头标签和尾标签的数据包,本实施例对此不做限制。
在一种具体实现中,如图6所示,为本申请实施例提供的一种发送设备的形态示意图。 该示例以Mellanox CX4为基础,主要包括6个基本模块:(101)软件/应用层模块以及驱动 程序,用于接收用户请求和管理各个下级模块,以及发起数据;(102)网卡HCA,负责数据包的打包和发送;(103)门铃记录器(Doorbell Record)中的计数器和存储器,用来控制HCA的发包时间;(104)数据包载荷(Payload)存储器,用于存放数据包的净负荷;(105)队列存储器,包括存放WQE工作队列和发送队列;(106)QP存储器,用于存放RDMA数据流的 QP。其中,Doorbell Record中的计数器sq_wqebb_counter用于记录当前已经提交的WQE数 量。
本实施例中,还增加一个计数器,sq_wqebb_processed_counter,用于记录当前已经完 成处理的WQE数量。当sq_wqebb_processed_counter=sq_wqebb_counter,表示这是最后 一个WQE。此时,在当前最后一个数据包上标记“尾”标签,并将状态切换到OFF状态;如果当前是OFF状态,并且有新的WQE。那么在第一个数据包,标记“头”标签,并切换为ON 状态。
进一步地,发送设备为了实现基于RDMA速率控制协议(RDMA Rate ControlProtocol, RRCP)的RDMA网络通信,具体实施步骤如下:
第1步:建立连接,初始化QP context;
第2步:将待发送数据导入注册后的内存;
第3步:创建K个WQE,并下发SQ;
第4步:更新doorbell record,计数器sq_wqebb_counter=K;
第5步:更新网卡寄存器,出发doorbell;
第6步:读取WQE;
第7步:读取Doorbell Record,获得计数器sq_wqebb_counter的值,K;
第8步:读取payload;
第9步:读取控制信息,IP,MAC地址等。
第10步:对数据包进行“头”、“尾”标签设置,并且对应地切换发送设备的状态;具体 过程可参见前述发送设备状态切换的过程,不再赘述。
第11步:将打了标记的数据包发送给交换机。可选的,发送设备每完成一个数据包的标 签设置,就将该数据包发送给交换机。对于中间一系列未被设置标签的数据包,发送设备也 将其逐一地发送给所述交换机。
为了说明上述实施例的方法,本申请还提供了一个具体的实施例,如图7所示,应用于 上述包括发送设备、交换机和接收设备的RDMA网络,该方法步骤。
具体包括:
初始时刻发送端以R0的初始速率发送第一数据包,该第一数据包的包头上设置有头标 签,交换机接收到该第一数据包后,检测到头标签后将活跃数据流的数目增加1,即N′=N+1, 并计算出公平速率R=C/N′,然后发送给接收端,接收端接收到来自交换机的公平速率后, 提取、封装,然后以ACK方式反馈给发送端,发送端接收到接收端的ACK之后,记录第一次 发送数据包的往返时间(Round Trip Time,RTT),比如为RTT1。
同理地,发送端发送第二数据包,由于第二数据包为WQE的中间一个数据包,所以未对 其设置标签,并且该第二数据包中包括期望公平速率R=∞,交换机在接收到该第二数据包后, 计算在无剩余带宽的情况下,分配N′条活跃数据流,即公平速率为R=C/N′;接收端在接收 到交换机发来的公平速率后将其转发给发送端,此时,发送端记录第二数据包的往返时间, 为RTT2。
同理地,发送端发送第三数据包,并记录接收端反馈的公平速率R=C/N′,其中,所述 第三数据包为最后一个数据包,且其包头上标记有“尾”标签,所以对应的活跃数据流的数 目减1。
在一个具体的实施例中,如图8所示,在RDMA网络中,基于RRCP实现网络中的带宽共 享和流量控制,达到数据流的高速稳定传输。
本实施例采用由四个RDMA发送端,一个交换机和一个接收端组成的4:1汇聚网络,链路 容量C=40Gbps,链路延时1μs。表1列出四个发送端分别发送四个数据流(flow,简称:f) 的开始和结束时间。
发送端1 | 发送端2 | 发送端3 | 发送端4 | |
起始时间(秒) | 2.000 | 2.001 | 2.002 | 2.003 |
结束时间(秒) | 2.007 | 2.004 | 2.005 | 2.006 |
表1
其中,每个发送端通过标记数据流的开始和结束时刻,使得交换机可以准备获取通过的 数据流数目。交换机再根据数据流的数目计算合理地分配的带宽。
本实施例能够让数据流在网络动态变化时快速汇聚至公平速率。例如,对于发送端1从 2.000s到2.007s之间,每隔0.001s会有数据流进入或离开,形成网络的动态变化。交换机 通过实时监测数据包中是否携带头标签和尾标签来更新通过交换机的RDMA数据流数目N,从 而更新计算的公平速率R值,发送端再使用更新的R值发送数据流。
具体实施过程如下:
步骤(1):在2.000时刻,发送端1发出数据流1的第一个数据包并在包头中设置头标 签,数据包头中的期望公平速率R=∞,交换机收到该头标签的数据包后,更新数据流数目N=1;
步骤(2):在第一个更新周期T末根据公式(1)开始第一次计算公平速率R,将计算出的 R与包头中的期望公平速率比较,选择较小值重新打包进数据包,并发送给接收端;
步骤(3):接收端从数据包头提取R值,生成ACK报文并将R值打包封装,将ACK反馈给发送端;
步骤(4):发送端收到ACK报文,计算RTT(即发送端收到ACK的时刻减去数据包发出的时刻),提取R值,更新发送端发送数据流1的速率为R,并将RTT值打包进数据包头以便 交换机再次计算R时使用;
步骤(5):大约经过3个RTT之后,数据流1的发送速率达到稳定;
步骤(6):在2.001时刻,发送端2开始发送数据流2,并标记第一个数据包的包头为头标签,交换机收到头标签的数据包后更新活跃数据流的数目N=2,之后重复上述步骤(2)至步骤(5)速率计算和更新过程;
步骤(7):在2.002时刻,发送端3开始发送数据流3,交换机处更新N=3,之后重复上 述步骤(2)至步骤(5)速率计算和更新过程;
步骤(8):在2.003时刻,发送端4开始发送数据流4,交换机处更新N=4,之后重复上 述步骤(2)至步骤(5)速率计算和更新过程;
步骤(9):在2.004时刻,发送端4停止发送流4,并标记最后一个数据包的包头为尾标签,交换机收到尾标签的数据包后更新N=3,之后重复上述步骤(2)至步骤(5)速率计 算和更新过程;
步骤(10):在2.005时刻,发送端3停止发送数据流3,交换机处更新N=2,之后重复上述步骤(2)至步骤(5)速率计算和更新过程;
步骤(11):在2.006时刻,发送端2停止发送数据流2,交换机处更新N=1,之后重复上述步骤(2)至步骤(5)速率计算和更新过程;
步骤(12):在2.007时刻,发送端1停止发送数据流1,交换机处更新N=0,实施过程结束。
有益效果:
如图9a所示,展示了四条数据流分别和汇总后随时间的速率变化情况,当网络状态发送 动态变化时,交换机可准确获取活跃数据流的变化,并快速调整公平速率。参见图9a可见随 网络变化时,数据流的发送速率变化很快,能够快速地切换到公平速率,响应延迟非常短。
相比于图9b所示的RCP的动态速率变化情况,本申请基于RRCP公平速率计算方法,汇 聚需时间仅需要2至3个RTT,与相同拓扑和数据流分布下的RCP(图9b)相比,汇聚速度提高了约15倍,同时,RRCP的稳定性也优于RCP,例如,图9a所示的RRCP动态汇聚速率较 快,线条平滑,而图9b所示的RCP汇聚的速率波动较大(可见锯齿波纹)调整时间较长。
本实施例提供的方法可以准确获取活跃数据流的数目,从而可以直接计算得到公平速率, 并且在2个RTT时间之内将此速率告知给发送端,从而使得汇聚到公平速率所需的时间较短、 准确度较高。
本实施例提供的方法,在具有多瓶颈交换机的RDMA网络中,基于RRCP实现网络中的带 宽共享和流量控制,还可以充分利用探测状态剩余的部分带宽。
如图10所示,在一个RDMA网络中,链路容量C=40Gbps,链路延时1μs。四个发送端S1, S2,S3和S4分别向四个接收端R1,R2,R3和R4同时发送数据流f1,f2,f3和f4。监测交 换机1到交换机2之间的链路L1-2的带宽利用率。
具体实施过程如下:
步骤1:初始时刻,S1至S4同时开始分别向R1至R4发送数据流,并在第一个数据包上 打“头”标签。
步骤2:各个交换机收到不同数据流发来的“头”标签的数据包,分别更新和维护活跃 数据流的数目N,并处于PB状态。其中,对于f1,由于只经过一处瓶颈即交换机1,该交换机1收到f1和f2的设有头标签的数据包,因此活跃数据流的数目N=2,其公平速率为C/2;根据上述公式(1)计算得出分配给f1的公平速率R约为C/2。f2经过五个交换机1~5,3个瓶颈,包括在交换机1入口处与f1竞争,在交换机3入口处与f3竞争,以及在交换机4入口 处与f3,f4竞争。交换机1收到f1和f2的数据包后N=2,交换机3收到f2和f3的数据包 后N=2,交换机4收到f2、f3和f4的数据包后N=3。因而f2在三个瓶颈处算得的公平速率 分别为C/2,C/2,C/3,最终取最小值为C/3,根据公式(1)计算得出分配给f2的R也约为 C/3,因而在初始PB状态时,分配给链路L1-2的总带宽约为C/3+C/2=5C/6。
步骤3:监测此后的链路L1-2流量,如果连续5个更新周期T内其波动率均在5%以内, 速率达到稳定,则交换机1进入S状态。
步骤4:继续监测链路L1-2流量,如果连续3个更新周期T内均小于设定阈值0.9C,则 切换至P状态,开始使用RCP的方式即公式(2)分配剩余0.1C的带宽,直到链路带宽都被充分利用。由于f2受到下游瓶颈限制,且下游链路带宽已被充分利用,所以链路L1-2的剩余带宽实际被分配给了f1,合流的总流量达到总带宽C。
参见图10b,展示了从交换机1到交换机2之间的链路带宽随时间的变化情况。从图中 可见在多瓶颈网络中,基于RRCP的公平速率计算方法,数据流可以快速汇聚到公平链路,之 后可以根据带宽利用情况调整速率以保证充分利用链路资源。而对比于相同拓扑和数据流分 布下的RCP,其需要从很低的初始速率R0逐步调整到链路满带宽,延时较长;而RRCP的公 平速率汇聚需时只要2至3个RTT,然后再从该较高的速率调整至链路满带宽所需的时间较 短,一般地,经过实验数据测量,通过RRCP的速率调整所需的总延时与RCP相比减少了约一 半时间。
本实施例,在多瓶颈链路下将未利用的链路带宽继续分配,并通过引入稳定状态来保证 状态机状态过渡的平稳。以及,通过监测和分配链路剩余带宽,保证了链路带宽的充分利用。
需要说明的是,上述各个实施例中,在默认情况下,交换机在得到数据流数目N后将链 路带宽C合理地分配。若对不同的数据流分配不同的优先级,可以将带宽C按比例分配给不 同的数据流,实现服务质量(Quality of Service,QoS)分级。
对应于上述各个方法的实施例,本申请还提供一种网络速率计算装置,该装置可以应用 于RDMA网络中的网络设备,用于实现如图3、图5所述的网络速率计算方法。
如图11所示,所述网络设备可以包括:接收单元1101、处理单元1102和发送单元1103。 此外,所述网络设备还可以包括其它单元和部件,例如存储单元等。
接收单元1101,用于在多个更新周期的每个更新周期内,接收自至少一个发送设备的多 个数据包,其中,所述多个数据包中包括至少一个第一数据包,所述第一数据包携带有头标 签或者尾标签,所述头标签用于指示所述第一数据包为一RDMA数据流的首个数据包,所述尾 标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
处理单元,用于根据所述更新周期内接收的所述第一数据包的数量,确定所述更新周期 内的第一数据流的数目,所述更新周期内的第一数据流的数目为在所述更新周期内通过所述 网络设备传输的RDMA数据流的数目;
所述处理单元,还用于根据第一参数计算所述更新周期内的第一速率,所述第一参数包 括第一流量和所述更新周期内的第一数据流的数目,所述第一流量为所述网络设备的出口带 宽,所述第一速率为根据公平算法,每个所述第一数据流使用所述第一流量中的部分流量发 送数据的速率;
发送单元,用于向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率。
可选的,在本实施例的一种具体的实现方式中,所述处理单元1102,具体用于计算包括 所述头标签的第一数据包的数量和包括所述尾标签的第一数据包的数量的差值,以得到所述 第一数据流的数目。
可选的,在本实施例的另一种具体的实现方式中,所述处理单元1102,具体用于在检测 到相邻两个更新周期内的所述第一数据流数目不同的情况下,或者,在任意相邻的两个更新 周期内通过所述网络设备的平均流量的变化值在预设范围内的情况下,则按照第一公式计算 所述第一速率;
其中,所述网络设备的平均流量为通过所述网络设备出口的数据量与更新周期时长的比 值,所述第一公式为:
其中,R(t)表示t时刻的所述第一速率,C表示所述网络设备的出口带宽,y(t)表示t 时刻所述网络设备的平均流量、T表示更新周期的时长,Q(t)表示所述网络设备的缓存队列 的深度,d表示通过所述网络设备的多条数据流的往返延迟RTT的移动平均值,N(t)表示所 述第一数据流的数目,α和β表示调节参数,且为常量。
可选的,在本实施例的又一种具体的实现方式中,所述处理单元1102,具体用于在连续 的P个更新周期内所述网络设备的流量利用率均小于预设比例的情况下,则根据速率控制协 议RCP算法、所述第一流量和所述更新周期内的第一数据流的数目计算所述第一速率,所述 P为大于等于2的正整数,所述网络设备的流量利用率用于表示所述网络设备所提供的流量 被通过所述网络设备的数据流使用的情况。
可选的,在本实施例的又一种具体的实现方式中,所述网络设备为第一网络设备,所述 第一网络设备的上一跳设备为第二网络设备,所述第一参数还包括第二速率,所述第二速率 用于指示所述第二网络设备发送一个数据流的数据包的速率,
所述接收单元1101,还用于接收来自所述第二网络设备的第三数据包,所述第三数据包 中包括第二速率;
所述处理单元1102,还用于根据所述第一流量、所述更新周期内的第一数据流的数目以 及公平算法得到第三速率,以及将所述第三速率与所述第二速率中的较小值,作为所述第一 速率的值。
在具体实现中,所述网络设备可以是交换机,如图12所示,所述交换机可以包括:收发 器1201、处理器1202和存储器1203,所述交换机还可以包括更多或更少的部件,或者组合 某些部件,或者不同的部件布置,本申请对此不进行限定。
所述收发器1201用于与接收设备和发送设备等建立通信连接,从而实现公平速率的计算 和数据包发送。
其中,所述收发器1201可以包括通信模块,例如收信机和发信机、天线模块、射频等。 在本申请的不同实施方式中,所述收发器1201中的各种通信模块一般以集成电路芯片的形式 出现,并可进行选择性组合。例如,交换机接收到来自发送设备的数据包后,给处理器处理; 另外,将计算的公平速率R转发给下一跳设备。
在本实施例中,所述收发器1201所要实现的功能可以由图11所示的接收单元1101和发 送单元1103来实现,或者由处理器1202控制的收发器1201实现;所述处理单元1102所要 实现的功能则可以由处理器1202实现。
所述处理器1202为交换机的控制中心,利用各种接口和线路连接整个交换机的各个部 分,通过运行或执行存储在存储器1203内的软件程序和/或模块,以及调用存储在存储器1203 内的数据,以执行交换机设备的各种功能和/或处理数据。
所述处理器1202可以由集成电路(Integrated Circuit,IC)组成,例如可以由单颗封 装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理 器可以仅包括中央处理器(Central Processing Unit,CPU),也可以是GPU、数字信号处理 器(Digital Signal Processor,DSP)、及收发器中的控制芯片(例如基带芯片)的组合。 在本申请的各种实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
所述存储器1203可以包括易失性存储器(volatile memory),例如随机存取内存(Random Access Memory,RAM);还可以包括非易失性存储器(non-volatile memory),例如快闪存储 器(flash memory),硬盘(Hard Sisk Drive,HDD)或固态硬盘(Solid-StateDrive,SSD); 存储器还可以包括上述种类的存储器的组合。所述存储器中可以存储有程序或代码,交换机 中的处理器1202通过执行所述程序或代码可以实现所述网络设备的功能。
在具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有 程序,该程序执行时可包括本申请提供的速率计算方法的各实施例中的部分或全部步骤。
在另一个具体的实施例中,还提供了一种发送设备或者物理机,该发送设备的结构与网 络设备的结构相同,如图11所示,包括接收单元、处理单元和发送单元。
其中,发送单元,用于向接收设备发送多个数据包,所述多个数据包用于承载RDMA数据, 所述多个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签 用于指示所述第一数据包为一RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据 包为一RDMA数据流的最后一个数据包。
接收单元,用于接收来自所述接收设备的ACK报文,所述ACK报文中包括第一速率,所 述第一速率为所述发送设备和所述接收设备之间的网络设备根据第一参数确定出的速率,所 述第一参数中包括所述多个数据包中携带的头标签和尾标签的数量。
所述发送单元,还用于按照所述第一速率发送数据包。
进一步地,所述处理单元,用于在缓存队列中包括至少两个数据包的情况下,在缓存队 列中的第一个数据包设置头数据包,在缓存队列的最后一个数据包中设置尾数据包;如果在 缓存队列中只包括一个数据包,则对该数据包设置头标签,并且生成一个空数据包(不包含 具体数据,payboad为0),并在所述空数据包上设置尾标签。
可选的,在本实施例的一种具体的实现方式中,处理单元,用于将待发送的至少一个RDMA 数据流的数据包,放入所述发送设备的至少一个发送缓存队列中,每个所述发送缓存队列用 于存储一个RDMA数据流的数据包,其中,放入在一发送缓存队列的第一个数据包为携带有头 标签的第一数据包,放入在一发送缓存队列的最后一个数据包为携带有尾标签的第一数据包。
其中,对于不包含标签的数据包,在每个数据包的包头也携带期望公平速率,用于为交 换机对公平速率做比较提供便利。
可选的,在本实施例的又一种具体的实现方式中,所述处理单元,还用于在为第一数据 包设置标签的过程中,将所述发送设备设置为开启状态,所述开启状态表示所述发送设备正 在为数据包设置标签;当设置完第一数据包的尾标签,或者,发送完携带有尾标签的第一数 据包后,将所述开启状态切换为关闭状态,所述关闭状态表示所述发送设备完成对数据包标 签的设置。
可选的,在本实施例的又一种具体的实现方式中,所述至少一个数据包中还包括第二数 据包,所述第二数据包中携带有期望公平速率,所述期望公平速率用于表示所述发送设备预 设的一数据流的数据的发送速率,所述第一参数还包括所述期望公平速率。
另外,处理单元还用于记录每个数据包的发送时刻和接收到ACK报文反馈的时刻,根据 这两个时刻计算RTT,并将所述RTT发送给交换机,以使所述交换机根据RTT计算公平速率。
此外,本申请还提供了一种接收设备,该接收设备包括:接收单元、处理单元和发送单 元。
进一步地,接收单元,用于接收来自交换机的数据包,所述数据包的包头中携带有公平 速率R。
处理单元,用于提取数据包中的公平速率R,将R值封装在ACK报文中。
发送单元,用于将包括R值的ACK报文发送给发送设备。
其中,接收单元在接收的数据包中还包括发送设备的IP地址,发送单元1403根据该IP 地址确定发送端,并向其反馈ACK报文。
另外,本申请所述的接收设备和发送设备中包括的各个单元模块,具体也可以通过收发 器、处理器和存储器来实现,例如可以参考图12的结构示意图,进一步地,收发器用于数据 包的收发、处理器用于控制收发器,以及数据包标签的设置、公平速率R值的提取、封装以 及按照所述公平速率R发送数据包等。所述存储器中存储有计算机程序指令,用于存储相关 数据,例如,收发的数据包、初始速率、公平速率R、RTT时间等。
进一步地,所述处理器可以利用各种接口和线路连接整个接收设备和发送设备的各个部 分,通过运行或执行存储在存储器内的程序指令和/或模块,以及调用存储在存储器内的数据, 以执行接收设备和发送设备的各种功能和/或处理数据。
需要说明的是,上述的装置实施例中,所述发送设备和接收设备可以是无线设备,例如 接入点(access point,AP),还可以是其它网络设备,例如基站、增强型基站、或具有调度 功能的中继、或具有基站功能的设备等。还可以是用户设备(user equipment,UE),其中, UE也可以称之为终端(Terminal)、移动台(mobile station,MS)、移动终端(mobileterminal, MT)、远端设备(remote terminal,RT)、接入终端(access terminal,AT)、用户代理(user agent,UA)等。UE可以经无线接入网(radio access network,RAN)与一个或多个核心网 进行通信,UE还可以通过其它方式接入无线网络进行通信,UE也可以与其它UE直接进行无 线通信,本发明实施例对此不作限定。
本申请上述实施例提供的发送设备支持RDMA技术,利用RDMA通信的特性,在数据流开 始或者重启发送时,对第一个数据包和最后一个数据包进行标记,并将携带有头标签或者尾 标签的第一数据包发送给第一网络设备,第一网络设备通过统计第一数据包中携带有头标签 或尾标签,进而能够确定在每个更新周期内的RDMA数据流的数目,并利用该RDMA数据流的 数目和公平算法计算第一速率,以使各个发送设备按照该第一速率发送数据包,
网络设备通过统计流经一网络设备的数据流的数目,能够结合网络中实际的数据流的传 输情况计算网络设备可分配给流经该网络设备的数据流的发送速率,从而为调整数据流的发 端的发送速率提供更准确的依据,进而减少RDMA网络拥塞。
此外,本申请提供的方法,通过RDMA数据流的数目和公平算法可以直接计算出第一速率, 进而可以指示发送设备直接按照该第一速率发送数据包,相比于探测式地利用前一个更新周 期逐步计算的速率的方法,节约了计算耗时,使得发送设备快速地达到第一速率,同时按照 该第一速率发送数据包还保证了发送设备与网络设备间链路带宽的充分利用。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬 件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技 术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质 中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算 机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于一种网络速率计 算方法实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方 法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (28)
1.一种网络速率计算方法,其特征在于,所述方法包括:
所述第一网络设备在多个更新周期的每个更新周期内,执行以下步骤:
所述第一网络设备在所述更新周期内,接收自至少一个发送设备的多个数据包,其中,所述多个数据包中包括至少一个第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一远程直接内存访问RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
所述第一网络设备根据所述更新周期内接收的所述第一数据包的数量,确定所述更新周期内的第一数据流的数目,所述更新周期内的第一数据流的数目为在所述更新周期内通过所述第一网络设备传输的RDMA数据流的数目;
所述第一网络设备根据第一参数计算所述更新周期内的第一速率,所述第一参数包括第一流量和所述更新周期内的第一数据流的数目,所述第一流量为所述第一网络设备的出口带宽,所述第一速率为根据公平算法,每个所述第一数据流使用所述第一流量中的部分流量发送数据的速率;
所述第一网络设备向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率。
2.根据权利要求1所述的方法,其特征在于,所述第一网络设备根据所述更新周期内接收的所述第一数据包的数量,确定第一数据流的数目,包括:
所述第一网络设备计算包括所述头标签的第一数据包的数量和包括所述尾标签的第一数据包的数量的差值,以得到所述第一数据流的数目。
3.根据权利要求1或2所述的方法,其特征在于,所述第一网络设备根据第一参数计算所述更新周期内的第一速率,包括:
在所述第一网络设备检测到相邻两个更新周期内的所述第一数据流数目不同的情况下,或者,在任意相邻的两个更新周期内通过第一网络设备的平均流量的变化值在预设范围内的情况下,则按照第一公式计算所述第一速率;
其中,所述第一网络设备的平均流量为通过所述第一网络设备出口的数据量与更新周期时长的比值,所述第一公式为:
R(t)表示t时刻的所述第一速率,C表示第一网络设备的出口带宽,y(t)表示t时刻第一网络设备的平均流量、T表示更新周期的时长,Q(t)表示所述第一网络设备的缓存队列的深度,d表示通过所述第一网络设备的多条数据流的往返延迟RTT的移动平均值,N(t)表示所述第一数据流的数目,α和β表示调节参数,且为常量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一网络设备根据第一参数计算第一速率,包括:
在连续的P个更新周期内所述第一网络设备的流量利用率均小于预设比例的情况下,则根据速率控制协议RCP算法、所述第一流量和所述更新周期内的第一数据流的数目计算所述第一速率,所述P为大于等于2的正整数,所述第一网络设备的流量利用率用于表示所述第一网络设备所提供的流量被通过所述第一网络设备的数据流使用的情况。
5.根据权利要求1-4任一项所述的方法,其特征在于,第一网络设备的上一跳设备为第二网络设备,所述第一参数还包括第二速率,所述第二速率用于指示所述第二网络设备发送一个数据流的数据包的速率,所述方法还包括:
所述第一网络设备接收来自所述第二网络设备的第三数据包,所述第三数据包中包括第二速率;
所述第一网络设备根据所述第一流量、所述更新周期内的第一数据流的数目以及公平算法得到第三速率;
所述第一网络设备将所述第三速率与所述第二速率中的较小值,作为所述第一速率的值。
6.一种网络速率计算方法,其特征在于,所述方法包括:
所述发送设备向接收设备发送多个数据包,所述多个数据包用于承载远程直接内存访问RDMA数据,所述多个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
所述发送设备接收来自所述接收设备的ACK报文,所述ACK报文中包括第一速率,所述第一速率为所述发送设备和所述接收设备之间的网络设备根据第一参数确定出的速率,所述第一参数中包括所述多个数据包中携带的头标签和尾标签的数量;
所述发送设备按照所述第一速率发送数据包。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述发送设备将待发送的至少一个RDMA数据流的数据包,放入所述发送设备的至少一个发送缓存队列中,每个所述发送缓存队列用于存储一个RDMA数据流的数据包,其中,放入在一发送缓存队列的第一个数据包为携带有头标签的第一数据包,放入在一发送缓存队列的最后一个数据包为携带有尾标签的第一数据包。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
在所述发送设备为第一数据包设置标签的过程中,所述发送设备将其自身设置为开启状态,所述开启状态表示所述发送设备正在为数据包设置标签;
当所述发送设备在设置完第一数据包的尾标签,或者,发送完携带有尾标签的第一数据包后,将所述开启状态切换为关闭状态,所述关闭状态表示所述发送设备完成对数据包标签的设置。
9.根据权利要求6或7所述的方法,其特征在于,所述多个数据包中还包括第二数据包,所述第二数据包中携带有期望公平速率,所述期望公平速率用于表示所述发送设备预设的一数据流的数据的发送速率,所述第一参数还包括所述期望公平速率。
10.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于在多个更新周期的每个更新周期内,接收自至少一个发送设备的多个数据包,其中,所述多个数据包中包括至少一个第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一远程直接内存访问RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
处理单元,用于根据所述更新周期内接收的所述第一数据包的数量,确定所述更新周期内的第一数据流的数目,所述更新周期内的第一数据流的数目为在所述更新周期内通过所述网络设备传输的RDMA数据流的数目;
所述处理单元,还用于根据第一参数计算所述更新周期内的第一速率,所述第一参数包括第一流量和所述更新周期内的第一数据流的数目,所述第一流量为所述网络设备的出口带宽,所述第一速率为根据公平算法,每个所述第一数据流使用所述第一流量中的部分流量发送数据的速率;
发送单元,用于向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率。
11.根据权利要求10所述的网络设备,其特征在于,
所述处理单元,具体用于计算包括所述头标签的第一数据包的数量和包括所述尾标签的第一数据包的数量的差值,以得到所述第一数据流的数目。
12.根据权利要求10或11所述的网络设备,其特征在于,
所述处理单元,具体用于在检测到相邻两个更新周期内的所述第一数据流数目不同的情况下,或者,在任意相邻的两个更新周期内通过所述网络设备的平均流量的变化值在预设范围内的情况下,则按照第一公式计算所述第一速率;
其中,所述网络设备的平均流量为通过所述网络设备出口的数据量与更新周期时长的比值,所述第一公式为:
R(t)表示t时刻的所述第一速率,C表示所述网络设备的出口带宽,y(t)表示t时刻所述网络设备的平均流量、T表示更新周期的时长,Q(t)表示所述网络设备的缓存队列的深度,d表示通过所述网络设备的多条数据流的往返延迟RTT的移动平均值,N(t)表示所述第一数据流的数目,α和β表示调节参数,且为常量。
13.根据权利要求10-12任一项所述的网络设备,其特征在于,
所述处理单元,具体用于在连续的P个更新周期内所述网络设备的流量利用率均小于预设比例的情况下,则根据速率控制协议RCP算法、所述第一流量和所述更新周期内的第一数据流的数目计算所述第一速率,所述P为大于等于2的正整数,所述网络设备的流量利用率用于表示所述网络设备所提供的流量被通过所述网络设备的数据流使用的情况。
14.根据权利要求10-13任一项所述的网络设备,其特征在于,所述网络设备为第一网络设备,所述第一网络设备的上一跳设备为第二网络设备,所述第一参数还包括第二速率,所述第二速率用于指示所述第二网络设备发送一个数据流的数据包的速率,
所述接收单元,还用于接收来自所述第二网络设备的第三数据包,所述第三数据包中包括第二速率;
所述处理单元,还用于根据所述第一流量、所述更新周期内的第一数据流的数目以及公平算法得到第三速率,以及将所述第三速率与所述第二速率中的较小值,作为所述第一速率的值。
15.一种发送设备,其特征在于,所述发送设备包括:
发送单元,用于向接收设备发送多个数据包,所述多个数据包用于承载远程直接内存访问RDMA数据,所述多个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
接收单元,用于接收来自所述接收设备的ACK报文,所述ACK报文中包括第一速率,所述第一速率为所述发送设备和所述接收设备之间的网络设备根据第一参数确定出的速率,所述第一参数中包括所述多个数据包中携带的头标签和尾标签的数量;
所述发送单元,还用于按照所述第一速率发送数据包。
16.根据权利要求15所述的发送设备,其特征在于,还包括:
处理单元,用于将待发送的至少一个RDMA数据流的数据包,放入所述发送设备的至少一个发送缓存队列中,每个所述发送缓存队列用于存储一个RDMA数据流的数据包,其中,放入在一发送缓存队列的第一个数据包为携带有头标签的第一数据包,放入在一发送缓存队列的最后一个数据包为携带有尾标签的第一数据包。
17.根据权利要求15或16所述的发送设备,其特征在于,
所述处理单元,还用于在为第一数据包设置标签的过程中,将所述发送设备设置为开启状态,所述开启状态表示所述发送设备正在为数据包设置标签;当设置完第一数据包的尾标签,或者,发送完携带有尾标签的第一数据包后,将所述开启状态切换为关闭状态,所述关闭状态表示所述发送设备完成对数据包标签的设置。
18.根据权利要求15或16所述的发送设备,其特征在于,所述至少一个数据包中还包括第二数据包,所述第二数据包中携带有期望公平速率,所述期望公平速率用于表示所述发送设备预设的一数据流的数据的发送速率,所述第一参数还包括所述期望公平速率。
19.一种网络设备,其特征在于,应用于第一网络设备,所述第一网络设备包括:收发器和处理器,
其中,所述收发器,用于在多个更新周期的每个更新周期内,接收自至少一个发送设备的多个数据包,其中,所述多个数据包中包括至少一个第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一远程直接内存访问RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
所述处理器,用于根据所述更新周期内接收的所述第一数据包的数量,确定所述更新周期内的第一数据流的数目,所述更新周期内的第一数据流的数目为在所述更新周期内通过所述第一网络设备传输的RDMA数据流的数目;
以及,根据第一参数计算所述更新周期内的第一速率,所述第一参数包括第一流量和所述更新周期内的第一数据流的数目,所述第一流量为所述第一网络设备的出口带宽,所述第一速率为根据公平算法,每个所述第一数据流使用所述第一流量中的部分流量发送数据的速率;
所述收发器,还用于向下一跳设备发送第二数据包,所述第二数据包中包括所述第一速率。
20.根据权利要求19所述的网络设备,其特征在于,
所述处理器,具体用于计算包括所述头标签的第一数据包的数量和包括所述尾标签的第一数据包的数量的差值,以得到所述第一数据流的数目。
21.根据权利要求19或20所述的网络设备,其特征在于,
所述处理器,具体用于在所述第一网络设备检测到相邻两个更新周期内的所述第一数据流数目不同的情况下,或者,在任意相邻的两个更新周期内通过第一网络设备的平均流量的变化值在预设范围内的情况下,则按照第一公式计算所述第一速率;
其中,所述第一网络设备的平均流量为通过所述第一网络设备出口的数据量与更新周期时长的比值,所述第一公式为:
R(t)表示t时刻的所述第一速率,C表示第一网络设备的出口带宽,y(t)表示t时刻第一网络设备的平均流量、T表示更新周期的时长,Q(t)表示所述第一网络设备的缓存队列的深度,d表示通过所述第一网络设备的多条数据流的往返延迟RTT的移动平均值,N(t)表示所述第一数据流的数目,α和β表示调节参数,且为常量。
22.根据权利要求19-21任一项所述的网络设备,其特征在于,
所述处理器,具体用于在连续的P个更新周期内所述第一网络设备的流量利用率均小于预设比例的情况下,则根据速率控制协议RCP算法、所述第一流量和所述更新周期内的第一数据流的数目计算所述第一速率,所述P为大于等于2的正整数,所述第一网络设备的流量利用率用于表示所述第一网络设备所提供的流量被通过所述第一网络设备的数据流使用的情况。
23.根据权利要求19-22任一项所述的网络设备,其特征在于,在所述第一网络设备的上一跳设备为第二网络设备的情况下,且所述第一参数还包括第二速率,所述第二速率用于指示所述第二网络设备发送一个数据流的数据包的速率,
所述收发器,还用于接收来自所述第二网络设备的第三数据包,所述第三数据包中包括第二速率;
所述处理器,还用于根据所述第一流量、所述更新周期内的第一数据流的数目以及公平算法得到第三速率,以及将所述第三速率与所述第二速率中的较小值,作为所述第一速率的值。
24.一种发送设备,其特征在于,所述发送设备包括:
收发器,用于向接收设备发送多个数据包,所述多个数据包用于承载RDMA数据,所述多个数据包中包括第一数据包,所述第一数据包携带有头标签或者尾标签,所述头标签用于指示所述第一数据包为一RDMA数据流的首个数据包,所述尾标签用于指示所述第一数据包为一RDMA数据流的最后一个数据包;
所述收发器,还用于接收来自所述接收设备的ACK报文,所述ACK报文中包括第一速率,所述第一速率为所述发送设备和所述接收设备之间的网络设备根据第一参数确定出的速率,所述第一参数中包括所述多个数据包中携带的头标签和尾标签的数量;
所述收发器,还用于按照所述第一速率发送数据包。
25.根据权利要求24所述的发送设备,其特征在于,还包括:
处理器,用于将待发送的至少一个RDMA数据流的数据包,放入所述发送设备的至少一个发送缓存队列中,每个所述发送缓存队列用于存储一个RDMA数据流的数据包,其中,放入在一发送缓存队列的第一个数据包为携带有头标签的第一数据包,放入在一发送缓存队列的最后一个数据包为携带有尾标签的第一数据包。
26.根据权利要求24或25所述的发送设备,其特征在于,
所述处理器,还用于在所述发送设备为第一数据包设置标签的过程中,所述发送设备将其自身设置为开启状态,所述开启状态表示所述发送设备正在为数据包设置标签;
以及,当设置完第一数据包的尾标签,或者,发送完携带有尾标签的第一数据包后,将所述开启状态切换为关闭状态,所述关闭状态表示所述发送设备完成对数据包标签的设置。
27.根据权利要求24或25所述的发送设备,其特征在于,
所述处理器,还用于生成第二数据包,所述第二数据包中携带有期望公平速率,所述期望公平速率用于表示所述发送设备预设的一数据流的数据的发送速率,所述第一参数还包括所述期望公平速率。
28.一种计算机存储介质,包括指令,所述指令在计算机上运行时,使得所述计算机执行如权利要求1-9任一项所述的网络速率计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810006056.6A CN109995608B (zh) | 2018-01-03 | 2018-01-03 | 网络速率计算方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810006056.6A CN109995608B (zh) | 2018-01-03 | 2018-01-03 | 网络速率计算方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109995608A true CN109995608A (zh) | 2019-07-09 |
CN109995608B CN109995608B (zh) | 2022-08-26 |
Family
ID=67128650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810006056.6A Active CN109995608B (zh) | 2018-01-03 | 2018-01-03 | 网络速率计算方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995608B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822120A (zh) * | 2019-11-18 | 2021-05-18 | 华为技术有限公司 | 一种实现拥塞控制的方法、装置和系统 |
CN114465924A (zh) * | 2021-12-24 | 2022-05-10 | 阿里巴巴(中国)有限公司 | 网络设备测试方法、数据包发生方法和交换芯片 |
CN114866474A (zh) * | 2022-04-29 | 2022-08-05 | 鹏城实验室 | 一种端网协同流量调度方法、装置、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227369A (zh) * | 2008-02-18 | 2008-07-23 | 中兴通讯股份有限公司 | 一种弹性分组环上节点带宽公平分配的方法及系统 |
CN103763213A (zh) * | 2014-01-23 | 2014-04-30 | 中国联合网络通信集团有限公司 | 报文发送方法及装置 |
US20160087899A1 (en) * | 2014-09-24 | 2016-03-24 | Foundation For Research And Technology - Hellas (Forth) | Dynamic Max-Min Fair Rate Regulation Apparatuses, Methods, and Systems |
-
2018
- 2018-01-03 CN CN201810006056.6A patent/CN109995608B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227369A (zh) * | 2008-02-18 | 2008-07-23 | 中兴通讯股份有限公司 | 一种弹性分组环上节点带宽公平分配的方法及系统 |
CN103763213A (zh) * | 2014-01-23 | 2014-04-30 | 中国联合网络通信集团有限公司 | 报文发送方法及装置 |
US20160087899A1 (en) * | 2014-09-24 | 2016-03-24 | Foundation For Research And Technology - Hellas (Forth) | Dynamic Max-Min Fair Rate Regulation Apparatuses, Methods, and Systems |
Non-Patent Citations (2)
Title |
---|
程泽等: "基于IPv6数据包标记的网络拥塞控制算法", 《计算机工程》 * |
马金金等: "基于RCP的精确速率反馈拥塞控制算法", 《数据通信》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822120A (zh) * | 2019-11-18 | 2021-05-18 | 华为技术有限公司 | 一种实现拥塞控制的方法、装置和系统 |
WO2021098368A1 (zh) * | 2019-11-18 | 2021-05-27 | 华为技术有限公司 | 一种实现拥塞控制的方法、装置和系统 |
CN114465924A (zh) * | 2021-12-24 | 2022-05-10 | 阿里巴巴(中国)有限公司 | 网络设备测试方法、数据包发生方法和交换芯片 |
CN114465924B (zh) * | 2021-12-24 | 2023-12-22 | 阿里巴巴(中国)有限公司 | 网络设备测试方法、数据包发生方法和交换芯片 |
CN114866474A (zh) * | 2022-04-29 | 2022-08-05 | 鹏城实验室 | 一种端网协同流量调度方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109995608B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7660264B1 (en) | Method for traffic schedulign in intelligent network interface circuitry | |
CN107483337A (zh) | 确定路径的方法及其网络设备 | |
US11700209B2 (en) | Multi-path packet descriptor delivery scheme | |
EP2208322B1 (en) | A grid router | |
CN105099938B (zh) | 网络中拥塞窗口的确定方法和装置 | |
CN104378308A (zh) | 报文发送速率检测方法及装置 | |
CN107566275B (zh) | 数据中心网络中基于延时差异性的多路径传输方法 | |
CN109067665A (zh) | 拥塞控制方法和网络设备 | |
CN109995608A (zh) | 网络速率计算方法和装置 | |
CN107948103A (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
CN103281252A (zh) | 一种基于多路径传输的报文流量控制方法和装置 | |
CN102387076B (zh) | 一种结合整形的分级式队列调度方法 | |
CN107342906A (zh) | 一种大象流的检测方法、设备及系统 | |
CN112600684B (zh) | 云业务的带宽管理及配置方法及相关装置 | |
CN101714947A (zh) | 一种可扩展的全流优先级调度方法 | |
CN109408424A (zh) | 一种基于PCIe接口的SpaceFibre总线数据采集方法 | |
CN109729022A (zh) | 一种基于软件定义网络的数据发送方法、装置及系统 | |
CN105991456A (zh) | 一种OpenFlow交换机、网络系统及带宽共享方法 | |
CN105099957A (zh) | 一种基于软件查表的数据包转发方法 | |
CN108768898A (zh) | 一种片上网络传输报文的方法及其装置 | |
CN109428842A (zh) | 一种QoS信息传送方法和装置 | |
CN111434079B (zh) | 一种数据通信方法及装置 | |
CN112751776A (zh) | 拥塞控制方法和相关装置 | |
CN100413283C (zh) | 基于连接对的流量均衡处理方法与装置 | |
CN106487713A (zh) | 一种服务质量复用方法及装置 |
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 | ||
GR01 | Patent grant |