CN115834501A - 一种流量控制方法和通信装置 - Google Patents
一种流量控制方法和通信装置 Download PDFInfo
- Publication number
- CN115834501A CN115834501A CN202111087415.3A CN202111087415A CN115834501A CN 115834501 A CN115834501 A CN 115834501A CN 202111087415 A CN202111087415 A CN 202111087415A CN 115834501 A CN115834501 A CN 115834501A
- Authority
- CN
- China
- Prior art keywords
- communication device
- message
- sending
- rate
- measurement result
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种流量控制方法和通信装置,用于进行流量控制。在本申请中,第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,然后基于第一发送速率向第二通信装置发送携带有第一发送速率的信息的第一消息,当第一通信装置接收到携带第一发送速率的信息和测量结果的第一ACK时,其测量结果可以影响第一发送速率的被选中概率,得到多个发送速率的第二概率分布,那么,即使第一通信装置接收到第一ACK时,发送第一消息的RTT已经结束,但是第一通信装置可以基于第二概率分布从多个发送速率中选择一个,来发送下一个消息,从而实现了跨RTT的持续的流控。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种流量控制方法和通信装置。
背景技术
从链路的时分复用改为包级别的统计复用,提升了带宽资源的利用率。在数据通信领域,包级别的统计复用的场景下,带宽资源的竞争分配与协调是着重研究的基本问题,即如何实现流量控制或如何建立拥塞控制机制。
当前,通过流量控制与拥塞控制机制,不同节点之间依靠多次尝试,通过迭代逼近固定的资源分配。例如,常见的流量控制与拥塞控制机制的基本过程可以如图1-1所示,两个流(实线和虚线)在竞争带宽资源的过程中,通过在多个来回通信时间(round-triptime,RTT)频繁调整拥塞窗口(congestion window,cnwd),即单位时间(time,单位:秒second,s)内发送的数据报文(packets)的数量,最终趋于一致,达到带宽资源的公平分配。
但是,随着网速提高,带宽与延迟的乘积(bandwidth delay product,BDP)持续增大,固定大小的流的通信时间持续减少,出现了越来越高比例的流量在首个RTT内已经结束,因此无法调整cwnd。
发明内容
本申请实施例提供了一种流量控制方法和通信装置,用于进行流量控制。
第一方面,本申请提供了一种流量控制方法,包括:
第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,所述第一概率分布用于指示所述多个发送速率中各个发送速率的被选中概率;所述第一通信装置基于所述第一发送速率向第二通信装置发送第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一发送速率为预设的多个发送速率中的一个,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;所述第一通信装置接收所述第二通信装置发送的第一确认消息(acknowledge,ACK),所述第一ACK携带所述第一发送速率的信息和对所述第一消息的测量结果;所述第一通信装置根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,得到所述多个发送速率的第二概率分布。
在本申请中,第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,然后基于第一发送速率向第二通信装置发送携带有第一发送速率的信息的第一消息,当第一通信装置接收到携带第一发送速率的信息和测量结果的第一ACK时,其测量结果可以影响第一发送速率的被选中概率,得到多个发送速率的第二概率分布,那么,即使第一通信装置接收到第一ACK时,发送第一消息的RTT已经结束,但是第一通信装置可以基于第二概率分布从多个发送速率中选择一个,来发送下一个消息,从而实现了跨来回通信时间(round-trip time,RTT)的持续的流控。
在一些可行的实现方式中,所述第一通信装置根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,得到所述多个发送速率的第二概率分布之后,还包括:所述第一通信装置基于所述第二概率分布从所述多个发送速率中选择第二发送速率;所述第一通信装置基于所述第二发送速率向所述第二通信装置发送第二消息。那么,即使第一通信装置接收到第一ACK时,发送第一消息的RTT已经结束,但是第一通信装置可以基于第二概率分布从多个发送速率中选择一个,来发送下一个消息,从而实现了跨RTT的持续的流控。
在一些可行的实现方式中,所述测量结果包括拥塞指示ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例,若所述ECN比例大于预设比例,则所述第二发送速率为所述多个发送速率中的最低发送速率,避免了在网络拥塞情况极端严重的情况下,网络设备中排队的数据报文持续增加,可能导致的不管选择任何发送速率,其流控效果都一样差的情况。
在一些可行的实现方式中,所述第二消息中携带第二决策序号,所述第一消息携带第一决策序号,所述第二决策序号为基于预设序列的所述第一决策序号的下一个序号,那么第一通信装置可以根据决策序号确定其先后顺序,使得在反馈ACK存在延迟的情况下,也能实现迭代对齐。
在一些可行的实现方式中,所述第一发送速率的信息包括所述第一发送速率的数值和第一决策序号,当第二通信装置接收到第一消息,可以反馈可以所述第一发送速率的数值和第一决策序号,那么第一通信装置不需要保存第一发送速率的数值和第一决策序号的映射表,节省了存储空间。或,所述第一发送速率的信息包括所述第一决策序号,其中,所述第一决策序号对应所述第一消息,无需包括第一发送速率的数值,节省了带宽资源。
在一些可行的实现方式中,所述多个发送速率中各个发送速率分别为其中,ARMi用于表示序号为i的发送速率,PortRate为固定速率值,i为正整数,通过存储该公式,在第一通信装置无需存储各个发送速率的表格,同时方便后续对发送速率进行调整。
在一些可行的实现方式中,所述测量结果为所述多个数据报文中的最后一个数据报文到达所述第二通信装置的时刻,适用于多个数据报文中各个数据报文都携带发送时间戳,且第一通信装置和第二通信装置已经实现时钟同步的情况。
或,所述测量结果为所述第一消息的实际完成时间,所述第一消息的实际完成时间等于所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻减去所述多个数据报文中第一个数据报文的发送时间戳,适用于多个数据报文中各个数据报文都携带发送时间戳,且第一通信装置和第二通信装置已经实现时钟同步的情况。
或,所述测量结果为所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻,多个数据报文中各个数据报文未携带发送时间戳,但第一通信装置和第二通信装置已经实现时钟同步。
或,所述测量结果为所述多个数据报文中最后一个数据报文的发送时间戳,适用于多个数据报文中各个数据报文都携带发送时间戳,但第一通信装置和第二通信装置已经未实现时钟同步的情况。
或,所述测量结果为所述多个数据报文的ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例,从而体现出网络的拥塞程度。
在一些可行的实现方式中,所述第二通信装置计算所述第一得分:
其中,slowdowns(i)为所述第一消息的实际完成时间和最优完成时间的比值,所述最优完成时间等于所述第一消息的大小除以所述第一发送速率的商,加上从所述第一通信装置到所述第二通信装置的单向传播时延,ECN_Ratiolatest-cnp(i)为所述ECN比例的值,α为0到1之间的预设值。在一些可行的实现方式中,α为0~1之间的数值,α为甲部的权重,1-α为乙部的权重,其中,甲部为消息延迟的得分,乙部为网络拥塞情况的得分,通过可以调整α的值,可以调节网络设备的负载情况和链路的带宽利用率(消息延迟)之间的平衡。通过实验证明,当α≈0.85时,可以取得较好的网络设备的负载情况和链路的带宽利用率(消息延迟)之间的平衡。
然后,所述第一通信装置根据所述第一得分和所述第一发送速率的历史得分进行综合计算,得到第二得分,所述第一通信装置根据所述第二得分调整所述第一发送速率在所述多个发送速率中的被选中概率。
第二方面,本申请提供了一种流量控制方法,包括:收发模块,用于接收第一通信装置发送的第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;处理模块,用于根据所述第一消息进行关于流控效果的测量,得到测量结果;所述收发模块,还用于向所述第一通信装置发送第一ACK,所述第一ACK携带所述第一发送速率的信息和所述测量结果。
在本申请中,第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,然后基于第一发送速率向第二通信装置发送携带有第一发送速率的信息的第一消息,当第一通信装置接收到携带第一发送速率的信息和测量结果的第一ACK时,其测量结果可以影响第一发送速率的被选中概率,得到多个发送速率的第二概率分布,那么,即使第一通信装置接收到第一ACK时,发送第一消息的RTT已经结束,但是第一通信装置可以基于第二概率分布从多个发送速率中选择一个,来发送下一个消息,从而实现了跨RTT的持续的流控。
在一些可行的实现方式中,所述多个数据报文中每个数据报文都携带发送时间戳,所述测量结果包括实际完成时间,所述实际完成时间为接收到所述第一消息的最后一个数据报文的时间减去所述第一通信装置发送所述第一消息的首个数据报文的发送时间戳。
在一些可行的实现方式中,所述第一发送速率的信息包括所述第一发送速率的数值和第一决策序号,或,所述第一发送速率的信息包括所述第一决策序号,其中,所述第一决策序号对应所述第一消息。
在一些可行的实现方式中,所述第一ACK携带所述第一发送速率的信息和/或所述第一决策序号。
在一些可行的实现方式中,所述测量结果还包括ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例。
第三方面,本申请提供一种通信装置,用作第一通信装置,所述第一通信装置用于执行前述第一方面中任一项所述的方法。
第四方面,本申请提供一种通信装置,用作第二通信装置,所述第二通信装置用于执行前述第二方面中任一项所述的方法。
第五方面,本申请提供一种数据通信系统,包括:第一通信装置和第二通信装置,其中,所述第一通信装置用于执行前述第一方面中所述第一通信装置执行的任意一种方法;所述第二通信装置用于执行前述第二方面中所述第二通信装置执行的任意一种方法。
第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面中任一项所述的方法。
本申请第七方面提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第一方面或者第一方面的任一种可能的实现方式所提供的方法。
本申请第八方面提供一种通信装置,该通信装置可以包括至少一个处理器、存储器和通信接口。至少一个处理器与存储器和通信接口耦合。存储器用于存储指令,至少一个处理器用于执行该指令,通信接口用于在至少一个处理器的控制下与其他通信装置进行通信。该指令在被至少一个处理器执行时,使至少一个处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
本申请第九方面提供了一种芯片系统,该芯片系统包括处理器,用于支持通信装置实现上述第一方面或第二方面任意一种可能的实现方式中所涉及的功能。
在一种可能的设计中,芯片系统还可以包括存储器,存储器用于保存芯片系统中必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第三至第九方面或者其中任一种可能实现方式所带来的技术效果可参见第一方面或第一方面不同可能实现方式所带来的技术效果,此处不再赘述。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请中,第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,然后基于第一发送速率向第二通信装置发送携带有第一发送速率的信息的第一消息,当第一通信装置接收到携带第一发送速率的信息和测量结果的第一ACK时,其测量结果可以影响第一发送速率的被选中概率,得到多个发送速率的第二概率分布,那么,即使第一通信装置接收到第一ACK时,发送第一消息的RTT已经结束,但是第一通信装置可以基于第二概率分布从多个发送速率中选择一个,来发送下一个消息,从而实现了跨RTT的持续的流控。
附图说明
图1-1为本申请中常见的流量控制与拥塞控制机制的基本过程的示意图;
图1-2为本申请实施例提供的一种数据通信系统的组成结构示意图;
图1-3为当网速较慢时的当前的流量控制与拥塞控制机制的示意图;
图1-4为当网速较快时的当前的流量控制与拥塞控制机制的示意图;
图2为本申请实施例提供的一种流量控制方法的流程示意图;
图3-1为本申请实施例提供的一种数据通信系统的一种网络拓扑的示意图;
图3-2为当前常用的流控与拥塞控制算法DCQCN的方案的技术效果;
图3-3为本申请实施例的流量控制方法的方案的技术效果;
图4为本申请实施例提供的一种第一通信装置的结构示意图;
图5为本申请实施例提供的一种第二通信装置的结构示意图;
图6为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
本申请实施例提供了一种流量控制方法和通信装置,用于进行流量控制。
下面结合附图,对本申请的实施例进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例的技术方案可以应用于各种数据处理的数据通信系统,例如基于有线的数据通信系统,或者基于无线的数据通信系统(例如长期演进(long term evolution,LTE)系统、第五代(5th generation,5G)通信系统),以及其它类似的数据通信系统。此外,所述数据通信系统还可以适用于面向未来的通信技术,都适用本申请实施例提供的技术方案。本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
请参阅图1-2,为本申请实施例提供的一种数据通信系统的组成结构示意图。本申请实施例提供的一种数据通信系统100,包括:第一通信装置110,第二通信装置120和网络设备130。
其中,网络设备130可以是交换机(switch)或路由器(router)等在通信网络中用于转发业务报文的设备。其中,网络设备130用于连接两个或多个通信网络的硬件设备,在通信网络间起网关的作用,能够读取业务报文中的目的地址(IP地址和/或MAC地址)并决定如何根据该目的地址传送该业务报文。网络设备130能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的传输控制协议/互联协议(transmission controlprotocol/internet protocol,TCP/IP)协议等,这样网络设备130可以分析各种不同类型网络传来的业务报文的目的地址,把非TCP/IP地址转换成TCP/IP地址,或者反之。再根据选定的路由算法把各个业务报文按最佳传输路径传送到目的地址,所以网络设备130可以把非TCP/IP网络连接到因特网上。
在一些可行的实现方式中,第一通信装置110/第二通信装置120可以为终端设备。其中,终端设备可以是具备无线通信功能的通信设备,例如智能手机、平板电脑、台式计算机、物联网(internet of things,IoT)设备等。IoT设备可以是家用电器、智能家居、交通工具、工具设备、服务设备、服务设施或可穿戴设备等,IoT设备例如但不限于:智能冰箱、智能洗衣机、智能水表、智能电表、智能汽车、车载设备或可穿戴设备等等。
在一些可行的实现方式中,第一通信装置110和/或第二通信装置120通过网络(局域网或广域网)连接网络设备130,第一通信装置110和/或第二通信装置120也可以直连网络设备130,此处不做限定。
例如,网络设备130为交换机,第一通信装置110、第二通信装置120和网络设备130均在同一个局域网中,第一通信装置110和第二通信装置120分别直连该网络设备130。又例如,网络设备130为交换机,第一通信装置110与网络设备130不在同一个局域网中,第一通信装置110与网络设备130通过公网连接,第二通信装置120与网络设备130在同一个局域网中,第二通信装置120与网络设备130直连。又例如,网络设备130为路由器,第一通信装置110、第二通信装置120和网络设备130均不在同一个局域网中,第一通信装置110和第二通信装置120分别通过公网连接该网络设备130。
从链路的时分复用改为包级别的统计复用,提升了带宽资源的利用率。在数据通信领域,包级别的统计复用的场景下,带宽资源的竞争分配与协调是着重研究的基本问题,即如何实现流量控制或如何建立拥塞控制机制。
当前,通过流量控制与拥塞控制机制,不同节点之间依靠多次尝试,通过迭代逼近固定的资源分配。但是,随着网速提高,带宽与延迟的乘积(bandwidth delay product,BDP)持续增大,固定大小的流的通信时间持续减少,出现了越来越高比例的流量在首个RTT内已经结束,因此无法调整cwnd。
举例说明,如图1-3所示,当网速较慢的情况下,当发送端通过速率1(发送速率与cwnd对应,简称速率)向接收端发送消息,接收端向发送端返回反馈1。发送端根据反馈1对速率1进行调整,得到速率2,接着使用速率2向接收端发送消息,收端向发送端返回反馈2。发送端根据反馈2对速率2进行调整,得到速率3,接着使用速率3向接收端发送消息,收端向发送端返回反馈3,如此类推。若反馈1(或反馈2)显示网络拥塞情况严重,则速率2(或速率3)就会降低速率,若反馈1(或反馈2)显示网络拥塞情况轻微,则速率2(或速率3)就会提高速率。流量控制与拥塞控制机制可以通过多轮RTT调整cwnd,达到带宽资源的公平分配。
但是,而在网速较高的情况下,如图1-4所示,当出现反馈1(或反馈2)回来时,该数据流的数据已经传输完成,已经没有流量可以控制,也没有可以控制的对象,因此无法调整速率2(或速率3),因此在下一次仍然通过速率1发送消息,则无法调整cwnd,无法进行流量控制或拥塞控制。
请参考图2,本申请提出了一种流量控制方法,包括:
201、第一通信装置生成第一消息。
在本申请实施例中,第一消息可以包括多个数据报文,该多个数据报文具有相同源地址和目的地址(MAC地址和/或IP地址)。在本申请实施例中,该第一消息的目的地址是第二通信装置,则该多个数据报文的源地址为第一通信装置,目的地址为第二通信装置。例如,第一消息包括100个数据报文,这100个数据报文的目的地址都是第二通信装置。
需要说明的是,第一消息可是具有一段应用层信息为单位,例如一段文本、一张静止图片、一张动图或视频的一帧,该段应用层信息可以通过多个数据报文进行传输,这多个数据报文的应用层信息构成第一消息。
在一些可行的实现方式中,第一消息也可以以数据报文的数量为单位,例如100个数据报文,这100个数据报文的目的地址都是第二通信装置,源地址都是第一通信装置。
在一些可行的实现方式中,第一消息也可以以时长为单位,例如1秒内发送的数据报文,这1秒内发送的多个数据报文的目的地址都是第二通信装置,源地址都是第一通信装置。
在一些可行的实现方式中,第一消息也可以以总数据量为单位,例如200Kb,这200Kb的多个数据报文的目的地址都是第二通信装置,源地址都是第一通信装置。
202、第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率。
在本申请实施例中,当第一通信装置准备发送第一消息时,需要选择一个发送速率。在一些可行的实现方式,第一通信装置可以预先准备有多个发送速率,第一通信装置从多个发送速率中选择一个发送速率,作为发送第一消息的第一发送速率。例如,多个发送速率包括发送速率A=100Mbps,发送速率B=200Mbps,发送速率C=400Mbps。在一些可行的实现方式中,发送速率还可以指单位时间内发送的数据报文的数量,例如100,200,400,此处不做限定。
在一些可行的实现方式中,多个发送速率中各个发送速率可以具有不同的序号。在一些可行的实现方式,多个发送速率中各个发送速率的序号可以是连续的,例如,1,2,…。在一些可行的实现方式中,多个发送速率中各个发送速率分别为:
其中,PortRate为一个固定速率值,例如1024Mbps。i为发送速率的序号,ARMi为序号为i的发送速率,i为正整数,i可以是连续的,例如1、2、3、………。举例说明,ARM1=PortRate=1024Mbps,ARM2=1/2*PortRate=512Mbps,ARM3=1/4*PortRate=256Mbps。那么,第一通信装置不需要存储不同的发送速率的值。在一些可行的实现方式中,ARMi和i的关系,也可以通过映射表格来存储,此处不做限定。
在本申请实施例中,第一概率分布用于指示多个发送速率中各个发送速率的被选中概率。例如,多个发送速率包括发送速率A、发送速率B和发送速率C,发送速率A的被选中的概率为20%,发送速率B的被选中的概率为30%,发送速率C的被选中的概率为50%。第一通信装置可以根据特定的第一概率分布从多个发送速率中选择一个发送速率,作为第一发送速率。
需要说明的是,第一概率分布与源通信装置、目的通信装置相关。例如,若源通信装置是第一通信装置,目的通信装置是第二通信装置,对应多个发送速率1,该多个发送速率2对应的概率分布1;若源通信装置不是第一通信装置,或目的通信装置不是第二通信装置,则可以对应多个发送速率2,该多个发送速率2对应的概率分布2。其中,多个发送速率1和多个发送速率2可以不尽相同,概率分布1和概率分布2可以不相同。
举例说明,以第一通信装置为源通信装置,第二通信装置为目的通信装置,则多个发送速率包括发送速率A、发送速率B和发送速率C,那么第一概率分布可以指示为:发送速率A的被选中的概率为20%,发送速率B的被选中的概率为30%,发送速率C的被选中的概率为50%。当第一通信装置为源通信装置,第三通信装置为目的通信装置,则多个发送速率包括发送速率B、发送速率C、发送速率D和发送速率E,那么第一概率分布可以指示为:发送速率B的被选中的概率为40%,发送速率C的被选中的概率为20%,发送速率D的被选中的概率为15%,发送速率E的被选中的概率为15%。
在一些可行的实现方式中,若第一通信装置是第一次向第二通信装置发送消息的,那么该第一概率分布可以是预设的初始化概率分布,例如均匀分布,或者高斯分布,此处不做限定。在一些可行的实现方式中,若第一通信装置不是第一次向第二通信装置发送消息,那么该第一概率分布可以在多次发送消息与反馈的过程中进行调整。
示例性的,对于第一概率分布的调整可以通过多臂老虎机(multi-armed bandit,MAB)的算法实现。MAB算法主要针对在一个不断演化的环境中,训练一个能主动选择的动作,并根据动作所返回的不同类型的反馈(feedback),动态调整下一次的动作,以达到在一个在长期时间段内获得的较高的反馈质量。因此,在本申请实施例中,可以将MAB算法应用到调整第一概率分布上。示例性的,对于第一概率分布的调整,本申请实施例将通过下述步骤203-207进行详细描述。
在本申请实施例中,当确定了第一概率分布后,可以基于第一概率分布从多个发送速率中选择一个发送速率,作为第一发送速率。例如,P(ARM1)=30%(即ARM1被选中的概率为30%),P(ARM2)=25%,P(ARM3)=45%。需要说明的是,当从多个发送速率中选择第一发送速率时,并非必然选中概率最高的发送速率,而是根据概率分布进行选择。例如概率最高的ARM3仅有45%,即只有45%的概率会选中ARM3,有100%-45%=55%的概率会选中ARM3之外的其他发送速率。
203、第一通信装置基于第一发送速率向第二通信装置发送第一消息。
在本申请实施例中,当第一通信装置生成第一消息,并基于第一概率分布确定第一消息对应的第一发送速率后,可以使用第一发送速率向第二通信装置发送第一消息。在一些可行的实现方式中,第一消息可以携带第一发送速率的信息。示例性的,第一消息包括多个数据报文,多个数据报文中每个数据报文都携带第一发送速率的信息。
在一些可行的实现方式,第一发送速率的信息包括第一发送速率的数值和/或第一决策序号。
其中,第一决策序号与第一消息一一对应。例如,若第一通信装置向第二通信装置发送了1000次消息,那么就可以有与之一一对应的1000个决策序号。在一些可行的实现方式中,不同的决策序号之间可以基于预设序列排列,例如自然数以此排列。举例说明,第一决策序号为1,第二消息的第二决策序号为2,第二消息为第一消息的下一个消息。在一些可行的实现方式中,预设序列还可以为偶数,也可以为质数,也可以其他类型的预设序列,此处不做限定。在一些可行的实现方式中,基于该预设序列,决策序号之间可以依次递增,也可以依次递减,此处不做限定。
在本申请实施例中,第一消息中承载第一发送速率的数值的字段可以称为第一决策内容,那么第一消息的多个数据报文中的第一决策内容都是第一发送速率的数值。例如,第一发送速率为ARM3=1/4*PortRate=256Mbps,那么多个数据报文中各个数据报文中的决策内容都是ARM3。在一些可行的实现方式中,第一决策内容中可以填写ARM3,也可以填写256Mbps,此处不做限定。若第二通信装置也存储有与第一通信装置中相同的序号i和发送速率ARMi的映射表,那么第一决策内容也可以为第一发送速率的序号,例如3。
举例说明,如下表1所示,为第一决策序号和第一决策内容的映射表:
表1
第一决策序号 | 第一决策内容 |
1000 | ARM1或1024Mbps或1 |
1001 | ARM2或512Mbps或2 |
1002 | ARM3或256Mbps或3 |
在一些可行的实现方式中,第一消息的多个数据报文中还可以携带的发送时间戳,承载发送时间戳的字段可以称为测量依据。需要说明的是,不同的数据报文的发送时间戳不相同,在发送不同的数据报文时为该数据报文打上的不同的发送时间戳。举例说明,如下表2所示,为不同的数据报文和发送时间戳的映射表:
表2
数据报文 | 发送时间戳 |
1 | 发送时间戳1 |
2 | 发送时间戳2 |
… | … |
100 | 发送时间戳100 |
需要说明是,多个数据报文中的第一个数据报文称为首包,最后一个数据报文称为尾包。例如,该第一消息包括100个数据报文,第1个发送的数据报文称为首包,第100个发送的数据报文称为尾包。在一些可行的实现方式中,数据报文中可以携带数据报文的序号,第二通信装置可以根据数据报文的序号判断该数据报文是否为首包或尾包。在一些可行的实现方式,若数据报文中未携带数据报文的序号,那么第二通信装置可以根据接收时间的先后来判断首包和尾包,此处不做限定。
举例说明,第一消息中的多个数据报文中各个数据报文分别携带第一决策序号、第一决策内容和各自的测量依据,如表3所示:
表3
其中,载荷用于承载数据报文的应用层信息,数据包头、路由依据用于指示第一通信装置为源地址,第二通信装置为目的地址,以及其他的路由信息。
在一些可行的实现方式中,第一通信装置中保存有不同的决策内容和决策序号之间的映射表,那么在数据报文中,决策序号和决策内容二选一即可,当第二通信装置返回第一ACK时,第一ACK携带其中一个信息时,第一通信装置可以根据其中一个信息和映射表确定另一个信息。在一些可行的实现方式中,第二通信装置中不保存有决策内容和决策序号的映射表,那么在数据报文中,可以同时携带决策序号和决策内容,当第二通信装置返回第一ACK时,第一ACK携带两个信息时,第一通信装置可以获取该两个信息,从而进行对第一概率分布的调整。
需要说明的是,“向第二通信装置”指的是目的IP地址或目的MAC地址是第二通信装置的IP地址或MAC地址。例如,第一通信装置和第二通信装置属于同一个局域网,那么“向第二通信装置”的意思是目的MAC地址是第二通信装置的MAC地址;第一通信装置和第二通信装置不属于同一个局域网,那么“向第二通信装置”的意思是目的IP地址是第二通信装置的IP地址。在一些可行的实现方式中,第一通信装置可以通过中继器将数据报文转发给第二通信装置。在一些可行的实现方式,第一通信装置可以将数据报文发送给网络设备,让网络设备通过网络将数据报文转发给第二通信装置。在一些可行的实现方式中,若第一通信装置和第二通信装置直连,第一通信装置可以直接将数据报文发送给第二通信装置,此处不做限定。
204、网络设备为第一消息中的部分数据报文打上ECN标记。
在本申请实施例中,网络设备可以为交换机、路由器、中继器或其他网络设备,此处不做限定。在一些可行的实现方式中,网络设备可以是直连第一通信装置的交换机,也可以是在网络中的路由器,也可以是直连第二通信装置的交换机。在一些可行的实现方式中,若网络设备是直连第二通信装置的交换机,那么网络中大多数需要发送给第二通信装置的数据报文,都必须经过该网络设备(除非与第二通信装置直连的通信装置,例如蓝牙、有线,或者其他直连方式)。
例如,当第二通信装置作为一个接收端装置,第一通信装置包括多个发送端装置时(包括第一通信装置),多个发送端装置同时向第二通信装置发送数据报文。设网络设备为与第二通信装置直连的交换机,网络设备接收第一通信装置向第二通信装置发送的数据报文,然后向第二通信装置转发。这个时候,网络设备与第二通信装置之间的传输速率就会成为第一通信装置和第二通信装置之间的瓶颈。例如,网络设备与第二通信装置之间的速率上限是1000Mbps,第一通信装置包括10个发送端装置,每个通信装置的发送速率是200Mbps,那么网络设备无法及时将所有数据报文都发送给第二通信装置,必然有一些数据报文需要排队。
在一些可行的实现方式中,若排队的数据报文数量较大,可能会造成通信拥塞,网络设备可以对一部分数据报文打上拥塞指示(explicit congestion notification,ECN)标记。示例性的,网络设备可以对排队前预设数量的数据报文之外的所有数据报文打上ECN标记。例如,预设数量为100,那么网络设备对排队前100个数据报文之后的所有数据报文都打上ECN标记。在一些可行的实现方式中,网络设备可以对排队前预设数量个数据报文之外的数据报文,按照一定比例随机选择一部分打上ECN标记。例如,预设数量为100,那么网络设备对排队前100个数据报文之后的数据报文,随机选择50%都打上ECN标记。又例如,预设数量为100,那么网络设备对排队前100个数据报文到200个数据报文之间的每个数据报文有50%的概率打上ECN标记,网络设备对排队前200个数据报文之后的每个数据报文有75%的概率都打上ECN标记。
在一些可行的实现方式中,网络设备还可以选择打上网络遥测(in-band networktelemetry,INT)标记,此处不做限定。
205、第二通信装置根据第一消息进行关于流控效果的测量,得到测量结果。
在一些可行的实现方式中,当第二通信装置接收到第一消息的多个数据报文后,可以根据接收到的多个数据报文生成测量结果。
在一些可行的实现方式中,测量结果的内容可以根据第一通信装置和第二通信装置是否已经实现时钟同步,以及多个数据报文是否携带发送时间戳,分成3种情况分别说明。
情况一、多个数据报文中各个数据报文都携带发送时间戳,且第一通信装置和第二通信装置已经实现时钟同步。
在情况一中,测量结果可以包括多个数据报文中尾包到达第二通信装置的时刻。或者,测量结果可以包括第一消息的实际完成时间,第一消息的实际完成时间等于多个数据报文中尾包到达第二通信装置的时刻减去多个数据报文的首包的发送时间戳。
情况二、多个数据报文中各个数据报文未携带发送时间戳,但第一通信装置和第二通信装置已经实现时钟同步。
在情况二中,测量结果可以包括多个数据报文中尾包到达第二通信装置的时刻,当测量结果发送给第一通信装置时,让第一通信装置根据测量结果计算第一消息的实际完成时间。
情况三、多个数据报文中各个数据报文都携带发送时间戳,但第一通信装置和第二通信装置已经未实现时钟同步。
在情况三中,测量结果可以包括多个数据报文中尾包的发送时间戳,当测量结果发送给第一通信装置时,让第一通信装置根据测量结果计算第一消息的实际完成时间。
在一些可行的实现方式中,若网络设备为第一消息的多个数据报文中的至少一个数据报文打上过ECN标记,那么测量结果还可以包括第一消息中的多个数据报文中打上ENC标记的比例,即ECN比例。需要说明的是,ECN比例的数值可以为0-1之间的小数,其数值越大,说明网络越拥塞。在一些可能的实现方式中,测量结果还是为ECN比例,而不包括第一消息的实际完成时间、多个数据报文中尾包到达第二通信装置的时刻或多个数据报文中尾包的发送时间戳。
206、第二通信装置向第一通信装置发送第一ACK,第一ACK携带第一发送速率的信息和对第一消息的测量结果。
在一些可行的实现方式中,第一ACK可以携带第一发送速率的信息和对第一消息的测量结果,其中,第一发送速率的信息可以为第一决策序号和/或第一发送速率的数值。在一些可行的实现方式,第二通信装置在接收到第一消息后,获取其中的第一发送速率的信息(第一决策序号和/或第一发送速率的数值),将其复制到第一ACK中,让第一ACK携带该第一发送速率的信息(第一决策序号和/或第一发送速率的数值)。
需要说明的是,“向第一通信装置”指的是目的地址(IP地址或MAC地址)是第一通信装置的地址(IP地址或MAC地址)。例如,第一通信装置和第二通信装置属于同一个局域网,那么“向第一通信装置”的意思是目的MAC地址是第一通信装置的MAC地址;第一通信装置和第二通信装置不属于同一个局域网,那么“向第一通信装置”的意思是目的IP地址是第二通信装置的IP地址。示例性的,第二通信装置根据第二通信装置的地址,通过网络设备向第二通信装置转发该第一ACK。
207、第一通信装置根据测量结果调整第一发送速率在多个发送速率中的被选中概率,得到多个发送速率的第二概率分布。
在本申请实施例中,当第一通信装置接收到第一ACK后,可以根据第一ACK中的第一发送速率的信息确定对应的第一消息和第一发送速率。
示例性的,若第一发送速率的信息包括第一决策序号,则第一通信装置可以根据第一决策序号确定第一消息,再根据第一消息和发送速率的映射表确定第一发送速率的数值。
示例性的,若第一发送速率的信息包括第一决策序号和第一发送速率的数值,则第一通信装置可以根据第一决策序号确定第一消息,同时直接获取第一发送速率的数值,无需存储第一消息和第一发送速率的映射表。
在本申请实施例中,当第一通信装置确定第一消息和第一发送速率后,第一通信装置可以根据第一消息中的测量结果确定在第一发送速率的第一得分,然后根据第一得分调整第一发送速率在多个发送速率中的被选中概率,得到多个发送速率的第二概率分布。
举例说明,设第一得分为xs(i),其中,i表示第一发送速率的编号,s表示第一决策序号,计算第一得分为:
其中,slowdowns(i)中的s表示s时刻(即第一消息中首包的发送时间戳),i表示基于第一发送速率(ARMi)发送第一消息。其中:
slowdowns(i)=第一消息的实际完成时间/最优消息完成时间
其中,第一消息的是实际完成时间等于第一消息的尾包到达第二通信装置的时刻减去s时刻。在上述情况一中,第一通信装置可以从测量结果中直接获取第一消息的实际完成时间。在上述情况二中,第一通信装置可以从测量结果中获取多个数据报文中尾包到达第二通信装置的时刻,然后减去s时刻,得到第一消息的实际完成时间。在上述情况三中,第一通信装置可以从测量结果中获取多个数据报文中尾包的发送时间戳,使用当前时刻减去多个数据报文中首包的发送时间戳,再减去从第二通信装置到第一通信装置的单向传播时延,得到第一消息的实际完成时间。
其中,最优消息完成时间等于第一消息的数据量大小除以第一通信装置的端口速率的商,加上第一通信装置到第二通信装置的单向传播延迟。需要说明的是,第一通信装置到第二通信装置的单向传播延迟可以依据第一通信装置和第二通信之间的举例除以光在介质中的速度,例如距离/光速,或光纤长度/光在光纤里的传输速度。
在本申请实施例中,slowdowns(i)越大,说明第一消息的实际完成时间越长,即消息延迟情况越严重,流控效果越差,对应的xs(i)也越小。反之,slowdowns(i)越小,说明第一消息的实际完成时间越短,说明消息延迟情况较轻微,流控效果较好,对应的xs(i)就越大。
在一些可行的实现方式中,若考虑ECN比例的情况,xs(i)还可以为:
其中,称为甲部,(1-ECNRatiolastest-cnp(i))称为乙部。ECNRatiolastest-cnp(i)表示ECN比例,那么(1-ECNRatiolastest-cnp(i))表示未打上ECN标记的数据报文的比例。需要说明的是,ECNRatiolastest-cnp(i)和(1-ECNRatiolastest-cnp(i))的值在0%-100%之间,ECNRatiolastest-cnp(i)越大,说明网络越拥塞,(1-ECNRatiolastest-cnp(i))的值越小,xs(i)也越小,反之说明通信越顺畅。
在一些可行的实现方式中,α为0~1之间的数值,α为甲部的权重,1-α为乙部的权重,其中,甲部为消息延迟的得分,乙部为网络拥塞情况的得分,通过可以调整α的值,可以调节网络设备的负载情况和链路的带宽利用率(消息延迟)之间的平衡。通过实验证明,当α≈0.85时,可以取得较好的网络设备的负载情况和链路的带宽利用率(消息延迟)之间的平衡。举例说明,若α等于0.5,slowdowns(i)等于2,ECNRatiolastest-cnp(i)等于0.3时,则可以计算得到xs(i)=0.5*1/2+0.5*0.7=0.25+0.35=0.7。在一些可行的实现方式中,还可以将α设置为0,相当于仅考虑ECN比例的情况。
在本申请实施例中,当第一通信装置计算得到第一得分后,第一通信装置可以根据第一得分和第一发送速率的历史得分进行综合计算,得到第二得分,然后根据第二得分调整第一发送速率在多个发送速率中的被选中概率。
在一些可行的实现方式,第一通信装置可以将第一得分和历史得分计算平均值,作为第一发送速率的第二得分。例如,第一得分为0.7,历史得分为0.5,0.6,0.8,那么平均值为(0.5+0.6+0.8+0.7)/4=0.65,作为第二得分。
在一些可行的实现方式中,还可以使用加权平均值得到第二得分,其中,第一得分的权重为预设值,历史得分的权重可以按照时间确定。例如,较久的历史得分的权重较低,较近的历史得分的权重较高。例如第一得分是时间最近,权重为50%,上一次得分的权重为25%,再上一次得分的权重为12.5%,如此类推,进行加权。在一些可行的实现方式中,时间超过一定期限的历史得分可以不再使用。
在一些可行的实现方式中,当确定了第一发送速率的第二得分,可以根据第二得分确定第一发送速率的在多个发送速率中的被选中概率,从而确定第二概率分布。示例性的,若第一发送速率的第二得分为0.65,第二发送速率的第二得分为0.7,第三发送速率的第二得分为0.5。第二概率分布的计算方法可以通过多个发送速率的第二得分的排名确定。
举例说明,若在第一通信装置发送第一消息,接收第一ACK,以计算第一发送速率的第二得分前,第一发送速率的第二得分为0.4,那么,第一发送速率的第二得分为第三名,则第一概率分布为:第一名的发送速率的被选中概率为50%(第二发送速率),第二名的发送速率的被选中概率为30%(第二发送速率),第三名的发送速率的被选中概率为20%(第一发送速率)。
在第一通信装置发送第一消息,接收第一ACK,以计算第一发送速率的第二得分后,第一发送速率的第二得分为0.65,那么,第二概率分布为:第一名的发送速率的被选中概率为50%(第二发送速率),第二名的发送速率的被选中概率为30%(第一发送速率),第三名的发送速率的被选中概率为20%(第三发送速率)。
在一些可行的实现方式中,第二概率分布可以按照第二得分的数值占所有第二得分的总值的比例确定。例如,第一发送速率的第二得分为0.65,第二发送速率的第二得分为0.7,第三发送速率的第二得分为0.5,那么第二概率分布为:第一发送速率的被选中概率为0.65/(0.65+0.7+0.5)≈35%,第二发送速率的被选中概率为0.7/(0.65+0.7+0.5)≈37%,第二发送速率的被选中概率为0.5/(0.65+0.7+0.5)≈27%。
需要说明的是,还可以其他方式确定第二概率分布,此处不做限定。
在一些可行的实现方式中,在网络拥塞情况极端严重的情况下,网络设备中排队的数据报文持续增加,可能会导致不管选择任何发送速率,其流控效果都一样差的情况,那么上述对发送速率的选择就会陷入混乱,例如选择发送速率最高的发送速率。为了确保不出现这种情况,在一些可行的实现方式中,网络拥塞情况极端严重时,第一通信装置可以选择最低的发送速率,不会导致网络拥塞情况加剧。因此,在一些可行的实现方式中,当ECN比例超过90%时,即可认定为当前网络拥塞情况极端严重,那么第一通信装置可以选择多个发送速率中数值最低的发送速率。
208、第一通信装置生成第二消息。
在本申请实施例中,第一通信装置生成第二消息的步骤请参考步骤201中第一通信装置生成第一消息的步骤,此处不做赘述。在本申请实施例中,第二消息的源地址是第一通信装置,目的地址是第二通信装置。
209、第一通信装置基于第二概率分布从多个发送速率中选择第二发送速率。
在本申请实施例中,当第一通信装置确定第二概率分布后,若继续向第二通信装置发送第二消息,第一通信装置可以根据第二概率分布从多个发送速率中选择第二发送速率。在本申请实施例中,第一通信装置基于第二概率分布从多个发送速率中选择第二发送速率的步骤请参考步骤202中第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率的步骤,此处不做赘述。
210、第一通信装置基于第二发送速率向第二通信装置发送第二消息。
在本申请实施例中,第一通信装置基于第一发送速率向第二通信装置发送第一消息的步骤请参考步骤202中第一通信装置基于第二发送速率向第二通信装置发送第二消息的步骤,此处不做赘述。在一些可行的实现方式中,第二消息中携带第二决策序号,第一消息携带第一决策序号,第二决策序号为基于预设序列的第一决策序号的下一个序号。
在本申请中,第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,然后基于第一发送速率向第二通信装置发送携带有第一发送速率的信息的第一消息,当第一通信装置接收到携带第一发送速率的信息和测量结果的第一ACK时,其测量结果可以影响第一发送速率的被选中概率,得到多个发送速率的第二概率分布,那么,即使第一通信装置接收到第一ACK时,发送第一消息的RTT已经结束,但是第一通信装置可以基于第二概率分布从多个发送速率中选择一个,来发送下一个消息,从而实现了跨RTT的持续的流控。
上面描述了本申请的具体实施方式,下面通过模拟试验来验证上述实施例的效果。如图3-1所示,为一个数据通信系统100的一种网络拓扑,该数据通信系统100包括作为发端的多个第一通信装置110,一个网络设备130(如交换机),一个作为收端的第二通信装置120。
上述场景为常见的“多打一”的场景,例如31打1,即作为发端的31个第一通信装置110,作为收端的1个第二通信装置120。其中,31个第一通信装置110中,有1个第一通信装置110的发送的数据量较大,其余30个第一通信装置110发送的数据量较小,那么称为1个大象流和30个老鼠流。在这个场景中,突发大小为1个带宽与延迟的乘积(bandwidth delayproduct,BDP)(特指一个RTT时间内可以传输的数据大小),一个消息为8KB的大小,一个数据报文为1KB的大小(相当于一个消息由8个数据报文来承载),从网络设备到第二通信装置的瓶颈链路为40Gbps的带宽大小,1个RTT的时长为40微秒(us),即1bdp=40gbps*40us。
下面,本次模拟试验中对比了上述实施例的方案与当前常用的流控与拥塞控制算法(data center quantized congestion notification,DCQCN)的效果。如图3-2所示,为当前常用的DCQCN的方案的技术效果。在该场景下欠流吞吐带宽为25Gbps,平均消息完成时间为27.5us(即延迟),交换机队列峰值为100us(网络拥塞情况),P99.9消息完成时间为128us。
相比较,如图3-3所示,为本申请实施例中的方案,在该场景下欠流吞吐带宽为为33.75Gps(增加了35%),平均消息完成时间为23.93(即延迟减少了13%),交换机队列峰值为50us(网络拥塞情况降低了50%),P99.9消息完成时间为80.64us(降低了37%)。
由此可见,DCQCN的方案中,流吞吐带宽较小,延迟较大,抖动剧烈。而本申请实施例中的方案,其大象流吞吐更平稳,提升了带宽利用率,同时降低了交换机队列峰值,大幅降低了平均和P99.9消息完成时间。
如图3-2所示,为DCQCN的方案的技术效果,在该场景下欠吞吐、延迟和消息完成时间大,且抖动剧烈。如图3-3所示,为本申请实施例中的方案,采用本发明方案控制下的其大象流吞吐更平稳,提升了带宽利用率,同时降低了交换机队列峰值,大幅降低了平均和P99.9消息完成时间。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图4所示,本申请实施例提供的一种第一通信装置400,可以包括:处理模块401和收发模块402,其中,
处理模块401,用于基于第一概率分布从多个发送速率中选择第一发送速率,所述第一概率分布用于指示所述多个发送速率中各个发送速率的被选中概率;
收发模块402基于所述第一发送速率向第二通信装置发送第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一发送速率为预设的多个发送速率中的一个,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;
所述收发模块402,还用于接收所述第二通信装置发送的第一确认消息ACK,所述第一ACK携带所述第一发送速率的信息和对所述第一消息的测量结果;
所述处理模块401,还用于根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,得到所述多个发送速率的第二概率分布。
在一些可行的实现方式中,所述处理模块401,还用于基于所述第二概率分布从所述多个发送速率中选择第二发送速率;
所述收发模块402,还用于基于所述第二发送速率向所述第二通信装置发送第二消息。
在一些可行的实现方式中,所述测量结果为所述多个数据报文中的最后一个数据报文到达所述第二通信装置的时刻;或,所述测量结果为所述第一消息的实际完成时间,所述第一消息的实际完成时间等于所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻减去所述多个数据报文中第一个数据报文的发送时间戳;或,所述测量结果为所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻;或,所述测量结果为所述多个数据报文中最后一个数据报文的发送时间戳;或,所述测量结果为所述多个数据报文的ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例。
在一些可行的实现方式中,所述处理模块401,具体用于:
计算所述第一得分:
其中,slowdowns(i)为所述第一消息的实际完成时间和最优完成时间的比值,所述最优完成时间等于所述第一消息的大小除以所述第一发送速率的商,加上从所述第一通信装置到所述第二通信装置的单向传播时延,ECN_Ratiolatest-cnp(i)为所述ECN比例的值,α为0到1之间的预设值,根据所述第一得分和所述第一发送速率的历史得分进行综合计算,得到第二得分,根据所述第二得分调整所述第一发送速率在所述多个发送速率中的被选中概率。
请参阅图5所示,本申请实施例提供的一种第二通信装置500,可以包括:收发模块501和处理模块502,其中,
收发模块501,用于接收第一通信装置发送的第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;
处理模块502,用于根据所述第一消息进行关于流控效果的测量,得到测量结果;
收发模块501,还用于向所述第一通信装置发送第一ACK,所述第一ACK携带所述第一发送速率的信息和所述测量结果。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本申请实施例提供的另一种通信装置,请参阅图6所示,通信装置600包括:
接收器601、发射器602、处理器603和存储器604。在本申请的一些实施例中,接收器601、发射器602、处理器603和存储器604可通过总线或其它方式连接,其中,图6中以通过总线连接为例。
存储器604可以包括只读存储器和随机存取存储器,并向处理器603提供指令和数据。存储器604的一部分还可以包括非易失性随机存取存储器(non-volatile randomaccess memory,NVRAM)。存储器604存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器603控制通信设备的操作,处理器603还可以称为中央处理单元(centralprocessing unit,CPU)。具体的应用中,通信装置的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器603中,或者由处理器603实现。处理器603可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器603中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器603可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器604,处理器603读取存储器604中的信息,结合其硬件完成上述方法的步骤。
接收器601可用于接收输入的数字或字符信息,以及产生与通信装置的相关设置以及功能控制有关的信号输入,发射器602可包括显示屏等显示设备,发射器602可用于通过外接接口输出数字或字符信息。
本申请实施例中,处理器603,用于执行前述第一通信装置或第二通信装置执行的流量控制方法。
在另一种可能的设计中,当第一通信装置或第二通信装置为芯片时,包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述第一方面任意一项的无线报告信息的发送方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (24)
1.一种流量控制方法,其特征在于,包括:
第一通信装置基于第一概率分布从多个发送速率中选择第一发送速率,所述第一概率分布用于指示所述多个发送速率中各个发送速率的被选中概率;
所述第一通信装置基于所述第一发送速率向第二通信装置发送第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一发送速率为预设的多个发送速率中的一个,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;
所述第一通信装置接收所述第二通信装置发送的第一确认消息ACK,所述第一ACK携带所述第一发送速率的信息和对所述第一消息的测量结果;
所述第一通信装置根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,得到所述多个发送速率的第二概率分布。
2.根据权利要求1所述方法,其特征在于,所述第一通信装置根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,得到所述多个发送速率的第二概率分布之后,还包括:
所述第一通信装置基于所述第二概率分布从所述多个发送速率中选择第二发送速率;
所述第一通信装置基于所述第二发送速率向所述第二通信装置发送第二消息。
3.根据权利要求2所述方法,其特征在于,所述测量结果包括拥塞指示ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例,若所述ECN比例大于预设比例,则所述第二发送速率为所述多个发送速率中的最低发送速率。
4.根据权利要求3所述方法,其特征在于,所述第二消息中携带第二决策序号,所述第一消息携带第一决策序号,所述第二决策序号为基于预设序列的所述第一决策序号的下一个序号。
5.根据权利要求1-4中任一项所述方法,其特征在于,所述第一发送速率的信息包括所述第一发送速率的数值和第一决策序号,或,所述第一发送速率的信息包括所述第一决策序号,其中,所述第一决策序号对应所述第一消息。
7.根据权利要求1-6中任一项所述方法,其特征在于,
所述测量结果为所述多个数据报文中的最后一个数据报文到达所述第二通信装置的时刻;或,
所述测量结果为所述第一消息的实际完成时间,所述第一消息的实际完成时间等于所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻减去所述多个数据报文中第一个数据报文的发送时间戳;或,
所述测量结果为所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻;或,
所述测量结果为所述多个数据报文中最后一个数据报文的发送时间戳;或,
所述测量结果为所述多个数据报文的ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例。
8.根据权利要求7所述方法,其特征在于,所述第一通信装置根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,包括:
所述第二通信装置计算所述第一得分:
其中,slowdowns(i)为所述第一消息的实际完成时间和最优完成时间的比值,所述最优完成时间等于所述第一消息的大小除以所述第一发送速率的商,加上从所述第一通信装置到所述第二通信装置的单向传播时延,ECN_Ratiolatest-cnp(i)为所述ECN比例的值,α为0到1之间的预设值;
所述第一通信装置根据所述第一得分和所述第一发送速率的历史得分进行综合计算,得到第二得分;
所述第一通信装置根据所述第二得分调整所述第一发送速率在所述多个发送速率中的被选中概率。
9.根据权利要求8所述方法,其特征在于,所述α等于0.85。
10.一种流量控制方法,其特征在于,包括:
第二通信装置接收第一通信装置发送的第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;
所述第二通信装置根据所述第一消息进行关于流控效果的测量,得到测量结果;
所述第二通信装置向所述第一通信装置发送第一ACK,所述第一ACK携带所述第一发送速率的信息和所述测量结果。
11.根据权利要求10所述方法,其特征在于,所述多个数据报文中每个数据报文都携带发送时间戳,所述测量结果包括实际完成时间,所述实际完成时间为接收到所述第一消息的最后一个数据报文的时间减去所述第一通信装置发送所述第一消息的首个数据报文的发送时间戳。
12.根据权利要求10或11所述方法,其特征在于,所述第一发送速率的信息包括所述第一发送速率的数值和第一决策序号,或,所述第一发送速率的信息包括所述第一决策序号,其中,所述第一决策序号对应所述第一消息。
13.根据权利要求12所述方法,其特征在于,所述第一ACK携带所述第一发送速率的信息和/或所述第一决策序号。
14.根据权利要求10-13中任一项所述方法,其特征在于,所述测量结果还包括ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例。
15.一种通信装置,其特征在于,用作第一通信装置,包括:
处理模块,用于基于第一概率分布从多个发送速率中选择第一发送速率,所述第一概率分布用于指示所述多个发送速率中各个发送速率的被选中概率;
收发模块基于所述第一发送速率向第二通信装置发送第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一发送速率为预设的多个发送速率中的一个,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;
所述收发模块,还用于接收所述第二通信装置发送的第一确认消息ACK,所述第一ACK携带所述第一发送速率的信息和对所述第一消息的测量结果;
所述处理模块,还用于根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,得到所述多个发送速率的第二概率分布。
16.根据权利要求15所述通信装置,其特征在于,
所述处理模块,还用于基于所述第二概率分布从所述多个发送速率中选择第二发送速率;
所述收发模块,还用于基于所述第二发送速率向所述第二通信装置发送第二消息。
17.根据权利要求15或16所述通信装置,其特征在于,
所述测量结果为所述多个数据报文中的最后一个数据报文到达所述第二通信装置的时刻;或,
所述测量结果为所述第一消息的实际完成时间,所述第一消息的实际完成时间等于所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻减去所述多个数据报文中第一个数据报文的发送时间戳;或,
所述测量结果为所述多个数据报文中最后一个数据报文到达所述第二通信装置的时刻;或,
所述测量结果为所述多个数据报文中最后一个数据报文的发送时间戳;或,
所述测量结果为所述多个数据报文的ECN比例,所述ECN比例为所述多个数据报文中打上ECN标记的数据报文的比例。
18.根据权利要求17所述通信装置,其特征在于,所述第一通信装置根据所述测量结果调整所述第一发送速率在所述多个发送速率中的被选中概率,包括:
所述第二通信装置计算所述第一得分:
其中,slowdowns(i)为所述第一消息的实际完成时间和最优完成时间的比值,所述最优完成时间等于所述第一消息的大小除以所述第一发送速率的商,加上从所述第一通信装置到所述第二通信装置的单向传播时延,ECN_Ratiolatest-cnp(i)为所述ECN比例的值,α为0到1之间的预设值;
所述第一通信装置根据所述第一得分和所述第一发送速率的历史得分进行综合计算,得到第二得分;
所述第一通信装置根据所述第二得分调整所述第一发送速率在所述多个发送速率中的被选中概率。
19.一种流量控制通信装置,其特征在于,包括:
收发模块,用于接收第一通信装置发送的第一消息,所述第一消息中携带所述第一发送速率的信息,所述第一消息包括多个数据报文,所述多个数据报文中每个数据报文都携带所述第一发送速率的信息;
处理模块,用于根据所述第一消息进行关于流控效果的测量,得到测量结果;
所述收发模块,还用于向所述第一通信装置发送第一ACK,所述第一ACK携带所述第一发送速率的信息和所述测量结果。
20.一种数据通信系统,其特征在于,包括:第一通信装置和第二通信装置,其中,
所述第一通信装置用于执行前述权利要求1-9中任一项所述的方法;
所述第二通信装置用于执行前述权利要求10-14中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储有程序,所述程序使得计算机设备执行如权利要求1-14中任一项的方法。
22.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机执行指令,所述计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器从所述计算机可读存储介质中读取所述计算机执行指令,所述至少一个处理器执行所述计算机执行指令使得所述设备执行如权利要求1-14中任一项的方法。
23.一种通信装置,其特征在于,所述通信装置包括至少一个处理器、存储器和通信接口;
所述至少一个处理器与所述存储器和所述通信接口耦合;
所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述至少一个处理器的控制下与其他通信装置进行通信;
所述指令在被所述至少一个处理器执行时,使所述至少一个处理器执行如权利要求1-14中任一项的方法。
24.一种芯片系统,其特征在于,所述芯片系统包括处理器和存储器,所述存储器和所述处理器通过线路互联,所述存储器中存储有指令,所述处理器用于执行如权利要求1-14中任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111087415.3A CN115834501A (zh) | 2021-09-16 | 2021-09-16 | 一种流量控制方法和通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111087415.3A CN115834501A (zh) | 2021-09-16 | 2021-09-16 | 一种流量控制方法和通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834501A true CN115834501A (zh) | 2023-03-21 |
Family
ID=85515705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111087415.3A Pending CN115834501A (zh) | 2021-09-16 | 2021-09-16 | 一种流量控制方法和通信装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834501A (zh) |
-
2021
- 2021-09-16 CN CN202111087415.3A patent/CN115834501A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2204018B1 (en) | Limiting the rlc window size in a hsdpa flow control | |
US9356878B2 (en) | Method for avoiding network congestion and an apparatus thereof | |
CN108023758B (zh) | 一种混合接入网络中处理报文的方法及网络设备 | |
CN116527584B (zh) | 拥塞控制方法及装置、通信网络、计算机存储介质 | |
CN108540395B (zh) | 无丢失网络中的拥塞判断方法及交换机 | |
CN104093170A (zh) | 基于tcp的数据传输方法和tcp代理装置 | |
CN103841041A (zh) | 一种多流业务并发传输控制方法及装置 | |
US9614777B2 (en) | Flow control in a network | |
US8514700B2 (en) | MLPPP occupancy based round robin | |
Zhai et al. | Performance of wireless LANs based on IEEE 802.11 MAC protocols | |
KR101458245B1 (ko) | 무선 메쉬 네트워크에서 데이터 전송의 혼잡 상황을 통지/회피하는 방법 및 이를 위한 메쉬 노드 | |
CN115473855A (zh) | 网络系统、数据传输方法 | |
US11025551B2 (en) | Weighted fair queueing using severity-based window in reliable packet delivery network | |
CN113438180B (zh) | Udp数据包的传输控制方法、装置、设备及可读存储介质 | |
Sup et al. | Explicit non-congestion notification: A new AQM approach for TCP networks | |
CN115834501A (zh) | 一种流量控制方法和通信装置 | |
JP2008245011A (ja) | 無線装置およびそれを備えた無線ネットワーク | |
Eklund et al. | Efficient scheduling to reduce latency for signaling traffic using CMT-SCTP | |
Kuhn et al. | Less-than-best-effort capacity sharing over high BDP networks with LEDBAT | |
Wallace et al. | On-demand scheduling for concurrent multipath transfer under delay-based disparity | |
JP6200870B2 (ja) | データ転送制御装置、方法及びプログラム | |
CN110493141B (zh) | 一种路由转发传输控制方法、装置、设备和存储介质 | |
CN107612829B (zh) | 一种数据报文的路径信息获取方法及设备 | |
Ramantas et al. | Window-based burst assembly scheme for TCP traffic over OBS | |
Wang et al. | DSTP-end to end based approach to optimize data transmission for satellite communications |
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 |