[go: up one dir, main page]

CN109039936B - 传输速率控制方法、装置、发送设备和接收设备 - Google Patents

传输速率控制方法、装置、发送设备和接收设备 Download PDF

Info

Publication number
CN109039936B
CN109039936B CN201811003680.7A CN201811003680A CN109039936B CN 109039936 B CN109039936 B CN 109039936B CN 201811003680 A CN201811003680 A CN 201811003680A CN 109039936 B CN109039936 B CN 109039936B
Authority
CN
China
Prior art keywords
point
rate
sending
transmission
data stream
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.)
Expired - Fee Related
Application number
CN201811003680.7A
Other languages
English (en)
Other versions
CN109039936A (zh
Inventor
邓维山
夏寅贲
李凤凯
冀智刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811003680.7A priority Critical patent/CN109039936B/zh
Publication of CN109039936A publication Critical patent/CN109039936A/zh
Priority to PCT/CN2019/082462 priority patent/WO2020042624A1/zh
Application granted granted Critical
Publication of CN109039936B publication Critical patent/CN109039936B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种传输速率控制方法、装置、发送设备和接收设备。所述传输速率控制方法应用于DCN,包括:发送点接收所述接收点发送的第一CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;根据所述速率信息确定所述接收速率;根据所述接收速率确定排空速率;将所述数据流的发送速率更新为所述排空速率。本申请的技术方案,发送点根据接收点的速率信息调整数据流的发送速率,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。

Description

传输速率控制方法、装置、发送设备和接收设备
技术领域
本申请涉及通信技术领域,尤其涉及一种传输速率控制方法、装置、发送设备和接收设备。
背景技术
数据中心网络(data center network,DCN)是传输数据的核心网络,广泛应用于网络传输领域。一种典型的DCN包括发送点,传输点和接收点,传输点接收发送点发出的数据包,并发送到接收点。随着人工智能、云计算和实时大数据分析等的发展,DCN应当满足超低延时、高吞吐和无丢包等要求,基于此,DCN支持远程直接内存访问(remote directmemory access,RDMA)的数据传输方案。
由于网络拥塞会造成数据传输延时过长,甚至丢包等现象,基于此,RDMA提供了一种数据中心量化拥塞通知(data center quantized congestion notification,DCQCN)方案。具体的,当传输点检测到拥塞时,为所接收的数据包添加显式拥塞通告(explicitcongestion notification,ECN)标记。接收点接收到带有ECN标记的数据包之后,向发送点发送拥塞通告报文(congestion notification packet,CNP),以通告发送点网络产生了拥塞。当发送点接收到CNP时,通过降低所述数据包所属数据流的发送速率消除拥塞。当拥塞消除后,发送点再升高所述数据包所属数据流的发送速率。
在实际应用场景中,发送点根据预设的调整因子确定所述数据流的发送速率,并通过调节所述调整因子调整所述数据流的发送速率。这种调整方式导致所述数据流的发送速率发生震荡,从而导致数据流的传输性能下降。
发明内容
本申请提供了一种传输速率控制方法、装置、发送设备和接收设备,应用在DCN中,实现数据流的发送速率的精确调整,从而消除传输点的队列拥塞和提高数据流的传输性能。
本申请提供的技术方案,应用于DCN,所述DCN包括发送点、传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流。
第一方面,本申请提供了一种传输速率控制方法,该方法包括:
所述发送点接收所述接收点发送的第一拥塞通告报文CNP,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述发送点根据所述速率信息确定所述接收速率;
所述发送点根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;
所述发送点将所述数据流的发送速率更新为所述排空速率。
其中,本实现方式中,CNP包括接收点接收发送点所发送的数据流的数据包的速率信息。发送点接收到该CNP后,根据所述速率信息确定接收点的接收速率。然后,发送点根据接收点的接收速率确定所述数据流的目标发送速率,进而,将数据流的发送速率更新为所述目标发送速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述发送点根据所述接收速率确定排空速率,包括:
所述发送点根据所述数据流的发送速率和所述接收速率生成超速比因子a,所述超速比因子a满足:
Figure BDA0001783540290000021
其中,R发送是指所述数据流的发送速率,R接收是指所述接收速率;
根据所述超速比因子a确定排空时间Tpause,所述排空时间Tpause满足:Tpause=a×(tgt+rtt)+tgt,其中,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔,rtt是指所述传输点中无队列时,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长;
根据所述排空时间Tpause计算所述排空速率Rpause,所述排空速率Rpause满足:
Figure BDA0001783540290000022
其中,本申请中,为了快速消除所述传输点存在的拥塞,使所述传输点的队列中的全部数据包均出队列,使所述传输点达到无队列的状态。本申请将“使所述传输点达到无队列的状态”称为排空。本申请的一种实现方式中,指示所述传输点在排空时间内排空。所述排空时间是指示所述传输点中的队列包括的全部数据包出队列的时长。发送点可以根据所述排空时间计算所述数据流的排空速率。
采用本实现方式,发送点能够精确确定所述数据流的排空速率,从而对所述数据流实现精确降速。
一种可选的设计中,在所述发送点将所述数据流的发送速率更新为所述排空速率之后,还包括:
所述发送点以所述排空速率发送所述数据流持续所述排空时间;
所述发送点将所述数据流的发送速率更新为所述接收速率。
其中,发送点以排空速率发送数据流持续排空时间,从而将传输点的队列包含的全部数据包快速出队列,进而能够降低队列中包含的数据包的传输时延。在将所述传输点的队列中拥塞的数据包排空之后,发送点将数据流的发送速率从排空速率更新为所述接收速率。
采用本实现方式,在排空阶段,明确传输点存在的拥塞的排空时间和数据流的排空速率,对传输点存在的拥塞快速准确的排空。在稳速阶段,为发送点升高数据流的发送速率提供明确的目标,从而使得数据流发送速率的调整更加精确。
一种可选的设计中,在所述发送点将所述数据流的发送速率更新为所述接收速率之后,还包括:
所述发送点检测所述数据流的发送速率是否达到所述发送点的最大发送速率;
当所述数据流的发送速率未达到所述发送点的最大发送速率时,所述发送点判断第二预设间隔时长内是否接收到所述接收点发送的第二CNP,所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包,所述第二预设间隔时长大于第一预设间隔时长,所述第一预设间隔时长是接收点发送CNP的最小间隔时长;
当所述第二预设间隔时长内未接收到所述第二CNP时,所述发送点将所述数据流的发送速率更新为目标发送速率,所述目标发送速率满足:
Figure BDA0001783540290000031
所述发送点重复执行所述检测所述数据流的发送速率是否达到所述发送点的最大发送速率的操作,直到所述数据流的发送速率达到所述发送点的最大发送速率。
其中,发送点以接收速率发送所述数据流,导致所述数据流的数据包的吞吐量不高。基于此,在保证传输点不存在拥塞的前提下,发送点还可以进一步升高所述数据流的发送速率。具体的,本申请中,发送点以所述发送点的最大发送速率作为最终的目标速率,每一轮升速,均将所述数据流的发送速率升速到所述数据流的发送速率与所述发送点的最大发送速率之和的一半,直到所述数据流的发送速率达到发送点的最大发送速率。
采用本实现方式,所述数据流的发送点以其最大发送速率作为参考数据,升高所述数据流的发送速率,从而在有多条数据流需要升高发送速率时,能够保证各条数据流之间升速的公平性。
一种可选的设计中,所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
所述速率信息包括所述接收速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
具体的,一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本实现方式中,所述接收点将接收到第一数据包时对应周期作为所述第一周期。另一种可选实现方式是,接收点将接收到第一数据包的时刻作为所述第一周期的起始时刻,将该起始时刻向后周期时长的时间段作为所述第一周期。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
一种可选的设计中,所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
具体的,在一种可能的实现方式中,接收点从初始时刻开始持续确定各个周期。本实现方式中,在接收到第一数据包时,接收点确定接收到第一数据包的时刻所在周期的时间段,获取该时间段内接收到所述数据流的数据包的长度总和,进而计算所述接收速率。在另一种可能的实现方式中,接收点接收到第一数据包时,开始计算周期时长内所接收的所述数据流的数据包的长度总和,进而计算所述接收速率。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
第二方面,本申请提供了一种传输速率控制方法,该方法包括:
所述接收点接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;
所述接收点根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述接收点向所述发送点发送所述第一CNP。
其中,本申请中,接收点接收到包含ECN标记的数据包之后,确定接收所述数据包所属数据流的数据包的速率信息。所述接收点将所述速率信息添加到所生成的CNP中。所述接收点将所述CNP发送到所述发送点,用于触发所述发送点根据所述速率信息调整所述数据流的发送速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
所述速率信息包括所述接收速率。
采用本实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
一种可选的设计中,所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
具体的,一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本实现方式中,所述接收点将接收到第一数据包时对应周期作为所述第一周期。另一种可选实现方式是,接收点将接收到第一数据包的时刻作为所述第一周期的起始时刻,将该起始时刻向后周期时长的时间段作为所述第一周期。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
一种可选的设计中,所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
具体的,在一种可能的实现方式中,接收点从初始时刻开始持续确定各个周期。本实现方式中,在接收到第一数据包时,接收点确定接收到第一数据包的时刻所在周期的时间段,获取该时间段内接收到所述数据流的数据包的长度总和,进而计算所述接收速率。在另一种可能的实现方式中,接收点接收到第一数据包时,开始计算周期时长内所接收的所述数据流的数据包的长度总和,进而计算所述接收速率。
采用本实现方式,接收点能够确定传输点拥塞的时间段内,所述接收点正在对应的接收所述数据流的数据包的速率,从而为发送点调整所述数据流的发送速率,提供精确的数据参考。
第三方面,本申请还提供了一种传输速率控制装置,该装置设置在发送点,包括发送器、接收器和处理器。其中,发送器用于执行第一方面及第一方面各实现方式中数据流的发送。接收器用于执行第一方面及第一方面各实现方式中CNP的接收。处理器用于执行第一方面及第一方面各实现方式中除了数据流的发送和CNP的接收之外的操作。
第四方面,本申请还提供了一种传输速率控制装置,该装置设置在接收点,包括发送器、接收器和处理器。其中,发送器用于执行第二方面及第二方面各实现方式中CNP的发送。接收器用于执行第二方面及第二方面各实现方式中数据流的数据包的接收。处理器用于执行第二方面及第二方面各实现方式中除了CNP的发送和数据流的数据包的接收之外的操作。
第五方面,本申请还提供了一种传输速率控制装置,该装置设置在发送点,包括用于执行第一方面及第一方面各实现方式的中方法步骤的模块。
第六方面,本申请还提供了一种传输速率控制装置,该装置设置在接收点,包括用于执行第二方面及第二方面各实现方式的中方法步骤的模块。
第七方面,本申请提供了一种发送设备,用作所述发送点,包括收发器,处理器以及存储器。其中,收发器、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第一方面,或第一方面的任意一种可能的设计中的方法。
第八方面,本申请提供了一种接收设备,用作所述接收点,包括收发器,处理器以及存储器。其中,收发器、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第二方面,或第二方面的任意一种可能的设计中的方法。
第九方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面、第二方面、第一方面任意可能的设计中或第二方面任意可能的设计中的方法。
本申请中,响应于所接收的第一数据包包括ECN标记,接收点生成CNP,并将该CNP发送到发送点。其中,发送点经由传输点向所述接收点发送数据流,所述数据流包括所述第一数据包。为了解决数据流的传输性能下降的问题,所述CNP包括所述接收点的速率信息。所述速率信息是所述接收点接收所述数据流的数据包的速率。发送点根据接收点的速率信息确定数据流的目标发送速率,进而,根据目标发送速率调整数据流的发送速率。由此可见,本申请的技术方案,发送点根据接收点的速率信息调整数据流的发送速率,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种DCN的结构示意图;
图2是本申请一种DCQCN方法的信令交互图;
图3是本申请CNP的数据帧结构示意图;
图4是本申请传输速率控制方法一个实施例的方法流程图;
图5是本申请第一CNP一个实施例的数据帧结构示意图;
图6是本申请传输速率控制方法另一个实施例的方法流程图;
图7是本申请DCN一个实施例的拓扑图;
图8是本申请传输速率控制装置的一个实施例的结构示意图;
图9是本申请发送设备的一个实施例的结构示意图;
图10是本申请传输速率控制装置的另一个实施例的结构示意图;
图11是本申请接收设备的一个实施例的结构示意图。
具体实施方式
DCN包括多个发送点、多个传输点和多个接收点。其中,发送点、接收点和传输点均是网络设备。发送点和接收点例如是是交换机、路由器或者服务器。传输点例如是交换机或者路由器。参见图1,图1是本申请一种DCN的结构示意图。图1所示的DCN包括发送点1、传输点1、传输点2、接收点1和接收点2。
应理解,图1仅是本申请DCN的一种示例性结构示意图,在实际应用中,DCN所包含的发送点的数量,传输点的数量,以及接收点的数量均可以更多。
在本申请的一种实现方式中,DCN的多个发送点中一个发送点可以发送一条数据流。例如,图1中发送点1发送数据流1,数据流1经由传输点1传输到接收点1。
在本申请的另一种实现方式中,多个发送点中一个发送点可以发送至少两条数据流。例如,图1中发送点1除了发送数据流1,还可以发送数据流2和数据流3。本实现方式中,数据流2和数据流3可以经同一传输点传输,例如,数据流2和数据流3均经由传输点1传输。数据流2和数据流3也可以经由不同的传输点传输,例如,数据流2经由传输点1传输,数据流3经由传输点2传输。数据流2和数据流3可以传输到同一接收点,例如,数据流2和数据流3均传输到接收点1(图1中未示出)。数据流2和数据流3也可以传输到不同的接收点,例如,数据流2传输到接收点1,数据流3传输到接收点2。
数据流是指从发送点到接收点的正在传输的数据包序列,所述数据流包括多个数据包。所述数据包序列中的任一数据包从发送点发出之后,在传输点入队列。所述数据包从所述传输点出队列之后,传输到所述接收点。其中,入队列是指所述数据包进入所述传输点中包括的队列,出队列是指所述数据包离开所述传输点中包括的队列。所述队列是所述传输点包括的用于调度数据包的线性表。所述传输点通过所述传输点包括的临时存储器实现队列的存储。所述传输点接收到所述发送点发送的数据包后,将数据包入队列,然后按照队列调度算法,再将数据包进行出队列操作。所述队列调度算法包括先进先出(first infirst out,FIFO)队列调度算法、加权公平队列(weighted fair queuing,WFQ)调度算法、优先级队列(priority queuing,PQ)调度算法或定制队列(custom queue,CQ)调度算法。基于此,当所述队列长度大于一定值,导致所述数据包从入队列到出队列的间隔时长大于一定时长时,本申请将这种现象称为所述传输点存在拥塞。
传输点存在拥塞,会导致经由所述传输点的数据流的数据包传输时间过长,从而降低所述数据流的传输性能。有鉴于此,本申请提供了一种DCQCN方法,所述DCQCN方法通过调整数据流的发送速率消除传输点存在的拥塞,提高数据流的传输性能。
参见图2,图2是本申请一种DCQCN方法的信令交互图。其中,产生拥塞的传输点例如是图1所示的传输点1。传输点1用于将发送点1发送的数据流1的数据包转发到接收点1,传输点1拥塞的队列中包括数据流1的数据包1。图2所示的DCQCN方法100包括以下步骤:
步骤S101,响应于传输点1中的队列的长度超过预设门限值,所述传输点1为所述数据包1打ECN标记,并将包含所述ECN标记的数据包1发送到接收点1。
本申请中,预先为传输点中的队列长度设置门限值,所述门限值也称为水线,用于指示所述传输点中的队列是否存在拥塞。其中,水线K满足:K=B×tgt,B是指所述队列中的数据包出队列的速率,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔。
其中,发送点发送的数据流的数据包都包括ECN标志字段。ECN标志字段是传输控制协议(transmission control protocol,TCP)/因特网互联协议(internet protocol,IP)协议定义的拥塞确认标记,初始值例如是空。当传输点检测到拥塞时,使能所述传输点队列的数据包中的ECN标志字段,例如将ECN标志字段的值置为1,表示该ECN标志字段所属的数据包在所述传输点传输时,处于拥塞状态。
本申请中,上述使能数据包中的ECN标志字段的过程可以称为:为数据包打ECN标记。ECN标记指示了使能后的ECN标志字段,例如,ECN标记表示ECN标志字段的值为1。
本申请的实现方式中,所述传输点1检测所述传输点1中队列的长度是否超过水线,如果传输点1的队列长度超过水线,指示传输点1存在拥塞。所述传输点1为入队列的数据包打ECN标记,然后,继续传输所述包括ECN标记的入队列的数据包,以及队列中包含的未打ECN标记的数据包。如果传输点1的队列长度未超过水线,指示传输点1不存在拥塞,所述传输点1继续传输所述入队列的数据包以及所述队列包含的全部数据包。
在本申请的一个可选示例中,如果传输点1存在拥塞,数据包1是入队列的数据包,传输点1为数据包1打ECN标记,并在所述包括ECN标记的数据包1出队列时,将所述包括ECN标记的数据包1发送到接收点1。
应理解,本申请中,传输点1可以转发多条不同的数据流。基于此,在传输点1入队列的数据包中包含不同数据流的数据包。而本步骤中,传输点1为入队列的每个数据包均打同样的ECN标记。
步骤S102,响应于所述数据包1包含的ECN标记,接收点1生成CNP1,并将所述CNP1发送到所述发送点1。
其中,CNP1是指数据包1所属的数据流1对应的CNP,用于触发发送点1调整数据流1的发送速率。
应理解,数据包中包括流标识,所述流标识用于标识数据包所属的数据流。例如,数据包1中包括的流标识的值为01,表示数据包1属于数据流1;数据包2中包括的流标识的值为02,表示数据包2属于数据流2。基于此,接收点1接收到数据包1之后,获取数据包1的流标识01,将该流标识01添加到所生成的CNP中,得到CNP1。
具体的,CNP1的帧结构如图3所示,包括:媒体访问控制(media access control,MAC)头,互联网协议第4版(internet protocol version 4,IPv4),用户数据报协议(userdatagram protocol,UDP)头,基本传输头(base transport header,BTH),16字节的保留位,固定循环冗余检测(invariant cyclic redundancy check,ICRC)和帧校验序列(framecheck sequence,FCS)。其中,在一种可能的实现方式中,上述CNP1的帧结构中的IPv4头可以被替换为互联网协议第6版(internet protocol version 6,IPv6)头。其中,上述CNP1的帧结构中的各个字段的定义可以参基于融合以太的远程内存直接访问第二版(remotedirect memory access over converged ethernet version 2,RoCE v2)标准协议中附录17.9.3(annex 17.9.3)中的说明,此处不进行赘述。
此外,传输点1存在拥塞的状态可能会持续一段时间,那么,接收点1在该时间段内接收到数据流1的数据包均包含ECN标记。基于此,为了避免重复多次向发送点1发送CNP1,接收点1本次发送CNP1时刻起,第一预设间隔时长内不再向发送点1发送CNP1。若本次发送CNP1第一预设间隔时长之后,接收点1所接收的数据流1的数据包依然包含ECN标记,接收点1再向发送点1发送CNP1。在本申请的一个可选实施例中,第一预设间隔时长例如是50μs。
步骤S103,接收点1接收到所述CNP1之后,调整所述数据流1的发送速率。
其中,发送点1调整数据流1的发送速率包括,先降低数据流1的发送速率,以消除传输点1存在的拥塞;确定传输点1存在的拥塞消除后,再升高数据流1的发送速率。
为了便于描述调整前的发送速率与调整后的发送速率的关系,本申请中,将任意一次调整之前的发送速率描述为“数据流的发送速率”或者“数据流的当前发送速率”,将该次调整之后的发送速率描述为“目标发送速率”。每次调整之前的发送速率通常也是发送点正在使用的发送该数据流的速率。
降速阶段:
数据流1的当前发送速率例如是RC,数据流1降速之后的目标发送速率RT与当前发送速率RC满足:
Figure BDA0001783540290000101
发送点1将数据流1的发送速率有当前发送速率RC降为目标发送速率RT
其中,α是指速率下降因子,α的值按照预设规则更新。具体的,在DCN网络建立时,α的初始值例如是α1,α1的值为1。发送点1第一次接收到CNP1时,将α1用作确定目标发送速率,然后,将数据流1的发送速率降为根据α1确定目标发送速率。若发送点1在第一预设间隔时长内接收到CNP1,按照α=(1-g)α+g更新α得到α2,将α2用作确定目标发送速率,然后,将数据流1的发送速率降为根据α2所确定目标发送速率。若发送点1在第一预设间隔时长内未接收到CNP1,按照α=(1-g)α更新α得到α3,但不根据α3确定目标发送速率。若发送点1再次接收到CNP1,则将α3作为新的初始值,用于确定目标发送速率。其中,g是指α的更新权重,0<g<1。
应理解,不同场景时的α的值不同,为避免混淆,本申请通过标注下标的形式对不同场景的α进行区分。因此,上述实现方式中,α1、α2和α3并非α的子参数,而是分别表示不同场景时的α。
升速阶段:
消除拥塞的原理在于,通过降低数据流的发送速率,使拥塞队列的数据包入队列的速率低于出队列的速率。基于此,在传输点1中的队列消除拥塞后,若发送点1仍然以较低的发送速率发送数据流1,将导致数据流1的数据包欠吞吐。有鉴于此,在传输点1的队列消除拥塞后,发送点1应当升高数据流1的发送速率。
应理解,根据步骤S102的描述可知,发送点1两次接收CNP1的最小时间间隔是第一预设间隔时长,若发送点1第一次接收到CNP1之后,第一预设间隔时长未再次接收到CNP1,说明传输点1存在的拥塞已消除。基于此,本申请中,若发送点1降低数据流的发送速率之后,第二预设间隔时长内未接收到CNP1,则认为传输点1存在的拥塞已消除,发送点1开始升高数据流1的发送速率。其中,第二预设间隔时长大于第一预设间隔时长。在本申请的一个可选实施例中,第二预设间隔时长例如是55μs。
本申请中,发送点1按照三个阶段升高数据流1的发送速率,所述三个阶段包括:快速恢复(fast recovery,FR)阶段、主动增长(active increase,AI)阶段和超主动增长(hyper active increase,HAI)阶段。具体的,在确定消除拥塞之后,发送点1进入FR阶段升高数据流1的发送速率。在FR阶段升速之后第二预设间隔时长内未接收到CNP1,发送点1进入AI阶段继续升高数据流1的发送速率。在AI阶段升速之后第二预设间隔时长内未接收到CNP1,发送点1进入HAI阶段继续升高数据流1的发送速率。
本申请的一种可选实现方式中,数据流1的当前发送速率例如是RC,本场景中,RC是上述降速阶段最后一次降速后的目标发送速率。FR阶段对应的目标发送速率是RT1,RT1的值是预设的固定值。发送点1以发送速率RC发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure BDA0001783540290000111
确定FR阶段第一次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述FR阶段第一次升速后的发送速率。进一步的,发送点1以所述FR阶段第一次升速后的发送速率发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure BDA0001783540290000112
确定FR阶段第二次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述FR阶段第二次升速后的发送速率。依此循环,使得所述数据流1的发送速率不断接近FR阶段对应的目标发送速率是RT1
AI阶段对应的目标发送速率例如是RT2,RT2满足:RT2=RT1+RAI,其中,RAI用于指示递增的速率步长。当RC=RT1时,发送点1以发送速率RC发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure BDA0001783540290000113
确定AI阶段第一次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述AI阶段第一次升速后的发送速率。进一步的,发送点1以所述AI阶段第一次升速后的发送速率发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure BDA0001783540290000114
确定AI阶段第二次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述AI阶段第二次升速后的发送速率。依此循环,使得所述数据流1的发送速率不断接近AI阶段对应的目标发送速率是RT2
HAI阶段对应的目标发送速率例如是RT3,RT3满足:RT3=RT1+N*RAI,其中,N是大于1的整数。当RC=RT2时,发送点1以发送速率RC发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure BDA0001783540290000115
确定HAI阶段第一次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述HAI阶段第一次升速后的发送速率。进一步的,发送点1以所述HAI阶段第一次升速后的发送速率发送数据流1的第二预设间隔时长内未接收到CNP1,按照
Figure BDA0001783540290000116
确定HAI阶段第二次升速后的发送速率,然后,发送点1将数据流1的发送速率更新为所述HAI阶段第二次升速后的发送速率。依此循环,使得所述数据流1的发送速率不断接近AI阶段对应的目标发送速率是RT3
应理解,上述升速阶段中每一次升速之后,发送点1若在第二预设间隔时长内接收到CNP1,则停止升速操作,进入上述降速阶段。
应理解,上述仅是以数据流1、数据流1包括的数据包1以及与数据流1对应的CNP1等为例进行的描述。本申请中,传输点的队列中包含不同数据流的数据包,每个数据包均包含ECN标记。但是,接收点会针对不同数据流生成和发送CNP,例如,接收点1对应数据流1生成CNP1,CNP1包含数据流1的流标识。接收点1对应数据流2生成CNP2,CNP2包含数据流2的流标识。发送点也会分别调整不同CNP的流标识所指示的数据流的发送速率,例如,发送点1接收到CNP1之后,调整数据流1的发送速率。发送点1接收到CNP2之后,调整数据流2的发送速率。其中,接收点针对每条数据流生成CNP的操作,以及接收点调整每条数据流的发送速率的操作,详见上述描述。此处不再赘述。
根据方法100的描述,本申请根据速率下降因子确定降速的目标发送速率,很难精确的将数据流的发送速率降到合适的程度。如果数据流的发送速率降速程度过大,则会造成在传输点的拥塞消除后,数据流的数据包入队列速率较出队列速率低,使得数据流的数据包欠吞吐。如果数据流的发送速率降速程度过小,则会造成在传输点的拥塞难以消除,使得传输点拥塞时间过长。本申请根据预先设立的目标速率升速,也很难精确的将数据流的发送速率升到合适的程度。如果数据流的发送速率升速程度过大,很容易再次造成传输点拥塞,如果数据流的发送速率升速程度过小,将导致数据流的数据包持续欠吞吐。有鉴于此,本领域技术人员提出了一种传输速率控制方法、装置、发送设备和接收设备。
下面结合附图,对本申请的传输速率控制方法进行描述。
本申请的传输速率控制方法应用于DCN,所述DCN的硬件连接结构如上述描述。其中,所述DCN中的多个发送点硬件实体可以逻辑等效成一个发送点,所述DCN中的多个传输点硬件实体可以逻辑等效成一个传输点,所述DCN中的多个接收点硬件实体可以逻辑等效成一个接收点。逻辑等效后的DCN可以认为包括发送点、传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流。本申请结合逻辑等效后的DCN,对传输速率控制方法进行描述。
参见图4,图4是本申请传输速率控制方法一个实施例的方法流程图。图4所示实施例,从发送点的角度对本方案进行描述。图4所示的方法200,发送点根据接收点的速率信息调整数据流的发送速率,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。方法200包括如下步骤:
步骤S201,所述发送点接收所述接收点发送的第一CNP。
其中,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包含所述数据流的流标识。
在本申请所述的方案中,所述第一CNP还包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率。具体的,在本申请的一种可选示例中,速率信息包括第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和。所述第一周期是指所述接收点接收所述数据流的数据包的时间段。在本申请的另一种可选示例中,速率信息包括接收速率。所述接收速率满足:
Figure BDA0001783540290000121
Figure BDA0001783540290000122
其中,本申请的技术方案可以预先设置周期的时长。在本申请的一个可选示例中,预设周期的时长例如是10μs。基于此,在本申请的实施方式一中,所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。具体的,实施方式一的一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本实现方式中,所述接收点将接收到第一数据包时对应周期作为所述第一周期。实施方式一的另一种可选实现方式是,接收点将接收到第一数据包的时刻作为所述第一周期的起始时刻,将该起始时刻向后周期时长的时间段作为所述第一周期。在本申请的实施方式二中,所述接收点在所述第一周期内接收到的所述数据流的数据包中也可以不包括所述第一数据包。实施方式二的一种可选实现方式中,接收点从初始时刻开始持续确定各个周期,本申请将接收到第一数据包时的上一个周期作为所述第一周期。
进一步的,在本申请的一种可选实施方式中,所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。具体的,在一种可能的实现方式中,接收点从初始时刻开始持续确定各个周期。本实现方式中,在接收到第一数据包时,接收点确定接收到第一数据包的时刻所在周期的时间段,获取该时间段内接收到所述数据流的数据包的长度总和,进而计算所述接收速率。在另一种可能的实现方式中,接收点接收到第一数据包时,开始计算周期时长内所接收的所述数据流的数据包的长度总和,进而计算所述接收速率。
应理解,本申请CNP中包含的速率信息,对应接收点发送所述CNP信息时接收所述数据流的数据包的速率。例如,第一CNP包含的速率信息,对应接收点接收到第一数据包的速率;若发送点在接收到第一CNP第一预设间隔时长之后再次接收到CNP,所述CNP包含的速率,对应接收点接收所述数据流的第二数据包时的速率。所述第二数据包在所述第一数据包之后第一预设间隔时长到达所述接收点。基于此,发送点每次接收到的CNP所包含的速率信息所对应的速率含义均不同,为了便于清楚的描述,本申请通过“第一”和“第二”等序数词的方式,对所接收的CNP进行区分。
参见图5,图5是本申请第一CNP一个实施例的数据帧结构示意图。所述第一CNP包括:MAC头,IPv4/IPv6头,UDP头,BTH,速率信息,ICRC和FCS。其中,本申请实施例的第一CNP与图3所示的CNP相比,还包含速率信息,所述速率信息设置在图3所示的CNP的保留位,得到本实施例所述的第一CNP。所述第一CNP中,速率信息如上述描述,除所述速率信息之外的每项数据的含义,均是本领域技术人员熟知的,本申请此处不再详述。
步骤S202,所述发送点根据所述速率信息确定所述接收速率。
其中,根据步骤S201的描述,速率信息包括两种形式。基于此,本申请的一种根据速率信息确定接收速率的实现方式是,从所述第一CNP中读取第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和,根据
Figure BDA0001783540290000131
计算得到所述接收速率。本申请的另一种根据速率信息确定接收速率的实现方式是,从所述第一CNP中读取所述接收速率。
步骤S203,所述发送点根据所述接收速率确定排空速率。
其中,所述排空是指所述传输点中的队列包括的全部数据包出队列。排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率。
具体的,本申请所述的传输点存在拥塞,为了快速消除所述传输点存在的拥塞,本申请的一种实施方式是,使所述传输点的队列中的全部数据包均出队列,使所述传输点达到无队列的状态。本申请将“使所述传输点达到无队列的状态”称为排空,即将传输点的队列中全部数据包清空,从而达到消除拥塞的目的。其中,本申请的一种实现方式中,指示所述传输点在排空时间内排空。所述排空时间是指示所述传输点中的队列包括的全部数据包出队列的时长。
应理解,在所述传输点中无队列的实施场景中,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长例如是rtt。在所述传输点中有队列的实施场景中,数据包从入队列到出队列的最大允许时长是tgt。得到数据包从所述发送点传输到所述接收点的最大允许传输时长是tgt+rtt。基于此,本申请的一个可选实施例中,所述排空时间Tpause满足:Tpause=a×(tgt+rtt)+tgt,其中,a是所述发送点根据所述数据流的发送速率和所述接收速率生成超速比因子,a满足:
Figure BDA0001783540290000141
R发送是指所述数据流的发送速率,R接收是指所述接收速率。
进一步的,为达到排空的目的,发送点应当调整数据流的发送速率,以使数据包在所述传输点中入队列的速率小于出队列的速率。具体的,发送点根据所述排空时间Tpause计算排空速率Rpause,得到
Figure BDA0001783540290000142
步骤S204,所述发送点将所述数据流的发送速率更新为所述排空速率。
接步骤S203,在确定所述数据流的排空速率之后,发送点将所述数据流的发送速率降为所述排空速率,以使所述传输点在排空时间内排空。
其中,本申请中,发送点将数据流的初始发送速率设置为满速率。其中,初始发送速率是指发送点初始时刻的发送速率。初始时刻是指发送点接入DCN网络的时刻。满速率是指发送点为数据流配置的最大发送速率。
采用方法200的实现方式,发送点将接收点的接收速率作为调整数据流发送速率的参数依据,能够有的放矢的降低数据流的发送速率,从而能够快速排空传输点中拥塞的队列包含的数据包,快速消除传输点存在的拥塞。
在方法200的基础上,发送点以排空速率发送数据流持续排空时间,从而将传输点的队列包含的全部数据包快速出队列,进而能够降低队列中包含的数据包的传输时延。本申请的一个可选实施方式中,将数据流的发送速率是所述排空速率的阶段称为排空阶段。
进一步的,在将所述传输点的队列中拥塞的数据包排空之后,为保证网络的吞吐,发送点升高数据流的发送速率。
其中,在传输点的队列包含的全部数据包排空后,若发送点发送数据流的速率与接收点接收所述数据流的数据包的速率相同,能够保证数据包在传输点中入队列的速率和出队列的速率相同,从而能够避免传输点再次出现拥塞。基于此,在排空阶段结束后,发送点将数据流的发送速率从排空速率更新为所述接收速率。本申请的一个可选实施方式中,将数据流的发送速率是所述接收速率的阶段称为稳速阶段。所述接收速率如方法200的步骤S202中所述。
综合上述,本申请的技术方案,在排空阶段,明确传输点存在的拥塞的排空时间和数据流的排空速率,对传输点存在的拥塞快速准确的排空。在稳速阶段,为发送点升高数据流的发送速率提供明确的目标,从而使得数据流发送速率的调整更加精确。
在所述稳速阶段,DCN网络的吞吐量可能并未饱和。基于此,为了提高数据包的传输效率,发送点可以在稳速阶段的基础上继续升高所述数据流的发送速率。
其中,在实际应用中,一个传输点硬件实体可能传输多条数据流,且,该多条数据流的发送速率可能均不同。但是,方法100中步骤S103升速阶段的升速方式中,该多条数据流中每条数据流对应相同的目标发送速率。因此,方法100所述的升速方式,使得该多条数据流中每条数据流受限于所述数据流的当前发送速率,从而导致升高发送速率的过程各数据流之间缺乏公平性。
基于此,本申请的一种可选实施例中,从进入稳速阶段开始,发送点可以检测数据流的发送速率是否是所述发送点的最大发送速率。最大发送速率是指所述发送点的最大可发送速率。若数据流的发送速率不是所述发送点的最大发送速率,指示所述数据流的发送速率还有升高的空间。进而,发送点判断所述发送点以数据流当前的发送速率发送所述数据流之后,第二预设间隔时长内是否接收到第二CNP。所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包。若第二预设间隔时长内未接收到所述第二CNP,指示发送点以数据流当前的发送速率发送所述数据流未造成拥塞,发送点将所述数据流的发送速率更新为目标发送速率。本申请的一个实施例中,所述目标发送速率满足:
Figure BDA0001783540290000151
然后,发送点重复执行上述判断数据流的发送速率是否是最大发送速率的操作,直到所述数据流的发送速率达到发送点的最大发送速率。在本申请的可选实施例中,将本阶段称为升速阶段。
当然,在本申请所述的升速过程中,发送点在任意时刻接收到所述数据流对应的新CNP,则执行方法200。此处不再详述。
应理解,根据方法200的步骤S201所述,本申请的技术方案中,发送点在不同时刻接收到的是不同的CNP。而本申请可选实施例所述的升速过程中,每一轮判断操作所对应的时刻均不同,因此,本轮判断操作对应的CNP与上一轮判断操作对应的CNP不同。基于此,本申请的一种可选实施例在描述时,可以将每一轮判断操作对应的CNP的序数词描述为上一轮判断操作对应CNP的序数词加一。
例如,第一轮判断操作对应判断所述发送点是否接收到第二CNP,若所述发送点未接收到第二CNP,将所述数据流的发送速率更新,并进入第二轮判断。第二轮判断操作对应判断发送点是否接收到第三CNP,若所述发送点未接收到第三CNP,将所述数据流的发送速率再次更新,并进入第三轮判断。若所述发送点接收到第三CNP,则执行方法200,并在后续升速阶段可以对CNP重新设置序数词。
由此可见,本申请所述的升速阶段,所述数据流的发送点以其最大发送速率作为参考数据,升高所述数据流的发送速率,从而在有多条数据流需要升高发送速率时,能够保证各条数据流之间升速的公平性。
参见图6,图6是本申请传输速率控制方法另一个实施例的方法流程图。图6所示方法300应用在所述DCN中,在所述方法200执行之前由接收点执行。
应理解,所述方法300是所述方法200对端设备的实施例,所述方法300所保护的技术特征与所述方法200所保护的技术特征相对应。基于此,所述方法300中与所述方法200相同或者相应的技术术语以及操作步骤等的详细描述,参见方法200,方法300不再赘述。
方法300包括如下步骤:
步骤S301,所述接收点接收所述发送点发送且经由所述传输点转发的第一数据包。
步骤S302,所述接收点根据所述第一数据包包括的ECN标记,生成第一CNP。
其中,与方法100的描述相同的,本申请的技术方案中,传输点检测所述传输点的队列长度是否超过水线,若所述传输点的队列长度超过水线,指示所述传输点存在拥塞。
本申请的一种可选实施方式中,为了缩短接收点向发送点通告拥塞的时长,使得接收点及时向发送点发送CNP,当传输点存在拥塞时,所述传输点为入队列的数据包,出队列的数据包和所述传输点的队列中全部数据包均打ECN标记然后,继续传输所有打ECN标记的数据包。本实施方式中,所述打ECN标记的数据包包括所述第一数据包。
所述方法300中,所述第一数据包与数据流的关系,所述数据流与所述第一CNP的关系,详见所述方法200中相应的描述。所述第一CNP的帧结构详见图5所示,图5示出的帧结构中每项数据的含义,详见所述方法200中相应的描述。此处不再赘述。
与所述方法200对应的,所述第一CNP包含速率信息。在本申请的一个可选实施例中,所述接收点在接收到所述第一数据包之后,获取所述速率信息,并将所述速率信息写入CNP中的保留位。
与所述方法200相同的,在本申请的一种可选示例中,速率信息包括第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和。在本申请的另一种可选示例中,速率信息包括接收速率。本申请中所述的第一周期以及接收速率的具体实施方式,详见方法200中相应的描述。此处不再赘述。
步骤S303,所述接收点向所述发送点发送所述第一CNP。
其中,所述接收点将所述第一CNP发送到所述发送点之后,触发所述发送点执行所述方法200。
应理解,本申请所述技术方案,接收点不断检测所接收的所述数据流的数据包是否包含ECN标记,如果发送所述第一CNP第一预设间隔时长内,接收的数据流的数据包包含ECN标记,所述接收点再次执行步骤S302,生成并发送第二CNP。
综上,本申请所述的传输速率控制方法,接收点所接收的数据流的第一数据包包含ECN标记时,所述接收点将接收所述数据流的数据包的接收速率,通过所述数据流对应的CNP反馈到发送点。发送点根据所述接收速率确定所述数据流的目标发送速率,进而按照目标发送速率调整所述数据流的发送速率,使得所述数据流的发送速率处于排空阶段、稳速阶段或者升速阶段。由此可见,本申请的技术方案,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。此外,本申请以发送点的最大发送速率作为所述数据流升速的参数依据,还能够在有多条数据流需要升高发送速率时,保证各条数据流之间升速的公平性。
上述方法200和方法300均是结合逻辑等效后的DCN对本申请的描述,为了更加清楚、详细的阐述本申请的技术方案,下面结合DCN的一个硬件实体拓扑图对本方案进行描述。
参见图7,图7是本申请DCN一个实施例的拓扑图。其中,发送点A的数据流A顺次经传输点71、传输点73和传输点74传输到接收点X。发送点B发送数据流B1和数据流B2,其中,数据流B1顺次经传输点72、传输点73和传输点74传输到接收点X,数据流B2顺次经传输点72、传输点73和传输点74传输到接收点Y。发送点C发送的数据流C顺次经传输点72、传输点73和传输点74传输到接收点Y。
其中,接收点X和接收点Y在图7所示的网络建立连接开始,可以均以10μs为周期,不断记录每10μs所接收的每条数据流的数据包的长度总和,以得到相应10μs内,接收每条数据流的接收速率。
需要指出的,为了便于DCN网络统筹管理,上述将接收点X和接收点Y对应的预设周期时长设置为相同。但是,在实际使用中,接收点X和接收点Y对应的预设周期时长也可以设置为不同。本申请对此不限制。
图7所示的DCN中,传输点71、传输点72、传输点73和传输点74中每个传输点不断检测所述传输点的队列长度是否超过预设水线,若所述传输点的队列长度超过水线,指示该传输点产生拥塞,所述传输点将队列中的全部数据包均打ECN标记。本申请的一个可选实施例中,传输点72的队列长度是否超过预设水线,则传输点72为其队列中数据流B1的数据包、数据流B2的数据包和数据流C的数据包,均打上ECN标记。传输点71、传输点73和传输点74中每个传输点的队列长度均为超过水线,则传输点71、传输点73和传输点74不执行上述打ECN标记的操作。下文将本次打上ECN标记的数据流B1的数据包称为数据包B1,将本次打上ECN标记的数据流B2的数据包称为数据包B2,将本次打上ECN标记的数据流C的数据包称为数据包C。
应理解,按照数据流的流向,DCN网络中的传输点可以表述为多级。当多级传输点中至少两级传输点存在拥塞时,本申请的一种可选实现方式是,拥塞传输点中的第一级传输点为所述第一级传输点的队列中的数据包打ECN标记。且,如果所述至少两级拥塞的传输点所传输的数据流完全相同,所述至少两级拥塞的传输点中的其他级的传输点无需为其队列中的数据包打ECN标记。如果所述至少两级拥塞的传输点所传输的数据流部分相同时,所述至少两级拥塞的传输点中的其他级的传输点为其队列中未打ECN标记的数据包打ECN标记。
例如,传输点73和传输点74均传输数据流A的数据包、数据流B1的数据包、数据流B2的数据包和数据流C的数据包。当传输点73和传输点74均存在拥塞时,传输点73将所述传输点73的队列包含的全部数据包打ECN标记即可。基于此,传输点74中入队列的数据包均已包含ECN标记,所以,传输点74无需再为所述传输点74的队列包含的数据包打ECN标记。
再如,当传输点72和传输点73存在拥塞时,即使传输点72对所述传输点72的队列包含的全部数据包均已打ECN标记,但是,传输点72传输数据流B1的数据包、数据流B2的数据包和数据流C的数据包,而传输点73相较传输点72还传输数据流A的数据包,所以,传输点73还需要为所述传输点73的队列中包含的数据流A的数据包打ECN标记。
以图7中示出的传输点72存在拥塞为例,传输点72将数据包B1发送到接收点X,将数据包B2和数据包C发送到接收点Y。
以数据包B1、接收点X以及发送点B的操作过程为例进行描述。接收点X接收到数据包B1后,确定接收到数据包B1所在周期的时间段,然后,接收点X获取相应时间段内接收的数据流B1的数据包的长度总和计算得到接收点X接收数据流B1的接收速率。进一步的,接收点X生成第一CNPB1,并将所述第一CNPB1发送到发送点B。所述第一CNPB1包括数据流B1的流标识,以及所述接收点X接收数据流B1的接收速率。
发送点B接收第一CNPB1后,读取第一CNPB1包含的接收速率。进而,发送点B按照方法200中所述的方法计算得到数据流B1的排空速率和排空时间,然后,将数据流B1的发送速率降为所述排空速率,使传输点72的队列中的数据流B1的数据包进入排空阶段。
应理解,在发送点B以所述排空速率发送数据流B1持续排空时间之后,传输点72的队列中数据流B1的数据包已经排空,但是,传输点72的队列中可能还包括数据流B2的数据包和数据流C的数据包。基于此,为避免传输点72再次进入拥塞状态,同时避免数据流B1的数据包欠吞吐,在以所述排空速率发送数据流B1持续排空时间之后,发送点B将数据流B1的发送速率有排空速率更新为所述第一CNPB1包含的接收速率,以使数据流B1的数据包在传输点72的入队列速率和出队列速率达到平衡。
本实施例中,接收点X两次发送数据流B1的最小间隔时长例如是50μs。相应的,发送点B在接收到第一CNPB1之后55μs内未接收到第二CNPB1,则认为传输点72存在的拥塞已消除。若传输点72存在的拥塞消除,发送点B仍以接收速率发送数据流B1,会使数据流B1的数据包欠吞吐。基于此,若以接收速率发送数据流B1的55μs内未接收到第二CNPB1,发送点B将数据流B1的发送速率升速至接收速率与发送点B的最大发送速率之和的一半。然后,发送点B检测55μs内是否接收到接收点X发送的第三CNPB1,若发送点B在升速后的55μs内未接收到第三CNPB1,将数据流B1的发送速率升速至数据流B1的当前发送速率与发送点B的最大发送速率之和的一半。重复执行上述判断过程,直到数据流B1的发送速率达到发送点B的最大发送速率。当然,若发送点B在升速期间接收到接收点X发送的CNPB1,则再次计算数据流B1对应的排空速率,并将数据流B1的发送速率降为本次计算得到的排空速率。
与接收点X的处理过程相同的,接收点Y接收到数据包B2和数据包C之后,生成第一CNPB2和第一CNPC。其中,所述第一CNPB2包括数据流B2的流标识,以及接收点Y接收数据流B2的数据包的接收速率,所述第一CNPC包括数据流C的流标识,以及接收点Y接收数据流C的数据包的接收速率。然后,接收点Y将所述第一CNPB2发送到发送点B,将所述第一CNPC发送到发送点C。
发送点B接收到所述第一CNPB2后,根据所述第一CNPB2中包含的接收速率,计算数据流B2的排空速率和排空时间,并将数据流B2的发送速率降为相应排空速率。然后,在以相应排空速率发送数据流B2持续所述据流B2的对应的排空时间后,发送点B将数据流B2的发送速率由相应排空速率升速为第一CNPB2包含的接收速率。进而,在升速阶段,发送点B判断是否接收到第n CNPB2,若未接收到第n CNPB2,则以数据流B2正在使用的发送速率和发送点B的最大发送速率为参数,进行升速。具体判断过程及升速过程,与数据流B1相似,此处不再详述。
相应的,发送点C接收到所述第一CNPC后,根据所述第一CNPC中包含的接收速率,计算数据流C的排空速率和排空时间,并将数据流C的发送速率降为相应排空速率。然后,在以相应排空速率发送数据流C持续所述据流C的对应的排空时间后,发送点C将数据流C的发送速率由相应排空速率升速为第一CNPC包含的接收速率。进而,在升速阶段,发送点C判断是否接收到第n CNPC,若未接收到第n CNPC,则以数据流C正在使用的发送速率和发送点C的最大发送速率为参数,进行升速。具体判断过程及升速过程,与数据流B1相似,此处不再详述。
其中,本实施例中,n是二、三或四等序数词。
应理解,虽然接收点X还接收数据流A的数据包,但是传输数据流A的数据包的传输点71、传输点73和传输点74均不存在拥塞。所以,接收点X接收到的数据流A的数据包不包含ECN标记,接收点X也无需对应数据流A生成CNP。进而,发送点A无需调整数据流A的发送速率。若传输点73和/或传输点74存在拥塞,那么,接收点X接收到的数据流A的数据包也包含ECN标记。进而,接收点X生成并向发送点A发送第一CNPA,所述第一CNPA包含数据流A的流标识,和接收点X接收数据流A的数据包的接收速率。发送点A接收到第一CNPA之后,调整数据流A的发送速率。发送点A调整数据流A的发送速率的过程,与上述发送点B调整数据流B1的描述相似。本实施例不再详述。
综上,本申请所述的传输速率控制方法,接收点所接收的数据流的第一数据包包含ECN标记时,所述接收点将接收所述数据流的数据包的接收速率,通过所述数据流对应的CNP反馈到发送点。发送点根据所述接收速率确定所述数据流的目标发送速率,进而按照目标发送速率调整所述数据流的发送速率,使得所述数据流的发送速率处于排空阶段、稳速阶段或者升速阶段。由此可见,本申请的技术方案,能够精确的调整数据流的发送速率,从而能够消除传输点的队列拥塞,提高数据流的传输性能。此外,本申请以发送点的最大发送速率作为所述数据流升速的参数依据,还能够在有多条数据流需要升高发送速率时,保证各条数据流之间升速的公平性。
与上述传输速率控制方法对应的,本申请还提供了传输速率控制装置。
在本申请的一个可选实施例中,设置在所述发送点的传输速率控制装置包括接收模块、发送模块和处理模块。所述接收模块、所述发送模块和所述处理模块可以用于执行所述方法200以及图7对应的实施例中所述发送点执行的方法。
以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时,所述接收模块的功能可以集成到发送器,所述发送模块的功能可以集成到接收器,所述处理模块的功能可以集成到处理器实现。如图8所示,图8是本申请传输速率控制装置的一个实施例的结构示意图。该传输速率控制装置800包括发送器801、接收器802和处理器803。所述发送器801可以执行方法200以及图7对应的实施例中的数据流的发送。所述接收器802可以执行方法200以及图7对应的实施例中的CNP的接收。所述处理器803可以执行方法200以及图7对应的实施例中除了数据流的发送和CNP的接收之外的操作。
例如,该发送器801可以用于向所述接收点发送所述数据流;该接收器802可以用于接收所述接收点发送的第一拥塞通告报文CNP,所述第一CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;该处理器803可以用于根据所述速率信息确定所述接收速率;根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;将所述数据流的发送速率更新为所述排空速率。
具体内容可以参考方法200以及图7对应的实施例中相关部分的描述,此处不再赘述。
与图8所示的传输速率控制装置对应的,本申请还提供了一种发送设备。如图9所示,图9是本申请发送设备的一个实施例的结构示意图。该发送设备900可以包括处理器901、收发器902和存储器903。其中,存储器903可以用于存储发送设备900预装的程序/代码,也可以存储用于处理器901执行时的代码等。
应理解,本申请的发送设备900可对应于本申请的方法200以及图7对应的实施例中的发送点,其中收发器902用于执行方法200以及图7对应的实施例中所述发送点执行的CNP的接收和数据流的发送,处理器901用于执行上述方法200以及图7对应的实施例中所述发送点除了CNP的接收和数据流的发送之外的其它处理。在此不再赘述。
在本申请的一个可选实施例中,设置在所述接收点的传输速率控制装置包括接收模块、发送模块和处理模块。所述接收模块、所述发送模块和所述处理模块可以用于执行所述方法300以及图7对应的实施例中所述发送点执行的方法。
以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时,所述接收模块的功能可以集成到发送器,所述发送模块的功能可以集成到接收器,所述处理模块的功能可以集成到处理器实现。如图10所示,图10是本申请传输速率控制装置的另一个实施例的结构示意图。该传输速率控制装置1000包括发送器1001、接收器1002和处理器1003。该发送器1001具体可以用于执行上述方法300以及图7对应的实施例中所述接收点执行的CNP的发送;该接收器1002具体可以用于执行上述方法300以及图7对应的实施例中所述接收点执行的数据包的接收;该处理器1003具体用于执行上述方法300以及图7对应的实施例中所述接收点除了数据包的接收和CNP的发送之外的其它处理。
例如,该发送器1001可以用于向所述发送点发送所述第一CNP;该接收器1002可以用于接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;以及向所述发送点发送所述第一CNP;该处理器1003可以用于根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率。
具体内容可以参考方法300以及图7对应的实施例中相关部分的描述,此处不再赘述。
与图10所示的传输速率控制装置对应的,本申请还提供了一种接收设备。如图11所示,图11是本申请接收设备的一个实施例的结构示意图。该接收设备1100可以包括处理器1101、收发器1102和存储器1103。其中,存储器1103可以用于存储接收设备1100预装的程序/代码,也可以存储用于处理器1101执行时的代码等。
应理解,本申请的接收设备1100可对应于本申请的方法300以及图7对应的实施例中所述接收点,其中收发器1102用于执行上述方法300以及图7对应的实施例中所述接收点执行的数据包的接收和CNP的发送,处理器1101用于执行上述方法300以及图7对应的实施例中所述接收点除了数据包的接收和CNP的发送之外的其它处理。在此不再赘述。
本申请还提供了一种DCN。该DCN包括发送点、传输点和接收点。其中,发送点可以是图8对应的实施例所提供的传输速率控制装置,或者图9对应的实施例所提供的发送设备,接收点可以是图10对应的实施例所提供的传输速率控制装置,或者图11对应的实施例所提供接收设备。所述DCN用于执行图4至图7对应的实施例中的方法。
具体实现中,对应发送设备和接收设备,本申请还分别提供一种计算机存储介质,其中,设置在任意设备中的计算机存储介质可存储有程序,该程序执行时,可实施包括图4至图7提供的传输速率控制方法的各实施例中的部分或全部步骤。任意设备中的存储介质均可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。
本申请中,收发器可以是有线收发器,无线收发器或其组合。有线收发器例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线收发器例如可以为无线局域网收发器,蜂窝网络收发器或其组合。处理器可以是中央处理器(centralprocessingunit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
图9和图11中还可以包括总线接口,总线接口可以包括任意数量的互联的总线和桥,具体由处理器代表的一个或多个处理器和存储器代表的存储器的各种电路链接在一起。总线接口还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器提供用于在传输介质上与各种其他设备通信的单元。处理器负责管理总线架构和通常的处理,存储器可以存储处理器在执行操作时所使用的数据。
本领域技术任何还可以了解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于UE中。可选地,处理器和存储媒介也可以设置于UE中的不同的部件中。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对实施例的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
另外,本申请提及的“第一”以及“第二”等序数词,用于对多个相同属性但包含不同内容的对象进行区分。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (18)

1.一种传输速率控制方法,其特征在于,所述方法应用于数据中心网络DCN,所述DCN包括发送点、传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流,所述方法包括:
所述发送点接收所述接收点发送的第一拥塞通告报文CNP,所述第一拥塞通告报文CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一拥塞通告报文CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述发送点根据所述速率信息确定所述接收速率;
所述发送点根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;
所述发送点将所述数据流的发送速率更新为所述排空速率。
2.如权利要求1所述的传输速率控制方法,其特征在于,所述发送点根据所述接收速率确定排空速率,包括:
所述发送点根据所述数据流的发送速率和所述接收速率生成超速比因子a,所述超速比因子a满足:
Figure FDA0003243175070000011
其中,R发送是指所述数据流的发送速率,R接收是指所述接收速率;
所述发送点根据所述超速比因子a确定排空时间Tpause,所述排空时间Tpause满足:Tpause=a×(tgt+rtt)+tgt,其中,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔,rtt是指所述传输点中无队列时,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长;
所述发送点根据所述排空时间Tpause计算所述排空速率Rpause,所述排空速率Rpause满足:
Figure FDA0003243175070000012
3.如权利要求2所述的传输速率控制方法,其特征在于,在所述发送点将所述数据流的发送速率更新为所述排空速率之后,还包括:
所述发送点以所述排空速率发送所述数据流持续所述排空时间;
所述发送点将所述数据流的发送速率更新为所述接收速率。
4.如权利要求3所述的传输速率控制方法,其特征在于,在所述发送点将所述数据流的发送速率更新为所述接收速率之后,还包括:
所述发送点检测所述数据流的发送速率是否达到所述发送点的最大发送速率;
当所述数据流的发送速率未达到所述发送点的最大发送速率时,所述发送点判断第二预设间隔时长内是否接收到所述接收点发送的第二CNP,所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包,所述第二预设间隔时长大于第一预设间隔时长,所述第一预设间隔时长是接收点发送CNP的最小间隔时长;
当所述第二预设间隔时长内未接收到所述第二CNP时,所述发送点将所述数据流的发送速率更新为目标发送速率,所述目标发送速率满足:
Figure FDA0003243175070000021
Figure FDA0003243175070000022
所述发送点重复执行所述检测所述数据流的发送速率是否达到所述发送点的最大发送速率的操作,直到所述数据流的发送速率达到所述发送点的最大发送速率。
5.如权利要求1所述的传输速率控制方法,其特征在于,
所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
所述速率信息包括所述接收速率。
6.如权利要求5所述的传输速率控制方法,其特征在于,
所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
7.如权利要求5所述的传输速率控制方法,其特征在于,
所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
8.一种传输速率控制方法,其特征在于,所述方法应用于数据中心网络DCN,所述DCN包括发送点、传输点和接收点,所述接收点用于接收所述发送点经由所述传输点发送的数据流,所述方法包括:
所述接收点接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;
所述接收点根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一拥塞通告报文CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述接收点向所述发送点发送所述第一拥塞通告报文CNP;其中,所述第一拥塞通告报文CNP用于指示所述发送点根据所述第一拥塞通告报文CNP中包含的所述接收速率确定排空速率,并指示所述发送点将所述数据流的发送速率更新为所述排空速率,所述排空速率指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包。
9.如权利要求8所述的传输速率控制方法,其特征在于,
所述速率信息包括:第一周期和所述接收点在所述第一周期内接收到所述数据流的数据包的长度总和;或者
所述速率信息包括所述接收速率。
10.如权利要求9所述的传输速率控制方法,其特征在于,
所述接收点在所述第一周期内接收到的所述数据流的数据包中包括所述第一数据包。
11.如权利要求9所述的传输速率控制方法,其特征在于,
所述接收速率是指所述接收点接收的所述数据流的数据包包括所述第一数据包的周期对应的速率。
12.一种传输速率控制装置,其特征在于,设置在发送点,所述发送点设置在数据中心网络DCN,所述DCN还包括传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流,所述装置包括发送器、接收器和处理器,其中,
所述发送器,用于向所述接收点发送所述数据流;
所述接收器,用于接收所述接收点发送的第一拥塞通告报文CNP,所述第一拥塞通告报文CNP指示所述传输点转发第一数据包时所述传输点存在拥塞,所述数据流包括所述第一数据包,所述第一拥塞通告报文CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述处理器,用于根据所述速率信息确定所述接收速率;还用于根据所述接收速率确定排空速率,所述排空速率是指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包;还用于将所述数据流的发送速率更新为所述排空速率。
13.如权利要求12所述的传输速率控制装置,其特征在于,
所述处理器,具体用于根据所述数据流的发送速率和所述接收速率生成超速比因子a,所述超速比因子a满足:
Figure FDA0003243175070000031
其中,R发送是指所述数据流的发送速率,R接收是指所述接收速率;根据所述超速比因子a确定排空时间Tpause,所述排空时间Tpause满足:Tpause=a×(tgt+rtt)+tgt,其中,tgt是指所述队列中的数据包出队列时的时间戳与入队列时的时间戳的差应满足的时间间隔,rtt是指所述传输点中无队列时,数据包从所述发送点经由所述传输点传输到所述接收点,再由所述接收点返回所述发送点的时长;根据所述排空时间Tpause计算所述排空速率Rpause,所述排空速率Rpause满足:
Figure FDA0003243175070000032
Figure FDA0003243175070000033
14.如权利要求13所述的传输速率控制装置,其特征在于,
所述处理器,还用于控制所述发送器以所述排空速率发送所述数据流持续所述排空时间;还用于将所述数据流的发送速率更新为所述接收速率。
15.如权利要求14所述的传输速率控制装置,其特征在于,
所述处理器,还用于检测所述数据流的发送速率是否达到所述发送点的最大发送速率;当所述数据流的发送速率未达到所述发送点的最大发送速率时,还用于判断第二预设间隔时长内是否接收到所述接收点发送的第二CNP,所述第二CNP指示所述传输点转发第二数据包时所述传输点存在拥塞,所述数据流包括所述第二数据包,所述第二预设间隔时长大于第一预设间隔时长,所述第一预设间隔时长是接收点发送CNP的最小间隔时长;当所述第二预设间隔时长内未接收到所述第二CNP时,还用于将所述数据流的发送速率更新为目标发送速率,所述目标发送速率满足:
Figure FDA0003243175070000034
Figure FDA0003243175070000035
所述处理器,还用于重复执行所述检测所述数据流的发送速率是否达到所述发送点的最大发送速率的操作,直到所述数据流的发送速率达到所述发送点的最大发送速率。
16.一种传输速率控制装置,其特征在于,设置在接收点,所述接收点设置在数据中心网络DCN,所述DCN还包括发送点和传输点,所述接收点用于接收所述发送点经由所述传输点发送的数据流,所述装置包括发送器、接收器和处理器,其中,
所述接收器,用于接收所述发送点发送且经由所述传输点转发的第一数据包,所述数据流包括所述第一数据包,所述第一数据包包括显式拥塞通告ECN标记,所述ECN标记指示所述传输点转发所述第一数据包时所述传输点存在拥塞;
所述处理器,用于根据所述第一数据包包括的ECN标记,生成第一拥塞通告报文CNP,所述第一拥塞通告报文CNP包括速率信息,所述速率信息指示所述接收点接收所述数据流包括的数据包的接收速率;
所述发送器,用于向所述发送点发送所述第一拥塞通告报文CNP;其中,所述第一拥塞通告报文CNP用于指示所述发送点根据所述第一拥塞通告报文CNP中包含的所述接收速率确定排空速率,并指示所述发送点将所述数据流的发送速率更新为所述排空速率,所述排空速率指示所述传输点将所述传输点中的队列包括的全部数据包出队列的速率,所述队列包括所述数据流中的数据包。
17.一种发送设备,其特征在于,用作发送点,所述发送点设置在数据中心网络DCN,所述DCN还包括传输点和接收点,所述发送点用于经由所述传输点向所述接收点发送数据流,所述发送设备包括处理器和存储器,其中:
所述存储器,用于存储程序指令;
所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述发送设备执行权利要求1至7中任一项所述的传输速率控制方法。
18.一种接收设备,其特征在于,用作接收点,所述接收点设置在数据中心网络DCN,所述DCN还包括发送点和传输点,所述接收点用于接收所述发送点经由所述传输点发送的数据流,所述接收设备包括处理器和存储器,其中:
所述存储器,用于存储程序指令;
所述处理器,用于调用并执行所述存储器中存储的程序指令,以使所述接收设备执行权利要求8至11中任一项所述的传输速率控制方法。
CN201811003680.7A 2018-08-30 2018-08-30 传输速率控制方法、装置、发送设备和接收设备 Expired - Fee Related CN109039936B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811003680.7A CN109039936B (zh) 2018-08-30 2018-08-30 传输速率控制方法、装置、发送设备和接收设备
PCT/CN2019/082462 WO2020042624A1 (zh) 2018-08-30 2019-04-12 传输速率控制方法、装置、发送设备和接收设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811003680.7A CN109039936B (zh) 2018-08-30 2018-08-30 传输速率控制方法、装置、发送设备和接收设备

Publications (2)

Publication Number Publication Date
CN109039936A CN109039936A (zh) 2018-12-18
CN109039936B true CN109039936B (zh) 2021-12-28

Family

ID=64625678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811003680.7A Expired - Fee Related CN109039936B (zh) 2018-08-30 2018-08-30 传输速率控制方法、装置、发送设备和接收设备

Country Status (2)

Country Link
CN (1) CN109039936B (zh)
WO (1) WO2020042624A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109039936B (zh) * 2018-08-30 2021-12-28 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备
CN110113782A (zh) * 2019-04-29 2019-08-09 惠州Tcl移动通信有限公司 数据传输方法、装置及存储介质
CN110460491B (zh) * 2019-07-05 2021-05-18 锐捷网络股份有限公司 基于rdma的性能测试方法及装置
CN110505156B (zh) * 2019-08-23 2020-10-30 中国人民解放军国防科技大学 一种高速互连网络中低开销的拥塞控制方法
CN113132262B (zh) * 2020-01-15 2024-05-03 阿里巴巴集团控股有限公司 一种数据流处理及分类方法、装置和系统
CN113162862A (zh) 2020-01-23 2021-07-23 华为技术有限公司 拥塞控制方法及装置
CN113992996A (zh) * 2020-07-10 2022-01-28 华为技术有限公司 传输数据的方法和装置
CN113794655A (zh) * 2020-07-17 2021-12-14 北京京东尚科信息技术有限公司 流量监控方法及装置、计算机存储介质、电子设备
CN112134809B (zh) * 2020-09-16 2024-04-23 山东云海国创云计算装备产业创新中心有限公司 一种流量控制方法、装置、设备及可读存储介质
CN113098785B (zh) * 2021-03-31 2022-05-27 新华三信息安全技术有限公司 一种报文处理方法及装置
CN114938350B (zh) * 2022-06-15 2023-08-22 长沙理工大学 数据中心无损网络中基于拥塞反馈的数据流传输控制方法
CN119496743A (zh) * 2023-08-21 2025-02-21 中兴通讯股份有限公司 网络拥塞的控制方法和装置
CN116915722B (zh) * 2023-09-12 2023-12-19 珠海星云智联科技有限公司 一种网络拥塞调节方法、装置、计算设备及可读存储介质
CN117395206B (zh) * 2023-12-12 2024-03-12 南京邮电大学 面向无损数据中心网络的快速精确拥塞反馈方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 全球微波接入互操作性网络数据流量控制方法
CA2699325C (en) * 2007-09-26 2016-03-15 International Business Machines Corporation Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture
CN108418767A (zh) * 2018-02-09 2018-08-17 华为技术有限公司 数据传输方法、设备及计算机存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8416690B2 (en) * 2010-01-11 2013-04-09 Research In Motion Limited Explicit congestion notification based rate adaptation using binary marking in communication systems
CN105915464B (zh) * 2016-06-21 2018-09-25 中南大学 一种快速简单的量化拥塞通告方法
CN109039936B (zh) * 2018-08-30 2021-12-28 华为技术有限公司 传输速率控制方法、装置、发送设备和接收设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030926A (zh) * 2006-02-28 2007-09-05 华为技术有限公司 全球微波接入互操作性网络数据流量控制方法
CA2699325C (en) * 2007-09-26 2016-03-15 International Business Machines Corporation Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture
CN108418767A (zh) * 2018-02-09 2018-08-17 华为技术有限公司 数据传输方法、设备及计算机存储介质

Also Published As

Publication number Publication date
CN109039936A (zh) 2018-12-18
WO2020042624A1 (zh) 2020-03-05

Similar Documents

Publication Publication Date Title
CN109039936B (zh) 传输速率控制方法、装置、发送设备和接收设备
CN108390820B (zh) 负载均衡的方法、设备及系统
CN104272680B (zh) 用信号通知拥塞
US8665892B2 (en) Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
US10594617B2 (en) Probabilistic normalized congestion indication based on packet size
CN107948103B (zh) 一种基于预测的交换机pfc控制方法及控制系统
CN108418767A (zh) 数据传输方法、设备及计算机存储介质
US9444741B2 (en) Facilitating network flows
CN108540380B (zh) 多子流网络传输方法及装置
KR102177574B1 (ko) 컴퓨팅 디바이스에서 패킷 수명을 예측하기 위한 큐잉 시스템
US20190158415A1 (en) Layer 3 fair rate congestion control notification
CN105432046B (zh) 用于数据流的快速友好启动的方法、装置及介质
US11190454B2 (en) Receiver-directed computer network congestion control system
CN106936730A (zh) 一种报文发送方法、tcp代理以及tcp客户端
CN113783785A (zh) Ecn水线值的配置方法、装置及网络设备
WO2018157819A1 (zh) 多子流网络传输方法及装置
CN113225196B (zh) 服务等级配置方法以及装置
CN112532535B (zh) 一种用于优化网络拥塞的方法和装置
CN116266826A (zh) 一种分布式机器学习的网络优化系统、方法及电子设备
US12199873B2 (en) Scalable E2E network architecture and components to support low latency and high throughput
CN118524065B (zh) 拥塞控制方法及装置、存储介质及电子设备
CN101753407B (zh) 一种obs组帧方法和装置
WO2010081365A1 (zh) 防拥塞的处理方法及系统
Shi et al. PABO: Congestion mitigation via packet bounce
Irawan et al. Performance evaluation of queue algorithms for video-on-demand application

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20211228