WO2018053688A1 - 一种拥塞控制的方法、装置及系统 - Google Patents
一种拥塞控制的方法、装置及系统 Download PDFInfo
- Publication number
- WO2018053688A1 WO2018053688A1 PCT/CN2016/099466 CN2016099466W WO2018053688A1 WO 2018053688 A1 WO2018053688 A1 WO 2018053688A1 CN 2016099466 W CN2016099466 W CN 2016099466W WO 2018053688 A1 WO2018053688 A1 WO 2018053688A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- substream
- data packet
- sub
- substreams
- congestion control
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/41—Flow control; Congestion control by acting on aggregated flows or links
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Definitions
- the present invention relates to the field of communications technologies, and in particular, to a method, device, and system for congestion control.
- the Multipath Transmission Control Protocol can realize multi-channel parallel transmission of data.
- the connection may be referred to as a plurality of data streams transmitted on an MPTCP connection (the data stream transmitted on each transmission path is referred to as a sub-data stream, hereinafter referred to as a sub-stream) for congestion control (eg, adjusting the occupancy of each sub-flow) bandwidth).
- TCP Transmission Control Protocol
- each sub-stream is transmitted on each MPTCP connection, only some of the sub-streams may share bandwidth, and if congestion control is simultaneously performed on the plurality of sub-flows according to the above method, only each MPTCP can be guaranteed.
- the throughput of the connection is equal to the throughput of each TCP connection, so the effect of increasing the throughput of the MPTCP connection may not be significant.
- the present application provides a method, device and system for congestion control, which can significantly improve the effect of congestion control.
- a method of congestion control is provided, the method being applied to a first device
- the method may include: the first device receiving, by the second device, a first acknowledgement packet that is sent by the second device and includes an ECE identifier for indicating that the first device performs congestion control, the first acknowledgement The packet is an acknowledgement packet of the first data packet of the first one of the plurality of data streams (hereinafter referred to as a plurality of substreams) transmitted on the plurality of transmission paths between the first device and the second device; and the first device Determining, by the indication of the ECE identifier, the first substream including the first substream and the plurality of substreams of the plurality of substreams except the first substream that satisfy the congestion control condition a set; and congestion control of the substreams in the first set of substreams.
- the first device may perform congestion control on the substreams in the first substream set by using a method of aggregate congestion control.
- the method for congestion control when the first device and the second device use MPTCP for data transmission, the first device may use multiple sub-streams transmitted on multiple transmission paths between the first device and the second device.
- the sub-flows satisfying the congestion control condition are classified into one sub-flow set, and to some extent, the sub-flows satisfying the congestion control condition may be sub-streams of the shared bandwidth, that is, the present application can share the plurality of sub-flows of the bandwidth to some extent. It is classified into a sub-flow set and then performs congestion control on the sub-flows in the set, so the effect of congestion control can be significantly improved, and the transmission performance of MPTCP can be further improved.
- the method for congestion control may further include: receiving, by the first device, a second acknowledgement packet of a data packet (hereinafter simply referred to as a second data packet) of one of the first sub-flow sets including the ECE identifier sent by the second device; Determining, by the indication of the ECE identifier, a second sub-flow set including the one sub-flow, the second sub-flow set being a subset of the first sub-flow set; and sub-flows in the second sub-flow set Perform congestion control.
- a second acknowledgement packet of a data packet hereinafter simply referred to as a second data packet
- the first device may perform congestion control on the sub-flows in the second sub-flow set by using a method of aggregate congestion control.
- the first device may further determine the second sub-flow set from the first sub-flow set, and perform congestion control on the sub-flow in the second sub-flow set, , capable of causing the first device to determine the set of substreams to be subjected to congestion control
- the rate of accuracy is relatively high, which can significantly improve the effect of congestion control.
- the method for congestion control provided by the present application may further include: the foregoing first device pair includes the substreams of the plurality of substreams except the first substream set.
- the other substreams (hereinafter simply referred to as substreams of the non-first substream set) perform congestion control.
- the first device may specifically perform congestion control on the sub-flows in the non-first sub-flow set by using a method of individual congestion control.
- the first device may perform congestion control on the sub-flows in the first sub-flow set, and may also perform congestion control on the sub-flows in the non-first sub-flow set, such that the first device may
- the plurality of substreams transmitted on the plurality of transmission paths between the second devices are all subjected to congestion control, so that the effect of congestion control can be more significantly improved.
- the method for congestion control provided by the present application may further include: the first device, in addition to the substreams in the second substream set, of the plurality of substreams
- the other substreams hereinafter simply referred to as substreams of the second substream set
- the first device may specifically perform congestion control on the sub-flows in the non-second sub-flow set by using a method of individual congestion control.
- the first device may perform congestion control on the sub-flows in the second sub-flow set, and may also perform congestion control on the sub-flows in the non-second sub-flow set, so that the first device may
- the plurality of substreams transmitted on the plurality of transmission paths between the second devices are all subjected to congestion control, so that the effect of congestion control can be more significantly improved.
- the method for determining, by the first device, the first sub-flow set, by the first device may include: the first device, in the indication of the ECE identifier, And monitoring, in the time period, the other substreams of the plurality of substreams except the first substream; and satisfying the congestion control condition in the other substreams other than the first substream
- the substream is determined to be a plurality of second substreams; and the first substream and the plurality of second substreams are determined as the first substream set.
- the first device can learn between the first device and the second device by monitoring other sub-flows other than the first sub-flow among the plurality of sub-streams in a preset time period. Congestion of multiple sub-streams on multiple transmission paths, and sub-flows satisfying congestion control conditions are classified into the first sub-flow set, because to some extent, these sub-flows satisfying congestion control conditions may be sub-streams of shared bandwidth That is, the present application can classify a plurality of sub-streams of the shared bandwidth into one sub-flow set to some extent, and perform congestion control on the sub-flows in the sub-flow set, so that the effect of congestion control can be significantly improved.
- the method for determining, by the first device, the second sub-flow set, by the first device may include: the first device, in the indication of the ECE indication, in the pre- And monitoring, in the time period, other sub-flows other than the third sub-flow in the first sub-flow set except the second data packet in the set; and other than the third sub-flow in the first sub-flow set
- the substream satisfying the congestion control condition in the substream is determined as a plurality of fourth substreams; and the third substream and the plurality of fourth substreams are determined as the second substream set.
- the first device may monitor other sub-flows other than the third sub-flow in the first sub-flow set, and sub-flows and thirds in the sub-flows that satisfy the congestion control condition by using the preset sub-flows
- the substream is determined to be a second substream set.
- the method for congestion control provided by the present application may further include: the first device marking the data packet to be sent.
- the data packet to be sent may be marked first, that is, the ECN identifier of the data packet is set to support the ECN identifier, and the ECN identifier is used to indicate to the routing device that the data packet supports the ECN function. Then, the routing device sends the data packet with the ECN identifier to the second device, and after receiving the data packet, the second device sends an acknowledgement packet (eg, the first confirmation packet or the second acknowledgement) with the ECE identifier set to the first device.
- the ECN identifier of the data packet is set to support the ECN identifier
- the ECN identifier is used to indicate to the routing device that the data packet supports the ECN function.
- the routing device sends the data packet with the ECN identifier to the second device, and after receiving the data packet, the second device sends an acknowledgement packet (eg, the first confirmation packet or the second acknowledgement) with the ECE identifier set to the first device.
- an acknowledgement packet eg, the first confirmation packet or
- the first device may learn that the sub-flow in which the data packet is located may be congested, and determine that congestion may occur from the multiple sub-flows according to the congestion control condition under the indication of the ECE identifier in the acknowledgement packet.
- the substreams (for example, the substreams in the first substream set or the substreams in the second substream set), thereby implementing the first device to perform congestion control on the substreams that may be congested.
- a second aspect provides a method for congestion control, where the method is applied to a process in which a first device and a second device use MPTCP for data transmission, and the method may include: routing device Receiving, by the first device, the first data packet sent by the first device; and then the routing device determines that the average queue length of the data packet queue (the data packet queue includes the data packet to be sent by 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 performing congestion labeling on the first data packet, adding the first data packet to the data packet queue; and sequentially transmitting the data packet in the data packet queue to the second device.
- the routing device may perform congestion marking on the data packet that may be congested after receiving the first data packet sent by the first device. And sending the first data packet to the second device, after receiving the first data packet with the congestion flag, the second device performs ECE marking on the first acknowledgement packet replied by the second device to the first device, so After receiving the first acknowledgement packet including the ECE identifier, the first device may classify the substreams satisfying the congestion control condition among the plurality of substreams transmitted on the plurality of transmission paths between the first device and the second device into one a sub-flow set, and to some extent, the sub-flows satisfying the congestion control condition may be sub-streams of the shared bandwidth, that is, the present application can, to a certain extent, classify the plurality of sub-flows of the shared bandwidth into one sub-flow set, and The sub-flows in the sub-flow set perform congestion control, which can significantly improve the effect of congestion control, and
- the method for congestion control provided by the application may further include: the routing device receiving the second data packet sent by the first device; and then the routing device determining the data packet queue (
- the data packet queue includes a data packet to be sent by the routing device, and the average queue length is greater than or equal to a first preset threshold, and is less than or equal to a second preset threshold; and the second packet is congested, and the packet is encapsulated.
- the second data packet is added to the foregoing data packet queue; and the data packet in the data packet queue is sequentially sent to the second device.
- the first device sends a plurality of data packets to the routing device, where the second data packet is a data packet of one of the first sub-flow sets, because the device receives the second data sent by the first device.
- the packet may be congested and the second packet may be sent to the second device.
- the second device After receiving the second packet with the congestion flag, the second device sends the second packet to the second device.
- the second acknowledgement packet replied by the device performs the ECE labeling. Therefore, after the first device receives the second acknowledgement packet including the ECE identifier, the first device may classify the substream that satisfies the congestion control condition in the first substream set into the second substream.
- Stream collection that is, the first device can be from the first Further determining a second set of substreams in the set of substreams (the second set of substreams is a subset of the first set of substreams), such that the accuracy of the set of substreams to be subjected to congestion control determined by the first device can be compared High, which can significantly improve the effect of congestion control.
- a third aspect provides a method for congestion control, where the method is applied to a process in which a first device and a second device use MPTCP for data transmission, where the method may include: receiving, by the second device, the first data packet sent by the routing device; And performing, by the second device, the first confirmation packet to the first device to perform ECE marking; and transmitting the first confirmation packet to the first device.
- the method for congestion control when the first device and the second device use MPTCP for data transmission, after the second device receives the first data packet sent by the first device through the routing device, the second device may be in the first An ECE identifier for notifying that a sub-flow of the first data packet of the first device may be congested is set in a first acknowledgement packet replied by the device, where the ECE identifier is set by the second device for the ECN identifier in the data packet received by the second device.
- the receipt identifier so that after the first device receives the first confirmation packet including the foregoing ECE identifier, the first device may satisfy congestion in the plurality of substreams transmitted on the multiple transmission paths between the first device and the second device.
- the sub-flows of the control condition are classified into one sub-flow set, and to some extent, the sub-flows satisfying the congestion control condition may be sub-streams of the shared bandwidth, that is, the present application can attribute the plurality of sub-flows of the shared bandwidth to some extent.
- a set of sub-flows, and congestion control of the sub-flows in the set of sub-flows so that the effect of congestion control can be significantly improved and the first device can Congestion can occur congestion control sub-stream.
- the method for congestion control provided by the application may further include: receiving, by the second device, the second data packet sent by the routing device; and replying to the second device The second confirmation packet performs an ECE flag; and the second confirmation packet is sent to the first device.
- the second device may set, in the second confirmation packet replied to the first device, the second data for the first device.
- the ECE identifier of the congestion may occur in the sub-flow where the packet is located, and the ECE identifier is a return identifier set by the second device for the ECN identifier in the data packet received by the second device, so that the first device may receive the second acknowledgement including the foregoing ECE identifier.
- the first device may classify the sub-flow that meets the congestion control condition in the first sub-flow set into the second sub-flow set, that is, the first set
- the second sub-flow set (the second sub-flow set is a subset of the first sub-flow set) may be further determined from the first sub-flow set, such that the sub-flow set to be subjected to congestion control determined by the first device is enabled
- the accuracy rate is relatively high, which can significantly improve the effect of congestion control, and further improve the transmission performance of MPTCP.
- an apparatus comprising a receiving module, a determining module and a control module.
- the receiving module is configured to receive, by the second device, a first acknowledgement packet that includes an ECE identifier for indicating that the device performs congestion control, where the first acknowledgement packet is multiple transmission paths between the first device and the second device.
- the receiving module may be further configured to perform, after the determining module determines the first sub-flow set, the sub-flow in the first sub-flow set in the control module.
- the determining module Before the congestion control, receiving, by the second device, a second acknowledgement packet of a data packet (hereinafter referred to as a second data packet) of one of the first sub-flow sets including the ECE identifier; the determining module may also be used to Determining, by the indication of the ECE identifier, a second substream set including the one substream, the second substream set being a subset of the first substream set; the control module may be further configured to use the second substream The subflows in the set perform congestion control.
- control module may be further configured to: include, in addition to the substreams in the first substream set, the substreams of the plurality of substreams (hereinafter referred to as The substreams that are not the first substream set) perform congestion control.
- control module may be further configured to use, in addition to the substreams in the second substream set, the substreams of the plurality of substreams (hereinafter referred to as non- The substream of the second substream set) performs congestion control.
- the determining, by the determining module, the determining, by the ECE identifier, the method of determining the first sub-flow set may include: determining, by the module, the multiple sub-flows in the preset time period a substream other than the first substream described above; and determining, in the substreams other than the first substream, the substream satisfying the congestion control condition Determining a plurality of second substreams; and determining the first substream and the plurality of second substreams as the first substream set.
- the determining, by the determining module, the determining, by the ECE identifier, the method of determining the second sub-flow set may include: determining, by the module, the first sub-flow set in the preset time period a substream other than the third substream in which the second packet in the set is located; and a substream satisfying the congestion control condition among the other substreams other than the third substream in the first substream set Determining to be a plurality of fourth substreams; and determining the third substream and the plurality of fourth substreams as the second substream set.
- the determining module is further configured to mark the data packet to be sent before the sending module sends the data packet to the routing device.
- the congestion control condition includes at least one of the following three conditions: a delay of the substream is greater than a preset delay threshold; a packet loss event occurs in the substream; and the receiving The module receives the acknowledgement packet of the packet of the substream, and the ECE identifier is included in the acknowledgement packet of the packet of the substream.
- the routing device may be configured according to the foregoing three congestion control conditions. At least one of the substreams to determine that congestion may occur.
- a routing device in a fifth aspect, includes: a receiving module, a determining module, and a sending module.
- the receiving module is configured to receive the first data packet sent by the first device
- the determining module is configured to determine that the average queue length of the data packet queue (the data packet queue includes the data packet to be sent by the routing device) is greater than or equal to the first pre- Setting a threshold, and being less than or equal to the second preset threshold; and performing congestion marking on the first data packet, and adding 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 sequentially send the data packet in the data packet queue to the second device.
- the receiving module is further configured to receive a second data packet sent by the first device
- the determining module is further configured to determine a data packet queue (the data packet The average queue length of the queue including the data packet to be sent by the routing device is greater than or equal to a first preset threshold, and is less than or equal to a second preset threshold (the second preset threshold is greater than the first preset threshold); And performing the congestion marking on the second data packet received by the receiving module, and adding the second data packet to the data packet queue; the sending module is configured to send the data packet in the data packet queue to the second device in sequence (including the determining module) Join the second packet in the packet queue).
- the first preset threshold may be determined by using the following formula: Wherein, K 1 is a first preset threshold, and C is a capacity of a link between the first device and the second device (that is, a maximum value of a data stream that can be transmitted on the link), and RTT is the chain. The round-trip delay of a substream transmitted on the road (that is, any one of the multiple substreams transmitted on the link).
- the second preset threshold may be determined by using the following formula: K 2 ⁇ 2 * K 1 , wherein K 2 is a second preset threshold.
- the capacity of the link and the round-trip delay of one sub-stream transmitted on the link can reflect the length of the data packet queue of the routing device, the capacity of the reference link when calculating the first preset threshold is The round-trip delay of one substream transmitted on the link enables the routing device to more accurately determine whether the substream in which the first packet is located is congested.
- an apparatus comprising a receiving module, a determining module and a transmitting module.
- the receiving module is configured to receive the first data packet sent by the routing device, and the determining, by the determining module, the first acknowledgement packet that is sent by the second device to the first device, that is, the first data packet received by the second device to the receiving module.
- the confirmation packet is configured to perform an ECE tag; the sending module is configured to send the first confirmation packet after determining the module tag to the first device.
- the receiving module is further configured to receive a second data packet that is sent by the routing device, and the determining module is further configured to: Performing an ECE flag (ie, the second data received by the second device on the receiving module) The confirmation packet of the packet; the sending module is further configured to send the second confirmation packet after determining the module identifier to the first device.
- an apparatus comprising: a processor, a transceiver, and a memory.
- the memory is configured to store a computer execution instruction, and when the device is running, the processor executes the computer-stored instruction stored by the memory to cause the device to perform the congestion control method of the first aspect.
- a computer readable storage medium storing one or more programs, the one or more programs including computer execution instructions, when a processor of the device executes the computer to execute an instruction,
- the apparatus performs the method of congestion control described in the first aspect above or any one of its alternatives.
- a routing device including a processor, a transceiver, and a memory.
- the memory is configured to store a computer execution instruction, and when the routing device is running, the processor executes the computer-stored instruction stored by the memory to cause the routing device to perform the congestion control method of the second aspect.
- a computer readable storage medium storing one or more programs, the one or more programs including computer execution instructions, when a processor of the routing device executes the computer execution instructions
- the apparatus performs the method of congestion control described in the second aspect above.
- an apparatus comprising: a processor, a transceiver, and a memory.
- the memory is used to store a computer execution instruction, and when the device is running, the processor executes the computer-stored instruction stored in the memory to cause the device to perform the congestion control method of the third aspect.
- a computer readable storage medium storing one or more programs, the one or more programs including computer execution instructions, when a processor of the device executes the computer to execute an instruction
- the apparatus performs the method of congestion control described in the third aspect above.
- a communication system comprising the device in the fourth aspect or an optional implementation thereof (ie, the first device in the application), the fifth aspect, or any one thereof
- the communication system includes the device in the seventh aspect (ie, the first device in the present application), the routing device in the foregoing ninth aspect, and the device in the eleventh aspect (ie, the second device in the application)
- the first device and the second device perform data transmission via the routing device.
- FIG. 1 is a schematic structural diagram of a communication system according to an embodiment of the present invention.
- FIG. 2 is a schematic diagram of hardware of a mobile phone according to an embodiment of the present invention.
- FIG. 3 is a schematic diagram of hardware of a router according to an embodiment of the present disclosure.
- FIG. 4 is a first schematic diagram of a method for congestion control according to an embodiment of the present invention.
- FIG. 5 is a schematic diagram of a preset time period according to an embodiment of the present disclosure.
- FIG. 6 is a second schematic diagram of a method for congestion control 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 disclosure.
- FIG. 8 is a schematic structural diagram 2 of a first device according to an embodiment of the present disclosure.
- FIG. 9 is a schematic structural diagram 1 of a routing device according to an embodiment of the present disclosure.
- FIG. 10 is a schematic structural diagram 2 of a routing device according to an embodiment of the present disclosure.
- FIG. 11 is a schematic structural diagram 1 of a second device according to an embodiment of the present disclosure.
- FIG. 12 is a schematic structural diagram 2 of a second device according to an embodiment of the present invention.
- first and second in the specification and claims of the present invention are used to distinguish different objects, and are not intended to describe a particular order of the objects.
- first device and the second device, etc. are used to distinguish different devices, rather than to describe a particular order of devices.
- the words “exemplary” or “such as” are used to mean an example, illustration, or illustration. Any embodiment or design described as “exemplary” or “for example” in the embodiments of the invention should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of the words “exemplary” or “such as” is intended to present the concepts in a particular manner.
- a plurality means two or more unless otherwise indicated.
- multiple substreams refer to two or more substreams.
- MPTCP It is a transport layer protocol that can transmit in multiple paths in parallel.
- the sender and receiver can use MPTCP to implement multipath parallel transmission of data. Specifically, there are multiple transmission paths between the transmitting end and the receiving end, and the transmitting end and the receiving end can simultaneously perform data transmission through the multiple transmission paths, that is, multiple transmissions are simultaneously performed on the multiple transmission paths.
- the data stream (hereinafter, the data stream is simply referred to as a substream), so that the throughput of the network can be improved when the transmitting end and the receiving end use MPTCP for data transmission.
- ECN Explicit Congestion Notification
- the method for the routing device to determine whether the substream in which the data packet is located is congested will be described in detail in the following embodiments.
- the connection may be referred to as a plurality of data streams transmitted on an MPTCP connection (the data stream transmitted on each transmission path is referred to as a sub-data stream, hereinafter referred to as a sub-stream) for congestion control, in order to ensure MPTCP connection in the network.
- TCP connection when the sender and the receiver use TCP for data transmission, the connection between the sender and the receiver using a single transmission path for data transmission is called a TCP connection
- the throughput is equal to the throughput of each TCP connection, but since the congested substream may share bandwidth with other substreams in the multiple substreams, congestion control may be caused if multiple substreams are congested as described above. The effect is not significant.
- an embodiment of the present invention provides a method, an apparatus, and a system for congestion control, where MPTCP is used for data transmission at a transmitting end (ie, a first device described below) and a receiving end (ie, a second device described below).
- MPTCP is used for data transmission at a transmitting end (ie, a first device described below) and a receiving end (ie, a second device described below).
- congestion control is performed on a plurality of substreams transmitted on a plurality of transmission paths between the transmitting end and the receiving end.
- the sending end sends the first data packet to the routing device (the number of the multiple data packets sent by the sending end)
- the packet is referred to as the first data packet.
- the routing device After receiving the first data packet, the routing device determines that the average queue length of the data packet queue is greater than or equal to a first preset threshold, and is less than or equal to a second preset threshold, and then routes.
- the device performs congestion marking on the first data packet, and sends the first data packet to the receiving end.
- the receiving end After receiving the first data packet with the congestion flag, the receiving end sends a first confirmation packet to the sending end. That is, the ECE identifier is set in the acknowledgement packet of the first data packet, and then the first acknowledgement packet is sent to the sender. After the sender receives the first acknowledgement packet including the ECE identifier, the sender starts monitoring the multiple transmissions.
- the first substream a plurality of other substreams of the plurality of substreams transmitted on the path except the substream in which the first data packet is located (hereinafter referred to as the first substream), and the substreams satisfying the congestion condition among the plurality of other substreams (hereinafter referred to as a plurality of second substreams) and the first substream are grouped into one set, and then the substreams in the set are subjected to congestion control.
- the embodiment of the present invention can classify the sub-flows satisfying the congestion control condition among the plurality of sub-streams transmitted on the multiple transmission paths between the transmitting end and the receiving end into one sub-flow set, and To the extent that these sub-flows satisfying the congestion control condition may be sub-streams of shared bandwidth (this is because compared to other sub-streams that do not share bandwidth, since the bandwidth is limited, one sub-flow in the shared-flow sub-flow is congested. In other cases, the other sub-streams sharing the bandwidth are also likely to be congested. Therefore, the sub-flows that satisfy the conditions of the congestion control are considered to be shared bandwidth to some extent, that is, the embodiment of the present invention can share the bandwidth to some extent.
- the plurality of substreams are grouped into one substream set, and the substreams in the substream set are subjected to congestion control, so that the effect of congestion control can be significantly improved, and the transmission performance of the MPTCP can be further improved.
- the following embodiments all refer to the transmitting end as the first device and the receiving end as the second device.
- FIG. 1 is a schematic structural diagram of a communication system according to an embodiment of the present invention.
- the first device ie, the transmitting end
- the second device ie, the receiving end
- the communication system includes: a first device 10, a second device 11, and a routing device 12.
- the routing device connects the first device and the second device, and the first device sends the data to be sent to the routing device, and the routing device receives the first device.
- the received data is sent to the second device, and the second device receives the data sent by the routing device, that is, the data transmission between the first device and the second device is completed.
- first device and the second device may be a mobile phone, a tablet computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, a personal digital assistant (PDA), or the like.
- Terminal Equipment The above routing device can be a router or the like.
- the hardware structure of the first device is exemplarily described by taking the first device as a mobile phone as an example.
- 2 is a schematic diagram of a hardware of a mobile phone according to an embodiment of the present invention.
- the mobile phone provided by the embodiment of the present invention includes: a radio frequency (RF) circuit 110, a memory 120, an input unit 130, and a display unit. 140, audio circuit 150, processor 160 and power supply 170 and other components.
- RF radio frequency
- the RF circuit 110 is used for transmitting and receiving information or receiving and transmitting signals during a call, and the RF circuit 110 can also communicate with the network and other devices through wireless communication.
- RF circuits include, but are not limited to, an antenna, at least one amplifier, a transceiver, a coupler, an LNA (Low Noise Amplifier), a duplexer, and the like.
- the memory 120 is configured to store a software program and a module, and the memory 120 mainly includes a storage program area and a storage data area.
- the storage program area may store an operating system, an application required for at least one function (such as a sound playing function, an image playing function, etc.), and the storage data area may store data (such as audio data, which is created according to the use of the mobile phone, Phone book, etc.).
- memory 120 can include high speed random access memory, and can also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device.
- the input unit 130 is configured to receive input digital or character information, and generate key signal input related to user settings and function control of the mobile phone.
- the input unit 130 may include a touch panel 131 and other input devices 132.
- the touch panel 131 also referred to as a touch panel, can collect touch operations on or near the user (such as a user using a finger, a stylus, or the like on the touch panel 131 or on the touch panel 131 The operation near the panel 131 is touched, and the corresponding connecting device is driven according to a preset program.
- the input unit 130 may also include other input devices 132.
- other input devices 132 may include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control buttons, power switch buttons, etc.), trackballs, mice, joysticks, and the like.
- the display unit 140 is configured to display information input by the user or information provided to the user and various menus of the mobile phone.
- the display unit 140 may include a display panel 141.
- the display panel 141 may be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like.
- the audio circuit 150 is configured to convert the received audio data into an electrical signal and transmit the electrical signal to the speaker 151, and the speaker 151 converts the electrical signal into a sound signal for output to the microphone 152; on the other hand, the microphone 152 will collect the The sound signal is converted into an electrical signal, which is received by the audio circuit 150 and converted to audio data, which is then output to the RF circuit 110 for transmission to, for example, another handset, or the audio data is output to the memory 120 for further processing.
- the processor 160 is configured to execute or execute software programs and/or modules stored in the memory 120, and to call data stored in the memory 120, perform various functions of the mobile phone 100, and process data to thereby perform overall monitoring of the mobile phone.
- Power source 170 used to power various components of the handset, such as a battery.
- the power supply can be logically coupled to the processor 160 through the power management system to manage functions such as charging, discharging, and power management through the power management system.
- the first device and the second device provided by the embodiment of the present invention are both terminal devices, that is, the second device provided by the embodiment of the present invention may also be a mobile phone.
- the hardware diagram of the mobile phone shown in FIG. 2 above is not described here.
- FIG. 3 is a schematic diagram of a hardware of a router according to an embodiment of the present invention.
- a router provided by an embodiment of the present invention includes: a processor 210, Components such as memory 220 and interface 230. The various components of the router are exemplarily described below.
- the processor 210 is configured to be responsible for exchanging routing information, routing table lookup, and forwarding data packets, such as various tables and routing operations required to process and maintain the router.
- the memory 220 is used to store a configuration of a router, an operating system, routing protocol software, and the like. There are a variety of memories in the router, such as Read Only Memory ROM (Random Access Memory), dynamic internal memory (DRAM), and flash memory.
- ROM Random Access Memory
- DRAM dynamic internal memory
- flash memory flash memory
- Interface 230 used by the router to send and receive data packets.
- the interface 230 in the router includes a LAN interface and a WAN interface.
- the router itself has no input and terminal display devices.
- the router interface also includes a control port for the user or the administrator to communicate with the router by using the terminal to complete the router configuration.
- an embodiment of the present invention provides a method for congestion control, which may include:
- the first device sends the first data packet to the routing device.
- the first device may use the routing device to send multiple data packets to be transmitted (the multiple data packets form the first device to the second device).
- the sent data is sequentially sent to the second device, where the first device sends the first data packet to the plurality of data packets sent to the second device.
- the routing device can select the best transmission path according to the actual situation of each channel in the data transmission process, and send the received data packet according to the sequence of receiving the data packet, the routing device can be used as the first device.
- the relay device that performs data transmission with the second device completes data transmission between the first device and the second device.
- the first device when the first device sends a data packet to the routing device, the first device is in the order of the data packets to be sent (for example, the order may be the order in which the first device generates the data packets. ) continuously send data to the routing device Packaged.
- the routing device receives the first data packet.
- the routing device determines that an average queue length of the data packet queue is greater than or equal to a first preset threshold, and is less than or equal to a second preset threshold.
- the routing device performs congestion marking on the first data packet, and adds the first data packet to the data packet queue.
- the routing device after the routing device receives the first data packet sent by the first device, the routing device first calculates an average queue length of the data packet queue. When the average queue length of the packet queue is less than the first preset threshold, it indicates that the current packet queue of the routing device is not congested, and the routing device adds the first packet to the packet queue and waits for the routing device to forward. When the average queue length of the packet queue is greater than or equal to the first preset threshold and less than or equal to the second preset threshold, it indicates that the current packet queue of the routing device may be congested, and the routing device congests the first data packet. Mark, then add the first packet to the packet queue and wait for the routing device to forward. When the average queue length of the packet queue is greater than the second preset threshold, it indicates that the current packet queue of the routing device has been congested, and the routing device discards the first packet.
- the routing device calculates the average queue length of the data packet queue.
- the method for calculating, by the foregoing routing device, the average queue length of the data packet queue is:
- Q avg ' is the average queue length of the data packet queue currently calculated by the routing device when the routing device receives the first data packet sent by the first device, and Q avg is when the routing device receives the previous data packet.
- the average queue length of the packet queue calculated by the routing device w is the weight of the packet queue, and Q is the length of the current packet queue (ie, the actual length of the current packet queue).
- the calculating method of the foregoing first preset threshold may be:
- K 1 is a first preset threshold
- C is a capacity of a link between the first device and the second device (that is, a maximum value of a data stream that can be transmitted on the link)
- the RTT The round-trip delay of a substream transmitted on the link (that is, any one of the plurality of substreams transmitted on the link).
- the RTT may be an average round-trip delay of multiple sub-streams transmitted on the link between the first device and the second device, and may be determined according to actual requirements. Not limited.
- the calculating method of the foregoing second preset threshold may be:
- K 2 is a second preset threshold.
- the capacity of the link and the round-trip delay of the sub-stream transmitted on the link can reflect the length of the data packet queue of the routing device, the capacity of the reference link is calculated when the first preset threshold is calculated.
- the round-trip delay of the substream transmitted on the link enables the routing device to more accurately determine if congestion of the first packet occurs.
- the routing device may perform congestion marking on the first data packet.
- the routing device sends the first data packet to the second device, the second device can learn the congestion condition of the sub-flow in which the received data packet is located.
- the method for performing the congestion marking on the first data packet by the routing device is specifically: the routing device sets an ECN identifier for the first data packet, where the ECN identifier is used to notify the second device that the first data is received by the second device.
- the substream where the package is located may be congested.
- the routing device may sequentially send the data packet in the data packet queue to the second device.
- a data packet is used in the embodiment of the present invention.
- the scheme of congestion control proposed by the embodiment of the present invention is exemplified.
- to send the first packet or The second data packet is exemplified for example.
- the routing device sends the first data packet to the second device.
- the routing device sends the data packet in the data packet queue to the second device. Specifically, the routing device sends the data packet in the current queue to the second device according to the sequence of the data packets in the data packet queue.
- the speed at which the routing device receives the data packet sent by the first device may be greater than the speed at which the routing device forwards (that is, the routing device sends the data packet sent by the first device) to the first device.
- the routing device adds the data packets to the data packet queue in the routing device according to the order in which the data packets are received, and then the routing device follows the first in first out principle (ie, The routing device forwards the first received data packet to the second device in sequence.
- the second device receives the first data packet.
- the second device after the first data packet is received by the second device, the second device needs to reply the first device with an acknowledgement packet for the first data packet, that is, the first acknowledgement packet.
- the second device displays an indication of an congestion acknowledgement (ECE) on the first confirmation packet.
- EAE congestion acknowledgement
- the second device sends the first acknowledgement packet to the first device.
- the second device after the second device receives the first data packet sent by the routing device, the second device returns a first acknowledgement packet for the first data packet to the first device.
- the second device may set an ECE identifier in the first acknowledgement packet, where the ECE identifier is an ECN identifier in the first data packet that the second device receives.
- the receipt identifier, the ECE identifier is used to notify the first device that the sub-stream in which the first data packet is located (which may be referred to as the first sub-flow in the embodiment of the present invention) may be congested, and the first device can be configured to cause congestion.
- the substream performs congestion control.
- the ECE identifier For a specific setting method of the ECE identifier, reference may be made to the related description of the setting method of the ECE identifier in the RFC3168 standard in the prior art, which is not described in detail in the embodiment of the present invention.
- the first device receives the first confirmation packet.
- the first device receives the first confirmation packet sent by the second device. After that, the first device can learn that the first sub-flow in which the first data packet is located may be congested, that is, the first device needs to process the congestion.
- the first device determines the first sub-flow set under the indication of the ECE identifier in the first acknowledgement packet.
- the first sub-flow set includes sub-flows (hereinafter referred to as a plurality of second sub-flows) satisfying the congestion control condition among the sub-flows other than the first sub-flow among the plurality of sub-flows, and the first Subflow.
- the method for the first device to determine the first sub-flow set is: the first device monitors the transmission on the multiple transmission paths between the first device and the second device under the indication of the ECE identifier in the first acknowledgement packet Substreams other than the first substream of the plurality of substreams, and then subsuming the substreams and the first substreams satisfying the congestion control condition among the other substreams into one substream set, that is, the first substream set described above
- the sub-flows satisfying the congestion control condition may be sub-streams of the shared bandwidth, that is, the embodiment of the present invention can attribute the plurality of sub-flows of the shared bandwidth into a sub-flow set to a certain extent, and the sub-flow is The substreams in the stream set are subjected to congestion control, which can significantly improve the effect of congestion control.
- the congestion control condition may be at least one of the following A, B, and C:
- the delay of the substream is greater than a preset delay threshold.
- the acknowledgement packet of the data packet of the substream is received, and the ECE identifier is included in the acknowledgement packet of the data packet of the substream.
- the foregoing sub-flow satisfying the congestion control condition may include at least one of the following: A1, B1, and C1:
- the substreams whose delay exceeds the preset delay threshold in the other substreams except the first substream are transmitted on the plurality of transmission paths between the first device and the second device.
- a substream of a packet loss event occurs in the other substreams except the first substream among the plurality of substreams transmitted on the plurality of transmission paths between the first device and the second device.
- the first device receives the acknowledgement packet including the ECE identifier of a certain data packet, the sub-flow in which the data packet is located, where the sub-flow of the data packet is between the first device and the second device A substream of the plurality of substreams transmitted on the transmission path except the first substream.
- the routing device since the three congestion control conditions are respectively capable of reflecting congestion of multiple sub-streams transmitted on multiple transmission paths between the first device and the second device, the routing device may be configured according to the foregoing three congestions. At least one of the control conditions determines a substream in which congestion may occur.
- the foregoing S110 may be specifically implemented by using S110a-S110c:
- the first device monitors other substreams of the plurality of substreams except the first substream in a preset time period.
- the first device receives the first confirmation packet, and starts to monitor the multiple between the first device and the second device within a preset time period under the indication of the ECE identifier in the first confirmation packet.
- the preset time period may be equal to a round trip delay of the first substream.
- the preset time period may be a time period formed by extending the forward and backward respectively for an equal time from the time when the first device receives the first confirmation packet including the ECE identifier.
- the size of the preset time period is the round-trip delay RTT r of the first sub-flow
- the time when the first device receives the first confirmation packet including the ECE identifier is T
- the foregoing pre- The time period can be expressed as extending forward from time T And extending backwards
- the period of time formed that is, the period of time indicated by X to Y as shown in FIG.
- the first device determines a plurality of second substreams.
- the first device monitors other sub-flows of the plurality of sub-streams transmitted on the multiple transmission paths between the first device and the second device, except for the first sub-flow, in a preset time period, and The substream in which the congestion control condition is satisfied is determined as the plurality of second substreams.
- the first device determines the first substream and the multiple second substreams as the first substream set. Hehe.
- the first substream and the plurality of second substreams may be used as the first substream set, and the first device may perform the substreams in the set. Congestion control.
- the first device performs congestion control on the substreams in the first substream set.
- the first device after determining the first sub-flow set, continues to monitor each sub-flow in the first sub-flow set, and adjusts a sending window of the sub-flow according to the congestion condition of each sub-flow (the sending The window is the number of data packets that can be transmitted by the first device and the second device within a round-trip delay RTT r of the sub-stream to implement congestion control on the sub-flows in the first sub-flow set.
- the first device may calculate a current congestion degree of the sub-flow in each round-trip delay of the sub-flow, and update a congestion degree of the sub-flow, Then, according to the updated congestion degree of the substream, the size of the sending window is adjusted to implement congestion control on the substream, thereby implementing congestion control on each substream in the first substream set.
- the first device may perform congestion control on the sub-flows in the first sub-flow set by using a method of aggregate congestion control, and use one sub-flow in the first sub-flow set (hereinafter referred to as a sub-flow)
- the flow r may include three steps of S1-S3:
- the first device calculates a current congestion degree of the substream r.
- the current congestion degree of the substream r is calculated by:
- T r is the current congestion degree of the sub-flow r
- p 1 is the number of the confirmation packets including the ECE identifier in the sub-flow r received by the first device in a round-trip delay of the sub-flow r
- p is the number of packets in the substream r received by the second device within one round trip delay of the substream r.
- the first device updates the sub-flow r congestion degree.
- the method for updating the congestion degree of the substream r is:
- ⁇ r ' is the congestion degree of the updated sub-flow r
- g is the weight of the congestion degree
- ⁇ r is the congestion degree of the sub-flow r updated in the previous round-trip delay.
- the first device adjusts a size of a sending window of the substream r.
- the size of the transmission window of the first device adjustment substream r includes: reducing the size of the transmission window of the substream r, that is, the following step S3a; or increasing the size of the transmission window of the substream r, that is, the following step S3b.
- the first device reduces the size of the transmission window of the substream r.
- the first device may reduce the sending window w r of the sub-flow r .
- the method for reducing the transmission window w r of the substream r is:
- w r ' is the transmission window of the reduced substream r
- w r is the transmission window of the current substream r
- ⁇ r ' is the congestion of the substream r after the current round trip delay is updated. degree.
- the first device can reduce the speed at which the first device sends the data packet by reducing the sending window of the sub-stream in the first sub-flow set, thereby implementing congestion on the sub-flow in the first sub-flow set. control.
- the packet loss event occurs in the sub-flow r, and the preset number of data packets on the sub-flow r may be lost.
- the preset number may be 1, or may be other presets.
- the numerical value is not limited in the embodiment of the present invention.
- the first device increases the size of the transmission window of the substream r.
- the first device may increase the transmission window w r of the sub-flow r .
- the method for increasing the transmission window w r of the substream r is:
- w r ' is the transmission window of the increased substream r
- w s is the sum of the transmission windows of all the substreams in the first substream set
- w r is the transmission window of the current substream r
- ⁇ r ' is the congestion degree of the substream r updated in the current one delay
- r ⁇ s indicates that the substream r is one of the s substreams in the first substream set.
- the first device by increasing the sending window of the substream in the first substream set, the first device can speed up the sending of the data packet by the first device, thereby implementing congestion control on the substream r.
- congestion control is performed on multiple sub-streams transmitted on multiple transmission paths between the first device and the second device.
- the first device sends the first data packet to the routing device, and after receiving the first data packet, the routing device determines that the average queue length of the data packet queue is greater than or equal to a first preset threshold, and is less than or equal to the second pre- Setting a threshold, the routing device then performs congestion marking on the first data packet, adds the first data packet to the data packet queue, and sends the first data packet to the second device, where the second device receives the congestion flag.
- the ECE identifier is set in the first acknowledgment packet replied to the first device, and then the first acknowledgment packet is sent to the first device, where the first device receives the first acknowledgment packet including the ECE identifier.
- the first device starts monitoring a plurality of other substreams of the plurality of substreams transmitted on the plurality of transmission paths except the first substream, and the substreams and the first subsection satisfying the congestion condition among the plurality of other substreams
- the flow is grouped into a collection, and then the subflows in the collection are throttled.
- the embodiment of the present invention may classify the sub-flows satisfying the congestion control condition among the plurality of sub-streams transmitted on the plurality of transmission paths between the first device and the second device into one sub-flow set, and To some extent, these sub-flows satisfying the congestion control condition may be sub-streams of shared bandwidth, that is, embodiments of the present invention can share multiple sub-streams of bandwidth to some extent. It is classified into a sub-flow set and congestion control is performed on the sub-flows in the sub-flow set, so that the effect of congestion control can be significantly improved.
- the method may further include:
- the first device sends a second data packet to the routing device.
- the first device sends the plurality of data packets to be transmitted to the second device by using the routing device, where the plurality of data packets include the second data packet.
- the routing device receives the second data packet.
- the routing device determines that an average queue length of the data packet queue is greater than or equal to a first preset threshold, and is less than or equal to a second preset threshold.
- the routing device performs congestion marking on the second data packet, and adds the second data packet to the data packet queue.
- the routing device sends the second data packet to the second device.
- the second device receives the second data packet.
- the second device after the second data packet is received by the second device, the second device needs to reply to the first device with an acknowledgement packet for the second data packet, that is, the second acknowledgement packet.
- the second device performs ECE marking on the second confirmation packet.
- the second device sends a second acknowledgement packet to the first device.
- the embodiment of the present invention may not limit the execution order of S101-S108 and S112-S119. That is, in the embodiment of the present invention, S101-S108 may be executed first, and then S112-S119 may be executed; S112-S119 may be executed first, then S101-S108 may be executed; S101-S108 and S112-S119 may also be executed at the same time.
- the method for congestion control provided by the present invention may further include:
- the first device receives the second confirmation packet.
- the first device determines the second sub-flow set under the indication of the ECE identifier in the second acknowledgement packet.
- S121a-S121c S121a-S121c:
- the first device monitors, in a preset time period, other sub-flows in the first sub-flow set except the third sub-stream in the set.
- the first device determines a plurality of fourth substreams.
- the third substream is a substream where the second data packet is located, and the multiple fourth substreams satisfy the congestion control condition in the substreams other than the third substream in the first substream set. Substream.
- the first device determines the third substream and the multiple fourth substreams as the second substream set.
- the method for determining, by the first device, the second sub-flow set from the first sub-flow set under the indication of the ECE identifier in the second acknowledgement packet, and the first device in the foregoing S110 in the first acknowledgement packet is similar to the indication of the ECE identifier.
- S116 refer to the foregoing related to S110. Description, no longer repeat here.
- the first device may further determine the second sub-flow set from the first sub-flow set (the second sub-flow set is a subset of the first sub-flow set) And performing congestion control on the substreams in the second substream set, so that the accuracy of the substream set to be subjected to congestion control determined by the first device can be relatively high, so that the effect of congestion control can be significantly improved.
- the foregoing S111 may specifically include:
- the first device performs congestion control on the substreams in the second substream set.
- the method for performing congestion control on the substream in the second substream set by the first device in S111a is similar to the method in the first device in S111 for performing congestion control on the substream in the first subflow set.
- S111a For details of S111a, refer to the above description of S111. The related description is not repeated here.
- the S111a differs from the S111 in that the first device performs different types of congestion control.
- the object that the first device performs congestion control in S111a is the sub-flow in the second sub-flow set, and the object in which the first device performs congestion control in S111 is the sub-flow in the first sub-flow set.
- the method for congestion control provided by the embodiment of the present invention may further include:
- the first device performs congestion control on the substreams that are not the first substream set.
- the substream in the non-first substream set includes the substreams in the plurality of substreams transmitted between the first device and the second device except the substreams in the first substream set. Other substreams.
- the first device may perform congestion control on the sub-flows of the non-first sub-flow set by using a method of individual congestion control (for example, to congest the sub-streams k of the non-first sub-flow set).
- a method of individual congestion control for example, to congest the sub-streams k of the non-first sub-flow set.
- the method of the individual congestion control may include: reducing the size of the transmission window of the substream k, that is, the following step Q1a; or increasing the size of the transmission window of the substream k, that is, the following step Q1b.
- the first device reduces the size of the transmission window of the substream k.
- the first device may reduce the transmission window w k of the substream k .
- the method for reducing the transmission window w k of the substream k is:
- w k ' is a transmission window of the reduced substream k
- w k is a transmission window of the current substream k
- the first device by reducing the transmission window of the substream k, the first device can slow down the speed at which the first device sends the data packet, thereby implementing congestion control on the substream k.
- the first device increases the size of the transmission window of the substream k.
- the first device when the first device receives the packet loss event, that is, the sub-flow k is not congested, the first device may increase the transmission window w k of the sub-flow k.
- the method for increasing the transmission window w k of the substream k is as follows:
- w k ' is the transmission window of the increased substream k
- w k is the transmission window of the preamble k before the increase.
- the first device by increasing the transmission window of the substream k, the first device can speed up the transmission of the data packet by the first device, thereby implementing congestion control on the substream k.
- the embodiment of the present invention may not limit the execution order of S111 and S122. That is, in the embodiment of the present invention, S111 may be executed first, and then S122 may be performed; S122 may be executed first, then S111 may be executed; and S111 and S122 may be simultaneously executed.
- the first device may perform congestion control on the sub-flows in the first sub-flow set, and may also perform congestion control on the sub-flows in the non-first sub-flow set, so that the first device may be the first Congestion control is performed on all of the plurality of substreams transmitted on the plurality of transmission paths between the device and the second device, so that the effect of congestion control can be more significantly improved.
- the method for congestion control provided by the present invention may further include:
- the first device performs congestion control on the substreams that are not the second substream set.
- the substream of the non-second substream set includes other substreams of the plurality of substreams other than the substreams in the second substream set, and the first device pair is not the second substream set.
- the method for the congestion control of the sub-flow is similar to the method for the congestion control of the sub-flow of the non-first sub-flow set by the first device in the foregoing S122.
- S123 For the description of the S123, refer to the foregoing description of the S122. Narration.
- the S123 differs from the S122 in that the first device performs different types of congestion control.
- the object of the first device performing congestion control in S123 is a sub-flow in the non-second sub-flow set, and the object in the S122 in which the first device performs congestion control is a sub-flow in the non-first sub-flow set.
- S122 may be performed when S111 is executed, or S123 may be executed when S111a is executed.
- the first device may congest the substreams in the second substream set. Controlling, the congestion control may also be performed on the sub-flows in the non-second sub-flow set, so that the first device may congest all the multiple sub-streams transmitted on the multiple transmission paths between the first device and the second device Control, so that the effect of congestion control can be more significantly improved.
- the method for congestion control provided by the present invention may further include: before the first device sends a data packet (for example, the first data packet or the second data packet) to the routing device, the method may further include: :
- the first device marks the data packet to be sent.
- the data packet to be sent may be marked first, that is, the ECN identifier of the data packet is set to support the ECN identifier, and the supporting ECN identifier is used to indicate the routing device.
- the data packet supports the ECN function, and the routing device sends the data packet with the foregoing supporting ECN identifier to the second device.
- the second device After receiving the data packet, the second device sends an acknowledgement packet to the first device (for example, the first confirmation packet or the second packet).
- the first device may learn that the sub-flow in which the data packet is located may be congested, and determine that congestion may occur from the multiple sub-flows according to the congestion control condition under the indication of the ECE identifier in the acknowledgement packet.
- the substreams (for example, the substreams in the first substream set or the substreams in the second substream set), thereby implementing the first device to perform congestion control on the substreams that may be congested.
- congestion control is performed on multiple sub-streams transmitted on multiple transmission paths between the first device and the second device.
- the first device sends the first data packet to the routing device, and after receiving the first data packet, the routing device determines that the average queue length of the data packet queue is greater than or equal to a first preset threshold, and is less than or equal to the second pre- Setting a threshold, the routing device then performs congestion marking on the first data packet, adds the first data packet to the data packet queue, and sends the first data packet to the second device, where the second device receives the congestion flag.
- the ECE identifier is set in the first acknowledgment packet replied to the first device, and then the first acknowledgment packet is sent to the first device, where the first device receives the first acknowledgment packet including the ECE identifier.
- the first device starts monitoring a plurality of other substreams of the plurality of substreams transmitted on the plurality of transmission paths except the first substream, and the substreams and the first subsection satisfying the congestion condition among the plurality of other substreams Flow Enter a collection and then perform congestion control on the subflows in the collection.
- the embodiment of the present invention may classify the sub-flows satisfying the congestion control condition among the plurality of sub-streams transmitted on the plurality of transmission paths between the first device and the second device into one sub-flow set, and
- the sub-flows that satisfy the congestion control condition may be sub-streams of the shared bandwidth, that is, the embodiment of the present invention can classify the plurality of sub-flows of the shared bandwidth into one sub-flow set to some extent, and the sub-flow set is The sub-flow in the congestion control, which can significantly improve the effect of congestion control, and further improve the transmission performance of MPTCP.
- each device such as the first device, the second device, and the routing device, etc., in order to implement the above functions, includes corresponding hardware structures and/or software modules for performing the respective functions.
- the present invention can be implemented in a combination of hardware or hardware and computer software in combination with the elements and algorithm steps of the various examples described in the embodiments disclosed herein. Whether a function is implemented in hardware or computer software to drive hardware depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods for implementing the described functions for each particular application, but such implementation should not be considered to be beyond the scope of the present invention.
- the embodiment of the present invention may divide the function module by using the first device, the second device, and the routing device according to the foregoing method example.
- each function module may be divided according to each function, or two or more functions may be integrated in the function.
- a processing module In a processing module.
- the above integrated modules can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of the module in the embodiment of the present invention is schematic, and is only a logical function division, and the actual implementation may have another division manner.
- the embodiment of the present invention provides a device, which may be a first device.
- FIG. 7 shows a possible device of the first device involved in the foregoing embodiment.
- the first device includes a sending module 310, a receiving module 320, a determining module 330, and a control module 340.
- Transmit mode Block 310 is configured to support the first device to perform S101 and S112 in the foregoing method embodiments.
- the receiving module 320 is configured to support the first device to perform S109 and S120 in the foregoing method embodiment.
- the determining module 330 is configured to support the first device to perform S110 (including S110a-S110c), S121 (including S121a-S121c), and S124 in the foregoing method embodiments.
- the control module 340 is configured to support the first device to execute S111, S111a, S112, and S122-S123 in the foregoing method embodiments. All the related content of the steps involved in the foregoing method embodiments may be referred to the functional descriptions of the corresponding functional modules, and details are not described herein again.
- FIG. 8 shows a possible structural diagram of the first device involved in the above embodiment.
- the first device includes a processing module 420 and a communication module 430.
- the processing module 420 is configured to perform control management on the action of the first device.
- the processing module 420 is configured to support the first device to perform S110 (including S110a-S110c), S111, S111a, S121 (including S121a- in the foregoing method embodiment). S121c), S112, and S122-S124, and/or other processes for the techniques described herein.
- the communication module 430 is configured to support communication between the first device and other network entities, such as communication between the routing device and the second device illustrated in FIG. 1, FIG. 4, or FIG.
- the first device may further include a storage module 410 for storing program codes and data of the first device, which is not specifically limited in this embodiment of the present invention.
- the processing module 420 may be a processor or a controller, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), and an application specific integrated circuit (Application- Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.; the processor or controller may be the same as the mobile phone shown in FIG. Processor 160.
- the communication module 430 can be a transceiver, a transceiver circuit or a communication interface, etc.; the transceiver, the transceiver circuit or the communication interface It can be the radio frequency circuit 110 of the mobile phone shown in FIG. 2 above.
- the storage module 410 can be a memory; the memory can be the memory 120 of the handset shown in FIG. 2 above.
- the embodiment of the present invention further provides a computer readable storage medium, where the computer readable storage medium stores one or more programs, and the one or more programs include instructions, when the processor of the first device executes the instruction, the The first device performs the steps performed by the first device in the method flow shown in the foregoing method embodiment.
- FIG. 9 is a schematic structural diagram of a routing device involved in the foregoing embodiment.
- the routing device includes a sending module 510, a receiving module 520, and a determining module 530.
- the sending module 510 is configured to support the routing device to perform S105 and S116 in the foregoing method embodiments.
- the receiving module 520 is configured to support the routing device to perform S102 and S113 in the foregoing method embodiment.
- the determining module 530 is configured to support the routing device to perform S103, S104, S114, and S115 in the foregoing method embodiments. All the related content of the steps involved in the foregoing method embodiments may be referred to the functional descriptions of the corresponding functional modules, and details are not described herein again.
- FIG. 10 shows a possible structural diagram of the routing device involved in the above embodiment.
- the routing device includes a processing module 620 and a communication module 630.
- the processing module 620 is configured to perform control management on the actions of the routing device.
- the processing module 620 is configured to support the routing device to perform S103, S104, S114, and S115 in the foregoing method embodiments, and/or used in the techniques described herein.
- the communication module 630 is for supporting communication between the routing device and other network entities, such as communication between the first device and the second device shown in FIG. 1, FIG. 4 or FIG.
- the routing device may further include a storage module 610 for storing program codes and data of the routing device, which is not specifically limited in this embodiment of the present invention.
- the processing module 620 may be a processor or a controller, for example, a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, Hardware department Pieces or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example comprising one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.; the processor or controller may be the same as shown in Figure 3 above. Processor 210 of the device.
- the communication module 630 can be a transceiver, a transceiver circuit or a communication interface; the transceiver, transceiver circuit or communication interface can be the interface 230 of the routing device shown in FIG. 3 above.
- the storage module 610 can be a memory; the memory can be the memory 220 of the routing device shown above in FIG.
- the embodiment of the present invention further provides a computer readable storage medium, where the computer readable storage medium stores one or more programs, and the one or more programs include instructions, when the processor of the routing device executes the instruction, the route The device performs the steps performed by the routing device in the method flow shown in the foregoing method embodiment.
- FIG. 11 illustrates a possible device of the second device involved in the foregoing embodiment.
- the second device includes a sending module 710, a receiving module 720, and a determining module 730.
- the sending module 710 is configured to support the second device to perform S108 and S119 in the foregoing method embodiment.
- the receiving module 720 is configured to support the second device to perform S106 and S117 in the foregoing method embodiment.
- the determining module 730 is configured to support the second device to execute S107 and S118 in the above method embodiment. All the related content of the steps involved in the foregoing method embodiments may be referred to the functional descriptions of the corresponding functional modules, and details are not described herein again.
- FIG. 12 shows a possible structural diagram of the second device involved in the above embodiment.
- the terminal device includes a processing module 820 and a communication module 830.
- the processing module 820 is configured to perform control management on the actions of the second device, for example, the processing module 820 is configured to support the terminal device to perform S107 and S118 in the foregoing method embodiments, and/or other processes for the techniques described herein;
- the communication module 830 is for supporting communication between the second device and other network entities, such as communication with the routing device and the first device shown in FIG. 1, FIG. 4 or FIG.
- the second device may further include a storage module 810, configured to store program code and data of the second device, The embodiment of the invention is not specifically limited thereto.
- the processing module 820 may be a processor or a controller, such as a central processing unit, a general purpose processor, a digital signal processor, an application specific integrated circuit, a field programmable gate array or other programmable logic device, a transistor logic device, Hardware components or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc.; the processor or controller may be the same as the mobile phone shown in FIG. Processor 160.
- the communication module 830 can be a transceiver, a transceiver circuit or a communication interface, etc.; the transceiver, the transceiver circuit or the communication interface can be the RF circuit 110 of the mobile phone as shown in FIG. 2 above.
- the storage module 810 can be a memory, which can be the memory 120 of the mobile phone as shown in FIG. 2 above.
- the first device and the second device may be the same type of mobile phone. Therefore, for the components included in the second device involved in the embodiment of the present invention, refer to the foregoing mobile phone as shown in FIG. 2 . A description of the structure is not repeated here.
- the embodiment of the present invention further provides a computer readable storage medium, where the computer readable storage medium stores one or more programs, and the one or more programs include instructions, when the processor of the second device executes the instruction, The second device performs the steps performed by the second device in the method flow shown in the foregoing method embodiment.
- the embodiment of the invention provides a communication system, which can include a first device, a routing device and a second device.
- a communication system which can include a first device, a routing device and a second device.
- the first device may be a first device as shown in FIG. 1; the routing device may be a router as shown in FIG. 1; and the second device may be a second device as shown in FIG.
- the first device, the routing device, and the second device refer to the related description in the foregoing method embodiments and device embodiments, and details are not described herein again.
- the first device and the second device use MPTCP for data transmission
- multiple transmission paths between the first device and the second device A plurality of substreams transmitted on the path perform congestion control.
- the first device sends the first data packet to the routing device, and after receiving the first data packet, the routing device determines that the average queue length of the data packet queue is greater than or equal to a first preset threshold, and is less than or equal to the second pre- Setting a threshold, the routing device then performs congestion marking on the first data packet, adds the first data packet to the data packet queue, and sends the first data packet to the second device, where the second device receives the congestion flag.
- the ECE identifier is set in the first acknowledgment packet replied to the first device, and then the first acknowledgment packet is sent to the first device, where the first device receives the first acknowledgment packet including the ECE identifier.
- the first device starts monitoring a plurality of other substreams of the plurality of substreams transmitted on the plurality of transmission paths except the first substream, and the substreams and the first subsection satisfying the congestion condition among the plurality of other substreams
- the flow is grouped into a collection, and then the subflows in the collection are throttled.
- the embodiment of the present invention may classify the sub-flows satisfying the congestion control condition among the plurality of sub-streams transmitted on the plurality of transmission paths between the first device and the second device into one sub-flow set, and
- the sub-flows that satisfy the congestion control condition may be sub-streams of the shared bandwidth, that is, the embodiment of the present invention can classify the plurality of sub-flows of the shared bandwidth into one sub-flow set to some extent, and the sub-flow set is The substream in the middle performs congestion control, which can significantly improve the effect of congestion control.
- the steps of a method or algorithm described in connection with the present disclosure may be implemented in a hardware, or may be implemented by a processor executing software instructions.
- Software instructions may be comprised of corresponding software modules that may be stored in random access memory, flash memory, read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, registers, hard disk, mobile A hard disk, a read-only optical disk, or any other form of storage medium known in the art.
- An exemplary storage medium is coupled to the processor to enable the processor to read information from, and write information to, the storage medium.
- the storage medium can also be an integral part of the processor.
- the processor and the storage medium can be located in an ASIC. Additionally, the ASIC can be located in the first device, the routing device, and the second device.
- the processor and the storage medium may also exist as discrete components in the first device, the routing device, and the second device.
- Computer readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one location to another.
- a storage medium may be any available media that can be accessed by a general purpose or special purpose computer.
- the disclosed system, apparatus, and method may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the modules or units is only a logical function division.
- there may be another division manner for example, multiple units or components may be used. Combinations can be integrated into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be in the form of hardware Implementation can also be implemented in the form of a software functional unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
- the technical solution of the present invention which is essential or contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product stored in a storage medium.
- a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to perform all or part of the steps of the methods described in various embodiments of the present invention.
- the foregoing storage medium includes: a flash memory, a mobile hard disk, a read only memory, a random access memory, a magnetic disk, or an optical disk, and the like, which can store program codes.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种拥塞控制的方法、装置及系统,涉及通信技术领域,能够显著地提高拥塞控制的效果。该方法包括:第一设备接收第二设备发送的包括ECE标识的确认包,在该ECE标识的指示下,第一设备开始监测第一设备与第二设备之间多条传输路径上的多个子流,并将满足拥塞条件的子流归入一个集合,对集合中的子流进行集合内拥塞控制,对集合外的子流进行单独拥塞控制。本发明实施例提供的一种拥塞控制的方法应用于第一设备与第二设备采用MPTCP进行数据传输的场景中。
Description
本发明涉及通信技术领域,尤其涉及一种拥塞控制的方法、装置及系统。
在通信系统中,多路径传输控制协议(Multipath Transmission Control Protocol,MPTCP)可以实现多路并行传输数据。
目前,为了提高采用MPTCP进行数据传输时的吞吐量,在发送端和接收端采用MPTCP进行数据传输时需对发送端与接收端之间的多条传输路径(利用该多条传输路径进行数据传输的连接可以称为一个MPTCP连接)上传输的多个数据流(每条传输路径上传输的数据流称为一个子数据流,以下均简称子流)进行拥塞控制(例如调整每个子流占用的带宽)。而在对该多个数据流进行拥塞控制时,为了保证网络中的MPTCP连接和传输控制协议(Transmission Control Protocol,TCP)连接(发送端与接收端采用TCP进行数据传输时,发送端与接收端之间的利用单条传输路径进行数据传输的连接称为一个TCP连接)的公平性,通常需要使得每个MPTCP连接的吞吐量与每个TCP连接的吞吐量相等。
然而,由于每个MPTCP连接上传输多个子流,而该多个子流中可能只有部分子流共享带宽,而如果按照上述方法对该多个子流同时进行拥塞控制,那么由于只能保证每个MPTCP连接的吞吐量与每个TCP连接的吞吐量相等,因此可能使得MPTCP连接的吞吐量提高的效果不显著。
发明内容
本申请提供一种拥塞控制的方法、装置及系统,能够显著地提高拥塞控制的效果。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种拥塞控制的方法,该方法应用于第一设备
与第二设备采用MPTCP进行数据传输的过程中,该方法可以包括:第一设备接收第二设备发送的包括用于指示第一设备进行拥塞控制的ECE标识的第一确认包,该第一确认包为第一设备和第二设备之间的多条传输路径上传输的多个数据流(以下简称为多个子流)中的第一子流的第一数据包的确认包;并且第一设备在该ECE标识的指示下,确定包括上述第一子流和上述多个子流中除该第一子流之外的其他子流中满足拥塞控制条件的多个第二子流的第一子流集合;以及对该第一子流集合中的子流进行拥塞控制。
本申请中,上述第一设备可以采用集合拥塞控制的方法对第一子流集合中的子流进行拥塞控制。
本申请提供的拥塞控制的方法,第一设备与第二设备采用MPTCP进行数据传输时,由于第一设备可以将第一设备与第二设备之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本申请能够在一定程度上将共享带宽的多个子流归入一个子流集合,然后对集合中的子流进行拥塞控制,因此可以显著地提高拥塞控制的效果,进一步可以提升MPTCP的传输性能。
在第一方面的第一种可选的实现方式中,上述第一设备确定第一子流集合之后,第一设备对上述第一子流集合中的子流进行拥塞控制之前,本申请提供的拥塞控制的方法还可以包括:第一设备接收第二设备发送的包括ECE标识的第一子流集合中的一个子流的数据包(以下简称为第二数据包)的第二确认包;并且在该ECE标识的指示下,确定包括该一个子流的第二子流集合,该第二子流集合为该第一子流集合的子集;以及对该第二子流集合中的子流进行拥塞控制。
本申请中,上述第一设备可以采用集合拥塞控制的方法对第二子流集合中的子流进行拥塞控制。
本申请中,第一设备确定第一子流集合之后,第一设备可以从第一子流集合中进一步确定第二子流集合,并对第二子流集合中的子流进行拥塞控制,如此,能够使得第一设备确定的待进行拥塞控制的子流集合的准
确率比较高,从而可以显著地提高拥塞控制的效果。
在第一方面的第二种可选的实现方式中,本申请提供的拥塞控制的方法还可以包括:上述第一设备对包括上述多个子流中除上述第一子流集合中的子流之外的其他子流(以下简称为非第一子流集合的子流)进行拥塞控制。
本申请中,上述第一设备具体可以采用单独拥塞控制的方法对非第一子流集合中的子流进行拥塞控制。
本申请中,第一设备可以对第一子流集合中的子流进行拥塞控制,还可以对非第一子流集合中的子流进行拥塞控制,如此,第一设备可以对第一设备和第二设备之间的多条传输路径上传输的多条子流全部都进行拥塞控制,从而能够更加显著地提高拥塞控制的效果。
在第一方面的第三种可选的实现方式中,本申请提供的拥塞控制的方法还可以包括:上述第一设备对上述多个子流中除上述第二子流集合中的子流之外的其他子流(以下简称为非第二子流集合的子流)进行拥塞控制。
上述第一设备具体可以采用单独拥塞控制的方法对非第二子流集合中的子流进行拥塞控制。
本申请中,第一设备可以对第二子流集合中的子流进行拥塞控制,还可以对非第二子流集合中的子流进行拥塞控制,如此,第一设备可以对第一设备和第二设备之间的多条传输路径上传输的多条子流全部都进行拥塞控制,从而能够更加显著地提高拥塞控制的效果。
在第一方面的第四种可选的实现方式中,上述第一设备在ECE标识的指示下,确定第一子流集合的方法可以包括:第一设备在该ECE标识的指示下,在预设时间段内监测上述多个子流中除上述第一子流之外的其他子流;并且将该多个子流中除该第一子流之外的其他子流中满足所述拥塞控制条件的子流确定为多个第二子流;以及将第一子流和该多个第二子流确定为第一子流集合。
本申请中,第一设备通过在预设时间段内对上述多个子流中除上述第一子流之外的其他子流进行监测可以获知第一设备与第二设备之间的
多条传输路径上的多条子流的拥塞情况,并将满足拥塞控制条件的子流归入第一子流集合,由于在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本申请能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果。
在第一方面的第五种可选的实现方式中,上述第一设备在ECE标识的指示下,确定第二子流集合的方法可以包括:第一设备在该ECE表示的指示下,在预设时间段内监测第一子流集合中除该集合中的第二数据包所在的第三子流之外的其他子流;并且将第一子流集合中除第三子流之外的其他子流中满足拥塞控制条件的子流确定为多个第四子流;以及将第三子流和该多个第四子流确定为第二子流集合。
本申请中,第一设备可以通过在预设时间段内监测第一子流集合中除第三子流之外的其他子流,并将这些子流中满足拥塞控制条件的子流和第三子流确定为第二子流集合。
在第一方面的第六种可选的实现方式中,上述第一设备向路由设备发送数据包之前,本申请提供的拥塞控制的方法还可以包括:第一设备标记待发送的数据包。
第一设备向路由设备发送数据包之前,首先可以对待发送的数据包进行标记,即将上述数据包的ECN标识设置为支持ECN标识,该ECN标识用于向路由设备指示该数据包支持ECN功能,然后路由设备将带有上述ECN标识的数据包发送给第二设备,第二设备接收到该数据包后,向第一设备发送设置了ECE标识的确认包(例如第一确认包或者第二确认包),第一设备接收确认包后,可以获知该数据包所在的子流可能发生拥塞,并在该确认包中的ECE标识的指示下,根据拥塞控制条件从多个子流中确定可能发生拥塞的子流(例如第一子流集合中的子流或者第二子流集合中的子流),进而实现第一设备对这些可能发生拥塞的子流进行拥塞控制。
第二方面,提供一种拥塞控制的方法,该方法应用于第一设备与第二设备采用MPTCP进行数据传输的过程中,该方法可以包括:路由设备
接收第一设备发送的第一数据包;然后路由设备确定数据包队列(该数据包队列包括该路由设备待发送的数据包)的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值;并且对该第一数据包进行拥塞标记,将该第一数据包加入上述数据包队列;以及依次向上述第二设备发送该数据包队列中的数据包。
本申请提供的拥塞控制的方法,第一设备与第二设备采用MPTCP进行数据传输时,由于路由设备在接收到第一设备发送的第一数据包之后可以对可能发生拥塞的数据包进行拥塞标记,然后将该第一数据包发送给第二设备,第二设备接收到该有拥塞标记的第一数据包后,对第二设备向第一设备回复的第一确认包进行ECE标记,因此第一设备接收到包括ECE标识的第一确认包后,第一设备可以将第一设备和第二设备之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本申请能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果,进一步可以提升MPTCP的传输性能。
在第二方面的第一种可选的实现方式中,本申请提供的拥塞控制的方法,还可以包括:上述路由设备接收第一设备发送的第二数据包;然后路由设备确定数据包队列(该数据包队列包括该路由设备待发送的数据包)的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值;并且对该第二据包进行拥塞标记,将该第二数据包加入上述数据包队列;以及依次向上述第二设备发送该数据包队列中的数据包。
本申请中,第一设备向路由设备发送多个数据包,其中,第二数据包为第一子流集合中的一个子流的数据包,由于设备在接收到第一设备发送的第二数据包之后可以对可能发生拥塞的数据包进行拥塞标记,然后将该第二数据包发送给第二设备,第二设备接收到该有拥塞标记的第二数据包后,对第二设备向第一设备回复的第二确认包进行ECE标记,因此第一设备接收到包括ECE标识的第二确认包后,第一设备可以将第一子流集合中满足拥塞控制条件的子流归入第二子流集合,即第一设备可以从第
一子流集合中进一步确定第二子流集合(第二子流集合是第一子流集合的子集),如此,能够使得第一设备确定的待进行拥塞控制的子流集合的准确率比较高,从而可以显著地提高拥塞控制的效果。
第三方面,提供一种拥塞控制的方法,该方法应用于第一设备与第二设备采用MPTCP进行数据传输的过程中,该方法可以包括:第二设备接收路由设备发送的第一数据包;并对第二设备向第一设备回复第一确认包进行ECE标记;以及向第一设备发送该第一确认包。
本申请提供的拥塞控制的方法,第一设备与第二设备采用MPTCP进行数据传输时,由于第二设备接收到第一设备通过路由设备发送的第一数据包后,第二设备可以在向第一设备回复的第一确认包中设置用于告知第一设备第一数据包所在子流可能发生拥塞的ECE标识,该ECE标识是第二设备对其接收到的数据包中的ECN标识设置的回执标识,因此可以使得第一设备接收到包括上述ECE标识的第一确认包后,第一设备可以将第一设备和第二设备之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本申请能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果进而第一设备能够对可能发生拥塞子流进行拥塞控制。
在第三方面的第一种可选的实现方式中,本申请提供的拥塞控制的方法还可以包括:第二设备接收路由设备发送的第二数据包;并对第二设备向第一设备回复第二确认包进行ECE标记;以及向第一设备发送该第二确认包。
本申请中,由于第二设备接收到第一设备通过路由设备发送的第二数据包后,第二设备可以在向第一设备回复的第二确认包中设置用于告知第一设备第二数据包所在子流可能发生拥塞的ECE标识,该ECE标识是第二设备对其接收到的数据包中的ECN标识设置的回执标识,因此可以使得第一设备接收到包括上述ECE标识的第二确认包后,第一设备可以将第一子流集合中满足拥塞控制条件的子流归入第二子流集合,即第一设
备可以从第一子流集合中进一步确定第二子流集合(第二子流集合是第一子流集合的子集),如此,能够使得第一设备确定的待进行拥塞控制的子流集合的准确率比较高,从而可以显著地提高拥塞控制的效果,进一步可以提升MPTCP的传输性能。
第四方面,提供一种设备,该设备包括接收模块,确定模块和控制模块。其中,接收模块用于接收第二设备发送的包括用于指示该设备进行拥塞控制的ECE标识的第一确认包,该第一确认包为第一设备和第二设备之间的多条传输路径上传输的多个子流中的第一子流的第一数据包的确认包;确定模块用于在该ECE标识的指示下,确定包括上述第一子流和上述多个子流中除该第一子流之外的其他子流中满足拥塞控制条件的多个第二子流的第一子流集合;控制模块用于对该第一子流集合中的子流进行拥塞控制。
在第四方面的第一种可选的实现方式中,上述接收模块还可以用于在上述确定模块确定第一子流集合之后,在上述控制模块对该第一子流集合中的子流进行拥塞控制之前,接收第二设备发送的包括ECE标识的第一子流集合中的一个子流的数据包(以下简称为第二数据包)的第二确认包;上述确定模块还可以用于在该ECE标识的指示下,确定包括该一个子流的第二子流集合,该第二子流集合为该第一子流集合的子集;上述控制模块还可以用于对该第二子流集合中的子流进行拥塞控制。
在第四方面的第二种可选的实现方式中,上述控制模块还可以用于对包括上述多个子流中除上述第一子流集合中的子流之外的其他子流(以下简称为非第一子流集合的子流)进行拥塞控制。
在第四方面的第三种可选的实现方式中,上述控制模块还可以用于对上述多个子流中除上述第二子流集合中的子流之外的其他子流(以下简称为非第二子流集合的子流)进行拥塞控制。
在第四方面的第四种可选的实现方式中,上述确定模块在ECE标识的指示下,确定第一子流集合的方法可以包括:确定模块在预设时间段内监测上述多个子流中除上述第一子流之外的其他子流;并将该多个子流中除该第一子流之外的其他子流中满足上述拥塞控制条件的子流,确定为上
述多个第二子流;以及将第一子流和该多个第二子流确定为第一子流集合。
在第四方面的第五种可选的实现方式中,上述确定模块在ECE标识的指示下,确定第二子流集合的方法可以包括:确定模块在预设时间段内监测第一子流集合中除该集合中的第二数据包所在的第三子流之外的其他子流;并且将第一子流集合中除第三子流之外的其他子流中满足拥塞控制条件的子流确定为多个第四子流;以及将第三子流和该多个第四子流确定为第二子流集合。
在第四方面的第六种可选的实现方式中,上述确定模块还可以用于在上述发送模块向路由设备发送数据包之前,标记待发送的数据包。
第四方面或其任意一种可选的实现方式的技术效果可以参见上述对第一方面或其任意一种可选的实现方式的技术效果的相关描述,此处不再赘述。
在上述第一方面和第四方面中,上述拥塞控制条件包括下述三个条件中的至少一项:子流的时延大于预设的时延阈值;子流发生丢包事件;以及上述接收模块接收到子流的数据包的确认包、且该子流的数据包的确认包中包括ECE标识。
本申请中,由于上述三个拥塞控制条件能够反映第一设备与第二设备之间的多条传输路径上传输的多个子流的拥塞情况,因此,路由设备可以根据上述三个拥塞控制条件中的至少一个来确定可能发生拥塞的子流。
第五方面,提供一种路由设备,该路由设备包括:接收模块,确定模块和发送模块。其中,接收模块用于接收第一设备发送的第一数据包;确定模块用于确定数据包队列(该数据包队列包括该路由设备待发送的数据包)的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值;并对该第一数据包进行拥塞标记,以及将该第一数据包加入上述数据包队列,该第二预设阈值大于该第一预设阈值;发送模块用于依次向上述第二设备发送该数据包队列中的数据包。
在第五方面的第一种可选的实现方式中,上述接收模块还用于接收第一设备发送的第二数据包;确定模块还用于确定数据包队列(该数据包
队列包括该路由设备待发送的数据包)的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值(该第二预设阈值大于该第一预设阈值);并对接收模块接收的该第二数据包进行拥塞标记,以及将该第二数据包加入上述数据包队列;发送模块用于依次向上述第二设备发送该数据包队列中的数据包(包括确定模块加入到数据包队列中的第二数据包)。
第五方面或其任意一种可选的实现方式的技术效果可以参见上述对第二方面或其任意一种可选的实现方式的技术效果的相关描述,此处不再赘述。
在上述第二方面和第五方面中,上述第一预设阈值可以采用如下公式确定:其中,K1为第一预设阈值,C为上述第一设备与上述第二设备之间的链路的容量(即该条链路上可传输的数据流的最大值),RTT为该链路上传输的一个子流(即该条链路上传输的多个子流中的任意一个子流)的往返时延。
上述第二预设阈值可以采用如下公式确定:K2≥2*K1,其中,K2为第二预设阈值。
本申请中,由于链路的容量和该链路上传输的一个子流的往返时延能够反映路由设备的数据包队列的长度,因此计算上述第一预设阈值时参考链路的容量和该链路上传输的一个子流的往返时延能够使得路由设备更加准确地确定第一数据包所在的子流是否发生拥塞。
第六方面,提供一种设备,该设备包括接收模块,确定模块和发送模块。其中,接收模块用于接收路由设备发送的第一数据包;确定模块用于对第二设备向第一设备回复的第一确认包(即第二设备对接收模块接收到的第一数据包的确认包)进行ECE标记;发送模块用于向第一设备发送确定模块标记后的该第一确认包。
在第六方面的第一种可选的实现方式中,上述接收模块还用于接收路由设备发送的第二数据包;确定模块还用于对第二设备向第一设备回复的第二确认包进行ECE标记(即第二设备对接收模块接收到的第二数据
包的确认包);发送模块还用于向第一设备发送确定模块标记后的该第二确认包。
第六方面或其任意一种可选的实现方式的技术效果可以参见上述对第三方面或其任意一种可选实现方式的技术效果的相关描述,此处不再赘述。
第七方面,提供一种设备,该设备包括:处理器,收发器和存储器。其中,存储器用于存储计算机执行指令,当该设备运行时,处理器执行该存储器存储的该计算机执行指令,以使该设备执行第一方面的拥塞控制的方法。
第八方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机执行指令,当该设备的处理器执行该计算机执行指令时,该设备执行上述第一方面或其任意一种可选方式中所述的拥塞控制的方法。
第七方面和第八方面的技术效果可以参见上述对第一方面或其任意一种可选的实现方式的技术效果的相关描述,此处不再赘述。
第九方面,提供一种路由设备,该路由设备包括的处理器、收发器和存储器。其中,存储器用于存储计算机执行指令,当该路由设备运行时,处理器执行该存储器存储的该计算机执行指令,以使该路由设备执行第二方面的拥塞控制的方法。
第十方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机执行指令,当该路由设备的处理器执行该计算机执行指令时,该设备执行上述第二方面所述的拥塞控制的方法。
第九方面和第十方面的技术效果可以参见上述对第二方面或其任意一种可选的实现方式的技术效果的相关描述,此处不再赘述。
第十一方面,提供一种设备,该设备包括:处理器、收发器和存储器。其中,存储器用于存储计算机执行指令,当该设备运行时,处理器执行该存储器存储的该计算机执行指令,以使该设备执行第三方面的拥塞控制的方法。
第十二方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括计算机执行指令,当该设备的处理器执行该计算机执行指令时,该设备执行上述第三方面所述的拥塞控制的方法。
第十一方面和第十二方面的技术效果可以参见上述对第三方面或其任意一种可选的实现方式的技术效果的相关描述,此处不再赘述。
第十三方面,提供一种通信系统,该通信系统包括上述第四方面或其任意一种可选的实现方式中的设备(即本申请中的第一设备),第五方面或其任意一种可选的实现方式中的路由设备以及第六方面或其任意一种可选的实现方式中的设备(即本申请中的第二设备),其中,第一设备和第二设备经路由设备进行数据传输。
或者该通信系统包括上述第七方面中的设备(即本申请中的第一设备),上述第九方面中的路由设备以及上述第十一方面中的设备(即本申请中的第二设备),其中,第一设备和第二设备经路由设备进行数据传输。
第十三方面的技术效果可以参见上述对第四方面或其任意一种可选的实现方式、第五方面或其任意一种可选的实现方式、第六方面或其任意一种可选的实现方式、第七方面、第九方面以及第十一方面的技术效果的相关描述,此处不再赘述。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种通信系统的架构示意图;
图2为本发明实施例提供的一种手机的硬件示意图;
图3为本发明实施例提供的一种路由器的硬件示意图;
图4为本发明实施例提供的拥塞控制的方法示意图一;
图5为本发明实施例提供的预设时间段的示意图;
图6为本发明实施例提供的拥塞控制的方法示意图二;
图7为本发明实施例提供的第一设备的结构示意图一;
图8为本发明实施例提供的第一设备的结构示意图二;
图9为本发明实施例提供的一种路由设备的结构示意图一;
图10为本发明实施例提供的一种路由设备的结构示意图二;
图11为本发明实施例提供的第二设备的结构示意图一;
图12为本发明实施例提供的第二设备的结构示意图二。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本发明的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一设备和第二设备等是用于区别不同的设备,而不是用于描述设备的特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本发明的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个子流是指两个或两个以上的子流。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
下面首先对本发明实施例提供的一种拥塞控制的方法、装置及系统中涉及的一些概念进行解释说明。
MPTCP:是一种可以多路径并行传输的传输层协议,发送端与接收端可以采用MPTCP实现多路径并行传输数据。具体地,发送端和与接收端之间有多条传输路径,发送端与接收端可以通过该多条传输路径同时进行数据传输,即在该多条传输路径上同时传输多个
数据流(以下将数据流均简称为子流),如此,在发送端与接收端采用MPTCP进行数据传输时能够提高网络的吞吐量。
显示拥塞通告(Explicit Congestion Notification,ECN):一种可以对发送端与接收端之间传输的数据包进行标记,以指示发送端与接收端之间传输的数据包的拥塞情况的机制。具体地,发送端将数据包的ECN标识设置为用于表示该数据包支持ECN功能的数值,然后将该数据包发送给路由设备,路由设备接收到该数据包后,确定该数据包所在的子流是否发生拥塞,若该数据包所在的子流发生拥塞,路由设备将该数据包的ECN标识设置为用于表示该数据包所在的子流发生拥塞的数值。
其中,路由设备确定数据包所在的子流是否发生拥塞的方法将在下述实施例中进行详细地描述。
通常,在发送端和接收端采用MPTCP进行数据传输时,发送端和接收端采用MPTCP进行数据传输时需对发送端与接收端之间的多条传输路径(利用该多条传输路径进行数据传输的连接可以称为一个MPTCP连接)上传输的多个数据流(每条传输路径上传输的数据流称为一个子数据流,以下均简称子流)进行拥塞控制,为了保证网络中的MPTCP连接和TCP连接(发送端与接收端采用TCP进行数据传输时,发送端与接收端之间的利用单条传输路径进行数据传输的连接称为一个TCP连接)的公平性,通常需要使得每个MPTCP连接的吞吐量与每个TCP连接的吞吐量相等,但是由于发生拥塞的子流可能与多个子流中的其他子流共享带宽,因此如果按照上述方法对多个子流进行拥塞控制,可能导致拥塞控制的效果不显著。
为了解决上述问题,本发明实施例提供一种拥塞控制的方法、装置及系统,在发送端(即下述的第一设备)和接收端(即下述的第二设备)采用MPTCP进行数据传输时,对发送端和接收端之间的多条传输路径上传输的多个子流进行拥塞控制。具体地,发送端向路由设备发送第一数据包(将发送端发送的多个数据包中的一个数
据包称为第一数据包),路由设备接收到该第一数据包后,确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值,然后路由设备对该第一数据包进行拥塞标记,并将该第一数据包发送给接收端,接收端接收到进行了拥塞标记的该第一数据包后,在向发送端回复的第一确认包(即对第一数据包的确认包)中设置ECE标识,然后将该第一确认包发送给发送端,发送端接收到包括ECE标识的该第一确认包后,发送端开始监测该多条传输路径上传输的多个子流中除上述第一数据包所在的子流(以下简称为第一子流)之外的多个其他子流,并将多个其他子流中满足拥塞条件的子流(以下简称为多个第二子流)和第一子流归入一个集合,然后再对集合中的子流进行拥塞控制。与现有技术相比,由于本发明实施例可以将发送端和接收端之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流(这是由于相比于其他不共享带宽的子流,由于带宽是有限的,共享带宽的子流中有一个子流发生拥塞时,则共享带宽的其他子流也很有可能发生拥塞,因此可以在一定程度上认为满足拥塞控制的条件的子流是共享带宽的),即本发明实施例能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果,进一步可以提升MPTCP的传输性能。
本发明实施例中,为了准确地描述采用MPTCP进行数据传输的发送端和接收端,以下实施例均将发送端称为第一设备,将接收端称为第二设备。
图1为本发明实施例提供的一种通信系统的架构示意图。在该通信系统中,第一设备(即发送端)和第二设备(即接收端)采用MPTCP进行数据传输。如图1所示,该通信系统包括:第一设备10,第二设备11和路由设备12。路由设备连接第一设备和第二设备,第一设备将其所要发送的数据发送给路由设备,路由设备接收第一设
备发送的数据后,再将接收到的数据发送给第二设备,第二设备接收路由设备发送的数据,即完成第一设备与第二设备之间的数据传输。
需要说明的是,上述第一设备和第二设备可以为手机、平板电脑、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本、个人数字助理(Personal Digital Assistant,PDA)等终端设备。上述路由设备可以为路由器等。
本发明实施例中,以第一设备为手机为例对第一设备的硬件结构进行示例性的说明。图2为本发明实施例提供的一种手机的硬件示意图,如图2所示,本发明实施例提供的手机包括:射频(Radio Frequency,RF)电路110、存储器120、输入单元130、显示单元140、音频电路150、处理器160以及电源170等部件。下面对手机的各个构成部件进行示例性的说明。
RF电路110:用于收发信息或通话过程中,信号的接收和发送,RF电路110还可以通过无线通信与网络和其他设备通信。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。
存储器120:用于存储软件程序以及模块,存储器120主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图象播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件或其他易失性固态存储器件。
输入单元130:用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可以包括触摸面板131和其他输入设备132。触摸面板131,也称为触控面板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触摸面板131上或在触
摸面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。除了触摸面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、电源开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140:用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元140可以包括显示面板141,可选的,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板141。
音频电路150:用于将接收到的音频数据转成电信号,并将该电信号传输到扬声器151,扬声器151将电信号转换为声音信号输出到麦克风152;另一方面,麦克风152将收集的声音信号转换为电信号,由音频电路150接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。
处理器160:用于运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机100的各种功能和处理数据,从而对手机进行整体监控。
电源170:用于给手机的各个部件供电,比如电池。可选的,电源可以通过电源管理系统与处理器160逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
由于本发明实施例提供的第一设备和第二设备都为终端设备,即本发明实施例提供的第二设备也可以为手机,因此对于本发明实施例提供的第二设备的硬件示意图可以参见上述图2所示的手机的硬件示意图,此处不再赘述。
本发明实施例中,以路由设备为路由器为例对路由设备的硬件结构进行示例性的说明。图3为本发明实施例提供的路由器的硬件示意图,如图3所示,本发明实施例提供的路由器包括:处理器210、
存储器220和接口230等部件。下面对路由器的各个构成部件进行示例性的说明。
处理器210:用于负责交换路由信息、路由表查找以及转发数据包,如处理维护路由器所需的各种表格以及路由运算等。
存储器220:用于存储路由器的配置、操作系统、路由协议软件等。路由器中可以有多种内存,如只读内存储器(Read Only Memory ROM)随机存储器(Random Access Memory,RAM)动态内存储器(DRAM)、闪存(Flash)。
接口230:用于路由器发送和接收数据包。路由器中的接口230包括局域网接口和广域网接口,另外,路由器本身没有输入和终端显示设备,路由器接口中还包括控制端口,用于用户或管理员利用终端与路由器进行通信,完成路由器配置。
为了更加清楚地理解本发明实施例的技术方案,下面对本发明实施例提供的拥塞控制的方法进行示例性的描述。
结合图1,如图4所示,本发明实施例提供一种拥塞控制的方法,该方法可以包括:
S101、第一设备向路由设备发送第一数据包。
本发明实施例中,在第一设备与第二设备采用MPTCP进行数据传输时,第一设备可以通过路由设备将待传输的多个数据包(该多个数据包组成第一设备向第二设备发送的数据)依次发送给第二设备,其中,第一设备向第二设备发送的多个数据包中包括第一数据包。由于路由设备可以根据数据传输过程中各个信道的实际情况,选择最佳的传输路径,并按照接收到数据包的先后顺序将其接收到的数据包发送出去,因此可以以路由设备作为第一设备与第二设备进行数据传输的中转设备,完成第一设备与第二设备之间的数据传输。
需要说明的是,本发明实施例中,第一设备向路由设备发送数据包时,第一设备是按照待发送的数据包的顺序(例如,该顺序可以为第一设备生成这些数据包的顺序)连续地向路由设备发送数据
包的。
S102、路由设备接收第一数据包。
S103、路由设备确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值。
S104、路由设备对第一数据包进行拥塞标记,并将该第一数据包加入数据包队列。
本发明实施例中,路由设备接收到第一设备发送的第一数据包后,路由设备首先计算数据包队列的平均队列长度。当数据包队列的平均队列长度小于第一预设阈值时,表示路由设备当前的数据包队列没有发生拥塞,路由设备将该第一数据包加入数据包队列,等待路由设备转发。当数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值时,表示路由设备当前的数据包队列可能发生拥塞,路由设备对该第一数据包进行拥塞标记,然后将该第一数据包加入数据包队列,等待路由设备转发。当数据包队列的平均队列长度大于第二预设阈值时,表示路由设备当前的数据包队列已经发生拥塞,路由设备将该第一数据包丢弃。
需要说明的是,路由设备每接收到第一设备发送的一个数据包,路由设备就会计算一次数据包队列的平均队列长度。
可选的,上述路由设备计算数据包队列的平均队列长度的方法为:
Qavg'=(1-w)×Qavg+w×Q
其中,上述公式中,Qavg'为路由设备接收到第一设备发送的第一数据包时,路由设备当前计算的数据包队列的平均队列长度,Qavg为路由设备接收到上一个数据包时,路由设备计算的数据包队列的平均队列长度,w为数据包队列的权重,Q为当前数据包队列的长度(即当前数据包队列的实际长度)。
可选的,上述第一预设阈值的计算方法可以为:
其中,上述公式中,K1为第一预设阈值,C为上述第一设备与第二
设备之间的链路的容量(即该条链路上可传输的数据流的最大值),RTT为该条链路上传输的一个子流(即该条链路上传输的多个子流中的任意一个子流)的往返时延。
可选的,本发明实施例中,上述RTT也可以是第一设备与第二设备之间的链路上传输的多个子流的平均往返时延,具体可以根据实际需求确定,本发明实施例不作限定。
可选的,上述第二预设阈值的计算方法可以为:
K2≥2*K1
其中,上述公式中,K2为第二预设阈值。
本发明实施例中,由于链路的容量和该链路上传输的子流的往返时延能够反映路由设备的数据包队列的长度,因此计算上述第一预设阈值时参考链路的容量和该链路上传输的子流的往返时延能够使得路由设备更加准确地确定第一数据包的是否发生拥塞。
本发明实施例中,路由设备确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值后,路由设备通过对上述第一数据包进行拥塞标记,可以使得当路由设备将该第一数据包发送给第二设备时,第二设备可以获知其接收到的数据包所在的子流的拥塞情况。
需要说明的是,上述路由设备对上述第一数据包进行拥塞标记的方法具体为:路由设备对该第一数据包设置ECN标识,该ECN标识用于告知第二设备其接收到的第一数据包所在的子流可能发生拥塞。
其中,本发明实施例中,对于ECN标识的具体设置方法可以参考现有技术的RFC3168标准中对于ECN标识的设置方法的相关描述,本发明实施例不作详细介绍。
本发明实施例中,路由设备可以依次向第二设备发送数据包队列中的数据包,为了更好地理解本发明实施例提供的拥塞控制的方法,在本发明实施例中均以一个数据包为例对本发明实施例提出的拥塞控制的方案进行示例性说明。例如,以发送第一数据包或者第
二数据包为例进行示例性的说明。
S105、路由设备向第二设备发送第一数据包。
本发明实施例中,路由设备向第二设备发送数据包队列中的数据包,具体地,路由设备按照数据包队列中数据包的先后顺序将当前队列中的数据包发给第二设备。
需要说明的是,本发明实施例中,由于路由设备接收第一设备发送的数据包的速度可能大于路由设备转发(即路由设备向第二设备发送)第一设备发送的数据包的速度,因此,路由设备接收到第一设备发送的数据包时,会按照其接收这些数据包的先后顺序将这些数据包添加到路由设备中的数据包队列中,然后路由设备再按照先进先出原则(即路由设备将先接收到的数据包先转发出去)将该数据包队列中的数据包依次发送给第二设备。
S106、第二设备接收第一数据包。
本发明实施例中,第二设备接收的第一数据包之后,第二设备需向第一设备回复对第一数据包的确认包,即第一确认包。
S107、第二设备对第一确认包进行显示拥塞回执(ECE)标记。
S108、第二设备向第一设备发送第一确认包。
本发明实施例中,第二设备接收到路由设备发送的第一数据包后,第二设备向第一设备回复对第一数据包的第一确认包。具体的,第二设备为了告知第一设备需要进行拥塞控制,第二设备可以在第一确认包中设置ECE标识,该ECE标识是第二设备对其接收到的第一数据包中的ECN标识的回执标识,该ECE标识用于告知第一设备此时第一数据包所在子流(本发明实施例中可以称为第一子流)可能发生拥塞,进而第一设备能够对这些可能发生拥塞的子流进行拥塞控制。对于ECE标识的具体设置方法可以参考现有技术的RFC3168标准中对于ECE标识的设置方法的相关描述,本发明实施例不作详细介绍。
S109、第一设备接收第一确认包。
本发明实施例中,第一设备接收到第二设备发送的第一确认包
之后,第一设备即可获知第一数据包所在的第一子流可能发生拥塞,即第一设备需要对此拥塞进行处理。
S110、第一设备在第一确认包中的ECE标识的指示下,确定第一子流集合。
本发明实施例中,第一子流集合包括多个子流中除第一子流之外的其他子流中满足拥塞控制条件的子流(以下均简称为多个第二子流)和第一子流。
具体的,第一设备确定第一子流集合的方法是:第一设备在第一确认包中的ECE标识的指示下,监测第一设备和第二设备之间的多条传输路径上传输的多个子流中除第一子流之外的其他子流,然后将这些其他子流中满足拥塞控制条件的子流与第一子流归入一个子流集合,即上述的第一子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本发明实施例能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果。
可选的,本发明实施例中,上述拥塞控制条件可以为下述A、B和C中的至少一项:
A、子流的时延大于预设的时延阈值。
B、子流发生丢包事件。
C、接收到子流的数据包的确认包、且该子流的数据包的确认包中包括ECE标识。
可选的,本发明实施例中,上述满足拥塞控制条件的子流可以包括下述A1、B1和C1中的至少一项:
A1、第一设备和第二设备之间的多条传输路径上传输的多条子流中除第一子流之外的其他子流中,时延超过预设的时延阈值的子流。
B1、第一设备和第二设备之间的多条传输路径上传输的多条子流中除第一子流之外的其他子流中,发生丢包事件的子流。
C1、当第一设备接收到某个数据包的包括ECE标识的确认包时,该数据包所在的子流,该数据包所在的子流为第一设备和第二设备之间的多
条传输路径上传输的多条子流中除第一子流之外的其他子流中的子流。
本发明实施例中,由于上述三个拥塞控制条件均能够反映第一设备与第二设备之间的多条传输路径上传输的多个子流的拥塞情况,因此,路由设备可以根据上述三个拥塞控制条件中的至少一个来确定可能发生拥塞的子流。
可选的,本发明实施例提供的拥塞控制的方法中,上述S110具体可以通过S110a-S110c实现:
S110a、第一设备在预设时间段内监测多个子流中除第一子流之外的其他子流。
本发明实施例中,第一设备接收到第一确认包,并在第一确认包中的ECE标识的指示下,开始在预设的时间段内监测第一设备和第二设备之间的多条传输路径上传输的多个子流中除第一子流之外的其他子流中的数据包,从而确定该数据包所在的子流是否发生拥塞。
可选的,本发明实施例中,上述预设的时间段的大小可以等于第一子流的往返时延。具体的,该预设的时间段可以为从第一设备接收到包括ECE标识的第一确认包的时刻起,向前与向后分别延伸相等时间所形成的时间段。例如,如图5所示,假设预设的时间段的大小为第一子流的往返时延RTTr,且第一设备接收到包括ECE标识的第一确认包的时刻为T,则上述预设的时间段可以表示为从T时刻起向前延伸并且向后延伸所形成的时间段,即如图5所示的X至Y所表示的时间段。
S110b、第一设备确定多个第二子流。
本发明实施例中,第一设备在预设时间段内监测第一设备和第二设备之间的多条传输路径上传输的多个子流中除第一子流之外的其他子流,并将其中满足拥塞控制条件的子流确定为多个第二子流为。
S110c、第一设备将第一子流和多个第二子流确定为第一子流集
合。
本发明实施例中,第一设备确定多个第二子流后,可以将第一子流和多个第二子流作为第一子流集合,进而第一设备可以对集合中的子流进行拥塞控制。
S111、第一设备对第一子流集合中的子流进行拥塞控制。
本发明实施例中,第一设备确定第一子流集合后,继续监测第一子流集合中的每一个子流,并根据每一个子流的拥塞情况调整该子流的发送窗口(该发送窗口为在该子流的一个往返时延RTTr内,第一设备与第二设备能够传输的数据包的个数),以实现对第一子流集合中的子流的拥塞控制。
可选的,对于第一子流集合中的每个子流,第一设备可以在该子流的每一个往返时延内,计算该子流当前的拥塞度,并更新该子流的拥塞度,然后再根据更新后的该子流的拥塞度调整发送窗口的大小,以实现对该子流的拥塞控制,从而实现对第一子流集合中的每个子流的拥塞控制。
可选的,本发明实施例中,第一设备可以采用集合拥塞控制的方法对第一子流集合中的子流进行拥塞控制,以第一子流集合中的一个子流(以下称为子流r)为例,该集合拥塞控制的方法可以包括S1-S3三个步骤:
S1、第一设备计算子流r当前的拥塞度。
可选的,上述子流r当前的拥塞度的计算方法为:
Tr=p1/p
其中,上述公式中,Tr为子流r当前的拥塞度,p1为子流r的一个往返时延内第一设备接收到的子流r中的包括ECE标识的确认包的个数,p为子流r的一个往返时延内第二设备接收到的子流r中的数据包的个数。
S2、第一设备更新子流r拥塞度。
可选的,上述更新子流r的拥塞度的方法为:
βr'=g*Tr+(1-g)*βr
上述公式中,βr'为更新后的子流r的拥塞度,g为拥塞度的权重,βr为上一个往返时延内更新后的子流r的拥塞度。
S3、第一设备调整子流r的发送窗口的大小。
具体的,第一设备调整子流r的发送窗口的大小包括:减小子流r的发送窗口的大小,即如下步骤S3a;或者增大子流r的发送窗口的大小,即如下步骤S3b。
S3a、第一设备减小子流r的发送窗口的大小。
可选的,本发明实施例中,当上述第一子流集合中的子流r发生丢包事件,即子流r可能发生拥塞时,第一设备可以减小子流r的发送窗口wr。
可选的,上述减小子流r的发送窗口wr的方法为:
其中,上述公式中,wr'为减小后的子流r的发送窗口,wr为当前子流r的发送窗口,βr'为当前一个往返时延内更新后的子流r的拥塞度。
本发明实施例中,第一设备通过减小第一子流集合中的子流的发送窗口,能够减缓第一设备发送数据包的速度,从而实现对第一子流集合中的子流的拥塞控制。
需要说明的是,本发明实施例中,上述子流r发生丢包事件可以为子流r上预设个数的数据包发生丢失,该预设个数可以为1,也可以为其他预设的数值,本发明实施例不作限定。
S3b、第一设备增大子流r的发送窗口的大小。
可选的,本发明实施例中,当上述第一子流集合的子流r未发生丢包事件,即子流r没有发生拥塞时,第一设备可以增大子流r的发送窗口wr。
可选的,上述增大子流r的发送窗口wr的方法为:
其中,上述公式中,wr'为增大后的子流r的发送窗口,ws为第一子流集合中的所有子流的发送窗口之和,wr为当前子流r的发送窗口,βr'为当前一个时延内更新后的子流r的拥塞度,r∈s表示子流r为第一子流集合中的s个子流中的一个子流。
本发明实施例中,第一设备通过增大第一子流集合中的子流的发送窗口,能够加快第一设备发送数据包的速度,从而实现对子流r的拥塞控制。
本发明实施例提供的拥塞控制的方法,第一设备与第二设备采用MPTCP进行数据传输时,对第一设备和第二设备之间的多条传输路径上传输的多个子流进行拥塞控制。具体地,第一设备向路由设备发送第一数据包,路由设备接收到该第一数据包后,确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值,然后路由设备对该第一数据包进行拥塞标记,将该第一数据包加入数据包队列,并将该第一数据包发送给第二设备,第二设备接收到该有拥塞标记的第一数据包后,在向第一设备回复的第一确认包中设置ECE标识,然后将该第一确认包发送给第一设备,第一设备接收到该包括ECE标识的第一确认包后,第一设备开始监测该多条传输路径上传输的多个子流中除第一子流之外的多个其他子流,并将多个其他子流中满足拥塞条件的子流和第一子流归入一个集合,然后再对集合中的子流进行拥塞控制。与现有技术相比,由于本发明实施例可以将第一设备和第二设备之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本发明实施例能够在一定程度上将共享带宽的多个子流
归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果。
可选的,结合图4,如图6所示,本发明实施例提供的一种拥塞控制的方法,在上述S110之后,该方法还可以包括:
S112、第一设备向路由设备发送第二数据包。
本发明实施例中,第一设备通过路由设备将待传输的多个数据包依次发送给第二设备,该多个数据包中包括第二数据包。
S113、路由设备接收第二数据包。
S114、路由设备确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值。
S115、路由设备对第二数据包进行拥塞标记,并将该第二数据包加入数据包队列。
S116、路由设备向第二设备发送第二数据包。
S117、第二设备接收第二数据包。
本发明实施例中,第二设备接收的第二数据包之后,第二设备需向第一设备回复对第二数据包的确认包,即第二确认包。
S118、第二设备对第二确认包进行ECE标记。
S119、第二设备向第一设备发送第二确认包。
对于S112-S119的描述具体可以参见上述对S101-S108的相关描述,此处不再赘述。
需要说明的是,本发明实施例可以不限定S101-S108与S112-S119的执行顺序。即本发明实施例可以先执行S101-S108,后执行S112-S119;也可以先执行S112-S119,后执行S101-S108;还可以同时执行S101-S108和S112-S119。
可选的,如图6所示,在上述S108之后,在对第一子流集合中的子流进行拥塞控制之前,本发明提供的拥塞控制的方法还可以包括:
S120、第一设备接收第二确认包。
对于S120的描述具体可以参见上述对S109的相关描述,此处不再
赘述。
S121、第一设备在第二确认包中的ECE标识的指示下,确定第二子流集合。
可选的,结合图6,上述S121具体可以通过S121a-S121c实现:
S121a、第一设备在预设时间段内监测第一子流集合中除该集合中的第三子流之外的其他子流。
S121b、第一设备确定多个第四子流。
本发明实施例中,上述第三子流为第二数据包所在的子流,多个第四子流为第一子流集合中除第三子流之外的其他子流中满足拥塞控制条件的子流。
S121c、第一设备将第三子流和多个第四子流确定为第二子流集合。
对于S121a-S121c的描述具体可以参见上述对S110a-S110c的相关描述,此处不再赘述。
本发明实施例中,第一设备在第二确认包中的ECE标识的指示下从第一子流集合中确定第二子流集合的方法,与上述S110中第一设备在第一确认包中的ECE标识的指示下从第一设备与第二设备之间的多条传输路径上传输的多个子流中确定第一子流集合的方法类似,对于S116的描述具体可以参见上述对S110的相关描述,此处不再赘述。
本发明实施例中,第一设备确定第一子流集合之后,第一设备可以从第一子流集合中进一步确定第二子流集合(第二子流集合是第一子流集合的子集),并对第二子流集合中的子流进行拥塞控制,如此,能够使得第一设备确定的待进行拥塞控制的子流集合的准确率比较高,从而可以显著地提高拥塞控制的效果。
可选的,如图6所示,上述S111具体可以包括:
S111a、第一设备对第二子流集合中的子流进行拥塞控制。
本发明实施例中,S111a中第一设备对第二子流集合中的子流进行拥塞控制的方法与S111中第一设备对第一子流集合中的子流进行拥塞控制的方法类似,对于S111a的描述具体可以参见上述对S111
的相关描述,此处不再赘述。
其中,上述S111a与S111不同的是:第一设备进行拥塞控制的对象不同。S111a中第一设备进行拥塞控制的对象是第二子流集合中的子流,S111中第一设备进行拥塞控制的对象是第一子流集合中的子流。
可选的,结合图6,本发明实施例提供的拥塞控制的方法,还可以包括:
S122、第一设备对非第一子流集合的子流进行拥塞控制。
本发明实施例中,非第一子流集合中的子流包括第一设备与第二设备之间的多条传输路径上传输的多个子流中除第一子流集合中的子流之外的其他子流。
可选的,本发明实施例中,第一设备可以采用单独拥塞控制的方法对非第一子流集合的子流进行拥塞控制(例如,以对非第一子流集合的子流k进行拥塞控制进行示例性说明),该单独拥塞控制的方法可以包括:减小子流k的发送窗口的大小,即如下步骤Q1a;或者增大子流k的发送窗口的大小,即如下步骤Q1b。
Q1a、第一设备减小子流k的发送窗口的大小。
可选的,本发明实施例中,当子流k发生丢包事件,即子流k可能发生拥塞,第一设备可以减小子流k的发送窗口wk。
可选的,上述减小子流k的发送窗口wk的方法为:
其中,上述公式中,wk'为减小后的子流k的发送窗口,wk为当前子流k的发送窗口。
本发明实施例中,第一设备通过减小子流k的发送窗口,能够减缓第一设备发送数据包的速度,从而实现对子流k的拥塞控制。
Q1b、第一设备增大子流k的发送窗口的大小。
可选的,本发明实施例中,当第一设备接收到子流k未发生丢包事件,即子流k没有拥塞时,第一设备可以增大子流k的发送窗口wk。
可选的,上述增大子流k的发送窗口wk的方法为:
上述公式中,wk'为增大后的子流k的发送窗口,wk为增大前子流k的发送窗口。
本发明实施例中,第一设备通过增大子流k的发送窗口,能够加快第一设备发送数据包的速度,从而实现对子流k的拥塞控制。
需要说明的是,本发明实施例可以不限定S111与S122的执行顺序。即本发明实施例可以先执行S111,后执行S122;也可以先执行S122,后执行S111;还可以同时执行S111和S122。
本发明实施例中,第一设备可以对第一子流集合中的子流进行拥塞控制,还可以对非第一子流集合中的子流进行拥塞控制,如此,第一设备可以对第一设备与第二设备之间的多条传输路径上传输的多个子流全部都进行拥塞控制,从而能够更加显著地提高拥塞控制的效果。
可选的,结合图6,本发明提供的拥塞控制的方法,还可以包括:
S123、第一设备对非第二子流集合的子流进行拥塞控制。
本发明实施例中,该非第二子流集合的子流包括上述多个子流中除上述第二子流集合中的子流之外的其他子流,第一设备对非第二子流集合的子流进行拥塞控制的方法与上述S122中第一设备对非第一子流集合的子流进行拥塞控制的方法类似,对于S123的描述具体可以参见上述对S122的相关描述,此处不再赘述。
其中,上述S123与S122不同的是:第一设备进行拥塞控制的对象不同。S123中第一设备进行拥塞控制的对象是非第二子流集合中的子流,S122中第一设备进行拥塞控制的对象是非第一子流集合中的子流。
需要说明的是,本发明实施例中,在执行S111时还可以执行S122,或者在执行S111a时还可以执行S123。
本发明实施例中,第一设备可以对第二子流集合中的子流进行拥塞
控制,还可以对非第二子流集合中的子流进行拥塞控制,如此,第一设备可以对第一设备与第二设备之间的多条传输路径上传输的多个子流全部都进行拥塞控制,从而能够更加显著地提高拥塞控制的效果。
可选的,结合图4或图6,本发明提供的拥塞控制的方法,在第一设备向路由设备发送数据包(例如上述第一数据包或者第二数据包)之前,该方法还可以包括:
S124、第一设备标记待发送的数据包。
本发明实施例中,第一设备向路由设备发送数据包之前,首先可以对待发送的数据包进行标记,即将上述数据包的ECN标识设置为支持ECN标识,该支持ECN标识用于指示路由设备该数据包支持ECN功能,路由设备将带有上述支持ECN标识的数据包发送给第二设备,第二设备接收到该数据包后,向第一设备发送确认包(例如第一确认包或者第二确认包),第一设备接收确认包后,可以获知该数据包所在的子流可能发生拥塞,并在确认包中的ECE标识的指示下,根据拥塞控制条件从多条子流中确定可能发生拥塞的子流(例如第一子流集合中的子流或者第二子流集合中的子流),进而实现第一设备对这些可能发生拥塞的子流进行拥塞控制。
本发明实施例提供的拥塞控制的方法,第一设备与第二设备采用MPTCP进行数据传输时,对第一设备和第二设备之间的多条传输路径上传输的多个子流进行拥塞控制。具体地,第一设备向路由设备发送第一数据包,路由设备接收到该第一数据包后,确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值,然后路由设备对该第一数据包进行拥塞标记,将该第一数据包加入数据包队列,并将该第一数据包发送给第二设备,第二设备接收到该有拥塞标记的第一数据包后,在向第一设备回复的第一确认包中设置ECE标识,然后将该第一确认包发送给第一设备,第一设备接收到该包括ECE标识的第一确认包后,第一设备开始监测该多条传输路径上传输的多个子流中除第一子流之外的多个其他子流,并将多个其他子流中满足拥塞条件的子流和第一子流归
入一个集合,然后再对集合中的子流进行拥塞控制。与现有技术相比,由于本发明实施例可以将第一设备和第二设备之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本发明实施例能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果,进一步可以提升MPTCP的传输性能。
上述主要从各个设备之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个设备,例如第一设备、第二设备和路由设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对第一设备、第二设备和路由设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本发明实施例提供一种设备,该设备可以为第一设备,在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的第一设备的一种可能的结构示意图。该第一设备包括发送模块310、接收模块320、确定模块330和控制模块340。发送模
块310用于支持第一设备执行上述方法实施例中的S101和S112。接收模块320用于支持第一设备执行上述方法实施例中的S109和S120。确定模块330用于支持第一设备执行上述方法实施例中的S110(包括S110a-S110c)、S121(包括S121a-S121c)和S124。控制模块340用于支持第一设备执行上述方法实施例中的S111、S111a、S112以及S122-S123。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,此处不再赘述。
在采用集成的单元的情况下,图8示出了上述实施例中所涉及的第一设备的一种可能的结构示意图。该第一设备包括:处理模块420和通信模块430。处理模块420用于对第一设备的动作进行控制管理,例如,处理模块420用于支持第一设备执行上述方法实施例中的S110(包括S110a-S110c)、S111、S111a、S121(包括S121a-S121c)、S112以及S122-S124,和/或用于本文所描述的技术的其它过程。通信模块430用于支持第一设备与其他网络实体的通信,例如与图1、图4或图6中示出的路由设备和第二设备之间的通信。如图8所示,该第一设备还可以包括存储模块410,用于存储第一设备的程序代码和数据,本发明实施例对此不作具体限定。
其中,上述处理模块420可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等;该处理器或控制器可以为上述如图2所示的手机的处理器160。通信模块430可以是收发器、收发电路或通信接口等;该收发器、收发电路或通信接口
可以为上述如图2所示的手机的射频电路110。存储模块410可以是存储器;该存储器可以为上述如图2所示的手机的存储器120。
对于本发明实施例所涉及的第一设备包括的其他部件,具体可以参见上述对如图2所示的手机的结构的相关描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括指令,当上述第一设备的处理器执行该指令时,该第一设备执行上述方法实施例所示的方法流程中第一设备执行的各个步骤。
本发明实施例提供一种路由设备,在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的路由设备的一种可能的结构示意图。该路由设备包括发送模块510、接收模块520和确定模块530。发送模块510用于支持路由设备执行上述方法实施例中的S105和S116。接收模块520用于支持路由设备执行上述方法实施例中S102和S113。确定模块530用于支持路由设备执行上述方法实施例中的S103、S104、S114以及S115。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,此处不再赘述。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的路由设备的一种可能的结构示意图。该路由设备包括:处理模块620和通信模块630。处理模块620用于对路由设备的动作进行控制管理,例如,处理模块620用于支持路由备执行上述方法实施例中的S103、S104、S114以及S115,和/或用于本文所描述的技术的其它过程。通信模块630用于支持路由设备与其他网络实体的通信,例如与图1、图4或图6中示出的第一设备和第二设备之间的通信。如图10所示,该路由设备还可以包括存储模块610,用于存储路由设备的程序代码和数据,本发明实施例对此不作具体限定。
其中,上述处理模块620可以是处理器或控制器,例如可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部
件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等;该处理器或者控制器可以为上述如图3所示的路由设备的处理器210。通信模块630可以是收发器、收发电路或通信接口;该收发器、收发电路或通信接口可以为上述如图3所示的路由设备的接口230。存储模块610可以是存储器;该存储器可以为上述如图3所示的路由设备的存储器220。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括指令,当上述路由设备的处理器执行该指令时,该路由设备执行上述方法实施例所示的方法流程中路由设备执行的各个步骤。
本发明实施例提供一种设备,该设备可以为第二设备,在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的第二设备的一种可能的结构示意图。该第二设备包括发送模块710、接收模块720和确定模块730。发送模块710用于支持第二设备执行上述方法实施例中的S108和S119。接收模块720用于支持第二设备执行上述方法实施例中的S106和S117。确定模块730用于支持第二设备执行上述方法实施例中的S107和S118。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,此处不再赘述。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的第二设备的一种可能的结构示意图。该终端设备包括:处理模块820和通信模块830。处理模块820用于对第二设备的动作进行控制管理,例如,处理模块820用于支持终端设备执行上述方法实施例中的S107和S118,和/或用于本文所描述的技术的其它过程;通信模块830用于支持第二设备与其他网络实体的通信,例如与图1、图4或图6中示出的路由设备和第一设备之间的通信。第二设备还可以包括存储模块810,用于存储第二设备的程序代码和数据,本
发明实施例对此不作具体限定。
其中,上述处理模块820可以是处理器或控制器,例如可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等;该处理器或控制器可以为上述如图2所示的手机的处理器160。通信模块830可以是收发器、收发电路或通信接口等;该收发器、收发电路或通信接口可以为上述如图2所示的手机的射频电路110。存储模块810可以是存储器,该存储器可以为上述如图2所示的手机的存储器120。
由于本发明实施例中,第一设备和第二设备可以为同一种手机,因此,对于本发明实施例所涉及的第二设备包括的各个部件,具体可以参见上述对如图2所示的手机的结构的相关描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有一个或多个程序,一个或多个程序包括指令,当上述第二设备的处理器执行该指令时,该第二设备执行上述方法实施例所示的方法流程中第二设备执行的各个步骤。
本发明实施例提供一种通信系统,该通信系统可以包括第一设备、路由设备和第二设备。本发明实施例提供的通信系统具体可以参见上述如图1所示的通信系统的架构示意图。上述第一设备可以为如图1所示的第一设备;上述路由设备可以为如图1中所示的路由器;上述第二设备可以为如图1中所示的第二设备。对于第一设备、路由设备和第二设备的描述具体可以参见上述方法实施例和装置实施例中的相关描述,此处不再赘述。
本发明实施例提供的通信系统系统,第一设备与第二设备采用MPTCP进行数据传输时,对第一设备和第二设备之间的多条传输路
径上传输的多个子流进行拥塞控制。具体地,第一设备向路由设备发送第一数据包,路由设备接收到该第一数据包后,确定数据包队列的平均队列长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值,然后路由设备对该第一数据包进行拥塞标记,将该第一数据包加入数据包队列,并将该第一数据包发送给第二设备,第二设备接收到该有拥塞标记的第一数据包后,在向第一设备回复的第一确认包中设置ECE标识,然后将该第一确认包发送给第一设备,第一设备接收到该包括ECE标识的第一确认包后,第一设备开始监测该多条传输路径上传输的多个子流中除第一子流之外的多个其他子流,并将多个其他子流中满足拥塞条件的子流和第一子流归入一个集合,然后再对集合中的子流进行拥塞控制。与现有技术相比,由于本发明实施例可以将第一设备和第二设备之间的多条传输路径上传输的多个子流中满足拥塞控制条件的子流归入一个子流集合,而在一定程度上这些满足拥塞控制条件的子流可能是共享带宽的子流,即本发明实施例能够在一定程度上将共享带宽的多个子流归入一个子流集合,并对该子流集合中的子流进行拥塞控制,如此可以显著地提高拥塞控制的效果。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器、闪存、只读存储器、可擦除可编程只读存储器、电可擦可编程只读存储器、寄存器、硬盘、移动硬盘、只读光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于第一设备、路由设备和第二设备中。当然,处理器和存储介质也可以作为分立组件存在于第一设备、路由设备和第二设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,
本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式
实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (17)
- 一种拥塞控制的方法,其特征在于,包括:第一设备接收第二设备发送的第一确认包,所述第一确认包中包括显示拥塞通告回执消息ECE标识,所述ECE标识用于指示所述第一设备进行拥塞控制,所述第一确认包为第一数据包的确认包,所述第一数据包为多个子流中的第一子流的数据包,所述多个子流为所述第一设备和所述第二设备之间的多条传输路径上传输的多个数据流;所述第一设备在所述ECE标识的指示下,确定第一子流集合,所述第一子流集合包括所述第一子流和多个第二子流,所述多个第二子流为所述多个子流中除所述第一子流之外的其他子流中满足拥塞控制条件的子流;所述第一设备对所述第一子流集合中的子流进行拥塞控制。
- 根据权利要求1所述的方法,其特征在于,所述第一设备确定第一子流集合之后,所述第一设备对所述第一子流集合中的子流进行拥塞控制之前,所述方法还包括:所述第一设备接收所述第二设备发送的第二确认包,所述第二确认包中包括所述ECE标识,所述第二确认包为第二数据包的确认包,所述第二数据包为所述第一子流集合中的一个子流的数据包;所述第一设备在所述ECE标识的指示下,确定第二子流集合,所述第二子流集合为所述第一子流集合的子集,所述第二子流集合包括所述一个子流;所述第一设备对所述第一子流集合中的子流进行拥塞控制,包括:所述第一设备对所述第二子流集合中的子流进行拥塞控制。
- 根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述第一设备对非第一子流集合的子流进行拥塞控制,所述非第一子流集合的子流包括所述多个子流中除所述第一子流集合中的子流之外的其他子流。
- 根据权利要求1至3任意一项所述的方法,其特征在于,所述第一设备在所述ECE标识的指示下,确定第一子流集合,包括:所述第一设备在所述ECE标识的指示下,在预设时间段内监测所述多个子流中除所述第一子流之外的其他子流;所述第一设备将所述多个子流中除所述第一子流之外的其他子流中满足所述拥塞控制条件的子流,确定为所述多个第二子流;所述第一设备将所述第一子流和所述多个第二子流确定为所述第一子流集合。
- 根据权利要求1至4任意一项所述的方法,其特征在于,所述拥塞控制条件包括下述三个条件中的至少一项:子流的时延大于预设的时延阈值;子流发生丢包事件;以及接收到子流的数据包的确认包、且所述子流的数据包的确认包中包括所述ECE标识。
- 一种拥塞控制的方法,其特征在于,包括:路由设备接收第一设备发送的第一数据包,所述第一数据包为所述第一设备向第二设备发送的数据包;所述路由设备确定数据包队列的平均长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值,所述第二预设阈值大于所述第一预设阈值,所述数据包队列包括所述路由设备待发送的数据包;所述路由设备确定所述数据包队列的平均长度大于或者等于所述第一预设阈值,并且小于或者等于所述第二预设阈值之后,所述路由设备对所述第一数据包进行拥塞标记,并将所述第一数据包加入所述数据包队列;所述路由设备依次向所述第二设备发送所述数据包队列中的数据包。
- 一种设备,其特征在于,包括接收模块,确定模块和控制模块;所述接收模块,用于接收第二设备发送的第一确认包,所述第一确认包中包括ECE标识,所述ECE标识用于指示所述设备进行拥塞控制,所述第一确认包为第一数据包的确认包,所述第一数据包为多个子流中的第一子流的数据包,所述多个子流为所述设备和所述第二设备之间的多条传输路径上传输的多个数据流;所述确定模块,用于在所述接收模块接收的所述ECE标识的指示下,确定第一子流集合,所述第一子流集合包括所述第一子流和多个第二子流,所述多个第二子流为所述多个子流中除所述第一子流之外的其他子流中满足拥塞控制条件的子流;所述控制模块,用于对所述确定模块确定的所述第一子流集合中的子流进行拥塞控制。
- 根据权利要求8所述的设备,其特征在于,所述接收模块,还用于在所述确定模块确定第一子流集合之后,在所述控制模块对所述第一子流集合中的子流进行拥塞控制之前,接收所述第二设备发送的第二确认包,所述第二确认包中包括所述ECE标识,所述第二确认包为第二数据包的确认包,所述第二数据包为所述第一子流集合中的一个子流的数据包;所述确定模块,还用于在所述接收模块接收的所述ECE标识的指示下,确定第二子流集合,所述第二子流集合为所述第一子流集合的子集,所述第二子流集合包括所述一个子流;所述控制模块,具体用于对所述确定模块确定的所述第二子流集合中的子流进行拥塞控制。
- 根据权利要求8或9所述的设备,其特征在于,所述控制模块,还用于对非第一子流集合的子流进行拥塞控制, 所述非第一子流集合的子流包括所述多个子流中除所述第一子流集合中的子流之外的其他子流。
- 根据权利要求8至10任意一项所述的设备,其特征在于,所述确定模块,具体用于在所述接收模块接收的所述ECE标识的指示下,在预设时间段内监测所述多个子流中除所述第一子流之外的其他子流;并将所述多个子流中除所述第一子流之外的其他子流中满足所述拥塞控制条件的子流,确定为所述多个第二子流;以及将所述第一子流和所述多个第二子流确定为所述第一子流集合。
- 根据权利要求8至11任意一项所述的设备,其特征在于,所述拥塞控制条件包括下述三个条件中的至少一项:子流的时延大于预设的时延阈值;子流发生丢包事件;以及所述接收模块接收到子流的数据包的确认包、且所述子流的数据包的确认包中包括所述ECE标识。
- 一种路由设备,其特征在于,包括接收模块,确定模块和发送模块;所述接收模块,用于接收第一设备发送的第一数据包,所述第一数据包为所述第一设备向第二设备发送的数据包;所述确定模块,用于在所述接收模块接收第一设备发送的数据包之后,确定数据包队列的平均长度大于或者等于第一预设阈值,并且小于或者等于第二预设阈值,并对所述第一数据包进行拥塞标记,以及将所述第一数据包加入所述数据包队列,所述第二预设阈值大于所述第一预设阈值,所述数据包队列包括所述路由设备待发送的数据包;所述发送模块,用于依次向所述第二设备发送所述确定模块加入所述第一数据包后的所述数据包队列中的数据包。
- 一种设备,其特征在于,所述设备包括处理器、收发器和存储器;所述存储器用于存储计算机执行指令,当所述设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述设备执行如权利要求1至5任意一项所述的拥塞控制的方法。
- 一种路由设备,其特征在于,所述路由设备包括处理器、收发器和存储器;所述存储器用于存储计算机执行指令,当所述路由设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述路由设备执行如权利要求6或7所述的拥塞控制的方法。
- 一种通信系统,其特征在于,包括如权利要求8至12任意一项或15所述的设备、如权利要求13、14或16所述的路由设备,以及第二设备,所述如权利要求8至12任意一项或15所述的设备为第一设备,所述第一设备和所述第二设备经所述路由设备传输数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201680086458.0A CN109314669A (zh) | 2016-09-20 | 2016-09-20 | 一种拥塞控制的方法、装置及系统 |
EP16916429.0A EP3499820B1 (en) | 2016-09-20 | 2016-09-20 | Congestion control method, apparatus, and system |
PCT/CN2016/099466 WO2018053688A1 (zh) | 2016-09-20 | 2016-09-20 | 一种拥塞控制的方法、装置及系统 |
US16/357,564 US10862817B2 (en) | 2016-09-20 | 2019-03-19 | Congestion control method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/099466 WO2018053688A1 (zh) | 2016-09-20 | 2016-09-20 | 一种拥塞控制的方法、装置及系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/357,564 Continuation US10862817B2 (en) | 2016-09-20 | 2019-03-19 | Congestion control method, apparatus, and system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018053688A1 true WO2018053688A1 (zh) | 2018-03-29 |
Family
ID=61689803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/099466 WO2018053688A1 (zh) | 2016-09-20 | 2016-09-20 | 一种拥塞控制的方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10862817B2 (zh) |
EP (1) | EP3499820B1 (zh) |
CN (1) | CN109314669A (zh) |
WO (1) | WO2018053688A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473855A (zh) * | 2022-08-22 | 2022-12-13 | 阿里巴巴(中国)有限公司 | 网络系统、数据传输方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11838209B2 (en) * | 2021-06-01 | 2023-12-05 | Mellanox Technologies, Ltd. | Cardinality-based traffic control |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318312A (zh) * | 2009-02-12 | 2012-01-11 | 英国电讯有限公司 | 控制带宽共享 |
CN103581035A (zh) * | 2012-08-01 | 2014-02-12 | 华为技术有限公司 | 一种多径tcp拥塞控制的方法、装置及系统 |
CN103973587A (zh) * | 2014-05-09 | 2014-08-06 | 清华大学 | 多路径网络拥塞控制方法及装置 |
CN104796350A (zh) * | 2015-04-29 | 2015-07-22 | 广西大学 | 一种基于连续报文标记的多路径tcp拥塞控制方法 |
WO2015174901A1 (en) * | 2014-05-15 | 2015-11-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and devices for controlling usage of multi-path tcp |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379515B1 (en) * | 2007-02-01 | 2013-02-19 | F5 Networks, Inc. | TCP throughput control by imposing temporal delay |
US20100246400A1 (en) * | 2009-03-26 | 2010-09-30 | Kyocera Corporation | Communication device and method |
US20120054583A1 (en) * | 2010-08-27 | 2012-03-01 | Raytheon Company | Method and system of sub-packet error correction |
US9391911B1 (en) * | 2011-07-15 | 2016-07-12 | Google Inc. | Congestion window modification |
US9042227B2 (en) * | 2012-01-17 | 2015-05-26 | Netapp, Inc. | Systems , methods, and computer program products providing feedback for network congestion management |
CN102594713B (zh) * | 2012-03-29 | 2015-09-09 | 杭州华三通信技术有限公司 | 一种实现显式拥塞通告的方法及设备 |
US20140164641A1 (en) * | 2012-12-11 | 2014-06-12 | The Hong Kong University Of Science And Technology | Congestion control for data center traffic |
US9887921B2 (en) * | 2013-03-01 | 2018-02-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and nodes for handling congestion in backhaul networks |
US9755973B2 (en) * | 2013-08-07 | 2017-09-05 | Citrix Systems, Inc. | Performing QoS on unknown bandwidths through rate estimating TCP congestion handlers |
US9385959B2 (en) * | 2013-09-26 | 2016-07-05 | Acelio, Inc. | System and method for improving TCP performance in virtualized environments |
JP5887324B2 (ja) * | 2013-11-15 | 2016-03-16 | アラクサラネットワークス株式会社 | 中継装置および中継方法 |
KR102284050B1 (ko) * | 2014-09-11 | 2021-07-30 | 삼성전자주식회사 | 무선통신 시스템에서 전자 장치의 트래픽 제어 방법 및 장치 |
US20160088645A1 (en) * | 2014-09-23 | 2016-03-24 | Qualcomm Incorporated | Mechanisms to prevent tcp timeouts in dual sim dual active devices |
JPWO2016068308A1 (ja) * | 2014-10-31 | 2017-08-10 | 日本電気株式会社 | ゲートウェイ装置及びゲートウェイ装置の制御方法 |
CN105814934B (zh) * | 2014-11-19 | 2019-03-26 | 华为技术有限公司 | 处理被叫业务的方法、移动管理实体和归属用户服务器 |
US10425344B2 (en) * | 2015-12-18 | 2019-09-24 | Avago Technologies International Sales Pte. Limited | Avoiding dropped data packets on a network transmission |
-
2016
- 2016-09-20 WO PCT/CN2016/099466 patent/WO2018053688A1/zh unknown
- 2016-09-20 CN CN201680086458.0A patent/CN109314669A/zh active Pending
- 2016-09-20 EP EP16916429.0A patent/EP3499820B1/en active Active
-
2019
- 2019-03-19 US US16/357,564 patent/US10862817B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102318312A (zh) * | 2009-02-12 | 2012-01-11 | 英国电讯有限公司 | 控制带宽共享 |
CN103581035A (zh) * | 2012-08-01 | 2014-02-12 | 华为技术有限公司 | 一种多径tcp拥塞控制的方法、装置及系统 |
CN103973587A (zh) * | 2014-05-09 | 2014-08-06 | 清华大学 | 多路径网络拥塞控制方法及装置 |
WO2015174901A1 (en) * | 2014-05-15 | 2015-11-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method and devices for controlling usage of multi-path tcp |
CN104796350A (zh) * | 2015-04-29 | 2015-07-22 | 广西大学 | 一种基于连续报文标记的多路径tcp拥塞控制方法 |
Non-Patent Citations (4)
Title |
---|
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 * |
RAICIU, C. ET AL.: "Coupled Congestion Control for Multipath Transport Protocols", IETF REQUEST FOR COMMENTS: 6356, 31 October 2011 (2011-10-31), XP055195762 * |
XU, MINGWEI ET AL.: "Delay-based Congestion Control for MPTCP", 3 July 2016 (2016-07-03), XP032329241 * |
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 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473855A (zh) * | 2022-08-22 | 2022-12-13 | 阿里巴巴(中国)有限公司 | 网络系统、数据传输方法 |
CN115473855B (zh) * | 2022-08-22 | 2024-04-09 | 阿里巴巴(中国)有限公司 | 网络系统、数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3499820A4 (en) | 2019-08-21 |
US10862817B2 (en) | 2020-12-08 |
EP3499820B1 (en) | 2020-07-29 |
CN109314669A (zh) | 2019-02-05 |
US20190215276A1 (en) | 2019-07-11 |
EP3499820A1 (en) | 2019-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101709932B1 (ko) | 네트워크 정체를 회피하기 위한 방법 및 그의 장치 | |
US8400997B2 (en) | Wireless network communication system and method | |
WO2020220705A1 (zh) | 一种数据传输方法及对应的设备 | |
US9473408B1 (en) | Shortest first longer next routing with congestion reduction | |
US20100027424A1 (en) | Path Estimation in a Wireless Mesh Network | |
US20200092943A1 (en) | Radio link control transmission method and related products | |
CN109714267B (zh) | 管理反向队列的传输控制方法及系统 | |
TWI762686B (zh) | 資料傳輸方法及相關產品 | |
EP3846529B1 (en) | Data transmission method and device | |
KR20060032158A (ko) | 복수-무선 시스템을 위한 에너지-인지 통신 | |
WO2020192397A1 (zh) | 一种发送设备的调整方法和通信装置 | |
JP2006311495A (ja) | 無線通信装置、通信経路制御装置、通信経路制御方法及び通信システム | |
Hwang et al. | IA-TCP: a rate based incast-avoidance algorithm for TCP in data center networks | |
WO2018121535A1 (zh) | 一种负载均衡处理方法及装置 | |
US20140269711A1 (en) | Communication over multiple virtual lanes using a shared buffer | |
US20200196178A1 (en) | Measurement reporting control method and related product | |
Darabkh et al. | An improved cluster head selection algorithm for wireless sensor networks | |
WO2018053688A1 (zh) | 一种拥塞控制的方法、装置及系统 | |
CN113726681A (zh) | 一种网络拥塞控制方法及网络设备 | |
Pandi et al. | Analytical energy consumption model for packet transfer over wireless multihop network | |
WO2018227511A1 (zh) | 数据传输方法及相关产品 | |
WO2023125310A1 (zh) | 一种通信方法及通信装置 | |
WO2019028866A1 (zh) | 数据传输方法及相关产品 | |
WO2018133784A1 (zh) | 报文处理方法、设备及系统 | |
US20210092065A1 (en) | Multihop network routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16916429 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2016916429 Country of ref document: EP Effective date: 20190314 |