9) European Patent Office (11) EP3499820B1 (12) EUROPEAN PATENT SPECIFICATION (45)Date of publication and mention (51)Int CL.: of the grant of the patent: H04L12/8252013.0W H04L12/8512013.00 29.07.2020 Bulletin2020/31 H04L127072013.0) H04L12/8012013.01) H04L12/8072013.00 H04L12/8912013.0W (21)Application number:16916429.0 H04L12/26200601 (22)Date of filing:20.09.2016 (86)International application number: PCT/CN2016/099466 (87)International publication number: W02018/053688(29.03.2018 Gazette2018/13) (54) CONGESTION CONTROL METHOD,APPARATUS,AND SYSTEM UBERLASTUNGSSTEUERUNGSVERFAHREN,-VORRICHTUNG UND -SYSTEM PROCEDE,APPAREIL,ET SYSTEME DE CONTROLE D'ENCOMBREMENT (84)Designated Contracting States: (56)References cited: AL AT BE BG CH CY CZ DE DK EE ES FI FR GB W0-A1-2015/174901 CN-A-102318312 GR HR HU IEISIT LILT LU LV MC MK MT NL NO CN-A-103581035 CN-A-103973587 PL PT RO RS SE SI SK SM TR CN-A-104796350 (43)Date of publication of application: FERLIN SIMONE ET AL:"Revisiting congestion 19.06.2019 Bulletin2019/25 control for multipath TCP with shared bottleneck detection",IEEE INFOCOM 2016-THE 35TH (73)Proprietors: ANNUAL IEEE INTERNATIONAL CONFERENCE Huawei Technologies Co.,Ltd ON COMPUTER COMMUNICATIONS,IEEE,10 Longgang District April2016(2016-04-10),pages1-9,XP032930233, Shenzhen,Guangdong 518129(CN) DOI:10.1109/INFOCOM.2016.7524599 [retrieved University of Science and Technology of China on2016-07-27刀 Anhui 230026(CN) RAMAKRISHNAN TERAOPTIC NETWORKS S FLOYD ACIRI D BLACK EMC K:"The Addition of (72)Inventors: Explicit Congestion Notification(ECN)to IP; ·XuE,Kaiping rfc3168.txt",THE ADDITION OF EXPLICIT Shenzhen CONGESTION NOTIFICATION(ECN)TO IP: Guangdong 518129(CN) RFC3168.TXT,INTERNET ENGINEERING TASK ·WEl,Wenjia FORCE,IETF:STANDARD,INTERNET SOCIETY Shenzhen (ISOC)4,RUE DES FALAISES CH-1205 GENEVA, Guangdong 518129(CN) SWITZERLAND,30 September 2001(2001-09-30). ·XU,Qing XP015008949, Shenzhen B Braden:"RFC 2309-Recommendations on Guangdong 518129(CN) Queue Management and Congestion Avoidance in the Internet",IETF,30 April 1998(1998-04-30), (74)Representative:Thun,Clemens XP055604783,Retrieved from the Internet: Mitscherlich PartmbB URL:https://tools.ietf.org/html/rfc2309 [retrieved 面 Patent-und Rechtsanwalte on2019-07-11] SonnenstraBe 33 80331 Munchen(DE) 岛 66g Note:Within nine months of the publication of the mention of the grant of the European patent in the European Patent 9 Bulletin,any person may give notice to the European Patent Office of opposition to that patent,in accordance with the Implementing Regulations.Notice of opposition shall not be deemed to have been filed until the opposition fee has been 品 paid.(Art.99(1)European Patent Convention). Printed by Jouve,75001 PARIS(FR) (Cont.next page)
Note: Within nine months of the publication of the mention of the grant of the European patent in the European Patent Bulletin, any person may give notice to the European Patent Office of opposition to that patent, in accordance with the Implementing Regulations. Notice of opposition shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention). Printed by Jouve, 75001 PARIS (FR) (19) EP 3 499 820 B1 (Cont. next page) *EP003499820B1* (11) EP 3 499 820 B1 (12) EUROPEAN PATENT SPECIFICATION (45) Date of publication and mention of the grant of the patent: 29.07.2020 Bulletin 2020/31 (21) Application number: 16916429.0 (22) Date of filing: 20.09.2016 (51) Int Cl.: H04L 12/825 (2013.01) H04L 12/851 (2013.01) H04L 12/707 (2013.01) H04L 12/801 (2013.01) H04L 12/807 (2013.01) H04L 12/891 (2013.01) H04L 12/26 (2006.01) (86) International application number: PCT/CN2016/099466 (87) International publication number: WO 2018/053688 (29.03.2018 Gazette 2018/13) (54) CONGESTION CONTROL METHOD, APPARATUS, AND SYSTEM ÜBERLASTUNGSSTEUERUNGSVERFAHREN, -VORRICHTUNG UND -SYSTEM PROCÉDÉ, APPAREIL, ET SYSTÈME DE CONTRÔLE D’ENCOMBREMENT (84) Designated Contracting States: AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR (43) Date of publication of application: 19.06.2019 Bulletin 2019/25 (73) Proprietors: • Huawei Technologies Co., Ltd. Longgang District Shenzhen, Guangdong 518129 (CN) • University of Science and Technology of China Anhui 230026 (CN) (72) Inventors: • XUE, Kaiping Shenzhen Guangdong 518129 (CN) • WEI, Wenjia Shenzhen Guangdong 518129 (CN) • XU, Qing Shenzhen Guangdong 518129 (CN) (74) Representative: Thun, Clemens Mitscherlich PartmbB Patent- und Rechtsanwälte Sonnenstraße 33 80331 München (DE) (56) References cited: WO-A1-2015/174901 CN-A- 102 318 312 CN-A- 103 581 035 CN-A- 103 973 587 CN-A- 104 796 350 • FERLIN SIMONE ET AL: "Revisiting congestion control for multipath TCP with shared bottleneck detection", IEEE INFOCOM 2016 - THE 35TH ANNUAL IEEE INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATIONS, IEEE, 10 April 2016 (2016-04-10), pages 1-9, XP032930233, DOI: 10.1109/INFOCOM.2016.7524599 [retrieved on 2016-07-27] • RAMAKRISHNAN TERAOPTIC NETWORKS S FLOYD ACIRI D BLACK EMC K: "The Addition of Explicit Congestion Notification (ECN) to IP; rfc3168.txt", THE ADDITION OF EXPLICIT CONGESTION NOTIFICATION (ECN) TO IP; RFC3168.TXT, INTERNET ENGINEERING TASK FORCE, IETF; STANDARD, INTERNET SOCIETY (ISOC) 4, RUE DES FALAISES CH- 1205 GENEVA, SWITZERLAND, 30 September 2001 (2001-09-30), XP015008949, • B Braden: "RFC 2309 - Recommendations on Queue Management and Congestion Avoidance in the Internet", IETF, 30 April 1998 (1998-04-30), XP055604783, Retrieved from the Internet: URL:https://tools.ietf.org/html/rfc2309 [retrieved on 2019-07-11]
EP3499820B1 FLOYD S ET AL:"RANDOM EARLY DETECTION XU,MINGWEI et al.:"Delay-based Congestion GATEWAYS FOR CONGESTION AVOIDANCE", Control for MPTCP",,3 July 2016(2016-07-03). IEEE/ACM TRANSACTIONS ON NETWORKING. XP032329241, IEEE/ACM,NEW YORK,NY,US,vol.1,no.4,31 RAICIU,C.et al.:"Coupled Congestion Control August1993(1993-08-31),pages397-413, for Multipath Transport Protocols",IETF Request XP000415363,ISSN:1063-6692,DO: for Comments:6356,31 October 2011 10.1109/90.251892 (2011-10-31),XP055195762, FLOYD,S.et al.:"Random Early Detection Gateways for Congestion Avoidance",IEEE/ACM Transactions on Networking,vol.1,no.4,31 August1993(1993-08-31),XP000415363,D0: doi:10.1109/90.251892 XUE,KAIPING et al.:"Migrating Unfairness Among Subflows in MPTCP with Network Coding for Wired-Wireless Networks",IEEE Transactions on Vehicular Technology,vol.66, no.1,18 March2016(2016-03-18),XP055353393
2 EP 3 499 820 B1 • FLOYD S ET AL: "RANDOM EARLY DETECTION GATEWAYS FOR CONGESTION AVOIDANCE", IEEE / ACM TRANSACTIONS ON NETWORKING, IEEE / ACM, NEW YORK, NY, US, vol. 1, no. 4, 31 August 1993 (1993-08-31) , pages 397-413, XP000415363, ISSN: 1063-6692, DOI: 10.1109/90.251892 • FLOYD, S. et al.: "Random Early Detection Gateways for Congestion Avoidance", IEEE /ACM Transactions on Networking, vol. 1, no. 4, 31 August 1993 (1993-08-31) , XP000415363, DOI: doi:10.1109/90.251892 • XUE, KAIPING et al.: "Migrating Unfairness Among Subflows in MPTCP with Network Coding for Wired-Wireless Networks", IEEE Transactions on Vehicular Technology, vol. 66, no. 1, 18 March 2016 (2016-03-18) , XP055353393, • XU, MINGWEI et al.: "Delay-based Congestion Control for MPTCP", , 3 July 2016 (2016-07-03), XP032329241, • RAICIU, C. et al.: "Coupled Congestion Control for Multipath Transport Protocols", IETF Request for Comments: 6356, 31 October 2011 (2011-10-31), XP055195762
7 EP3499820B1 2 Description tions on Queue Management and Congestion Avoidance in the Internet"in IETF RFC2309 by B.Braden,IETF,30 TECHNICAL FIELD April 1998,refers to recommendations on Queue Man- agmenet and Congestion Avoidance. [0001]The presentinvention relates to the field of com- 5 [0008]Further,the prior art document"Random Early munications technologies,and in particular,to a conges- Detection Gateways for Congestion Avoidance"by tion control method,an apparatus,and a system Floyd.S.et.al.IEEE/ACM Transactions on networking IEEE/ACM,New York,31.August 1993 refers to random BACKGROUND early detection gateways for congestion avoidance. o [0002]In a communications system,the Multipath SUMMARY Transmission Control Protocol(Multipath Transmission Control Protocol,MPTCP)can implement multipath par- [0009]This application provides a congestion control allel data transmission. method,an apparatus,and a system,to significantly im- [0003]Currently,to improve a throughput during data 15 prove a congestion control effect. transmission performed by using the MPTCP,when data [0010]This problem is solved by the subject matter of transmission is performed between a transmit end and the independent claims.Further implemenation forms a receive end by using the MPTCP,congestion control are provided in the dependent claims. (for example,adjusting bandwidth occupied by each sub [0011]To achieve the foregoing objective,this appli- stream)needs to be performed on a plurality of data 20 cation uses the following technical solutions.According streams (a data stream transmitted on each transmission to a first aspect,a congestion control method is provided path is referred to as a sub data stream,hereinafter re- The method is applied to a process in which data trans- ferred to as a sub stream)transmitted on a plurality of mission is performed between a first device and a second transmission paths(a connection over which data trans- device by using the MPTCP.The method may include mission is performed by using the plurality of transmis- 25 receiving.by the first device,a first acknowledgement sion paths may be referred to as an MPTCP connection) packet that is from the second device and that includes between the transmit end and the receive end.When an ECE identifier used to instruct the first device to per- congestion control is performed on the plurality of data form congestion control,where the first acknowledge- streams,to ensure fairness between an MPTCP connec- ment packet is an acknowledgement packet of a first data tion and a Transmission Control Protocol (Transmission 30 packet of a first sub stream in a plurality of data streams Control Protocol.TCP)connection(when data transmis- (hereinafter referred to as a plurality of sub streams) sion is performed between the transmit end and the re transmitted on a plurality of transmission paths between ceive end by using the TCP,a connection over which the first device and the second device;determining,by data transmission is performed between the transmit end the first device based on indication of the ECE identifier. and the receive end by using a single transmission path 35 a first sub stream set that includes the first sub stream is referred to as a TCP connection)in a network,a and a plurality of second sub streams that meet a con- throughput of each MPTCP connection usually needs to gestion control condition in sub streams other than the be equal to a throughput of each TCP connection. first sub stream in the plurality of sub streams;and per- [0004]However,a plurality of sub streams are trans- forming congestion control on sub streams in the first sub mitted on each MPTCP connection,and possibly only 40 stream set. some of the plurality of sub streams share bandwidth.If [0012]In this application,the first device may use a set congestion control is simultaneously performed on the congestion control method to perform congestion control plurality of sub streams according to the foregoing meth- on the sub streams in the first sub stream set od,because it can be only ensured that a throughput of [0013]In the congestion control method provided in each MPTCP connection is equal to a throughput of each 45 this application,when data transmission is performed be- TCP connection,a throughput of the MPTCP connection tween the first device and the second device by using may not be significantly improved. the MPTCP,the first device may group,into one sub [0005]Prior art document "Revisiting congestion con- stream set,sub streams that meet the congestion control trol for multipath TCP with shared bottleneck detection" condition in the plurality of sub streams transmitted on by Ferlin Simone et al,IEEE INFOCOM 2016,10.April 50 the plurality of transmission paths between the first de- 2016 refers to a congestion control for multipath TCP vice and the second device.These sub streams that meet with a shared bottleneck detection. the congestion control condition may be bandwidth- [0006]Further,the prior art document"The Addition of shared sub streams to a specific degree.To be specific Explicit Congestion Notification (ECN)to IP"in IETF in this application,a plurality of bandwidth-shared sub RFC3168 by Ramakrishnan et.al.,Teraoptic networks, 55 streams can be grouped into one sub stream set to a 30.September 2001 refers to an addition of an explicit specific degree,and then congestion control can be per- congestion notification. formed on the sub streams in the set.In this way,a con- [0007]Further,the prior art document"Recommenda- gestion control effect can be significantly improved,to 3
EP 3 499 820 B1 3 5 10 15 20 25 30 35 40 45 50 55 Description TECHNICAL FIELD [0001] The present invention relates to the field of communications technologies, and in particular, to a congestion control method, an apparatus, and a system. BACKGROUND [0002] In a communications system, the Multipath Transmission Control Protocol (Multipath Transmission Control Protocol, MPTCP) can implement multipath parallel data transmission. [0003] Currently, to improve a throughput during data transmission performed by using the MPTCP, when data transmission is performed between a transmit end and a receive end by using the MPTCP, congestion control (for example, adjusting bandwidth occupied by each sub stream) needs to be performed on a plurality of data streams (a data stream transmitted on each transmission path is referred to as a sub data stream, hereinafter referred to as a sub stream) transmitted on a plurality of transmission paths (a connection over which data transmission is performed by using the plurality of transmission paths may be referred to as an MPTCP connection) between the transmit end and the receive end. When congestion control is performed on the plurality of data streams, to ensure fairness between an MPTCP connection and a Transmission Control Protocol (Transmission Control Protocol, TCP) connection (when data transmission is performed between the transmit end and the receive end by using the TCP, a connection over which data transmission is performed between the transmit end and the receive end by using a single transmission path is referred to as a TCP connection) in a network, a throughput of each MPTCP connection usually needs to be equal to a throughput of each TCP connection. [0004] However, a plurality of sub streams are transmitted on each MPTCP connection, and possibly only some of the plurality of sub streams share bandwidth. If congestion control is simultaneously performed on the plurality of sub streams according to the foregoing method, because it can be only ensured that a throughput of each MPTCP connection is equal to a throughput of each TCP connection, a throughput of the MPTCP connection may not be significantly improved. [0005] Prior art document "Revisiting congestion control for multipath TCP with shared bottleneck detection" by Ferlin Simone et al, IEEE INFOCOM 2016, 10. April 2016 refers to a congestion control for multipath TCP with a shared bottleneck detection. [0006] Further, the prior art document "The Addition of Explicit Congestion Notification (ECN) to IP" in IETF RFC3168 by Ramakrishnan et.al., Teraoptic networks, 30. September 2001 refers to an addition of an explicit congestion notification. [0007] Further, the prior art document "Recommendations on Queue Management and Congestion Avoidance in the Internet" in IETF RFC2309 by B. Braden, IETF, 30. April 1998, refers to recommendations on Queue Managmenet and Congestion Avoidance. [0008] Further, the prior art document "Random Early Detection Gateways for Congestion Avoidance" by Floyd. S. et. al. IEEE/ACM Transactions on networking, IEEE/ACM, New York, 31. August 1993 refers to random early detection gateways for congestion avoidance. SUMMARY [0009] This application provides a congestion control method, an apparatus, and a system, to significantly improve a congestion control effect. [0010] This problem is solved by the subject matter of the independent claims. Further implemenation forms are provided in the dependent claims. [0011] To achieve the foregoing objective, this application uses the following technical solutions. According to a first aspect, a congestion control method is provided. The method is applied to a process in which data transmission is performed between a first device and a second device by using the MPTCP. The method may include: receiving, by the first device, a first acknowledgement packet that is from the second device and that includes an ECE identifier used to instruct the first device to perform congestion control, where the first acknowledgement packet is an acknowledgement packet of a first data packet of a first sub stream in a plurality of data streams (hereinafter referred to as a plurality of sub streams) transmitted on a plurality of transmission paths between the first device and the second device; determining, by the first device based on indication of the ECE identifier, a first sub stream set that includes the first sub stream and a plurality of second sub streams that meet a congestion control condition in sub streams other than the first sub stream in the plurality of sub streams; and performing congestion control on sub streams in the first sub stream set. [0012] In this application, the first device may use a set congestion control method to perform congestion control on the sub streams in the first sub stream set. [0013] In the congestion control method provided in this application, when data transmission is performed between the first device and the second device by using the MPTCP, the first device may group, into one sub stream set, sub streams that meet the congestion control condition in the plurality of sub streams transmitted on the plurality of transmission paths between the first device and the second device. These sub streams that meet the congestion control condition may be bandwidthshared sub streams to a specific degree. To be specific, in this application, a plurality of bandwidth-shared sub streams can be grouped into one sub stream set to a specific degree, and then congestion control can be performed on the sub streams in the set. In this way, a congestion control effect can be significantly improved, to 1 2
3 EP3499820B1 further improve MPTCP transmission performance. control on the sub stream that is not in the second sub [0014]In a first optional implementation of the first as stream set. pect,after the determining,by the first device,a first sub [0022]In this application,the first device may perform stream set,and before the performing,by the first device. congestion control on the sub streams in the second sub congestion control on sub streams in the first sub stream 5 stream set,and may further perform congestion control set,the congestion control method provided in this ap- on the sub stream that is not in the second sub stream plication may further include:receiving,by the first de- set.In this way,the first device may perform congestion vice,a second acknowledgement packet that is of a data control on all of the plurality of sub streams transmitted packet (hereinafter referred to as a second data packet) on the plurality of transmission paths between the first of a sub stream in the first sub stream set,that is from 10 device and the second device,so that a congestion con- the second device,and that includes the ECE identifier; trol effect can be more significantly improved. determining,based on indication of the ECE identifier,a [0023]In a fourth optional implementation of the first second sub stream set including the sub stream,where aspect,a method for determining,by the first device,the the second sub stream set is a subset of the first sub first sub stream set based on indication of the ECE iden- stream set;and performing congestion control on sub 15 tifier may include:monitoring,by the first device,the sub streams in the second sub stream set. streams other than the first sub stream in the plurality of [0015]In this application,the first device may use the sub streams in a preset time period based on indication set congestion control method to perform congestion of the ECE identifier;determining,as the plurality of sec- control on the sub streams in the second sub stream set. ond sub streams,sub streams that meet the congestion [0016]In this application,after the first device deter- 20 control condition in the sub streams other than the first mines the first sub stream set,the first device may further sub stream in the plurality of sub streams;and determin- determine the second sub stream set from the first sub ing the first sub stream and the plurality of second sub stream set,and perform congestion control on the sub streams as the first sub stream set. streams in the second sub stream set.In this way,the [0024]In this application,by monitoring the sub first device can determine,in relatively high accuracy,a 25 streams other than the first sub stream in the plurality of sub stream set on which congestion control is to be per- sub streams in the preset time period,the first device formed,so that a congestion control effect can be signif- may learn congestion statuses of the plurality of sub icantly improved. streams on the plurality of transmission paths between [0017]In a second optional implementation of the first the first device and the second device,and group,into aspect,the congestion control method provided in this 30 the first sub stream set,the sub streams that meet the application may further include:performing,by the first congestion control condition.These sub streams that device,congestion control on a sub stream (hereinafter meet the congestion control condition may be bandwidth- referred to as a sub stream that is not in the first sub shared sub streams to a specific degree.To be specific, stream set)that is other than the sub streams in the first in this application,a plurality of bandwidth-shared sub sub stream set and that is in the plurality of sub streams 35 streams can be grouped into one sub stream set to a [0018]In this application,the first device may specifi- specific degree,and congestion control can be per- cally use a separate congestion control method to per- fommed on the sub streams in the sub stream set.In this form congestion control on the sub stream that is not in way,a congestion control effect can be significantly im- the first sub stream set. proved. [0019]In this application,the first device may perform 40 [0025]In a fifth optional implementation of the first as congestion control on the sub streams in the first sub pect,a method for determining,by the first device,the stream set,and may further perform congestion control second sub stream set based on indication of the ECE on the sub stream that is not in the first sub stream set identifier may include:monitoring,by the first device in In this way,the first device may perform congestion con- the preset time period based on indication of the ECE trol on all of the plurality of sub streams transmitted on 45 identifier,sub streams in the first sub stream set that are the plurality of transmission paths between the first de. other than a third sub stream in which the second data vice and the second device,so that a congestion control packet is located in the set;determining,as a plurality of effect can be more significantly improved. fourth sub streams,sub streams that meetthe congestion [0020]In a third optional implementation of the first as- control condition in the sub streams other than the third pect,the congestion control method provided in this ap- 50 sub stream in the first sub stream set:and determining plication may further include:performing,by the first de- the third sub stream and the plurality of fourth sub vice,congestion control on a sub stream (hereinafter re- streams as the second sub stream set. ferred to as a sub stream that is not in the second sub [0026]In this application,the first device may monitor stream set)that is other than the sub streams in the sec- the sub streams other than the third sub stream in the ond sub stream set and that is in the plurality of sub 55 first sub stream set in the preset time period,and deter- streams. mine,as the second sub stream set,the third sub stream [0021]The first device may specifically use the sepa- and the sub streams that meet the congestion control rate congestion control method to perform congestion condition in these sub streams
EP 3 499 820 B1 4 5 10 15 20 25 30 35 40 45 50 55 further improve MPTCP transmission performance. [0014] In a first optional implementation of the first aspect, after the determining, by the first device, a first sub stream set, and before the performing, by the first device, congestion control on sub streams in the first sub stream set, the congestion control method provided in this application may further include: receiving, by the first device, a second acknowledgement packet that is of a data packet (hereinafter referred to as a second data packet) of a sub stream in the first sub stream set, that is from the second device, and that includes the ECE identifier; determining, based on indication of the ECE identifier, a second sub stream set including the sub stream, where the second sub stream set is a subset of the first sub stream set; and performing congestion control on sub streams in the second sub stream set. [0015] In this application, the first device may use the set congestion control method to perform congestion control on the sub streams in the second sub stream set. [0016] In this application, after the first device determines the first sub stream set, the first device may further determine the second sub stream set from the first sub stream set, and perform congestion control on the sub streams in the second sub stream set. In this way, the first device can determine, in relatively high accuracy, a sub stream set on which congestion control is to be performed, so that a congestion control effect can be significantly improved. [0017] In a second optional implementation of the first aspect, the congestion control method provided in this application may further include: performing, by the first device, congestion control on a sub stream (hereinafter referred to as a sub stream that is not in the first sub stream set) that is other than the sub streams in the first sub stream set and that is in the plurality of sub streams. [0018] In this application, the first device may specifically use a separate congestion control method to perform congestion control on the sub stream that is not in the first sub stream set. [0019] In this application, the first device may perform congestion control on the sub streams in the first sub stream set, and may further perform congestion control on the sub stream that is not in the first sub stream set. In this way, the first device may perform congestion control on all of the plurality of sub streams transmitted on the plurality of transmission paths between the first device and the second device, so that a congestion control effect can be more significantly improved. [0020] In a third optional implementation of the first aspect, the congestion control method provided in this application may further include: performing, by the first device, congestion control on a sub stream (hereinafter referred to as a sub stream that is not in the second sub stream set) that is other than the sub streams in the second sub stream set and that is in the plurality of sub streams. [0021] The first device may specifically use the separate congestion control method to perform congestion control on the sub stream that is not in the second sub stream set. [0022] In this application, the first device may perform congestion control on the sub streams in the second sub stream set, and may further perform congestion control on the sub stream that is not in the second sub stream set. In this way, the first device may perform congestion control on all of the plurality of sub streams transmitted on the plurality of transmission paths between the first device and the second device, so that a congestion control effect can be more significantly improved. [0023] In a fourth optional implementation of the first aspect, a method for determining, by the first device, the first sub stream set based on indication of the ECE identifier may include: monitoring, by the first device, the sub streams other than the first sub stream in the plurality of sub streams in a preset time period based on indication of the ECE identifier; determining, as the plurality of second sub streams, 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. [0024] In this application, by monitoring the sub streams other than the first sub stream in the plurality of sub streams in the preset time period, the first device may learn congestion statuses of the plurality of sub streams on the plurality of transmission paths between the first device and the second device, and group, into the first sub stream set, the sub streams that meet the congestion control condition. These sub streams that meet the congestion control condition may be bandwidthshared sub streams to a specific degree. To be specific, in this application, a plurality of bandwidth-shared sub streams can be grouped into one sub stream set to a specific degree, and congestion control can be performed on the sub streams in the sub stream set. In this way, a congestion control effect can be significantly improved. [0025] In a fifth optional implementation of the first aspect, a method for determining, by the first device, the second sub stream set based on indication of the ECE identifier may include: monitoring, by the first device in the preset time period based on indication of the ECE identifier, sub streams in the first sub stream set that are other than a third sub stream in which the second data packet is located in the set; determining, as a plurality of fourth sub streams, sub streams that meet the congestion control condition in the sub streams other than the third sub stream in the first sub stream set; and determining the third sub stream and the plurality of fourth sub streams as the second sub stream set. [0026] In this application, the first device may monitor the sub streams other than the third sub stream in the first sub stream set in the preset time period, and determine, as the second sub stream set, the third sub stream and the sub streams that meet the congestion control condition in these sub streams. 3 4
EP3499820B1 6 [0027]In a sixth optional implementation of the first vice and the second device.These sub streams that meet aspect,before the first device sends a data packet to a the congestion control condition may be bandwidth routing device,the congestion control method provided shared sub streams to a specific degree.To be specific. in this application may further include:marking,by the in this application,a plurality of bandwidth-shared sub first device,the to-be-sent data packet. 5 streams can be grouped into one sub stream set to a [0028]Before sending the data packet to the routing specific degree,and congestion control can be per- device,the first device may first mark the to-be-sent data formed on the sub streams in the sub stream set.In this packet,to be specific,set an ECN identifier of the data way,a congestion control effect can be significantly im- packet to an ECN-supported identifier.The ECNidentifier proved,to further improve MPTCP transmission perform- is used to indicate,to the routing device,that the data 10 ance packet supports an ECN function.Then,the routing de- [0031]In a first optional implementation of the second vice sends the data packet with the ECN identifier to the aspect,the congestion control method provided in this second device.After receiving the data packet,the sec- application may further include:receiving,by the routing ond device sends,to the first device,an acknowledge- device,a second data packet from the first device;de- ment packet(for example,the first acknowledgement 15 termining,by the routing device,that an average queue packet or the second acknowledgement packet)for length of a data packet queue (the data packet queue which an ECE identifier is set.After receiving the ac- includes a data packet that is to be from the routing de- knowledgement packet,the first device may learn that a vice)is greater than or equal to the first preset threshold sub stream in which the data packet is located may be and is less than or equal to the second preset threshold; congested,and determine,from the plurality of sub 20 making a congestion mark for the second data packet. streams based on indication of the ECE identifier in the and adding the second data packet to the data packet acknowledgement packet based on the congestion con- queue;and successively sending data packets in the da- trol condition,sub streams(for example,the sub streams ta packet queue to the second device. in the first sub stream set or the sub streams in the second [0032]In this application,the first device sends a plu- sub stream set)that may be congested,so that the first 25 rality of data packets to the routing device.The second device implements congestion control on these sub data packet is a data packet of a sub stream in a first sub streams that may be congested stream set.After receiving the second data packet from [0029]According to a second aspect,a congestion the first device,the routing device may make the con- control method is provided.The method is applied to a gestion mark for the data packet that may encounter con- process in which data transmission is performed between 名 gestion,and then send the second data packet to the a first device and a second device by using the MPTCP. second device.After receiving the second data packet The method may include:receiving,by a routing device, with the congestion mark,the second device makes an a first data packet from the first device;determining,by ECE mark for a second acknowledgement packet with the routing device,that an average queue length of a which the second device is to reply to the first device data packet queue(the data packet queue includes a 35 Therefore,after the first device receives the second ac data packet that is to be from the routing device)is greater knowledgement packet including the ECE identifier,the than or equal to a first preset threshold and is less than first device may group,into a second sub stream set,sub or equal to a second preset threshold;making a conges- streams that meet the congestion control condition in the tion mark for the first data packet,and adding the first first sub stream set.In other words,the first device may data packet to the data packet queue;and successively 40 further determine the second sub stream set (the second sending data packets in the data packet queue to the sub stream set is a subset of the first sub stream set) second device. from the first sub stream set.In this way,the first device [0030]In the congestion control method provided in can determine,in relatively high accuracy,a sub stream this application,when data transmission is performed be- set on which congestion control is to be performed,so tween the first device and the second device by using 45 that a congestion control effect can be significantly im- the MPTCP,after receiving the first data packet from the proved. first device,the routing device may make the congestion [0033]According to a third aspect,a congestion control mark for the data packet that may encounter congestion. method is provided.The method is applied to a process and then send the first data packet to the second device. in which data transmission is performed between a first After receiving the first data packet with the congestion 50 device and a second device by using the MPTCP.The mark,the second device makes an ECE mark for a first method may include:receiving,by the second device,a acknowledgement packet with which the second device first data packet from a routing device;making an ECE is to reply to the first device.Therefore,after the first mark for a first acknowledgement packet with which the device receives the first acknowledgement packet includ- second device is to reply to the first device:and sending ing the ECE identifier,the first device may group,into 55 the first acknowledgement packet to the first device. one sub stream set,sub streams that meet a congestion [0034]In the congestion control method provided in control condition in a plurality of sub streams transmitted this application,when data transmission is performed be- on a plurality of transmission paths between the first de- tween the first device and the second device by using 5
EP 3 499 820 B1 5 5 10 15 20 25 30 35 40 45 50 55 [0027] In a sixth optional implementation of the first aspect, before the first device sends a data packet to a routing device, the congestion control method provided in this application may further include: marking, by the first device, the to-be-sent data packet. [0028] Before sending the data packet to the routing device, the first device may first mark the to-be-sent data packet, to be specific, set an ECN identifier of the data packet to an ECN-supported identifier. The ECN identifier is used to indicate, to the routing device, that the data packet supports an ECN function. Then, the routing device sends the data packet with the ECN identifier to the second device. After receiving the data packet, the second device sends, to the first device, an acknowledgement packet (for example, the first acknowledgement packet or the second acknowledgement packet) for which an ECE identifier is set. After receiving the acknowledgement packet, the first device may learn that a sub stream in which the data packet is located may be congested, and determine, from the plurality of sub streams based on indication of the ECE identifier in the acknowledgement packet based on the congestion control condition, sub streams (for example, the sub streams in the first sub stream set or the sub streams in the second sub stream set) that may be congested, so that the first device implements congestion control on these sub streams that may be congested. [0029] According to a second aspect, a congestion control method is provided. The method is applied to a process in which data transmission is performed between a first device and a second device by using the MPTCP. The method may include: receiving, by a routing device, a first data packet from the first device; determining, by the routing device, that an average queue length of a data packet queue (the data packet queue includes a data packet that is to be from the routing device) is greater than or equal to a first preset threshold and is less than or equal to a second preset threshold; making a congestion mark for the first data packet, and adding the first data packet to the data packet queue; and successively sending data packets in the data packet queue to the second device. [0030] In the congestion control method provided in this application, when data transmission is performed between the first device and the second device by using the MPTCP, after receiving the first data packet from the first device, the routing device may make the congestion mark for the data packet that may encounter congestion, and then send the first data packet to the second device. After receiving the first data packet with the congestion mark, the second device makes an ECE mark for a first acknowledgement packet with which the second device is to reply to the first device. Therefore, after the first device receives the first acknowledgement packet including the ECE identifier, the first device may group, into one sub stream set, sub streams that meet a congestion control condition in a plurality of sub streams transmitted on a plurality of transmission paths between the first device and the second device. These sub streams that meet the congestion control condition may be bandwidthshared sub streams to a specific degree. To be specific, in this application, a plurality of bandwidth-shared sub streams can be grouped into one sub stream set to a specific degree, and congestion control can be performed on the sub streams in the sub stream set. In this way, a congestion control effect can be significantly improved, to further improve MPTCP transmission performance. [0031] In a first optional implementation of the second aspect, the congestion control method provided in this application may further include: receiving, by the routing device, a second data packet from the first device; determining, by the routing device, that an average queue length of a data packet queue (the data packet queue includes a data packet that is to be from the routing device) is greater than or equal to the first preset threshold and is less than or equal to the second preset threshold; making a congestion mark for the second data packet, and adding the second data packet to the data packet queue; and successively sending data packets in the data packet queue to the second device. [0032] In this application, the first device sends a plurality of data packets to the routing device. The second data packet is a data packet of a sub stream in a first sub stream set. After receiving the second data packet from the first device, the routing device may make the congestion mark for the data packet that may encounter congestion, and then send the second data packet to the second device. After receiving the second data packet with the congestion mark, the second device makes an ECE mark for a second acknowledgement packet with which the second device is to reply to the first device. Therefore, after the first device receives the second acknowledgement packet including the ECE identifier, the first device may group, into a second sub stream set, sub streams that meet the congestion control condition in the first sub stream set. In other words, the first device may further determine the second sub stream set (the second sub stream set is a subset of the first sub stream set) from the first sub stream set. In this way, the first device can determine, in relatively high accuracy, a sub stream set on which congestion control is to be performed, so that a congestion control effect can be significantly improved. [0033] According to a third aspect, a congestion control method is provided. The method is applied to a process in which data transmission is performed between a first device and a second device by using the MPTCP. The method may include: receiving, by the second device, a first data packet from a routing device; making an ECE mark for a first acknowledgement packet with which the second device is to reply to the first device; and sending the first acknowledgement packet to the first device. [0034] In the congestion control method provided in this application, when data transmission is performed between the first device and the second device by using 5 6
EP3499820B1 8 the MPTCP,after the second device receives the first is configured to receive a first acknowledgement packet data packet from the first device by using the routing de that is from a second device and that includes an ECE vice,the second device may set,in the first acknowledge- identifier used to instruct the device to perform conges- ment packet with which the second device is to reply to tion control,where the first acknowledgement packet is the first device,an ECE identifier used to notify the first 5 an acknowledgement packet of a first data packet of a device that a sub stream in which the first data packet is first sub stream in a plurality of sub streams transmitted located may be congested.The ECE identifier is an echo on a plurality of transmission paths between the first de- identifier that is set by the second device for an ECN vice and the second device.The determining module is identifier in the data packet received by the second de- configured to determine,based on indication of the ECE vice.Therefore,after the first device receives the first 10 identifier,a first sub stream set that includes the first sub acknowledgement packet including the ECE identifier, stream and a plurality of second sub streams that meet the first device may group,into one sub stream set,sub a congestion control condition in sub streams other than streams that meet a congestion control condition in a the first sub stream in the plurality of sub streams.The plurality of sub streams transmitted on a plurality of trans- control module is configured to perform congestion con- mission paths between the first device and the second 15 trol on sub streams in the first sub stream set. device.These sub streams that meet the congestion con- [0038]In a first optional implementation of the fourth trol condition may be bandwidth-shared sub streams to aspect,the receiving module may be further configured a specific degree.To be specific,in this application,a to:after the determining module determines the first sub plurality of bandwidth-shared sub streams can be stream set,and before the control module performs con- grouped into one sub stream set to a specific degree, 20 gestion control on the sub streams in the first sub stream and congestion control can be performed on the sub set,receive a second acknowledgement packet that is streams in the sub stream set.In this way,a congestion of a data packet(hereinafter referred to as a second data control effect can be significantly improved,so that the packet)of a sub stream in the first sub stream set,that first device can perform congestion control on a sub is from the second device,and that includes the ECE stream that may be congested. 25 identifier.The determining module may be further con- [0035]In a first optional implementation of the third as- figured to detemmine,based on indication ofthe ECE iden- pect,the congestion control method provided in this ap- tifier,a second sub stream set including the sub stream, plication may further include:receiving,by the second where the second sub stream set is a subset of the first device,a second data packet from the routing device; sub stream set.The control module may be further con- making an ECE mark for a second acknowledgement 30 figured to perform congestion control on sub streams in packet with which the second device is to reply to the the second sub stream set. first device;and sending the second acknowledgement [0039]In a second optional implementation of the packet to the first device. fourth aspect,the control module may be further config- [0036]In this application,after the second device re- ured to perform congestion control on a sub stream (here- ceives the second data packet from the first device by 35 inafter referred to as a sub stream that is not in the first using the routing device,the second device may set,in sub stream set)that is other than the sub streams in the the second acknowledgement packet with which the sec- first sub stream set and that is in the plurality of sub ond device is to reply to the first device,an ECE identifier streams. used to notify the first device that a sub stream in which [0040]In a third optional implementation of the fourth the second data packet is located may be congested. 40 aspect,the control module may be further configured to The ECE identifier is an echo identifier that is set by the perform congestion control on a sub stream(hereinafter second device for an ECN identifier in the data packet referred to as a sub stream that is not in the second sub received by the second device.Therefore,after the first stream set)that is other than the sub streams in the sec- device receives the second acknowledgement packet in- ond sub stream set and that is in the plurality of sub cluding the ECE identifier,the first device may group, 45 streams. into a second sub stream set,sub streams that meet the [0041]In a fourth optional implementation of the fourth congestion control condition in a first sub stream set.In aspect,a method for determining,by the determining other words,the first device may further determine the module,the first sub stream set based on indication of second sub stream set (the second sub stream set is a the ECE identifier may include:monitoring,by the deter- subset ofthe first sub stream set)from the first sub stream 50 mining module,the sub streams other than the first sub set.In this way,the first device can determine,in relatively stream in the plurality of sub streams in a preset time high accuracy,a sub stream set on which congestion period;determining,as the plurality of second sub control is to be performed,so that a congestion control streams,sub streams that meet the congestion control effect can be significantly improved,to further improve condition in the sub streams other than the first sub MPTCP transmission performance. 55 stream in the plurality of sub streams;and determining [0037]According to a fourth aspect,a device is provid- the first sub stream and the plurality of second sub ed.The device includes a receiving module,a determin- streams as the first sub stream set. ing module,and a control module.The receiving module [0042]In a fifth optional implementation of the fourth 6
EP 3 499 820 B1 6 5 10 15 20 25 30 35 40 45 50 55 the MPTCP, after the second device receives the first data packet from the first device by using the routing device, the second device may set, in the first acknowledgement packet with which the second device is to reply to the first device, an ECE identifier used to notify the first device that a sub stream in which the first data packet is located may be congested. The ECE identifier is an echo identifier that is set by the second device for an ECN identifier in the data packet received by the second device. Therefore, after the first device receives the first acknowledgement packet including the ECE identifier, the first device may group, into one sub stream set, sub streams that meet a congestion control condition in a plurality of sub streams transmitted on a plurality of transmission paths between the first device and the second device. These sub streams that meet the congestion control condition may be bandwidth-shared sub streams to a specific degree. To be specific, in this application, a plurality of bandwidth-shared sub streams can be grouped into one sub stream set to a specific degree, and congestion control can be performed on the sub streams in the sub stream set. In this way, a congestion control effect can be significantly improved, so that the first device can perform congestion control on a sub stream that may be congested. [0035] In a first optional implementation of the third aspect, the congestion control method provided in this application may further include: receiving, by the second device, a second data packet from the routing device; making an ECE mark for a second acknowledgement packet with which the second device is to reply to the first device; and sending the second acknowledgement packet to the first device. [0036] In this application, after the second device receives the second data packet from the first device by using the routing device, the second device may set, in the second acknowledgement packet with which the second device is to reply to the first device, an ECE identifier used to notify the first device that a sub stream in which the second data packet is located may be congested. The ECE identifier is an echo identifier that is set by the second device for an ECN identifier in the data packet received by the second device. Therefore, after the first device receives the second acknowledgement packet including the ECE identifier, the first device may group, into a second sub stream set, sub streams that meet the congestion control condition in a first sub stream set. In other words, the first device may further determine the second sub stream set (the second sub stream set is a subset of the first sub stream set) from the first sub stream set. In this way, the first device can determine, in relatively high accuracy, a sub stream set on which congestion control is to be performed, so that a congestion control effect can be significantly improved, to further improve MPTCP transmission performance. [0037] According to a fourth aspect, a device is provided. The device includes a receiving module, a determining module, and a control module. The receiving module is configured to receive a first acknowledgement packet that is from a second device and that includes an ECE identifier used to instruct the device to perform congestion control, where the first acknowledgement packet is an acknowledgement packet of a first data packet of a first sub stream in a plurality of sub streams transmitted on a plurality of transmission paths between the first device and the second device. The determining module is configured to determine, based on indication of the ECE identifier, a first sub stream set that includes the first sub stream and a plurality of second sub streams that meet a congestion control condition in sub streams other than the first sub stream in the plurality of sub streams. The control module is configured to perform congestion control on sub streams in the first sub stream set. [0038] In a first optional implementation of the fourth aspect, the receiving module may be further configured to: after the determining module determines the first sub stream set, and before the control module performs congestion control on the sub streams in the first sub stream set, receive a second acknowledgement packet that is of a data packet (hereinafter referred to as a second data packet) of a sub stream in the first sub stream set, that is from the second device, and that includes the ECE identifier. The determining module may be further configured to determine, based on indication of the ECE identifier, a second sub stream set including the sub stream, where the second sub stream set is a subset of the first sub stream set. The control module may be further configured to perform congestion control on sub streams in the second sub stream set. [0039] In a second optional implementation of the fourth aspect, the control module may be further configured to perform congestion control on a sub stream (hereinafter referred to as a sub stream that is not in the first sub stream set) that is other than the sub streams in the first sub stream set and that is in the plurality of sub streams. [0040] In a third optional implementation of the fourth aspect, the control module may be further configured to perform congestion control on a sub stream (hereinafter referred to as a sub stream that is not in the second sub stream set) that is other than the sub streams in the second sub stream set and that is in the plurality of sub streams. [0041] In a fourth optional implementation of the fourth aspect, a method for determining, by the determining module, the first sub stream set based on indication of the ECE identifier may include: monitoring, by the determining module, the sub streams other than the first sub stream in the plurality of sub streams in a preset time period; determining, as the plurality of second sub streams, 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. [0042] In a fifth optional implementation of the fourth 7 8
9 EP3499820B1 10 aspect,a method for determining,by the determining threshold and is less than or equal to the second preset module,the second sub stream set based on indication threshold(the second preset threshold is greater than of the ECE identifier may include:monitoring,by the de- the first preset threshold);and make a congestion mark termining module monitors in the preset time period,sub for the second data packet received by the receiving mod- streams in the first sub stream set that are other than a 5 ule,and add the second data packet to the data packet third sub stream in which the second data packet is lo- queue.The sending module is configured to successively cated in the set;detemmining,as a plurality of fourth sub send data packets (including the second data packet streams,sub streams that meet the congestion control added by the determining module to the data packet condition in the sub streams other than the third sub queue)in the data packet queue to the second device. stream in the first sub stream set;and determining the 10 [0049]For technical effects of the fifth aspect or any third sub stream and the plurality of fourth sub streams optional implementation of the fifth aspect,refer to related as the second sub stream set. descriptions of technical effects of the second aspect or [0043]In a sixth optional implementation of the fourth any optional implementation of the second aspect.De aspect,the determining module may be further config- tails are not described herein again. ured to mark a to-be-sent data packet before the sending 15 [0050]In the second aspect and the fifth aspect,the module sends the data packet to a routing device. first preset threshold may be determined by using the [0044]For technical effects of the fourth aspect or any optional implementation of the fourth aspect,refer to re- following formula:K,≥二C*RTT,where K,is the lated descriptions of technical effects of the first aspect or any optional implementation of the first aspect.Details 20 first preset threshold,C is a capacity of a link between are not described herein again. the first device and the second device(namely,a maxi- [0045]In the first aspect and the fourth aspect,the con- mum value of a data stream that can be transmitted on gestion control condition includes at least one of the fol- the link),and RTT is a round trip delay of a sub stream lowing three conditions:a delay of a sub stream is greater (namely,any one of a plurality of sub streams transmitted than a preset delay threshold;a packet loss event occurs 25 on the link)transmitted on the link in the sub stream;and the receiving module receives an [0051]The second preset threshold may be deter- acknowledgement packet of a data packet of the sub mined by using the following formula:K2>2*K1.where stream,and the acknowledgement packet of the data K,is the second preset threshold. packet of the sub stream includes the ECE identifier. [0052]In this application,the capacity of the link and [0046]In this application,the three congestion control 30 the round trip delay of the sub stream transmitted on the conditions can reflect congestion statuses of the plurality link can reflect a length of a data packet queue of the of sub streams transmitted on the plurality of transmis routing device.Therefore,when the first preset threshold sion paths between the first device and the second de- is calculated with reference to the capacity of the link and vice.Therefore,the routing device may determine,based the round trip delay of the sub stream transmitted on the on at least one of the three congestion control conditions, 35 link,the routing device can more accurately determine a sub stream that may be congested. whether the sub stream in which the first data packet is [0047]According to a fifth aspect,a routing device is located is congested. provided.The routing device includes a receiving mod- [0053]According to a sixth aspect,a device is provid- ule,a determining module.and a sending module.The ed.The device includes a receiving module,a determin- receiving module is configured to receive a first data 40 ing module,and a sending module.The receiving module packet from a first device.The determining module is is configured to receive a first data packet from a routing configured to:determine that an average queue length device.The determining module is configured to make of a data packet queue(the data packet queue includes an ECE mark for a first acknowledgement packet with a data packet to be from the routing device)is greater which the second device is to reply to a first device(name- than or equal to a first preset threshold and is less than 45 ly,an acknowledgement packet with which the second or equal to a second preset threshold;and make a con- device is to reply to the first data packet received by the gestion mark for the first data packet,and add the first receiving module).The sending module is configured to data packet to the data packet queue,where the second send the first acknowledgement packet marked by the preset threshold is greater than the first preset threshold. determining module to the first device. The sending module is configured to successively send 50 [0054]In a first optional implementation of the sixth data packets in the data packet queue to a second device. aspect,the receiving module is further configured to re- [0048]In a first optional implementation of the fifth as- ceive a second data packet from the routing device.The pect,the receiving module is further configured to receive determining module is further configured to make an ECE a second data packet from the first device.The deter- mark for a second acknowledgement packet with which mining module is further configured to:determine that an 55 the second device is to reply to the first device(namely. average queue length of a data packet queue(the data an acknowledgement packet with which the second de- packet queue includes a data packet to be from the rout- vice is to reply to the second data packet received by the ing device)is greater than or equal to the first preset receiving module).The sending module is further config-
EP 3 499 820 B1 7 5 10 15 20 25 30 35 40 45 50 55 aspect, a method for determining, by the determining module, the second sub stream set based on indication of the ECE identifier may include: monitoring, by the determining module monitors in the preset time period, sub streams in the first sub stream set that are other than a third sub stream in which the second data packet is located in the set; determining, as a plurality of fourth sub streams, sub streams that meet the congestion control condition in the sub streams other than the third sub stream in the first sub stream set; and determining the third sub stream and the plurality of fourth sub streams as the second sub stream set. [0043] In a sixth optional implementation of the fourth aspect, the determining module may be further configured to mark a to-be-sent data packet before the sending module sends the data packet to a routing device. [0044] For technical effects of the fourth aspect or any optional implementation of the fourth aspect, refer to related descriptions of technical effects of the first aspect or any optional implementation of the first aspect. Details are not described herein again. [0045] In the first aspect and the fourth aspect, the congestion control condition includes at least one of the following three conditions: a delay of a sub stream is greater than a preset delay threshold; a packet loss event occurs in the sub stream; and the receiving module receives an acknowledgement packet of a data packet of the sub stream, and the acknowledgement packet of the data packet of the sub stream includes the ECE identifier. [0046] In this application, the three congestion control conditions can reflect congestion statuses of the plurality of sub streams transmitted on the plurality of transmission paths between the first device and the second device. Therefore, the routing device may determine, based on at least one of the three congestion control conditions, a sub stream that may be congested. [0047] According to a fifth aspect, a routing device is provided. The routing device includes a receiving module, a determining module, and a sending module. The receiving module is configured to receive a first data packet from a first device. The determining module is configured to: determine that an average queue length of a data packet queue (the data packet queue includes a data packet to be from the routing device) is greater than or equal to a first preset threshold and is less than or equal to a second preset threshold; and make a congestion mark for the first data packet, and add the first data packet to the data packet queue, where the second preset threshold is greater than the first preset threshold. The sending module is configured to successively send data packets in the data packet queue to a second device. [0048] In a first optional implementation of the fifth aspect, the receiving module is further configured to receive a second data packet from the first device. The determining module is further configured to: determine that an average queue length of a data packet queue (the data packet queue includes a data packet to be from the routing device) is greater than or equal to the first preset threshold and is less than or equal to the second preset threshold (the second preset threshold is greater than the first preset threshold); and make a congestion mark for the second data packet received by the receiving module, and add the second data packet to the data packet queue. The sending module is configured to successively send data packets (including the second data packet added by the determining module to the data packet queue) in the data packet queue to the second device. [0049] For technical effects of the fifth aspect or any optional implementation of the fifth aspect, refer to related descriptions of technical effects of the second aspect or any optional implementation of the second aspect. Details are not described herein again. [0050] In the second aspect and the fifth aspect, the first preset threshold may be determined by using the following formula: where K1 is the first preset threshold, C is a capacity of a link between the first device and the second device (namely, a maximum value of a data stream that can be transmitted on the link), and RTT is a round trip delay of a sub stream (namely, any one of a plurality of sub streams transmitted on the link) transmitted on the link. [0051] The second preset threshold may be determined by using the following formula: K2 ≥ 2 ∗ K1, where K2 is the second preset threshold. [0052] In this application, the capacity of the link and the round trip delay of the sub stream transmitted on the link can reflect a length of a data packet queue of the routing device. Therefore, when the first preset threshold is calculated with reference to the capacity of the link and the round trip delay of the sub stream transmitted on the link, the routing device can more accurately determine whether the sub stream in which the first data packet is located is congested. [0053] According to a sixth aspect, a device is provided. The device includes a receiving module, a determining module, and a sending module. The receiving module is configured to receive a first data packet from a routing device. The determining module is configured to make an ECE mark for a first acknowledgement packet with which the second device is to reply to a first device (namely, an acknowledgement packet with which the second device is to reply to the first data packet received by the receiving module). The sending module is configured to send the first acknowledgement packet marked by the determining module to the first device. [0054] In a first optional implementation of the sixth aspect, the receiving module is further configured to receive a second data packet from the routing device. The determining module is further configured to make an ECE mark for a second acknowledgement packet with which the second device is to reply to the first device (namely, an acknowledgement packet with which the second device is to reply to the second data packet received by the receiving module). The sending module is further config- 9 10
11 EP3499820B1 12 ured to send the second acknowledgement packet one or more programs include a computer execution in- marked by the determining module to the first device. struction.When a processor of the device executes the [0055]For technical effects of the sixth aspect or any computer execution instruction,the device performs the optional implementation of the sixth aspect,refer to re- congestion control method according to the third aspect. lated descriptions of technical effects of the third aspect 5 [0064]For technical effects of the eleventh aspect and or any optional implementation of the third aspect.Details the twelfth aspect.refer to related descriptions of tech- are not described herein again. nical effects of the third aspect or any optional implemen- [0056]According to a seventh aspect,a device is pro- tation of the third aspect.Details are not described herein vided.The device includes a processor,a transceiver again. and a memory.The memory is configured to store a com- 10 [0065]According to a thirteenth aspect,a communica puter execution instruction.When the device runs,the tions system is provided.The communications system processor executes the computer execution instruction includes the device (namely,the first device in this ap- stored in the memory,so that the device performs the plication)according to the fourth aspect or any optional congestion control method according to the first aspect. implementation of the fourth aspect,the routing device [0057]According to an eighth aspect,a computer- 15 according to the fifth aspect or any optional implementa- readable storage medium is provided.The computer- tion of the fifth aspect,and the device (namely,the sec- readable storage medium stores one or more programs. ond device in this application)according to the sixth as- The one or more programs include a computer execution pect or any optional implementation of the sixth aspect. instruction.When a processor of a device executes the Data transmission is performed between the first device computer execution instruction,the device performs the 20 and the second device by using the routing device. congestion control method according to the first aspect [0066]Altematively,the communications system in- or any optional manner of the first aspect. cludes the device(namely,the first device in this appli- [0058]For technical effects of the seventh aspect and cation)according to the seventh aspect,the routing de- the eighth aspect,refer to related descriptions of techni- vice according to the ninth aspect,and the device(name- cal effects of the first aspect or any optional implemen- 25 ly,the second device in this application)according to the tation of the first aspect.Details are not described herein eleventh aspect.Data transmission is performed be- again. tween the first device and the second device by using [0059]According to a ninth aspect,a routing device is the routing device. provided.The routing device includes a processor,a [0067]For technical effects of the thirteenth aspect. transceiver,and a memory.The memory is configured 30 refer to related descriptions of technical effects of the to store a computer execution instruction.When the rout- fourth aspect or any optional implementation of the fourth ing device runs,the processor executes the computer aspect,the fifth aspect or any optional implementation execution instruction stored in the memory,so that the of the fifth aspect,the sixth aspect or any optional imple- routing device performs the congestion control method mentation of the sixth aspect,the seventh aspect,the according to the second aspect. 35 ninth aspect,and the eleventh aspect.Details are not [0060]According to a tenth aspect,a computer-read- described herein again. able storage medium is provided.The computer-reada- ble storage medium stores one or more programs.The BRIEF DESCRIPTION OF DRAWINGS one or more programs include a computer execution in- struction.When a processor of the routing device exe- 40 [0068]To describe the technical solutions in the em cutes the computer execution instruction,the device per- bodiments of the present invention or in the prior art more forms the congestion control method according to the clearly,the following briefly describes the accompanying second aspect. drawings required for describing the embodiments or the [0061]For technical effects of the ninth aspect and the prior art.Apparently,the accompanying drawings in the tenth aspect,refer to related descriptions of technical ef- 45 following description show merely some embodiments fects ofthe second aspect or any optional implementation of the present invention. of the second aspect.Details are not described herein again. FIG.1 is a schematic architectural diagram of a com- [0062]According to an eleventh aspect,a device is munications system according to an embodiment of provided.The device includes a processor,a transceiver, 50 the present invention: and a memory.The memory is configured to store a com- FIG.2 is a schematic hardware diagram of a mobile puter execution instruction.When the device runs,the phone according to an embodiment of the present processor executes the computer execution instruction invention: stored in the memory,so that the device performs the FIG.3 is a schematic hardware diagram of a router congestion control method according to the third aspect. 55 according to an embodiment of the present inven- [0063]According to a twelfth aspect,a computer-read- tion; able storage medium is provided.The computer-reada- FIG.4 is a schematic diagram 1 of a congestion con- ble storage medium stores one or more programs.The trol method according to an embodiment of the 8
EP 3 499 820 B1 8 5 10 15 20 25 30 35 40 45 50 55 ured to send the second acknowledgement packet marked by the determining module to the first device. [0055] For technical effects of the sixth aspect or any optional implementation of the sixth aspect, refer to related descriptions of technical effects of the third aspect or any optional implementation of the third aspect. Details are not described herein again. [0056] According to a seventh aspect, a device is provided. The device includes a processor, a transceiver, and a memory. The memory is configured to store a computer execution instruction. When the device runs, the processor executes the computer execution instruction stored in the memory, so that the device performs the congestion control method according to the first aspect. [0057] According to an eighth aspect, a computerreadable storage medium is provided. The computerreadable storage medium stores one or more programs. The one or more programs include a computer execution instruction. When a processor of a device executes the computer execution instruction, the device performs the congestion control method according to the first aspect or any optional manner of the first aspect. [0058] For technical effects of the seventh aspect and the eighth aspect, refer to related descriptions of technical effects of the first aspect or any optional implementation of the first aspect. Details are not described herein again. [0059] According to a ninth aspect, a routing device is provided. The routing device includes a processor, a transceiver, and a memory. The memory is configured to store a computer execution instruction. When the routing device runs, the processor executes the computer execution instruction stored in the memory, so that the routing device performs the congestion control method according to the second aspect. [0060] According to a tenth aspect, a computer-readable storage medium is provided. The computer-readable storage medium stores one or more programs. The one or more programs include a computer execution instruction. When a processor of the routing device executes the computer execution instruction, the device performs the congestion control method according to the second aspect. [0061] For technical effects of the ninth aspect and the tenth aspect, refer to related descriptions of technical effects of the second aspect or any optional implementation of the second aspect. Details are not described herein again. [0062] According to an eleventh aspect, a device is provided. The device includes a processor, a transceiver, and a memory. The memory is configured to store a computer execution instruction. When the device runs, the processor executes the computer execution instruction stored in the memory, so that the device performs the congestion control method according to the third aspect. [0063] According to a twelfth aspect, a computer-readable storage medium is provided. The computer-readable storage medium stores one or more programs. The one or more programs include a computer execution instruction. When a processor of the device executes the computer execution instruction, the device performs the congestion control method according to the third aspect. [0064] For technical effects of the eleventh aspect and the twelfth aspect, refer to related descriptions of technical effects of the third aspect or any optional implementation of the third aspect. Details are not described herein again. [0065] According to a thirteenth aspect, a communications system is provided. The communications system includes the device (namely, the first device in this application) according to the fourth aspect or any optional implementation of the fourth aspect, the routing device according to the fifth aspect or any optional implementation of the fifth aspect, and the device (namely, the second device in this application) according to the sixth aspect or any optional implementation of the sixth aspect. Data transmission is performed between the first device and the second device by using the routing device. [0066] Alternatively, the communications system includes the device (namely, the first device in this application) according to the seventh aspect, the routing device according to the ninth aspect, and the device (namely, the second device in this application) according to the eleventh aspect. Data transmission is performed between the first device and the second device by using the routing device. [0067] For technical effects of the thirteenth aspect, refer to related descriptions of technical effects of the fourth aspect or any optional implementation of the fourth aspect, the fifth aspect or any optional implementation of the fifth aspect, the sixth aspect or any optional implementation of the sixth aspect, the seventh aspect, the ninth aspect, and the eleventh aspect. Details are not described herein again. BRIEF DESCRIPTION OF DRAWINGS [0068] To describe the technical solutions in the embodiments of the present invention or in the prior art more clearly, the following briefly describes the accompanying drawings required for describing the embodiments or the prior art. Apparently, the accompanying drawings in the following description show merely some embodiments of the present invention. FIG. 1 is a schematic architectural diagram of a communications system according to an embodiment of the present invention; FIG. 2 is a schematic hardware diagram of a mobile phone according to an embodiment of the present invention; FIG. 3 is a schematic hardware diagram of a router according to an embodiment of the present invention; FIG. 4 is a schematic diagram 1 of a congestion control method according to an embodiment of the 11 12
13 EP3499820B1 14 present invention: bodiments of the present invention.Apparently,the de- FIG.5 is a schematic diagram of a preset time period scribed embodiments are merely some but not all of the according to an embodiment of the present inven- embodiments of the present invention. tion; [0074]The following first explains some concepts in a FIG.6A and FIG.6B are a schematic diagram 2 of 5 congestion control method,an apparatus,and a system a congestion control method according to an embod- that are provided in the embodiments of the present in- iment of the present invention; vention. FIG.7 is a schematic structural diagram 1 of a first [0075]The MPTCP is a transport layer protocol that device according to an embodiment of the present can implement multipath parallel transmission.Multipath invention; 10 parallel data transmission can be implemented between FIG.8 is a schematic structural diagram 2 of a first a transmit end and a receive end by using the MPTCP device according to an embodiment of the present Specifically,there are a plurality of transmission paths invention; between the transmit end and the receive end.Simulta FIG.9 is a schematic structural diagram 1 of a routing neous data transmission can be performed between the device according to an embodiment of the present 15 transmit end and the receive end by using the plurality invention; of transmission paths,in other words,a plurality of data FIG.10 is a schematic structural diagram 2 of a rout- streams (a data stream is hereinafter referred to as a sub ing device according to an embodiment of the stream)can be simultaneously transmitted between the present invention; transmit end and the receive end on the plurality of trans- FIG.11 is a schematic structural diagram 1 of a sec- 20 mission paths.In this way,a network throughput can be ond device according to an embodiment of the improved when data transmission is performed between present invention;and the transmit end and the receive end by using the FIG.12 is a schematic structural diagram 2 of a sec- MPTCP. ond device according to an embodiment of the [0076]An explicit congestion notification(Explicit Con- present invention. 25 gestion Notification,ECN)is a mechanism in which a data packet transmitted between a transmit end and a DESCRIPTION OF EMBODIMENTS receive end can be marked,to indicate a congestion sta- tus of the data packet transmitted between the transmit [0069]The term"and/or"in this specification indicates end and the receive end.Specifically,the transmit end only an association relationship for describing associated 30 sets an ECN identifier of the data packet to a value used objects and indicates that three relationships may exist. to indicate that the data packet supports an ECN function For example,A and/or B may represent the following and then sends the data packet to a routing device.After three cases:Only A exists,both A and B exist,and only receiving the data packet,the routing device determines B exists. whether a sub stream in which the data packet is located [0070]In the specification and claims of the present 35 is congested.If the sub stream in which the data packet invention,the terms "first","second",and the like are in- is located is congested,the routing device sets the ECN tended to distinguish between different objects,instead identifier of the data packet to a value used to indicate of describing a particular order of the objects.For exam- that the sub stream in which the data packet is located ple,a first device,a second device,and the like are in- is congested. tended to distinguish between different devices,instead 40 [0077]Amethod for determining,by the routing device. of describing a particular order of the devices. whether the sub stream in which the data packet is lo- [0071]The term such as "example"or"for example"in cated is congested is described in detail in the following the embodiments of the present invention means "giving embodiments. an example,an illustration,or a description".Any em- [0078]When data transmission is performed between bodiment or design solution described as "example"or 45 the transmit end and the receive end by using the "for example"in the embodiments of the present inven- MPTCP,congestion control (for example,adjusting tion should not be explained as being more preferred or bandwidth occupied by each sub stream)usually needs having more advantages than another embodiment or to be performed on a plurality of data streams (a data design solution.Exactly,use of the term such as "exam- stream transmitted on each transmission path is referred ple"or"for example"is intended to present a related con- 50 to as a sub data stream.hereinafter referred to as a sub cept in a specific manner stream)transmitted on a plurality of transmission paths [0072]In the descriptions in the present invention,un- (a connection over which data transmission is performed less otherwise provided,"a plurality of"means "two or by using the plurality of transmission paths may be re- more".For example,a plurality of sub streams mean two ferred to as an MPTCP connection)between the transmit or more sub streams. 55 end and the receive end.To ensure fairness between an [0073]The following describes in detail the technical MPTCP connection and a TPC connection (when data solutions in the embodiments of the present invention transmission is performed between the transmit end and with reference to the accompanying drawings in the em- the receive end by using the TCP,a connection over 9
EP 3 499 820 B1 9 5 10 15 20 25 30 35 40 45 50 55 present invention; FIG. 5 is a schematic diagram of a preset time period according to an embodiment of the present invention; FIG. 6A and FIG. 6B are a schematic diagram 2 of a congestion control method according to an embodiment of the present invention; FIG. 7 is a schematic structural diagram 1 of a first device according to an embodiment of the present invention; FIG. 8 is a schematic structural diagram 2 of a first device according to an embodiment of the present invention; FIG. 9 is a schematic structural diagram 1 of a routing device according to an embodiment of the present invention; FIG. 10 is a schematic structural diagram 2 of a routing device according to an embodiment of the present invention; FIG. 11 is a schematic structural diagram 1 of a second device according to an embodiment of the present invention; and FIG. 12 is a schematic structural diagram 2 of a second device according to an embodiment of the present invention. DESCRIPTION OF EMBODIMENTS [0069] The term "and/or" in this specification indicates only an association relationship for describing associated objects and indicates that three relationships may exist. For example, A and/or B may represent the following three cases: Only A exists, both A and B exist, and only B exists. [0070] In the specification and claims of the present invention, the terms "first", "second", and the like are intended to distinguish between different objects, instead of describing a particular order of the objects. For example, a first device, a second device, and the like are intended to distinguish between different devices, instead of describing a particular order of the devices. [0071] The term such as "example" or "for example" in the embodiments of the present invention means "giving an example, an illustration, or a description". Any embodiment or design solution described as "example" or "for example" in the embodiments of the present invention should not be explained as being more preferred or having more advantages than another embodiment or design solution. Exactly, use of the term such as "example" or "for example" is intended to present a related concept in a specific manner. [0072] In the descriptions in the present invention, unless otherwise provided, "a plurality of" means "two or more". For example, a plurality of sub streams mean two or more sub streams. [0073] The following describes in detail the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are merely some but not all of the embodiments of the present invention. [0074] The following first explains some concepts in a congestion control method, an apparatus, and a system that are provided in the embodiments of the present invention. [0075] The MPTCP is a transport layer protocol that can implement multipath parallel transmission. Multipath parallel data transmission can be implemented between a transmit end and a receive end by using the MPTCP. Specifically, there are a plurality of transmission paths between the transmit end and the receive end. Simultaneous data transmission can be performed between the transmit end and the receive end by using the plurality of transmission paths, in other words, a plurality of data streams (a data stream is hereinafter referred to as a sub stream) can be simultaneously transmitted between the transmit end and the receive end on the plurality of transmission paths. In this way, a network throughput can be improved when data transmission is performed between the transmit end and the receive end by using the MPTCP. [0076] An explicit congestion notification (Explicit Congestion Notification, ECN) is a mechanism in which a data packet transmitted between a transmit end and a receive end can be marked, to indicate a congestion status of the data packet transmitted between the transmit end and the receive end. Specifically, the transmit end sets an ECN identifier of the data packet to a value used to indicate that the data packet supports an ECN function, and then sends the data packet to a routing device. After receiving the data packet, the routing device determines whether a sub stream in which the data packet is located is congested. If the sub stream in which the data packet is located is congested, the routing device sets the ECN identifier of the data packet to a value used to indicate that the sub stream in which the data packet is located is congested. [0077] A method for determining, by the routing device, whether the sub stream in which the data packet is located is congested is described in detail in the following embodiments. [0078] When data transmission is performed between the transmit end and the receive end by using the MPTCP, congestion control (for example, adjusting bandwidth occupied by each sub stream) usually needs to be performed on a plurality of data streams (a data stream transmitted on each transmission path is referred to as a sub data stream, hereinafter referred to as a sub stream) transmitted on a plurality of transmission paths (a connection over which data transmission is performed by using the plurality of transmission paths may be referred to as an MPTCP connection) between the transmit end and the receive end. To ensure fairness between an MPTCP connection and a TPC connection (when data transmission is performed between the transmit end and the receive end by using the TCP, a connection over 13 14
15 EP3499820B1 16 which data transmission is performed between the trans- that a sub stream that meets the congestion control con- mit end and the receive end by using a single transmis. dition is bandwidth-shared).To be specific,in the em sion path is referred to as a TCP connection)in a network, bodiments of the present invention,a plurality of band- a throughput of each MPTCP connection usually needs width-shared sub streams can be grouped into one sub to be equal to a throughput ofeach TCP connection.How- 5 stream set to a specific degree,and congestion control ever,because a congested sub stream may share band- can be performed on the sub streams in the sub stream width with another sub stream in the plurality of sub set.In this way.a congestion control effect can be sig- streams,if congestion control is performed on the plural- nificantly improved,to further improve MPTCP transmis- ity of sub streams according to the foregoing method,a sion performance. congestion control effect may not be significant. 10 [0080]In the embodiments of the present invention,to [0079]To resolve the foregoing problem,the embodi- accurately describe the transmit end and the receive end ments of the present invention provide a congestion con- between which data transmission is performed by using trol method,an apparatus,and a system.When data the MPTCP,in all the following embodiments,the trans. transmission is performed between a transmit end mit end is referred to as the first device,and the receive (namely,the following first device)and a receive end 15 end is referred to as the second device. (namely,the following second device)by using the [0081]FIG.1 is a schematic architectural diagram of MPTCP,congestion control is performed on a plurality a communications system according to an embodiment of sub streams transmitted on a plurality of transmission of the present invention.In the communications system. paths between the transmitend and the receive end.Spe- data transmission is performed between a first device cifically,the transmit end sends a first data packet(one 20 (namely,a transmit end)and a second device (namely of a plurality of data packets from the transmit end is a receive end)by using the MPTCP.As shown in FIG referred to as the first data packet)to a routing device. 1,the communications system includes a first device 10, After receiving the first data packet,the routing device a second device 11,and a routing device 12.The routing determines that an average queue length ofa data packet device is connected to the first device and the second queue is greater than or equal to a first preset threshold 25 device.The first device sends,to the routing device.data and is less than or equal to a second preset threshold. that is to be from the first device;after receiving the data Then,the routing device makes a congestion mark for from the first device,the routing device sends the re- the first data packet,and sends the first data packet to ceived data to the second device;and the second device the receive end.After receiving the first data packet with receives the data from the routing device.In other words the congestion mark,the receive end sets an ECE iden- data transmission between the first device and the sec- tifier in a first acknowledgement packet(namely,an ac- ond device is completed. knowledgement packet of the first data packet)with [0082]It should be noted that,the first device and the which the receive end is to reply to the transmit end,and second device may be terminal devices such as mobile then sends the first acknowledgement packet to the phones,tablet computers,notebook computers,ultra- transmit end.After the transmit end receives the first ac- 35 mobile personal computers(Ultra-mobile Personal Com knowledgement packet including the ECE identifier,the puter,UMPC),netbooks,or personal digital assistants transmit end starts to monitor a plurality of sub streams (Personal Digital Assistant,PDA).The routing device that are other than a sub stream(hereinafter referred to may be a router or the like. as a first sub stream)in which the first data packet is [0083]In this embodiment of the present invention,an located and that are in the plurality of sub streams trans- 40 example in which the first device is a mobile phone is mitted on the plurality of transmission paths,groups,into used to illustrate a hardware structure of the first device one set,the first sub stream and sub streams(hereinafter FIG.2 is a schematic hardware diagram of a mobile referred to as a plurality of second sub streams)that meet phone according to an embodiment of the present inven- a congestion control condition in the plurality of other sub tion.As shown in FIG.2,the mobile phone provided in streams,and then performs congestion control on sub 45 this embodiment of the present invention includes com- streams in the set.In comparison with the prior art,in the ponents such as a radio frequency(Radio Frequency, embodiments of the present invention,sub streams that RF)circuit 110,a memory 120,an inputunit 130,a display meet the congestion control condition in the plurality of unit 140,an audio circuit 150,a processor 160,and a sub streams transmitted on the plurality of transmission power supply 170.The components of the mobile phone paths between the transmit end and the receive end may 50 are illustrated below. be grouped into one sub stream set.These sub streams [0084]The RF circuit 110 is configured to receive and that meet the congestion control condition may be band- send signals in an information sending and receiving width-shared sub streams to a specific degree (in com- process or a call process.The RF circuit 110 may further parison with a sub stream that is not bandwidth-shared communicate with a network and another device through because bandwidth is limited,when one of bandwidth- 55 wireless communication.The RF circuit usually includes shared sub streams is congested,the other bandwidth- but is not limited to an antenna,at least one amplifier,a shared sub streams are also very likely to be congested. transceiver,a coupler,an LNA(Low Noise Amplifier,low Therefore,it may be considered,to a specific degree, noise amplifier),a duplexer,and the like. 10
EP 3 499 820 B1 10 5 10 15 20 25 30 35 40 45 50 55 which data transmission is performed between the transmit end and the receive end by using a single transmission path is referred to as a TCP connection) in a network, a throughput of each MPTCP connection usually needs to be equal to a throughput of each TCP connection. However, because a congested sub stream may share bandwidth with another sub stream in the plurality of sub streams, if congestion control is performed on the plurality of sub streams according to the foregoing method, a congestion control effect may not be significant. [0079] To resolve the foregoing problem, the embodiments of the present invention provide a congestion control method, an apparatus, and a system. When data transmission is performed between a transmit end (namely, the following first device) and a receive end (namely, the following second device) by using the MPTCP, congestion control is performed on a plurality of sub streams transmitted on a plurality of transmission paths between the transmit end and the receive end. Specifically, the transmit end sends a first data packet (one of a plurality of data packets from the transmit end is referred to as the first data packet) to a routing device. After receiving the first data packet, the routing device determines that an average queue length of a data packet queue is greater than or equal to a first preset threshold and is less than or equal to a second preset threshold. Then, the routing device makes a congestion mark for the first data packet, and sends the first data packet to the receive end. After receiving the first data packet with the congestion mark, the receive end sets an ECE identifier in a first acknowledgement packet (namely, an acknowledgement packet of the first data packet) with which the receive end is to reply to the transmit end, and then sends the first acknowledgement packet to the transmit end. After the transmit end receives the first acknowledgement packet including the ECE identifier, the transmit end starts to monitor a plurality of sub streams that are other than a sub stream (hereinafter referred to as a first sub stream) in which the first data packet is located and that are in the plurality of sub streams transmitted on the plurality of transmission paths, groups, into one set, the first sub stream and sub streams (hereinafter referred to as a plurality of second sub streams) that meet a congestion control condition in the plurality of other sub streams, and then performs congestion control on sub streams in the set. In comparison with the prior art, in the embodiments of the present invention, sub streams that meet the congestion control condition in the plurality of sub streams transmitted on the plurality of transmission paths between the transmit end and the receive end may be grouped into one sub stream set. These sub streams that meet the congestion control condition may be bandwidth-shared sub streams to a specific degree (in comparison with a sub stream that is not bandwidth-shared, because bandwidth is limited, when one of bandwidthshared sub streams is congested, the other bandwidthshared sub streams are also very likely to be congested. Therefore, it may be considered, to a specific degree, that a sub stream that meets the congestion control condition is bandwidth-shared). To be specific, in the embodiments of the present invention, a plurality of bandwidth-shared sub streams can be grouped into one sub stream set to a specific degree, and congestion control can be performed on the sub streams in the sub stream set. In this way, a congestion control effect can be significantly improved, to further improve MPTCP transmission performance. [0080] In the embodiments of the present invention, to accurately describe the transmit end and the receive end between which data transmission is performed by using the MPTCP, in all the following embodiments, the transmit end is referred to as the first device, and the receive end is referred to as the second device. [0081] FIG. 1 is a schematic architectural diagram of a communications system according to an embodiment of the present invention. In the communications system, data transmission is performed between a first device (namely, a transmit end) and a second device (namely, a receive end) by using the MPTCP. As shown in FIG. 1, the communications system includes a first device 10, a second device 11, and a routing device 12. The routing device is connected to the first device and the second device. The first device sends, to the routing device, data that is to be from the first device; after receiving the data from the first device, the routing device sends the received data to the second device; and the second device receives the data from the routing device. In other words, data transmission between the first device and the second device is completed. [0082] It should be noted that, the first device and the second device may be terminal devices such as mobile phones, tablet computers, notebook computers, ultramobile personal computers (Ultra-mobile Personal Computer, UMPC), netbooks, or personal digital assistants (Personal Digital Assistant, PDA). The routing device may be a router or the like. [0083] In this embodiment of the present invention, an example in which the first device is a mobile phone is used to illustrate a hardware structure of the first device. FIG. 2 is a schematic hardware diagram of a mobile phone according to an embodiment of the present invention. As shown in FIG. 2, the mobile phone provided in this embodiment of the present invention includes components such as a radio frequency (Radio Frequency, RF) circuit 110, a memory 120, an input unit 130, a display unit 140, an audio circuit 150, a processor 160, and a power supply 170. The components of the mobile phone are illustrated below. [0084] The RF circuit 110 is configured to receive and send signals in an information sending and receiving process or a call process. The RF circuit 110 may further communicate with a network and another device through wireless communication. The RF circuit usually includes but is not limited to an antenna, at least one amplifier, a transceiver, a coupler, an LNA (Low Noise Amplifier, low noise amplifier), a duplexer, and the like. 15 16