IP Library › Granted Patent US 10,862,817
Granted Patent B2
US 10,862,817 · App. 16/357,564 · Granted Dec 8, 2020

Congestion control method, apparatus, and system

Inventors: Kaiping Xue (Hefei, CN); Wenjia Wei (Hefei, CN); Qing Xu (Shanghai, CN)
Assignees: Huawei Technologies Co., Ltd.; University of Science and Technology of China
H04L47/41H04L45/24H04L47/11H04L47/115H04L47/193H04L47/2483H04L47/27H04L43/0829H04L43/0852
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,862,817
App. No.
16/357,564
Granted
Dec 8, 2020
Kind
B2
Abstract

Embodiments of the present disclosure provide a congestion control method, an apparatus, and a system. The method includes receiving, by a first device, an acknowledgement packet that is from a second device and that includes an ECE identifier. Based on an indication of the ECE identifier the first device starts monitoring a plurality of sub streams on a plurality of transmission paths between the first device and the second device, and grouping, into one set, sub streams that meet a congestion control condition. Additionally, intra-set congestion control is performed on the sub streams in the set. Separately congestion control is performed on a sub stream that is not in the set. The congestion control method is applied to a scenario in which data transmission is performed between the first device and the second device by using the MPTCP.

Claims (137)

1. A congestion control method performed on a first device, the method comprising:

sending a first data packet to a routing device, wherein the first data packet is a data packet of a first sub stream of a plurality of sub streams, and wherein the plurality of sub streams are transmitted on a plurality of transmission paths between the first device and a second device;

receiving a first acknowledgement packet from the second device, wherein the first acknowledgement packet comprises an explicit congestion notification echo (ECE) identifier that is used to instruct the first device to perform a congestion control, wherein the first acknowledgement packet is an acknowledgement packet of the first data packet;

determining a first sub stream set, from the plurality of sub streams, based on an indication of the ECE identifier in the first acknowledgement packet, wherein the first sub stream set comprises the first sub stream and a plurality of second sub streams, wherein the first sub stream differs from the plurality of second sub streams, and wherein the sub streams meet a congestion control condition in sub streams, wherein the congestion control condition is that a packet loss event occurs in the corresponding sub streams of the plurality of second sub streams; and

performing the congestion control on the first sub stream set comprising:

the first sub stream, and

the plurality of second sub streams,

wherein, for each sub stream r in the first sub stream set, operations are executed for performing the congestion control on the first sub stream and the plurality of second sub streams in the first sub stream set as follows:

calculating a current congestion degree of the sub stream r by using the following formula:

T r =p 1 /p,

where:

T r is a current congestion degree of the sub stream r,

p 1 is a quantity of acknowledgement packets, in the sub stream r, that include the ECE identifier and that are received by the first device in a current round trip delay period of the sub stream r, and

p is a quantity of data packets in the sub stream r that are sent by the first device in the current round trip delay period of the sub stream r;

updating a congestion degree of the sub stream r by using the following formula

β r ′=g*T r ±(1− g )*β r ,

where:

β r is the updated congestion degree of the sub stream r in the current round trip delay period,

g is a weight of the current congestion degree, and

β r an updated congestion degree of the sub stream r in a previous round trip delay period;

adjusting a size of a send window of the sub stream r by using the following formula:

w

r

′

=

w

r

-

β

r

′

2

*

w

r

,

where:

w r is a decreased send window size of the sub stream r,

w r is a current send window size of the sub stream r, and

β r is the updated congestion degree of the sub stream r in the current round trip delay period, and

the send window is a quantity of data packets that can be transmitted to the second device in one round trip delay period of the sub stream r.

2. The method according to claim 1 , wherein the determining the first sub stream set comprises:

monitoring sub streams other than the first sub stream in the plurality of sub streams in a preset time period based on the indication of the ECE identifier;

determining as the plurality of second sub streams, the sub streams that meet the congestion control condition in sub streams other than the first sub stream in the plurality of sub streams; and

determining the first sub stream and the plurality of second sub streams as the first sub stream set.

3. A device, comprising:

a processor, and

a non-transitory computer readable medium including computer-executable instructions that, when executed by the processor, facilitate the device carrying out a method comprising:

sending a first data packet to a routing device, wherein the first data packet is a data packet of a first sub stream of a plurality of sub streams, and wherein the plurality of sub streams are transmitted on a plurality of transmission paths between the first device and a second device;

receiving a first acknowledgement packet from the second device, wherein the first acknowledgement packet comprises an explicit congestion notification echo (ECE) identifier that is used to instruct the first device to perform a congestion control, wherein the first acknowledgement packet is an acknowledgement packet of the first data packet;

determining a first sub stream set, from the plurality of sub streams, based on an indication of the ECE identifier in the first acknowledgement packet, wherein the first sub stream set comprises the first sub stream and a plurality of second sub streams, wherein the first sub stream differs from the plurality of second sub streams, and wherein the sub streams meet a congestion control condition in sub streams, wherein the congestion control condition is that a packet loss event occurs in the corresponding sub streams of the plurality of second sub streams; and

performing the congestion control on the first sub stream set comprising:

the first sub stream, and

