CN113055935A - 一种拥塞控制方法、设备和*** - Google Patents

一种拥塞控制方法、设备和*** Download PDF

Info

Publication number
CN113055935A
CN113055935A CN201911368603.6A CN201911368603A CN113055935A CN 113055935 A CN113055935 A CN 113055935A CN 201911368603 A CN201911368603 A CN 201911368603A CN 113055935 A CN113055935 A CN 113055935A
Authority
CN
China
Prior art keywords
data
rate
sending
congestion
packet
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
Application number
CN201911368603.6A
Other languages
English (en)
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 CN201911368603.6A priority Critical patent/CN113055935A/zh
Publication of CN113055935A publication Critical patent/CN113055935A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0289Congestion control

Landscapes

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

Abstract

本申请实施例公开了一种拥塞控制方法、设备和***,用于通信技术领域。本申请实施例方法包括:接入点AP接收发送设备发送的第一数据报文,所述第一数据报文携带有拥塞标记;所述AP根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识;所述AP向发送设备发送携带有所述指示标识的所述第一ACK报文,所述指示标识用于指示所述发送设备调整所述第一数据流的发送速率;本申请实施例可以降低网络拥塞信号在无线网线网络侧的传输时延,使得TCP发送设备及时接收到该拥塞信号并调整数据流发送速率,提高吞吐量。

Description

