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