the plurality of second sub streams,

wherein, for each sub stream r in the first sub stream set, operations are executed for performing the congestion control on the first sub stream and the plurality of second sub streams in the first sub stream set as follows:

calculating a current congestion degree of the sub stream r by using the following formula:

T r =p 1 /p,

where:

T r is a current congestion degree of the sub stream r,

p 1 is a quantity of acknowledgement packets, in the sub stream r, that include the ECE identifier and that are received by the first device in a current round trip delay period of the sub stream r, and

p is a quantity of data packets in the sub stream r that are sent by the first device in the current round trip delay period of the sub stream r;

updating a congestion degree of the sub stream r by using the following formula

β r ′=g*T r ±(1− g )*β r ,

where:

β r is the updated congestion degree of the sub stream r in the current round trip delay period,

g is a weight of the current congestion degree, and

β r is an updated congestion degree of the sub stream r in a previous round trip delay period;

adjusting a size of a send window of the sub stream r by using the following formula:

w

r

′

=

w

r

-

β

r

′

2

*

w

r

,

where:

W r is a decreased send window size of the sub stream r,

w r is a current send window size of the sub stream r, and

β r , is the updated congestion degree of the sub stream r in the current round trip delay period, and

the send window is a quantity of data packets that can be transmitted to the second device in one round trip delay period of the sub stream r.

4. The device according to claim 3 , wherein the non-transitory computer-readable medium comprises further instructions such that the method carried out by the physical machine comprises:

monitoring sub streams other than the first sub stream in the plurality of sub streams in a preset time period based on the indication of the ECE identifier received by the receiving module;

determining as the plurality of second sub streams, the sub streams that meet the congestion control condition in the sub streams other than the first sub stream in the plurality of sub streams; and

determining the first sub stream and the plurality of second sub streams as the first sub stream set.

5. A non-transitory computer-readable medium storing computer instructions for execution by one or more processors of a device, wherein the computer instructions instruct the one or more processors to perform the operations of a method comprising:

sending a first data packet to a routing device, wherein the first data packet is a data packet of a first sub stream of a plurality of sub streams, and wherein the plurality of sub streams are transmitted on a plurality of transmission paths between the first device and a second device;

receiving a first acknowledgement packet from the second device, wherein the first acknowledgement packet comprises an explicit congestion notification echo (ECE) identifier that is used to instruct the first device to perform a congestion control, wherein the first acknowledgement packet is an acknowledgement packet of the first data packet;

determining a first sub stream set, from the plurality of sub streams, based on an indication of the ECE identifier in the first acknowledgement packet, wherein the first sub stream set comprises the first sub stream and a plurality of second sub streams, wherein the first sub stream differs from the plurality of second sub streams, and wherein the sub streams meet a congestion control condition in sub streams, wherein the congestion control condition is that a packet loss event occurs in the corresponding sub streams of the plurality of second sub streams; and

performing the congestion control on the first sub stream set comprising:

the first sub stream, and

the plurality of second sub streams,

wherein, for each sub stream r in the first sub stream set, operations are executed for performing the congestion control on the first sub stream and the plurality of second sub streams in the first sub stream set as follows:

calculating a current congestion degree of the sub stream r by using the following formula:

T r =p 1 /p,

where:

T r is a current congestion degree of the sub stream r,

p 1 is a quantity of acknowledgement packets, in the sub stream r, that include the ECE identifier and that are received by the first device in a current round trip delay period of the sub stream r, and

p is a quantity of data packets in the sub stream r that are sent by the first device in the current round trip delay period of the sub stream r,

updating a congestion degree of the sub stream r by using the following formula

β r ′=g*T r ±(1− g )*β r

where:

β r is the updated congestion degree of the sub stream r in the current round trip delay period;

g is a weight of the current congestion degree, and

β r is an updated congestion degree of the sub stream r in a previous round trip delay period;

adjusting a size of a send window of the sub stream r by using the following formula:

w

r

′

=

w

r

-

β

r

′

2

*

w

r

,

where:

w r , is a decreased send window size of the sub stream r,

w r is a current send window size of the sub stream r, and

β r is the updated congestion degree of the sub stream r in the current round trip delay period, and

the send window is a quantity of data packets that can be transmitted to the second device in one round trip delay period of the sub stream r.

6. The non-transitory computer-readable medium according to claim 5 , wherein the determining the first sub stream set comprises:

monitoring sub streams other than the first sub stream in the plurality of sub streams in a preset time period based on the indication of the ECE identifier;

determining as the plurality of second sub streams, the sub streams that meet the congestion control condition in sub streams other than the first sub stream in the plurality of sub streams; and

determining the first sub stream and the plurality of second sub streams as the first sub stream set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2020
From: XUE, KAIPING; WEI, WENJIA; XU, QING
To: HUAWEI TECHNOLOGIES CO., LTD.; UNIVERSITY OF SCIENCE AND TECHNOLOGY OF CHINA
Reel/Frame 052936/0993 →
Continuity (2)
Continuation PCTCN2016099466 · Sep 20, 2016
Related Publication 20190215276A1 · Jul 11, 2019
Cited By (1)
US 12,549,484