一种拥塞控制方法、设备和***
技术领域
本申请实施例涉及通信技术领域,特别涉及一种拥塞控制方法、设备和***。
背景技术
网络拥塞是指通信网络中的报文(packet)数量过多,使得网络来不及处理报文,以至于整个网络性能下降的现象,一般的,网络拥塞可发生在核心网与接入点之间的有线网络侧,也可以发生在终端与接入点之间的无线网络侧;有线网络侧发生拥塞现象主要是因为交换机下行端口容量为100G,接入交换机的下行端口一般仅为2.5G,当瞬时流量突发时,将会导致接入交换机缓存溢出出现丢包,此时,需要由基于传输控制协议(transmission control protocol TCP)的发送设备对数据发送进行调速,控制进入网络的数据报文的数量;无线网络侧受环境影响较大,无线空口物理层由于干扰会导致传输时延增大,造成拥塞或者随机丢包,这种拥塞不同于有线网络中的网络拥塞,其与有线网络中报文的数量无关,不需要对发送设备的数据发送进行调速。
在现有的TCP端到端拥塞控制技术中,TCP发送设备无法直接感知链路上是否发生了拥塞,需要中间路由设备对其拥塞情况进行检测,TCP发送设备根据拥塞信号判断链路是否发生拥塞,从而进行调速;一般的,当有线网络侧发生拥塞时,中间路由设备会在TCP发送的数据报文中设置拥塞标识,接收设备在向发送设备发送对该数据报文的确认报文(acknowledgement,ACK)时,根据该拥塞标识在ACK报文中进行标记,发送设备则根据ACK报文中的标记进行调速,控制进入网络的报文的数量。
由于TCP发送设备是通过ACK报文来获知网络中发生拥塞现象的,而带标记的ACK报文是接收设备发送的确认报文,需要通过无线网传输至有线网后才能被发送设备接收,在无线网传输ACK报文时,时延抖动的问题将导致报文往返时间(round-trip time RTT)增大,造成拥塞反馈延迟,TCP发送设备不能及时调速,导致TCP对网络拥塞的反应不及时,吞吐量上不去。
发明内容
本申请提供了一种拥塞控制方法、设备和***,用于TCP接收设备通过无线传输网与接入点AP连接,AP再通过有线传输网与TCP发送设备连接,实现TCP发送设备与TCP接收设备基于TCP通信的网络场景中,可以解决网络拥塞信号在无线网络侧有较大传输时延,TCP发送设备不能及时进行拥塞控制的问题。
第一方面,提供了一种拥塞控制方法,包括:
发送设备向接收设备传输第一数据流,当第一数据流在有线网络侧的传输过程中发生网络拥塞时,有线网络侧的中间路由设备会为第一数据流中的第一数据报文添加拥塞标记,该第一数据报文传输至接入点AP,AP就确认本地缓存序列中该第一数据流对应的ACK报文的响应流,对已经缓存且等待发送的第一确认ACK报文设置指示标识,其中,第一数据流也包括第一ACK报文对应的第二数据报文;然后AP向发送设备发送携带有指示标识的第一ACK报文,该指示标识用于指示发送设备有线网络侧发生了网络拥塞,需要对第一数据流的发送速率进行相应调整。
接入点AP取代TCP接收设备的部分功能,当AP接收到携带有拥塞标记的第一数据报文时,直接由AP在本地已缓存的同一数据流的任一确认ACK报文中设置指示标识,用来指示有线网络侧出现网络拥塞现象,无需先将第一数据报文传输至发送设备,再由发送设备对第一数据报文的ACK报文进行标记,再将带标记的ACK报文通过无线网传输至无线接入点AP,最后才由AP通过有线网络传输至接收设备。
这样,有线网络侧就可以完成对拥塞信号的反馈处理,降低了对拥塞信号进行反馈处理的时延,TCP对网络拥塞的反应更加灵敏,性能更加优化。
基于第一方面,在第一方面的第一种可能的实施方式中:
中间路由设备是通过数据报文的互联网协议IP头中包括的显示拥塞通告ECN字段来设置拥塞标记的,当发生网络拥塞时,中间路由设备就将第一数据流中的第一数据报文的ECN字段设置为第一值,当第一数据报文传输至接入点AP时,AP根据第一数据报文的ECN字段的第一值,将已缓存的第一ACK报文的传输控制协议TCP头中的ECE字段设置为第二值,当第一ACK报文传输至发送设备之后,发送设备检测该报文的ECE字段的取值,若为第二值,就对第一数据流的发送速率进行降速。
AP利用ECN字段来获悉有线网络侧的网络拥塞,并利用ACK报文的ECE字段对网络拥塞信号做出处理并向发送设备反馈该网络拥塞,发送设备就可以根据收到的ACK报文中的ECE字段来调整数据流的发送速率,控制进入有线网络的报文数量,解决网络拥塞问题。
基于第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中:
当AP对第一数据报文携带的拥塞标记进行处理,并利用在先传输的第二数据报文对应的第一ACK报文反馈给发送设备后,就不需要接收设备对该拥塞标记再次处理,因此AP将第一数据报文传输给接收设备时,需要将该拥塞标记进行消除,即将第一数据报文的ECN字段设置为第三值后再向接收设备转发该第一数据报文。
由于接收设备也会对数据报文的ECN字段进行检测并且向发送设备反馈,当先接收到第一数据报文的AP对拥塞标记做出响应后,后接收第一数据报文的接收设备如果再根据ACK报文进行反馈,发送设备就可能会再次降低数据流的发送速率,造成因过度降速而引起吞吐量上不去的问题;而使用该种实施方式,就可以避免接收设备对拥塞标记进行重复处理,使得发送设备对发送速率进行适度降速,提高控制网络拥塞的性能。
基于第一方面,在第一方面的第三种可能的实施方式中:
一般的,发送设备只检测ACK报文的ECE字段,而不会检测ACK报文的ECN字段,在本实施方式中,接入点AP使用ACK报文的ECN字段来向发送设备反馈网络拥塞情况,当AP检测到第一数据报文的ECN字段为第一值,即发生网络拥塞时,AP就将本地已缓存的第一ACK报文IP头中的ECN字段设置为第一值,当发送设备接收到第一数据报文时,需要对第一数据报文的ECN字段进行检测,若该ECN字段为第一值,即根据该第一值对第一数据流的发送速率进行降速。
当接收到携带有拥塞标记的第一数据报文时,由于接收设备是根据ACK报文的ECE字段指示发送设备降速,而AP是根据ACK报文的ECN字段指示发送设备降速的,这样,发送设备可以识别指示降速的主体,为后续发送设备根据执行主体的不同分别采取不同降速策略提供了准备。
基于第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中:
当AP通过ACK报文的ECN字段对拥塞标记作出反馈之后,就不需要接收设备对该拥塞标记再次处理,因此AP将第一数据报文传输给接收设备时,可以将该拥塞标记进行消除,即将第一数据报文的ECN字段设置为第三值后再向接收设备转发该第一数据报文。
使用该种实施方式,就可以避免接收设备对拥塞信号进行重复处理,使得发送设备对发送速率进行适度降速,提高控制网络拥塞的性能。
基于第一方面至第一方面的第四种可能的实施方式中的任一项,在第一方面的第五种可能的实施方式中:
当AP接收到携带有拥塞标记的第一数据报文时,可以对当前缓存序列中已经缓存的第一个待转发的ACK报文设置指示标识,也可以对多个待转发的第二ACK报文设置指示标识,且这些ACK报文对应的数据报文应该都同属于第一数据流。
AP通过多个ACK报文向发送设备发生指示标识,可以防止因一个ACK报文发生丢包而造成发送设备未接收到指示标识的问题,提高了可靠性。
第二方面提供了一种拥塞控制方法,包括:
发送设备向接收设备发送第一数据流,接收设备在接收到第一数据流的数据报文后,针对每个数据报文向接收设备发送一个确认ACK报文,当第一数据流在有线网络侧传输过程中发生网络拥塞时,无线接入点AP会根据第一数据流的第一数据报文中的拥塞标记,对第一ACK报文设置指示标识,其中,第一ACK报文对应的第二数据报文也属于第一数据流,当发送设备接收到第一ACK报文后,就根据指示标识来调整第一数据流的发送速率。
由于发送设备无法直接感知链路中的网络拥塞情况,所以需要其他设备对网络拥塞情况进行通知,接入点AP设置指示标识可以实现有线网络侧对网络拥塞的反馈,使得发送设备更及时的调整数据流的传输速率,提高吞吐量。
基于第二方面,在第二方面的第一种可能的实施方式中:
当发生网络拥塞时,AP会将第一ACK报文的TCP头中的ECE字段设置为第二值,发送设备接收到第一ACK报文后,就根据ECE字段的取值来进行调速,若取值为第二值,就对第一数据流的发送速率进行降速。
发送设备根据ACK报文中携带的指示标识,对第一数据流的发送速率进行调整,当发生网络拥塞时,发送设备对第一数据流的发送速率进行降速,减少进入网络的数据报文的数量,提高吞吐量。
基于第二方面,在第二方面的第二种可能的实施方式中:
发送设备还可以检测ACK报文IP头中的ECN字段,根据ECN字段的不同取值来进行网络情况的判断,然后再调整第一数据流的发送速率。其中,指示标识为ECN字段的第一值;当发生网络拥塞时,AP将第一ACK报文的ECN字段设置为第一值,当未发生网络拥塞时,AP将第一ACK报文的ECN字段设置为第三值;若发送设备接收到的第一ACK报文的ECN字段为第一值时,就需要对第一数据报文的发送速率进行降速,若接收到的第一ACK报文的ECN字段为第三值时,就不改变发送速率。
发送设备根据ACK报文中的ECN字段,对第一数据流的传输情况进行判断,同时根据网络情况对其发送速率进行调整,控制进入有线网络侧的数据报文的数量,提高吞吐量。
第三方面提供了一种接入设备,包括:
接收单元,用于接收发送设备发送的第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞,所述第一数据流包含所述第一数据报文;
处理单元,用于根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识;其中,所述第一数据流包括所述第一ACK报文对应的第二数据报文;
发送单元,用于向所述发送设备发送携带有所述指示标识的所述第一ACK报文,所述指示标识用于指示所述发送设备调整所述第一数据流的发送速率。
基于第三方面,在第三方面的第一种可能的实施方式中:
所述第一数据报文的互联网协议IP头中包括显示拥塞通告ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述处理单元,具体用于将所述第一ACK报文的传输控制协议TCP头中的ECE字段设置为第二值,所述第二值用于指示所述发送设备将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
基于第三方面的第一种可能的实施方式,在第三方面的第二种可能的实施方式:
所述处理单元,还用于将所述第一数据报文的ECN字段设置为第三值;
所述发送单元,还用于向所述接收设备转发所述第一数据报文。
基于第三方面,在第三方面的第三种可能的实施方式:
所述第一数据报文的互联网协议IP头中包括ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述处理单元,具体用于将所述第一ACK报文的IP头中的ECN字段设置为所述第一值,所述第一取值用于指示所述发送设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
基于第三方面的第三种可能的实施方式,在第三方面的第四种可能的实施方式中:
所述处理单元还用于将所述第一数据报文的ECN字段设置为第三值;
所述发送单元还用于向所述接收设备转发所述第一数据报文。
基于第三方面至第三方面的第四种可能的实施方式中的任一项,在第三方面的第五种可能的实施方式中:
所述处理单元,具体用于根据所述第一数据报文的拥塞标记,为所述第一ACK报文和所述AP已缓存的第二ACK报文设置所述指示标识,其中,所述第一数据流包含所述第二ACK报文对应的第三数据报文。
第四方面提供了一种网络设备,包括:
发送单元,用于发送第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞;
接收单元,用于接收第一确认ACK报文,所述第一ACK报文携带有指示标识,所述指示标识由接入点AP根据所述拥塞标记设置,所述第一ACK报文为所述网络设备发送的第二数据报文的反馈报文,所述第一数据报文与所述第二数据报文属于所述第一数据流;
处理单元,用于根据所述指示标识调整所述第一数据流的发送速率。
基于第四方面,在第四方面的第一种可能的实施方式中:
所述指示标识为所述第一ACK报文的TCP头中ECE字段的第二值;
所述处理单元,具体用于根据所述ECE字段的第二值,将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
基于第四方面,在第四方面的第二种可能的实施方式中:
所述指示标识为所述第一ACK报文的IP头中ECN字段的第一值;
所述处理单元,具体用于当所述第一ACK报文的ECN字段为所述第一取值时,所述网络设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
本申请第五方面提供一种无线接入设备,包括:至少一个处理器和存储器,存储器存储有可在处理器上运行的计算机执行指令,当所述计算机执行指令被所述处理器执行时,所述无线接入设备执行如上述第一方面或第一方面任意一种可能的实现方式所述的方法。
本申请第六方面提供一种网络设备,包括:至少一个处理器和存储器,存储器存储有可在处理器上运行的计算机执行指令,当所述计算机执行指令被所述处理器执行时,所述发送设备执行如上述第二方面或第二方面任意一种可能的实现方式所述的方法。
本申请第七方面提供了一种拥塞控制***,包括:如上述第三方面至第三方面的第五种实施方式所述的任一项无线接入设备,如上述第四方面至第四方面第二种实施方式所述的任一项网络设备,以及接收设备;所述网络设备通过所述接入设备,向所述接收设备发送第一数据流。
本申请第八方面提供了一种计算机存储介质,该计算机存储介质用于储存为上述无线接入设备或网络设备所用的计算机软件指令,其包括用于执行为无线接入设备、或网络设备所设计的程序。
该无线接入设备可以如前述第三方面所描述的无线接入设备。
该网络设备可以如前述第四方面所描述的网络设备。
本申请第九方面提供了一种芯片或者芯片***,该芯片或者芯片***包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以进行第一方面至第一方面的任一种可能的实现方式中任一项所描述的拥塞控制方法;
其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片***还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
本申请第十方面提供了一种芯片或者芯片***,该芯片或者芯片***包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以进行第二方面至第二方面的任一种可能的实现方式中任一项所描述的拥塞控制方法;
其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片***还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
本申请第十一方面提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面至第二方面中任意一项的拥塞控制方法中的流程。
从以上技术方案可以看出,本申请具有以下优点:
接入点AP取代TCP接收设备的部分功能,当AP接收到携带有拥塞标记的数据报文时,直接由AP在本地已缓存的同一数据流的任一确认ACK报文中设置指示标识,用来指示有线网络侧出现网络拥塞现象,发送设备就可以直接根据该ACK报文来调整数据报文的发送速率,而无需等待接收设备对原数据报文对应的ACK报文进行标记,这样,有线网络侧就可以完成对ACK报文的标记,而无需通过无线网络侧的接收设备,带标记的ACK报文无需在无线网络侧传输,降低了发送设备接收带标记的ACK报文的传输时延,TCP对网络拥塞的反应更加灵敏,性能更加优化。
附图说明
图1为本申请实施例提供的网络拓扑示意图;
图2为本申请实施例中的拥塞控制方法的流程示意图;
图3为本申请实施例提供的另一种拥塞控制方法的流程示意图;
图4为本申请实施例提供的一种接入设备的结构示意图;
图5为本申请实施例提供的一种发送设备的结构示意图;
图6为本申请实施例提供的另一种接入设备的结构示意图;
图7为本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
本申请实施例提供了一种拥塞控制方法、设备和***,用于降低拥塞信号传输至发送设备的传输时延。
下面将结合本申请中的附图,对本申请中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,为本申请实施例提供的网络拓扑示意图。如图1所示,在该架构,数据中心DC与核心交换机相连,如图所示,S1可以直接与核心交换机相连,S2也可以通过网络设备GW与和核心交换机相连,进入核心交换机的数据报文进行汇聚,被分为进入不同接入网的数据流,然后在接入网中通过其它中转设备与接入点AP相连,其都为有线网络连接,终端设备H1可以与接入点AP通过无线接入网相连,也可以与有线接入网直接相连;其中,流量以南北向流向为主,示例性的,DC发送数据报文,该数据报文通过有线网络传输至接入点,再通过无线网络传输至终端。
传输控制协议TCP是一种面向连接的、可靠的传输层通信协议,发送设备与接收设备之间建立TCP连接,并通过TCP连接向接收设备传输TCP数据流。TCP数据流会被分成适当长度的多个数据报文,通过网络传送给接收设备。为了保证不发生丢包,发送设备会给每个数据报文一个TCP序列号。接收设备可以根据序列号将数据报文按顺序组成数据流。接收设备对已成功收到的数据报文会发送相应的确认ACK报文给发送设备,如果发送设备未在合理的RTT时间内收到ACK报文,那么对应的数据包就会被认为丢失并需要重传。
在TCP传输过程中网络拥塞会造成丢包,丢包会严重影响吞吐量。如图1所示网络拓扑中,丢包可以分为有线网络侧丢包和无线网络侧丢包;在有线网络侧,核心交换机与接入交换机的容量不同,核心交换机下行端口的容量通常为100G,而接入交换机下行端口的容量通常为2.5G。当瞬时流量突发时,就容易导致接入交换机的缓存溢出,出现丢包。这种有线网络侧的网络拥塞造成丢包的主要原因是瞬时流量突发,需要发送设备及时调整发送数据报文的速率,控制网络中数据报文的数量。而无线网络侧通常比较容易受环境影响,当无线接入点接入的站数量增多,或者空口状态发生变化时,就会造成拥塞并且产生随机丢包。无线网络侧的随机丢包与有线侧的突发丢包的原因完全不同。无线网络侧的丢包与发送设备发送数据的速率无关,因此无法通过发送设备调整发送速率得到改善。
针对网络拥塞,产生了多种拥塞控制技术,包括:基于丢包的TCP端到端拥塞控制技术、基于时延的TCP端到端拥塞控制技术,基于ECN机制的拥塞控制技术等。
基于丢包的TCP端到端控制技术,发送设备是通过识别TCP序列号的缺失来作为网络拥塞信号的,发送设备根据丢包的情况对网络拥塞现象进行判断,然后再根据判断的网络拥塞情况对数据报文的发送速率进行调速。但是这种方式下发送设备只能通过TCP序列号的缺失识别出发生了丢包,并不能得知丢包是发生在有线网侧还是无线网侧,因此无线网侧的随机丢包也会被误判为有线网侧的网络拥塞,导致发送设备调整发送速率。当无线网络侧的随机丢包引起发送设备降速时,会导致TCP吞吐量上不去。
基于时延的TCP端到端拥塞控制技术,是发送设备基于往返时间(round-triptime,RTT)时延作为拥塞信号。当网络发生拥塞时,网络中的缓存区被填满,传输时延将会变大,当发送设备检测到数据报文包的RTT时延增大时,就可以判断发生了网络拥塞,进而对数据传输速率进行降速。但是,该方法会将无线网络侧由于环境影响或者空口状态变化导致的时延频繁变化(时延抖动),误判为有线网络侧的网络拥塞,发送设备也会进行降速操作,这样也将导致TCP性能变差,吞吐量上不去。
ECN机制是指发送设备和接收设备都支持ECN反馈,有线网络侧的中间设备会根据缓存序列的状态判断有线网络侧是否发生网络拥塞,当发生网络拥塞现象时,中间设备会在数据报文IP头的ECN字段中打上拥塞标记,当接收设备接收到该数据报文后,识别ECN字段中的拥塞标签,并根据该拥塞标签来标记ACK报文TCP头中的ECE字段,并将该ACK报文发送给发送设备,然后发送设备根据ACK报文中的ECE字段来判断是否进行调速。
具体的,在IPv4中,ECN机制使用了IP头中TOS字段的最后2位,在IPv6中,IPv4的TOS字段对应于Traffic Class字段,这两位有4种组合,分别为Not-ECT(Not ECN-CapableTransport)、ECT(0)、ECT(1)、CE(Congestion Experienced),其中,Not-ECT的取值为00,用于向端点指示数据报文没有使用ECN机制,ECT(0)的取值为10,用于向端点指示数据报文使用了ECN机制,CE的的取值为11,用于向端点指示数据发生了拥塞。
由于中间设备是根据有线网络侧的拥塞情况在ECN字段中打上拥塞标签,所以该方法避免了由于无线网络侧导致的网络拥塞的误判,但是由于被打了拥塞标签的数据报文需要通过无线网络传输至接收设备,再由接收设备通过ACK中的ECE字段反馈给发送设备,发送设备才能对拥塞做出反应及处理。因此,如果无线网络发生时延抖动时,将会导致数据报文的RTT时延变大,发送设备也无法及时对拥塞做出处理,导致发送设备对网络拥塞的反应不及时,TCP吞吐量上不去。
请参阅图2,为本申请实施例中的拥塞控制方法的流程示意图。本申请实施例基于ECN技术,即发送设备、接入点AP和接收设备都支持ECN机制。如图2所示,该方法包括:
201、发送设备向中间设备发送第一数据报文;
基于TCP连接的发送设备和接收设备,当接收设备向发送设备发起数据请求时,发送设备会向接收设备提供可靠的端到端数据流;示例性的,发送设备为接收设备传输第一数据流,该数据流的流向可以为从发送设备到中间设备再到接入点AP,然后经由AP进入无线网络侧,最后传输至接收设备。其中,第一数据流可以包含多个数据报文,发送设备向中间设备发送该第一数据流中的第一数据报文。
示例性的,发送设备可以将第一数据流中数据报文的ECN字段设置为ECT(0),即ECN字段的取值为10,用于向每个端点指示该数据报文使用了ECN机制,TCP发送设备支持使用ECN技术来反馈网络拥塞现象。
202、中间设备根据网络拥塞情况,确定第一数据报文的ECN字段的取值;
中间设备可以根据本地缓存序列的情况,感知该TCP连接中是否出现了网络拥塞;可选的,当链路中的数据报文过多,中间设备缓存溢出时,就确定发生了网络拥塞;当有线网络侧发生网络拥塞时,中间设备就需要为数据报文设置拥塞标记;可以理解的,中间设备为第一数据报文设置拥塞标记,该拥塞标记用来指示第一数据流在传输过程中发生了网络拥塞。
示例性的,在ECN机制中,拥塞标记为ECN字段的第一值,例如,当发生网络拥塞后,中间设备将第一数据报文的ECN字段设置为CE,即ECN字段取值为11;当未发生网络拥塞时,中间设备不改变第一数据报文的ECN字段,仍然保持原来的取值。
203、中间设备向接入点AP转发第一数据报文;
可以理解的,中间设备可以包含多个路由设备,任一路由设备都可以对其传输的数据报文进行标记,在确定好数据报文的ECN字段之后,就需要对数据报文进行转发,然后到达接入点AP。
204、接入点AP判断第一数据报文的ECN字段是否为第一值;当判断结果为是时,则执行步骤205,当判断结果为否时,则直接执行步骤209;
本实施例中,接入点AP代替接收设备的部分功能,由AP对上述拥塞标记进行处理,因此AP需要对传输至本地的数据报文的ECN字段进行判断,根据ECN字段的取值得知网络情况,并采取相应的措施。
205、AP将已缓存的第一确认ACK报文TCP头中的ECE字段设置为第二值;
其中,当第一数据报文的ECN字段为第一值时,说明有线网络侧发生了网络拥塞,AP需要根据该拥塞标记为AP已缓存的第一确认ACK报文设置指示标识,该指示标识用来指示发送设备调整所述数据流的发送速率。
可以理解的,当有线网络侧发生网络拥塞时,发送设备是无法自行感知的,需要其他设备将网络拥塞的情况反馈给发送设备,然后发送设备再进行调速;在TCP连接中,确认报文的流向和数据报文的流向是相反的,示例性的,ACK报文通过无线接入网传输至接入点AP,然后再通过中间设备的转发最终传输至发送设备,这样,就可以通过ACK报文将网络拥塞情况反馈给发送设备;在本实施例中,AP是通过ACK报文的一个指示标识来向发送设备反馈网络拥塞情况的。
示例性的,在ECN机制中,发送设备可以识别ACK报文TCP头中的ECE字段,当ECE字段为上述第二值,比如1时,发送设备就对数据流的发送速率进行降速,当ECE字段为0时,发送设备保持原发送速率不变。
例如,当AP接收到的第一数据报文的ECN字段的取值为11时,说明发生了网络拥塞,AP就将本地缓存序列中已缓存的第一ACK报文的ECE字段设置为1,其中,该第一ACK报文对应的第二数据报文和第一数据报文都属于第一数据流,第二数据报文是第一数据流中先于第一数据报文传输的数据报文。
在一个可选的实施方式中,AP还可以根据拥塞标记为AP已缓存的第二ACK报文设置上述指示标识,第一ACK报文和第二ACK报文对应的数据报文属于同一数据流;示例性的,当AP检测到有线网络侧发生网络拥塞时,可以将本地缓存序列当中第一个待发ACK报文的ECE位设置为1,也可以设置本地缓存序列当中第一个和第二个ACK报文的ECE位,还可以将本地缓存序列中所有已缓存的ACK报文的ECE位都设置为1,具体不做限定,其中,这些ACK报文都为第一数据流对应的响应流。
206、AP向发送设备发送所述第一ACK报文;
AP确定好ACK报文的ECE字段的取值之后,就将该ACK报文转发。
207、发送设备根据第一ACK报文的ECE字段,调整第一数据流的发送速率;
发送设备在接收到ACK报文之后,需要对ACK报文的ECE字段进行识别,示例性的,当ACK报文的ECE字段取值为1时,说明有线网络中发生了网络拥塞,发送设备需要对第一数据流的发送速率进行调整,即发送设备对发送速率进行降速,依次减少进入有线网络侧的数据报文的数量;当ACK报文的ECE字段取值为0时,说明有线网络侧未发生网络拥塞,发送设备无需对发送速率进行降速。
208、AP将第一数据报文IP头中的ECN字段设置为第三值;
当AP识别网络拥塞并对拥塞标记进行处理之后,即AP执行了上述步骤204-206之后,接收设备就无需再根据第一数据报文中的ECN字段对第一数据报文对应的ACK报文的ECE字段进行设置。为了避免因重复处理拥塞造成发送设备的过度降速,AP在向接收设备转发第一数据报文之前,将第一数据报文的ECN字段设置为第三值,即将ECN字段的值从11设置为10、01或00,使得接收设备不再对该第一数据报文对应的ACK报文设置指示标识,即不再对该第一数据报文对应的ACK报文的ECE位进行标记。
209、AP向接收设备发送第一数据报文;
可以理解的,步骤208与步骤205、步骤206和步骤207并无时序上的关系,步骤208和步骤209是AP对数据报文进行处理并向接收设备发送,步骤205、步骤206和步骤207是AP对ACK报文处理并向发送设备发送,两个过程可以同时,也可以处理数据报文在前,处理ACK报文在后,还可以发送ACK报文在前,发送数据报文在后,具体不做限定。
在本实施例中,基于现有的ECN机制的标记方法,接入点AP取代接收设备的标记功能,当AP接收到携带有拥塞标记的数据报文时,直接由AP在本地已缓存的同一数据流的任一确认ACK报文中设置指示标识,发送设备就可以直接根据该指示标识来调整数据报文的发送速率,而无需等待接收设备对原数据报文对应的ACK报文进行标记,这样,有线网络侧就可以完成对ACK报文的标记,而无需通过无线网络侧的接收设备,因此减少了带标记的ACK报文在无线网络侧的时延,TCP对网络拥塞的反应更加灵敏,性能更加优化。
在图2所示实施例中,由于发送设备是根据ACK报文的ECE字段来对第一数据流的发送速率进行调速的,发送设备无法得知是接收设备还是接入点AP对ECE字段进行的设置,在某些场景下,就需要对执行主体进行区分,因此在本实施例中,当AP识别到有线网侧发生网络拥塞时,采用新的指示标识来向发送设备反馈网络拥塞情况。
请参阅图3,为本申请实施例提供的另一种拥塞控制方法的流程示意图,如图3所示,该方法具体包括:
301、发送设备向中间设备发送第一数据报文;
当接收设备向发送设备发起数据请求时,发送设备会向接收设备提供可靠的端到端数据流;示例性的,发送设备为接收设备传输第一数据流,该数据流的流向可以为从发送设备到中间设备再到接入点AP,然后经由AP进入无线网络侧,最后传输至接收设备,其中,第一数据报文属于第一数据流。
发送设备可以将第一数据流中数据报文的ECN字段设置为ECT(1),即取值为01,用于表示发送设备支持使用本申请实施例提供的标记方法来作为拥塞信号反馈。
302、中间设备根据网络拥塞情况,确定第一数据报文的ECN字段的取值;
步骤302与图2所示实施例中步骤202类似,在此不做赘述。
303、中间设备向接入点转发第一数据报文;
步骤303与图2所示实施例中步骤203类似,在此不做赘述。
304、接入点AP判断第一数据报文的ECN字段是否为第一值;当判断结果为是时,则执行步骤305,当判断结果为否时,则执行步骤308;
步骤304与图2所示实施例中步骤204类似,在此不做赘述。
305、AP将已缓存的第一确认ACK报文IP头中的ECN字段设置为所述第一值;
本申请实施例中,发送设备将会对ACK报文IP头的ECN字段进行识别,当AP通过数据报文的拥塞标记得知有线网络侧发生网络拥塞后,就将本地已缓存的第一ACK报文的ECN字段设置为第一值,该ACK报文ECN字段的第一值用于指示发送设备将数据流的发送速率从第一速率调整为第二速率,第二速率小于所述第一速率。
例如,当AP检测到第一数据流中第一数据报文的ECN字段取值为11,即发生了网络拥塞,那么AP就将第一数据流的响应流中,本地已缓存的第一ACK报文的ECN字段设置为11,该第一ACK报文是第一数据流中先于第一数据报文传输的第二数据报文的确认报文,第一ACK报文的ECN字段用于指示发生设备对第一数据流的发送速率进行降速。
AP可以对已缓存的多个ACK报文进行标记,还可以对全部已缓存的ACK报文进行标记,具体不做限定。
306、AP向发送设备发送所述第一ACK报文;
AP确认好第一ACK报文的ECN字段后,将该第一ACK报文转发给发送设备。
307、发送设备根据第一ACK报文的ECN字段,调整第一数据流的发送速率;
第一ACK报文的ECN字段可以有多个取值,示例性的,当发生网络拥塞时,第一ACK报文的ECN字段取值为11,发送设备根据该第一值,对第一数据流的发送速率进行降速;当未发生网络拥塞时,第一ACK报文的ECN字段取值为10,发送设备对第一数据流的发送速率保持不变。
第一ACK报文的ECN字段取值可以自行设置,具体形式不做限制。
当发送设备接收到带有ECN标记的ACK报文时,可以根据不同的降窗规则来进行降速,例如,在一个时延周期内只减速一次,或者每收到N个带ECN标记的ACK报文就减速一次,具体降速规则不做限定。
308、AP将第一数据报文IP头中的ECN字段设置为第三值;
当AP识别网络拥塞并对拥塞标记进行处理之后,即AP执行了上述步骤304-306之后,接收设备就无需再根据第一数据报文中的ECN字段对第一数据报文对应的ACK报文的ECE字段进行设置。为了避免因重复处理拥塞造成发送设备的过度降速,AP在向接收设备转发第一数据报文之前,将第一数据报文的ECN字段设置为第三值,即将ECN字段的值从11设置为10、01或00,使得接收设备不再对该第一数据报文对应的ACK报文设置指示标识,即不再对该第一数据报文对应的ACK报文的ECE位进行标记。
309、AP向接收设备发送第一数据报文;
步骤308与步骤305、步骤306和步骤307并无时序上的关系,步骤308和步骤309是AP对数据报文进行处理并向接收设备发送,步骤305、步骤306和步骤307是AP对ACK报文处理并向发送设备发送,两个过程可以同时,也可以处理数据报文在前,处理ACK报文在后,还可以发送ACK报文在前,发送数据报文在后,具体不做限定。
在本申请实施例中,接入点AP对ACK报文设置指示标识时,采取了新的标记方法,即当AP接收到携带有拥塞标记的数据报文时,AP将本地已缓存的任一确认ACK报文的ECN位设置为第一值,由于现有技术中,发送设备只会检查ACK报文的ECE位,而接收设备也可以设置ACK报文的ECE位,这样就无法识别对ACK报文进行设置的执行主体,而使用本实施例,AP根据网络拥塞设置ACK报文的ECN位,发送设备识别ECN位就可以得知是AP设置的指示标识,这样就可以根据不同的执行主体设置不同的降窗规则,提高拥塞控制算法的灵活性。
请参阅图4,本申请实施例提供的一种接入设备的结构示意图。如图4所示,该接入设备400包括:
接收单元401,用于接收发送设备发送的第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞,所述第一数据流包含所述第一数据报文;
处理单元402,用于根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识;其中,所述第一数据流包括所述第一ACK报文对应的第二数据报文;
发送单元403,用于向所述发送设备发送携带有所述指示标识的所述第一ACK报文,所述指示标识用于指示所述发送设备调整所述第一数据流的发送速率。
一种可能的实现中,所述第一数据报文的互联网协议IP头中包括显示拥塞通告ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述处理单元402,具体用于将所述第一ACK报文的传输控制协议TCP头中的ECE字段设置为第二值,所述第二值用于指示所述发送设备将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
一种可能的实现中,所述处理单元402,还用于将所述第一数据报文的ECN字段设置为第三值;
所述发送单元403,还用于向所述接收设备转发所述第一数据报文。
在本申请实施例提供一种接入设备的另一个实施例中,所述第一数据报文的互联网协议IP头中包括ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述处理单元402,具体用于将所述第一ACK报文的IP头中的ECN字段设置为所述第一值,所述第一值用于指示所述发送设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
一种可能的实现中,所述处理单元402还用于将所述第一数据报文的ECN字段设置为第三值;
所述发送单元403还用于向所述接收设备转发所述第一数据报文。
一种可能的实现中,所述处理单元402,具体用于根据所述第一数据报文的拥塞标记,为所述第一ACK报文和所述AP已缓存的第二ACK报文设置所述指示标识,其中,所述第一数据流包含所述第二ACK报文对应的第三数据报文。
上述接入设备的各个单元的功能,具体可参见前述图2和图3所示的方法实施例中的接入点AP的实现细节,此处不再赘述。
请参阅图5,本申请实施例提供的一种网络设备的结构示意图。如图5所示,该网络设备500包括:
发送单元501,用于发送第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞;
接收单元502,用于接收第一确认ACK报文,所述第一ACK报文携带有指示标识,所述指示标识由接入点AP根据所述拥塞标记设置,所述第一ACK报文为所述网络设备500发送的第二数据报文的反馈报文,所述第一数据报文与所述第二数据报文属于所述第一数据流;
处理单元503,用于根据所述指示标识调整所述第一数据流的发送速率。
一种可能的实现中,所述指示标识为所述第一ACK报文的TCP头中ECE字段的第二值;
所述处理单元503,具体用于根据所述ECE字段的第二值,将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
一种可能的实现中,所述指示标识为所述第一ACK报文的IP头中ECN字段的第一值;
所述处理单元503,具体用于当所述第一ACK报文的ECN字段为所述第一取值时,所述网络设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
需要说明的是,上述发送设备的各个单元的功能,具体可参见前述图2和图3所示的方法实施例中的发送设备的实现细节,此处不再赘述。
请参阅图6,为本申请实施例提供的另一种接入设备的结构示意图,该接入设备包括:处理器601,存储器602,通信接口603。
处理器601、存储器602、通信接口603通过总线相互连接;总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器602可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器602还可以包括上述种类的存储器的组合。
处理器601可以是中央处理器(central processing unit,CPU),网络处理器(英文:network processor,NP)或者CPU和NP的组合。处理器601还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信接口603可以为有线通信接口,无线通信接口或其组合,其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
可选地,存储器602还可以用于存储程序指令,处理器601调用该存储器602中存储的程序指令,可以执行图2或图3所示方法实施例中的一个或多个步骤,或其中可选的实施方式,使得所述接入设备实现上述方法中AP的功能,具体此处不再赘述。
请参阅图7,为本申请实施例提供的另一种网络设备的结构示意图,可以包括处理器701,存储器702,通信接口703。
处理器701、存储器702、通信接口703通过总线相互连接;总线可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器702可以包括易失性存储器,例如RAM;存储器也可以包括非易失性存储器,例如flash,HDD或SSD;存储器702还可以包括上述种类的存储器的组合。
处理器701可以是CPU,NP或者CPU和NP的组合。处理器701还可以进一步包括硬件芯片。上述硬件芯片可以是ASIC,PLD或其组合。上述PLD可以是CPLD,FPGA,GAL或其任意组合。
通信接口703可以为有线通信接口,无线通信接口或其组合,其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
可选地,存储器702还可以用于存储程序指令,处理器701调用该存储器702中存储的程序指令,可以执行图2或图3所示方法实施例中的一个或多个步骤,或其中可选的实施方式,使得所述网络设备700实现上述方法中发送设备的功能,具体此处不再赘述。
本申请实施例还提供了一种拥塞控制***,包括:如图4或图6所示的接入设备,如图5或图7所示的发送设备,还包括接收设备。
本申请实施例还提供了一种芯片或者芯片***,该芯片或者芯片***包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器运行指令或计算机程序,执行图2或图3所示方法实施例中的一个或多个步骤,或其中可选的实施方式,以实现上述方法中AP的功能。
其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,上述描述的芯片或者芯片***还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
本申请实施例还提供了一种芯片或者芯片***,该芯片或者芯片***包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以进行图2和图3所示实施例的任一种可能的实现方式中任一项所描述的发送设备的执行方法;
其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片***还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有实现本申请实施例提供的拥塞控制方法中接入设备功能的计算机程序指令。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有实现本申请实施例提供的拥塞控制方法中发送设备功能的计算机程序指令。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述图2或图3所示拥塞控制方法中的流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (19)

