IP Library Granted Patent US 11,870,708
Granted Patent B2
US 11,870,708 · App. 18/185,433 · Granted Jan 9, 2024

Congestion control method and apparatus

Inventors: Chen Tian (Shenzhen, CN); Lei Han (Shenzhen, CN); Kexin Liu (Shenzhen, CN); Wenhao Sun (Nanjing, CN); Ke Meng (Nanjing, CN); Yonghui Xu (Nanjing, CN); Long Yan (Nanjing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L47/801H04L47/781H04L47/826
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 11,870,708
App. No.
18/185,433
Granted
Jan 9, 2024
Kind
B2
Abstract

A congestion control method and an apparatus are disclosed. The method includes: after a sending device generates an unscheduled data packet of a first flow, if it is determined, based on an unscheduled packet send window shared by all flows, that the unscheduled data packet meets a sending condition, determining whether to request to add a quota for at least one of the unscheduled packet send window and a scheduled packet send window corresponding to the first flow; and if it is determined that the quota is requested to be added for the at least one of the unscheduled packet send window and the scheduled packet send window corresponding to the first flow, setting indication information in the unscheduled data packet, and sending, to a receiving device, the unscheduled data packet in which the indication information is set.

Claims (52)

1. A congestion control method, comprising:

generating, by a sending device, a to-be-sent unscheduled data packet of a first flow; upon determining, based on an unscheduled packet send window shared by all flows, that the to-be-sent unscheduled data packet meets a sending condition, determining whether to request to add a quota for the unscheduled packet send window and/or a scheduled packet send window corresponding to the first flow, wherein determination of whether a scheduled data packet of the first flow meets the sending condition is based on the scheduled packet send window corresponding to the first flow; and

upon determining that the quota needs to be requested to be added for the unscheduled packet send window and/or the scheduled packet send window corresponding to the first flow, setting indication information in the to-be-sent unscheduled data packet, and sending, to a receiving device, the to-be-sent unscheduled data packet in which the indication information is set, wherein the indication information indicates the receiving device to send a signaling packet, to trigger the sending device to add the quota for the unscheduled packet send window and/or the scheduled packet send window corresponding to the first flow.

2. The method according to claim 1 , wherein the determining whether to request to add a quota for the unscheduled packet send window and/or a scheduled packet send window corresponding to the first flow comprises:

when a count value of a first counter reaches a threshold, determining that the quota needs to be requested to be added for the unscheduled packet send window, wherein an accumulated amount of data sent by unscheduled data packets of all the flows is counted using the first counter, and the first counter is cleared after it is determined that the quota needs to be requested to be added for the unscheduled packet send window; and

when a count value of a second counter reaches the threshold, and the first flow still has to-be-sent data after one round-trip time, determining that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow, wherein an accumulated amount of data sent by a data packet of the first flow is counted using the second counter, and the second counter is cleared after it is determined that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow.

3. The method according to claim 2 , further comprising:

receiving, by the sending device, the signaling packet sent by the receiving device, and adding, based on the signaling packet, the quota for the unscheduled packet send window and/or the scheduled packet send window corresponding to the first flow to generate an added quota, wherein

the added quota is equal to an amount of data corresponding to the threshold.

4. The method according to claim 2 , further comprising:

when the count value of the first counter reaches the threshold, reducing the unscheduled packet send window by a quota corresponding to the threshold; and

when the count value of the second counter reaches the threshold, reducing the scheduled packet send window corresponding to the first flow by the quota corresponding to the threshold.

5. The method according to claim 1 , wherein the setting indication information in the to-be-sent unscheduled data packet comprises:

when it is determined that the quota needs to be requested to be added for the unscheduled packet send window, setting first indication information in the to-be-sent unscheduled data packet, wherein the first indication information indicates the receiving device to send a debt signaling packet, and the debt signaling packet triggers the sending device to add the quota for the unscheduled packet send window; and

when it is determined that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow, setting second indication information in the to-be-sent unscheduled data packet, wherein the second indication information indicates the receiving device to send a grant signaling packet, and the grant signaling packet triggers the sending device to add the quota for the unscheduled packet send window corresponding to the first flow.

6. The method according to claim 5 , further comprising:

receiving, by the sending device, the debt signaling packet, and adding the quota for the unscheduled packet send window based on the debt signaling packet; and/or

receiving, by the sending device, the grant signaling packet, wherein the grant signaling packet carries indication information of the first flow, and adding, by the sending device based on the grant signaling packet, the quota for the scheduled packet send window corresponding to the first flow.

7. The method according to claim 1 , further comprising:

generating, by the sending device, a to-be-sent scheduled data packet of the first flow;

upon determining, based on the scheduled packet send window corresponding to the first flow, that the scheduled data packet meets the sending condition, determining, by the sending device, whether to request to add the quota for the scheduled packet send window corresponding to the first flow;

upon determining that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow, setting, by the sending device, indication information in the scheduled data packet, wherein the indication information indicates the receiving device to send a grant signaling packet; and

receiving, by the sending device, the grant signaling packet sent by the receiving device, wherein the grant signaling packet carries the indication information of the first flow, and adding, by the sending device based on the grant signaling packet, the quota for the scheduled packet send window corresponding to the first flow.

8. The method according to claim 1 , wherein an initial value of the unscheduled packet send window is configured as RTTByte*m bytes, RTTByte indicates a quantity of bytes that are sent in one round-trip time, and m is an integer greater than or equal to 1; and an initial value of the scheduled packet send window corresponding to the first flow is configured as 0.

9. A congestion control method, comprising:

receiving, by a receiving device, a data packet sent by a sending device; when first indication information is set in the data packet, generating a debt signaling packet, and sending the debt signaling packet to the sending device, wherein the debt signaling packet triggers the sending device to add a quota for an unscheduled packet send window shared by all flows; and

when second indication information is set in the data packet, generating a grant signaling packet, and sending the grant signaling packet to the sending device, wherein the grant signaling packet carries flow indication information, the flow indication information is the same as flow indication information carried in the data packet, and the grant signaling packet triggers the sending device to add a quota for a scheduled packet send window corresponding to a corresponding flow.

10. The method according to claim 9 , wherein when sending the debt signaling packet and the grant signaling packet, the sending device sends the debt signaling packet and the grant signaling packet based on a packet sending rate shared by the debt signaling packet and the grant signaling packet.

11. A device, comprising at least one processor connected to a memory, wherein the memory stores a program including instructions that, when executed by the at least one processor, enable the device to perform operations comprising:

generating a to-be-sent unscheduled data packet of a first flow;

upon determining, based on an unscheduled packet send window shared by all flows, that the to-be-sent unscheduled data packet meets a sending condition, determining whether to request to add a quota for the unscheduled packet send window and/or a scheduled packet send window corresponding to the first flow, wherein determination of whether a scheduled data packet of the first flow meets the sending condition is based on the scheduled packet send window corresponding to the first flow; and

when it is determined that the quota needs to be requested to be added for the unscheduled packet send window and/or the scheduled packet send window corresponding to the first flow, setting indication information in the to-be-sent unscheduled data packet, and sending, to a receiving device, the to-be-sent unscheduled data packet in which the indication information is set, wherein the indication information indicates the receiving device to send a signaling packet, to trigger the device to add the quota for the unscheduled packet send window and/or the scheduled packet send window corresponding to the first flow.

12. The device according to claim 11 , wherein the determining whether to request to add a quota for the unscheduled packet send window and/or a scheduled packet send window corresponding to the first flow comprises:

when a count value of a first counter reaches a threshold, determining that the quota needs to be requested to be added for the unscheduled packet send window, wherein an accumulated amount of data sent by unscheduled data packets of all the flows is counted using the first counter, and the first counter is cleared after it is determined that the quota needs to be requested to be added for the unscheduled packet send window; and

when a count value of a second counter reaches the threshold, and the first flow still has to-be-sent data after one round-trip time, determining that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow, wherein an accumulated amount of data sent by a data packet of the first flow is counted using the second counter, and the second counter is cleared after it is determined that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow.

13. The device according to claim 12 , wherein the program further comprises instructions that, when executed by the at least one processor, cause the device to:

receive the signaling packet sent by the receiving device, and add, based on the signaling packet, the quota for the unscheduled packet send window and/or the scheduled packet send window corresponding to the first flow to generate an added quota, wherein the added quota is equal to an amount of data corresponding to the threshold.

14. The device according to claim 12 , wherein the program further comprises instructions that, when executed by the at least one processor, cause the device to:

when the count value of the first counter reaches the threshold, reduce the unscheduled packet send window by a quota corresponding to the threshold; and

when the count value of the second counter reaches the threshold, reduce the scheduled packet send window corresponding to the first flow by the quota corresponding to the threshold.

15. The device according to claim 11 , wherein the setting indication information in the to-be-sent unscheduled data packet comprises:

when it is determined that the quota needs to be requested to be added for the unscheduled packet send window, setting first indication information in the to-be-sent unscheduled data packet, wherein the first indication information indicates the receiving device to send a debt signaling packet, and the debt signaling packet triggers the device to add the quota for the unscheduled packet send window; and

when it is determined that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow, setting second indication information in the to-be-sent unscheduled data packet, wherein the second indication information indicates the receiving device to send a grant signaling packet, and the grant signaling packet triggers the device to add the quota for the unscheduled packet send window corresponding to the first flow.

16. The device according to claim 15 , wherein the program further comprises instructions that, when executed by the at least one processor, cause the device to:

receive the debt signaling packet, and add the quota for the unscheduled packet send window based on the debt signaling packet; and/or

receive the grant signaling packet, wherein the grant signaling packet carries indication information of the first flow, and add, based on the grant signaling packet, the quota for the scheduled packet send window corresponding to the first flow.

17. The device according to claim 11 , wherein the program further comprises instructions that, when executed by the at least one processor, cause the device to:

generate a to-be-sent scheduled data packet of the first flow;

upon determining, based on the scheduled packet send window corresponding to the first flow, that the scheduled data packet meets the sending condition, determine whether to request to add the quota for the scheduled packet send window corresponding to the first flow;

when it is determined that the quota needs to be requested to be added for the scheduled packet send window corresponding to the first flow, set indication information in the scheduled data packet, wherein the indication information indicates the receiving device to send a grant signaling packet; and

receive the grant signaling packet sent by the receiving device, wherein the grant signaling packet carries the indication information of the first flow, and add, based on the grant signaling packet, the quota for the scheduled packet send window corresponding to the first flow.

18. The device according to claim 11 , wherein an initial value of the unscheduled packet send window is configured as RTTByte*m bytes, RTTByte indicates a quantity of bytes that are sent in one round-trip time, and m is an integer greater than or equal to 1; and an initial value of the scheduled packet send window corresponding to the first flow is configured as 0.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2023
From: TIAN, CHEN; HAN, LEI; LIU, KEXIN; SUN, WENHAO; MENG, KE; XU, YONGHUI; YAN, LONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 064978/0572 →
Priority Claims (1)
CN 202010988470.9 · Sep 18, 2020 · national
Continuity (2)
Continuation PCTCN2021109387 · Jul 29, 2021
Related Publication 20230216809A1 · Jul 6, 2023