1.一种拥塞控制方法,其特征在于,所述方法包括:
接入点AP接收发送设备发送的第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞,所述第一数据流包含所述第一数据报文;
所述AP根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识;其中,所述第一数据流包括所述第一ACK报文对应的第二数据报文;
所述AP向所述发送设备发送携带有所述指示标识的所述第一ACK报文,所述指示标识用于指示所述发送设备调整所述第一数据流的发送速率。
2.根据权利要求1所述的方法,其特征在于,所述第一数据报文的互联网协议IP头中包括显示拥塞通告ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述AP根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识,包括:
所述AP将所述第一ACK报文的传输控制协议TCP头中的ECE字段设置为第二值,所述第二值用于指示所述发送设备将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
3.根据权利要求2所述的方法,其特征在于,在所述AP将所述第一ACK报文的传输控制协议TCP头中的ECE字段设置为第二值后,所述方法还包括:
所述AP将所述第一数据报文的ECN字段设置为第三值;
所述AP向接收设备转发所述第一数据报文。
4.根据权利要求1所述的方法,其特征在于,所述第一数据报文的互联网协议IP头中包括ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述AP根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识,包括:
所述AP将所述第一ACK报文的IP头中的ECN字段设置为所述第一值,所述第一值用于指示所述发送设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
5.根据权利要求4所述的方法,其特征在于,在所述AP将所述第一ACK报文的IP头中的ECN字段设置为所述第一值之后,所述方法还包括:
所述AP将所述第一数据报文的ECN字段设置为第三值;
所述AP向接收设备转发所述第一数据报文。
6.根据权利要求1至5所述的任一项方法,其特征在于,所述AP根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识,包括:
所述AP根据所述第一数据报文的拥塞标记,为所述第一ACK报文和所述AP已缓存的第二ACK报文设置所述指示标识,其中,所述第一数据流包含所述第二ACK报文对应的第三数据报文。
7.一种拥塞控制方法,其特征在于,所述方法包括:
发送设备发送第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞;
所述发送设备接收第一确认ACK报文,所述第一ACK报文携带有指示标识,所述指示标识由接入点AP根据所述拥塞标记设置,所述第一ACK报文为所述发送设备发送的第二数据报文的反馈报文,所述第一数据报文与所述第二数据报文属于所述第一数据流;
所述发送设备根据所述指示标识调整所述第一数据流的发送速率。
8.根据权利要求7所述的方法,其特征在于,所述指示标识为所述第一ACK报文的TCP头中ECE字段的第二值;
所述发送设备根据所述指示标识调整所述第一数据流的发送速率,包括:
所述发送设备根据所述ECE字段的第二值,将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
9.根据权利要求7所述的方法,其特征在于,所述指示标识为所述第一ACK报文的IP头中ECN字段的第一值;
所述发送设备根据所述指示标识调整所述第一数据流的发送速率,包括:
当所述第一ACK报文的ECN字段为所述第一取值时,所述发送设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
10.一种接入设备,其特征在于,所述设备包括:
接收单元,用于接收发送设备发送的第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞,所述第一数据流包含所述第一数据报文;
处理单元,用于根据所述第一数据报文的拥塞标记,为所述AP已缓存的第一确认ACK报文设置指示标识;其中,所述第一数据流包括所述第一ACK报文对应的第二数据报文;
发送单元,用于向所述发送设备发送携带有所述指示标识的所述第一ACK报文,所述指示标识用于指示所述发送设备调整所述第一数据流的发送速率。
11.根据权利要求10所述的设备,其特征在于,所述第一数据报文的互联网协议IP头中包括显示拥塞通告ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述处理单元,具体用于将所述第一ACK报文的传输控制协议TCP头中的ECE字段设置为第二值,所述第二值用于指示所述发送设备将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
12.根据权利要求11所述的设备,其特征在于,所述处理单元,还用于将所述第一数据报文的ECN字段设置为第三值;
所述发送单元,还用于向所述接收设备转发所述第一数据报文。
13.根据权利要求10所述的设备,其特征在于,所述第一数据报文的互联网协议IP头中包括ECN字段,所述拥塞标记为所述第一数据报文的ECN字段的第一值;
所述处理单元,具体用于将所述第一ACK报文的IP头中的ECN字段设置为所述第一值,所述第一值用于指示所述发送设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
14.根据权利要求13所述的设备,其特征在于,所述处理单元还用于将所述第一数据报文的ECN字段设置为第三值;
所述发送单元还用于向所述接收设备转发所述第一数据报文。
15.根据权利要求10至14所述的任一项设备,其特征在于,所述处理单元,具体用于根据所述第一数据报文的拥塞标记,为所述第一ACK报文和所述AP已缓存的第二ACK报文设置所述指示标识,其中,所述第一数据流包含所述第二ACK报文对应的第三数据报文。
16.一种网络设备,其特征在于,所述网络设备包括:
发送单元,用于发送第一数据报文,所述第一数据报文携带有拥塞标记,所述拥塞标记用于指示第一数据流在传输过程中发生网络拥塞;
接收单元,用于接收第一确认ACK报文,所述第一ACK报文携带有指示标识,所述指示标识由接入点AP根据所述拥塞标记设置,所述第一ACK报文为所述网络设备发送的第二数据报文的反馈报文,所述第一数据报文与所述第二数据报文属于所述第一数据流;
处理单元,用于根据所述指示标识调整所述第一数据流的发送速率。
17.根据权利要求16所述的网络设备,其特征在于,所述指示标识为所述第一ACK报文的TCP头中ECE字段的第二值;
所述处理单元,具体用于根据所述ECE字段的第二值,将所述第一数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
18.根据权利要求16所述的网络设备,其特征在于,所述指示标识为所述第一ACK报文的IP头中ECN字段的第一值;
所述处理单元,具体用于当所述第一ACK报文的ECN字段为所述第一取值时,所述网络设备将所述数据流的发送速率从第一速率调整为第二速率,所述第二速率小于所述第一速率。
19.一种拥塞控制***,其特征在于,包括:如权利要求10至15任一项所述的接入设备,如权利要求16至18任一项所述的网络设备,以及接收设备;所述网络设备通过所述接入设备,向所述接收设备发送第一数据流。
CN201911368603.6A 2019-12-26 2019-12-26 一种拥塞控制方法、设备和*** Pending CN113055935A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911368603.6A CN113055935A (zh) 2019-12-26 2019-12-26 一种拥塞控制方法、设备和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911368603.6A CN113055935A (zh) 2019-12-26 2019-12-26 一种拥塞控制方法、设备和***

Publications (1)

Publication Number Publication Date
CN113055935A true CN113055935A (zh) 2021-06-29

Family

ID=76505468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911368603.6A Pending CN113055935A (zh) 2019-12-26 2019-12-26 一种拥塞控制方法、设备和***

Country Status (1)

Country Link
CN (1) CN113055935A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396372A (zh) * 2022-10-26 2022-11-25 阿里云计算有限公司 数据流的速率控制方法、智能网卡、云端设备及存储介质
CN115460156A (zh) * 2022-09-21 2022-12-09 长沙理工大学 一种数据中心无损网络拥塞控制方法、装置、设备及介质
WO2023246758A1 (zh) * 2022-06-22 2023-12-28 维沃移动通信有限公司 拥塞的处理方法、装置及通信设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023246758A1 (zh) * 2022-06-22 2023-12-28 维沃移动通信有限公司 拥塞的处理方法、装置及通信设备
CN115460156A (zh) * 2022-09-21 2022-12-09 长沙理工大学 一种数据中心无损网络拥塞控制方法、装置、设备及介质
CN115460156B (zh) * 2022-09-21 2024-02-02 长沙理工大学 一种数据中心无损网络拥塞控制方法、装置、设备及介质
CN115396372A (zh) * 2022-10-26 2022-11-25 阿里云计算有限公司 数据流的速率控制方法、智能网卡、云端设备及存储介质
WO2024088353A1 (zh) * 2022-10-26 2024-05-02 杭州阿里云飞天信息技术有限公司 数据流的速率控制方法、智能网卡、云端设备及存储介质

Similar Documents

Publication Publication Date Title
EP3742690B1 (en) Data transmission method, computing device, network device and data transmission system
US10237153B2 (en) Packet retransmission method and apparatus
US5519699A (en) Method of protocol termination and a packet data communication system applied the method
CN101189840B (zh) 数据单元中继设备和控制该数据单元中继设备的方法
EP2302827B1 (en) A method and device for transmitting data
CN113055935A (zh) 一种拥塞控制方法、设备和***
JP2000115232A (ja) デ―タ・パケット送信方法および装置
WO2018082382A1 (zh) 一种混合接入网络中处理报文的方法及网络设备
US9292370B2 (en) Relay node, control method of relay node and network system
EP3540994B1 (en) Method and device for sending data packets on a first and a second links
CN107770085B (zh) 一种网络负载均衡方法、设备及***
EP2230803A1 (en) Path characterisation in networks
EP3490293B1 (en) Data receiving method, data sending method, receiving device and system
CN108243117B (zh) 一种流量监控方法、装置及电子设备
CN111131179B (zh) 业务处理方法、装置、网络设备及存储介质
US20130250760A1 (en) Communication link with intra-packet flow control
JP2008118281A (ja) 通信装置
US10999210B2 (en) Load sharing method and network device
JP2001156795A (ja) パケットのフロー制御装置および方法
EP2391068A1 (en) Provision of path characterisation information in networks
CN108322402B (zh) 报文处理方法、设备及***
US11622028B2 (en) Explicit notification of operative conditions along a network path
US7490160B2 (en) Method of efficiently transmitting/receiving data using transport layer in a mobile ad hoc network, and network device using the method
CN113424578B (zh) 一种传输控制协议加速方法和装置
JP4505575B2 (ja) 通信システム、ゲートウェイ送信装置、ゲートウェイ受信装置、送信方法、受信方法および情報記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination