WO2018157819A1 - 多子流网络传输方法及装置 - Google Patents

多子流网络传输方法及装置 Download PDF

Info

Publication number
WO2018157819A1
WO2018157819A1 PCT/CN2018/077581 CN2018077581W WO2018157819A1 WO 2018157819 A1 WO2018157819 A1 WO 2018157819A1 CN 2018077581 W CN2018077581 W CN 2018077581W WO 2018157819 A1 WO2018157819 A1 WO 2018157819A1
Authority
WO
WIPO (PCT)
Prior art keywords
substreams
data
data packet
transmission
sent
Prior art date
Application number
PCT/CN2018/077581
Other languages
English (en)
French (fr)
Inventor
祝建建
刘伟
左晶
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201710278562.6A external-priority patent/CN108540380B/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP18760794.0A priority Critical patent/EP3582455B1/en
Publication of WO2018157819A1 publication Critical patent/WO2018157819A1/zh
Priority to US16/557,140 priority patent/US11171862B2/en
Priority to US17/499,069 priority patent/US20220103465A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections

Definitions

  • the present invention relates to the field of network transmission, and in particular, to a multi-substream data transmission method.
  • the MPTCP protocol is a new transport layer protocol developed by the IETF.
  • the MPTCP protocol uses a unique Meta-Sock for upper-layer applications to receive data, and Meta-Sock dispatches data dispatched by the application layer according to the scheduling algorithm of the data scheduling module. Distributed to Sub-Socks of multiple sub-flows it manages for transmission.
  • the scheduling principle of the default scheduling algorithm in the protocol stack is to preferentially schedule data transmission on the substream with the smallest round trip delay (RTT).
  • the data packets sent by the transmitting end in sequence on each substream may arrive out of order at the receiving end, and the receiving end needs to cache and process the out-of-order packets.
  • the network connection of the substream is not always in a stable state. For example, in a TCP connection, during the TCP slow start phase, the substream data transmission rate is limited by the change of the congestion window, and the change of the congestion window changes in the slow start phase to be close to the exponential change model.
  • the embodiment of the invention provides a network transmission method and a network transmission device, which can implement network data transmission under multiple sub-streams.
  • embodiments of the present application provide a network transmission method.
  • the method first determines at least one network state parameter of the multiple substreams, and when the network state parameters of the at least two substreams meet the preset condition, the data is aggregated and transmitted through the at least two substreams.
  • the aggregate transmission is a data packet transmitted by only one of at least two substreams, and each of the at least two substreams transmits different data packets.
  • the network state parameter satisfies the preset condition
  • the substream is in a stable transmission state.
  • the network delay of the substream to be transmitted is a stable and predictable state, so that the aggregate transmission can be performed according to the predicted network delay, thereby improving the stability and efficiency of the transmission.
  • the data is redundantly transmitted through the at least one substream, and the redundancy is performed.
  • the transmission is a data packet transmitted by each of the at least one substream, and each of the at least one substream is sent with the same data packet.
  • the substream is in an unsteady transmission state.
  • redundant transmission can improve the reliability of transmission and reduce the impact of transmission quality and rate due to unpredictable network delay.
  • the network parameter may include:
  • Real-time transmission rate the current network transmission rate of the sub-stream
  • Congestion control window refers to the maximum number of data packets that the sender can send at one time in the case of congestion control
  • Receiving window that is, the receiving party sets the receiving window according to its own receiving capability, and writes the window value into the window field in the TCP header, and transmits it to the sender, and the sending and receiving can thus know the number of accepting windows.
  • Number of transmitted packets The number of packets or the number of bytes of packets that have been successfully transmitted to the receiving end and acknowledged by the receiving end.
  • the number of unacknowledged packets transmitted the number of packets or the number of bytes of packets that have not been acknowledged by the receiving end after being sent to the receiving end.
  • Transmission time The time from the establishment of the network data link to the current time.
  • Transmission delay jitter the difference between the transmission order or time interval of data packet transmission and the transmission sequence or time interval to the receiving end
  • Packet loss rate The ratio of the number of lost packets to the transmitted data group.
  • the network parameter and the preset condition include that the two sub-flow link transmission delay differences are less than or equal to a corresponding threshold, and the sent data packet includes a first data packet, where The first data packet includes the first data packet transmission time.
  • the transmitting end sends the data packet, and obtains a link transmission delay difference calculated by the receiving end according to the data packet, thereby determining a link transmission delay difference.
  • the network parameter and the preset condition include that the two sub-flow link transmission delay differences are less than or equal to a corresponding threshold, and the sent data packet includes a first data packet, where The first data packet includes a second data packet identifier and a sending time difference between the first data packet and the second data packet, and the second data packet passes the at least two sub-packets with the first data packet Packets sent by different substreams in the stream.
  • the transmitting end sends the data packet, and obtains a link transmission delay difference calculated by the receiving end according to the data packet, thereby determining a link transmission delay difference.
  • the network parameter and the preset condition include that the two sub-flow link transmission delay differences are less than or equal to a corresponding threshold, and the sent data packet includes a first data packet, where The first data packet includes a third data packet identifier, and the third data packet is sent simultaneously with the first data packet or at a predetermined time interval, and passes through different ones of the at least two substreams The packet sent.
  • the transmitting end sends the data packet, and obtains a link transmission delay difference calculated by the receiving end according to the data packet, thereby determining a link transmission delay difference.
  • the second data packet identifier or the third data packet identifier may be an identifier directly used to indicate the data packet, or may be the same identifier as that carried in the second data packet or the third data packet, thereby being characterized The relationship between the first data packet and the second data packet or the third data packet.
  • the identifier may be a feature of the data packet itself, and the receiving end determines, by using a preset determining condition, that the received data packet is a second data packet or a third data packet.
  • the data is redundantly transmitted through the two substreams, respectively.
  • the network may be in an unstable transmission state, and data transmission through redundant transmission can improve the reliability of transmission.
  • a buffer queue to be sent is set for each substream for storing data packets allocated to the substream.
  • a data packet of the data is placed in the to-be-sent buffer queue of the one of the at least two sub-streams, where the sub-flow with the large delay is transmitted in the at least two sub-streams.
  • the amount of data in the cache queue is smaller than the amount of data in the buffer queue to be sent of the substream with a small transmission delay.
  • the time difference caused by the transmission delay of the sub-flow can be offset by the waiting time of the data packet in the buffer queue, thereby reducing the possibility of out-of-order when the data packet arrives at the receiving end, and improving data transmission. quality.
  • the difference in the amount of data of the buffer queue is the difference between the transmission delays of the sub-streams multiplied by the data transmission amount of the sub-flows per unit time.
  • the clock selection predicts the shortest sub-flow of the transmission time, so that the estimated time of each sub-flow is relatively consistent, thereby improving data consistency when the data is transmitted through the sub-stream, and reducing the generation of out-of-order data packets.
  • the number of data packets in the to-be-sent buffer queue of each sub-flow is not greater than a threshold corresponding to the sub-flow.
  • the number of data packets in the buffer queue to be sent of each substream and the number of bytes of the substream sending window satisfy a preset relationship.
  • the number of data packets in the buffer queue to be sent of each substream and the maximum allowed in-flight data packet on the substream satisfy a preset relationship.
  • a stable transmission set and an unstable transmission set are set for the substream.
  • the substream When at least one network state parameter of the substream satisfies a preset condition, the substream is placed in a stable transmission set, and vice versa.
  • the number of substreams in the stable transmission set is greater than or equal to 2, the substreams in the stable transmission set are aggregated and transmitted. Or, when all the substreams are in the stable transmission set, all the substreams are aggregated and transmitted.
  • the present invention also provides a network transmission device having the function of implementing the above method.
  • the functions may be implemented by hardware or by corresponding software implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the functions described above.
  • the network transmission device comprises a monitoring module for determining network state parameters of the substream and a transmitting module for aggregated transmission or redundant transmission according to the state parameters.
  • the sending module may perform the foregoing method to allocate a data packet to the substream for transmission.
  • the network transmission device structure includes a processor, a memory, and a network interface, and the processor is configured to support the network transmission device to perform a corresponding function in the foregoing method.
  • the network interface is configured to establish, with the receiving end, a communication link including multiple substreams.
  • the memory is for coupling with a processor that holds program instructions and data necessary for the device, as well as data to be transmitted.
  • an embodiment of the present invention provides a computer storage medium for storing computer software instructions for use by the management node, including a program designed to perform the above aspects.
  • the present invention when performing data transmission through multiple substreams, the present invention first determines at least one network state parameter of multiple substreams, when network state parameters of at least two substreams of the plurality of substreams meet preset conditions At this time, the data packet is aggregated and transmitted through the at least two substreams. Therefore, the substreams in which the aggregate transmission is performed are all substreams in a stable transmission state, which avoids that the transmission delay of the substream due to the unstable transmission state is difficult to predict, and the receiving end occupies due to receiving a large number of out-of-order packets. Cache space and consumption processing power. Improve the efficiency and stability of the aggregate transmission.
  • FIG. 1 is a schematic diagram of a scenario of an application scenario according to an embodiment of the present invention
  • FIG. 2 is a schematic block diagram of an MPTCP network device in an implementation of the present invention.
  • FIG. 3 is a schematic flowchart of a method in an embodiment of the present invention.
  • FIG. 5A is a schematic flowchart of a sequence of data packet transmission according to an embodiment of the present invention.
  • FIG. 5B is a schematic flowchart of a sequence of data packet transmission according to an embodiment of the present invention.
  • FIG. 6 is a schematic flowchart of still another method in an embodiment of the present invention.
  • FIG. 8 is a schematic diagram of a logical structure of a network device according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of hardware of a network device according to an embodiment of the present invention.
  • a Multipath Transmission Control Protocol (MPTCP) is mentioned, which allows data communication across multiple substreams of a network simultaneously in a transmission connection between network devices.
  • MPTCP Multipath Transmission Control Protocol
  • Connection refers to a session established using a predetermined process (eg, a process defined by MPTCP, TCP (Transmission Control Protocol) or other protocols).
  • the connection network between the network devices may have one or more intermediate devices, such as routers, switches, firewalls, network address translators, agents, and the like.
  • a subflow is a packet flow belonging to a connection (for example, a TCP connection) sent on a path.
  • a subflow is a unique TCP connection, and these connections constitute an MPTCP connection, the start and end of the subflow and one
  • the regular TCP connection is the same.
  • FIG. 1 shows a schematic diagram of a scenario including a network 102 connected to a first network device 104 and a second network device 106. Although only two network devices are depicted, it should be noted that network 102 can be connected to additional network devices. Examples of network devices include personal digital assistants, mobile phones, tablet computers, notebook computers, desktop computers, Internet of Things terminals, smart cars, server computers, storage controllers, electronics, or other types of networked electronic devices.
  • the example shown in FIG. 1 shows that multiple substreams 108 and 110 can be provided in a connection established between network devices 104 and 106. Although only two substreams 108 and 110 are shown for the connection between network devices 104 and 106, it should be noted that the connections between network devices may have more than two substreams.
  • the pair of network devices 104 and 106 can also establish a plurality of connections, wherein each connection can be associated with its corresponding set of substreams.
  • the first substream 108 can be part of a path on a mobile communication network (eg, a cellular network).
  • the second substream 110 can be on a wireless local area network.
  • substream 108 or 110 may be part of a wired path.
  • each of network devices 104 and 106 includes a corresponding MPTCP protocol stack 112 and 114.
  • Protocol stack 112 or 114 includes an application layer (which includes application software) and an MPTCP layer (which is used to implement MPTCP functionality).
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • Each TCP/IP instance 116A or 116B includes a respective TCP layer 118A or 118B and an IP layer 120A or 120B.
  • the MPTCP layer defines the communication carried by the connection of the connection level (or data level), and each TCP layer defines the communication of the sub-flow level. While each protocol stack 112 or 114 is depicted using an MPTCP layer and a TCP/IP instance, it should be noted that other types of protocol layers may be included in other implementations.
  • network 102 may include one or more blocking intermediate devices 120A and 120B, also referred to as sequence hole blocking middle boxes.
  • blocking intermediate devices include: a firewall, a network address translator, a proxy (eg, a performance enhancing proxy), or any other intermediary device that is on a routing path of packets between the sender device and the receiver device and, for example, in the middle The device prevents forwarding of the packet to the destination when it detects that the sequence number of the packet received by the intermediate device 120A or 120B has lost continuity.
  • the blocking intermediate device detects the presence of a sequence hole in the packet received by the intermediate device, the blocking intermediate device will prevent the forwarding of the packet with the sequence number after the missing sequence number or greater than the lost sequence number to the destination.
  • the blocking intermediate device may block forwarding of the packet.
  • the blocking intermediate device is on the routing path of the packet between the sender device and the receiver device, the blocking intermediate device is in the path of the substream.
  • intermediate devices 120A and 120B are provided in respective substreams 108 and 110.
  • the blocking intermediate device is only provided in one of the substreams 108 and 110.
  • one or both of the intermediate devices 120A and 120B may be non-blocking intermediate devices (the non-blocking intermediate device allows forwarding of packets to the destination even if there are sequence holes in the packet). Assuming that the intermediate device 120A or 120B is a blocking intermediate device, if the blocking intermediate device detects a sequence hole along the corresponding substream (108 or 110), such blocking intermediate device will prevent forwarding of the packet along the substream.
  • the MPTCP protocol uses a unique Meta-Sock (connected-level socket) to receive data for the upper-layer application, and Meta-Sock distributes the data dispatched by the application layer to the multiple sub-flows managed by the data scheduling module according to the scheduling algorithm of the data scheduling module. Transfer on Sub-Sock (substream level socket)
  • Aggregated transmission In data transmission, one data packet is transmitted through only one sub-flow, and each sub-stream transmits different data packets in an aggregate transmission manner. Aggregated transmission can save network resources and maximize the bandwidth of each sub-flow to improve data transmission efficiency.
  • the upper application transfers the data to Meta-Sock, which stores the data in a write queue queue.
  • each substream will send data from the data queue that has not been acknowledged by the receiving side and all the substreams have not been sent yet. For example, as shown in FIG. 3, the data packets 1-5 are data transmitted by the substream 1 and the substream 2, and the data packets transmitted by the substream 1 and the substream 2 are different from each other.
  • Redundant transmission When data is transmitted, one packet is repeatedly transmitted through each substream, that is, each substream transmits the same packet, which is redundant transmission. Redundant transmission ensures data reliability and reduces the processing load on the receiving side when receiving data.
  • the upper application transmits the data to the Meta-Sock. Meta-Sock stores the data in the write queue. Each substream is sent from the write queue and is not yet acknowledged by the receiving side. The data location that has not been sent yet starts to fetch data for transmission. For example, as shown in FIG. 3, the data packet 6-10 is data transmitted through the redundant transmission of the substream 1 and the substream 2, and the data packets sent by the substream 1 and the substream 2 are the same data packet, and each data is used. The packets are sent in both substreams.
  • FIG. 3 is a schematic flowchart of a method for a network transmission method according to an embodiment of the present invention.
  • the embodiment is implemented by a sender in a network device that establishes multiple substreams for data transmission. That is, in the example of FIG. 1, when the network device 104 transmits data to 106, the network device 104 is the execution body of the embodiment. Otherwise, when the network device 106 sends data to 104, the network device 106 is the embodiment of the present embodiment. Execution body.
  • the to-be-sent data packet of the transmitting end is in a buffer queue to be sent, and a plurality of sub-streams that can be used for data transmission have been established between the transmitting end and the receiving end.
  • the steps for this embodiment to be sent are as follows:
  • the sending end monitors the preset at least one network parameter of each sub-flow, thereby monitoring the network status of each sub-flow. It is determined whether the network state of the substream is stable by the preset condition of the monitored network parameter. When the monitored network parameters meet the preset conditions, the substream is considered to have entered a stable transmission state.
  • a stable transmission state means that the value of the network delay of the substream is relatively stable or in a predictable regularity change. In the stable transmission state, the transmitting end can relatively accurately acquire or predict the network delay of the substream.
  • the sub-stream data transmission rate is limited by the change of the congestion window, and the change of the congestion window changes in the slow start phase to be close to the exponential change model. Therefore, in this case, the network delay of the sub-flow The change is unstable and difficult to predict, that is, the stage is not a stable transmission stage. After that, the change of the congestion window of the TCP link increases linearly.
  • the network delay is a predictable change phase, the substream is a stable transmission phase.
  • the transmitting end determines whether the transmission delay state is a stable transmission state by using a link transmission delay difference of the multiple substreams that is less than or equal to a corresponding threshold.
  • the link transmission delay difference refers to the difference in transmission delay between each substream in the substream to be transmitted. When the transmission delay difference is small, the transmission delay between each substream is relatively close, and the network state is relatively stable.
  • the receiving end obtains the link transmission delay difference of each sub-flow by the same manner. For example, the corresponding information may be added to some or all data packets of each sub-flow, and the receiving end may determine according to the information.
  • the link transmits the delay difference, and sends the obtained link transmission delay difference to the sender through the response packet.
  • the sending time of the data packet may be added to some or all of the data packets of each substream by using a timestamp or the like.
  • the receiving end determines the transmission delay of each substream by accepting the data packet carrying the transmission time, thereby calculating the link transmission delay difference of the substreams.
  • the identifier of the data packet transmitted in the other substream is added to the data packet, and the transmission time difference from the data packet, the receiving end can thereby determine two of the two links.
  • the difference in the transmission time of the data packets, and the difference between the two data packets is the difference in the link transmission delay between the two substreams.
  • the data packet A of one substream is added with the identifier of the data packet B transmitted in the other substream, and the identifier may directly indicate the data packet B, or the data packet A and the data packet B carry the same identifier, thereby enabling reception.
  • the terminal can identify the data packet B relative to the data packet A according to the identifier.
  • the data packet A also includes a transmission time difference M from the data packet B, where M is a regular indication of the data packet A and then is transmitted in the data packet B, whereas the data packet A is transmitted before the data packet B.
  • the receiving end can determine that the link transmission delay difference of the two substreams is Tb-Ta-M according to the receiving time Ta of the data packet A and the receiving time Tb of the data packet B.
  • the transmission delay of the link where the data packet A is located is smaller than the link where the data packet A is located. Otherwise, the transmission delay of the link where the data packet A is located is greater than the link where the data packet A is located.
  • an identifier of a data packet transmitted in another substream that is transmitted simultaneously with the data packet or transmitted in a preset time interval is added to the data packet, and the receiving end is thus based on two
  • the difference in the reception time of the data packets and the preset transmission time interval determine the link transmission delay difference of the two substreams.
  • the difference between the implementation principle and the previous implementation manner is that the transmission time difference of the data packet time is preset, and the time difference is not included in the data packet, thereby reducing network consumption.
  • the network parameter used to determine the stable transmission state and the preset condition corresponding thereto may also be one or more of the following:
  • the real-time transmission rate of the sub-stream reaches the preset rate
  • the real-time transmission rate of the sub-stream reaches a preset rate.
  • the network transmission state of the substream tends to be stable. Therefore, the corresponding preset rate can be set as the determination condition of the stable transmission state based on the specific network condition of the substream.
  • the transmission rate of the sub-flow fluctuates less, and the network transmission state of the sub-flow can be considered to be stable.
  • the congestion control window of the substream reaches the preset value.
  • the congestion control window refers to the maximum number of data packets that the sender can send at one time under congestion control.
  • the sender receives a size value based on the degree of congestion of the network, and this value is the congestion window.
  • the size of the congestion window depends on the degree of congestion on the network and is changing dynamically.
  • the sender makes its own send window equal to the congestion window. If the receiver's receiving ability is considered again, the sending window may also be smaller than the congestion window. Therefore, the congestion control window by monitoring the substream can be used to determine whether the network transmission state of the substream is stable.
  • the receiving window of the receiving end reaches the preset value
  • the receiving window sets the receiving window for the receiving party according to its own receiving capability, and writes the window value to the window field in the TCP header, and transmits it to the sender, and the sending and receiving can thus know the number of accepting windows. Similar to the congestion control window, the receive window can also be used to determine if the network status is stable.
  • the number of packets that have been transmitted by the substream reaches the preset value.
  • the number of transmitted packets refers to the number of packets or the number of bytes of packets that have been successfully transmitted to the receiving end and acknowledged by the receiving end. Since the substream is often in an unstable state of the network transmission state at the initial stage of the establishment of the TCP connection, it waits until a certain amount of data is transmitted, and then enters a stable state. Therefore, based on the number of data packets that have been transmitted, it can be determined whether the network state of the substream is stable.
  • An unacknowledged packet has been transmitted, that is, a packet that is in the process of being transmitted and has not been acknowledged from the receiving end.
  • the number of transmitted unacknowledged packets reaches the preset value, it can be indicated that the transmission rate reaches a stable value, and the network transmission state is in a stable state.
  • the duration after the substream starts transmitting data reaches the preset value.
  • the substream is often in an unstable state of the network transmission state at the initial stage of the TCP connection establishment, after a period of time, it enters a steady state. Therefore, it is also possible to judge whether or not the stable transmission state has been entered based on the duration after the data is initially transmitted.
  • transmission delay jitter is less than or equal to the preset value
  • Transmission delay jitter means that the transmission order of the data packets is not as good as the order generated at that time or the time interval reaches the quantized value at the receiving end.
  • the packet loss rate is less than or equal to the preset value.
  • the above network parameters and their corresponding preset conditions are exemplary. Those skilled in the art may also use other parameters and conditions for judging the steady state of the network to determine whether the sub-flow has entered stable transmission. status.
  • the data packet is aggregated and transmitted by using the substream that reaches the preset condition.
  • each of the at least two substreams may satisfy the same one or several network state parameters according to a preset condition, or may be different network state parameters of each of the at least two substreams. Preset conditions.
  • the preset conditions corresponding to the network parameters of each substream may be different depending on the substream. That is, whether the network stream has reached a stable transmission state by determining whether the network parameter satisfies the preset condition.
  • the data packets are respectively transmitted through the two substreams without repeating each other, and the data packets sent by each substream are different from each other.
  • the sending end obtains the to-be-sent data packet from the to-be-sent queue, and allocates the data packet to one of the at least two sub-streams for transmission. After the allocation, the data packet is completely sent, and is not repeatedly allocated to other sub-streams. That is, each substream, when transmitting data, starts to fetch data from the data location of the data queue to be transmitted that has not been acknowledged by the receiving side and all substreams have not yet been transmitted. In this embodiment, there is no restriction on the rules for the sender to allocate data packets to different substreams.
  • the network state parameters of each substream may be the same network state parameter or different network state parameters.
  • the preset conditions corresponding to the same network state parameter of the multiple substreams may be the same preset condition, or may be different preset conditions corresponding to the respective substreams. Referring to the foregoing, when the network state parameter of a substream does not satisfy the preset condition, the substream is considered to be in an unstable transmission state.
  • each substream transmits all the data packets contained in the data, that is, each data packet is redundantly transmitted through each substream repeatedly.
  • the sending end acquires the to-be-sent data packet from the to-be-sent queue, and allocates the data packet to the sub-flow whose network parameter does not meet the preset condition, and each sub-flow sends the data packet. That is, when each substream is transmitting data, it will sequentially send data from the data location of the to-be-sent data queue that has not been acknowledged by the receiving side and has not been transmitted before this substream.
  • the sum of the transmission rates of the sub-streams that are aggregated and transmitted is monitored.
  • the aggregate transmission rate is less than or equal to the corresponding threshold, the substream in the aggregate transmission may have an unstable transmission state. Therefore, the substream that will perform the aggregate transmission is changed from the aggregate transmission to the redundant transmission.
  • the substreams in which the aggregate transmission is performed are all substreams in a stable transmission state, which avoids that the transmission delay of the substream due to the unstable transmission state is difficult to predict, and the receiving end occupies due to receiving a large number of out-of-order packets. Cache space and consumption processing power. Improve the efficiency and stability of the aggregate transmission.
  • FIG. 4 is a schematic flowchart of a method according to another embodiment of the present invention.
  • the present embodiment is further improved based on the previous embodiment. Therefore, in order to avoid redundancy, the present embodiment will be described in conjunction with the previous embodiment. In this embodiment, The relevant steps can be understood in conjunction with the introduction and explanation of the previous embodiment.
  • the data packet is aggregated and transmitted through the substream that reaches the preset condition, and the following steps may be performed:
  • a to-be-sent buffer queue (hereinafter simply referred to as a “cache queue”) for each sub-stream to be aggregated for transmission, and buffer the data packet allocated to the sub-flow for transmission.
  • Each sub-flow is provided with a buffer queue to be sent.
  • the sender sends a data packet
  • the data packet is allocated to one of the multiple sub-streams for the aggregate transmission, and the data packet is enqueued to the assigned sub-flow.
  • the packet is dequeued and sent.
  • the packet transmitted through substream 1 arrives at the receiving end faster than the packet transmitted by substream 2.
  • the data packets received by the receiving end are out of order, that is, received 503 first, and then received 502.
  • the sub-flows with smaller RRTs are set to queue queues with longer queue lengths by adjusting the length of the cache queues, delaying the packet transmission time of the sub-flows with smaller RRTs, thereby offsetting Due to the time difference caused by the difference of RRT, the generation of out-of-order at the receiving end is reduced.
  • the substream 1 is provided with a cache queue 511
  • the substream 2 is provided with a cache queue 512.
  • the length of the cache queue 511 is greater than the cache queue 512.
  • the length of the buffer queue can be adjusted by controlling the sub-flow of the data packet, so that the sub-flow of the sub-flow with smaller RRT is larger than the sub-flow with larger RRT.
  • the cache queue is longer.
  • the data packet to be sent is put into a buffer queue to be sent of one of the plurality of substreams that are to be aggregated, so that the data packet is dequeued through the buffer queue by multiple substreams and reaches the total transmission of the receiving end.
  • the time is the same.
  • the total time required until the packet arrives at the receiving end is T.
  • T the total time required until the packet arrives at the receiving end.
  • the total time T includes the time T1 between the time the packet is sent from the queue to be sent to the queue and the time the packet is transmitted, and the time T2 during which the packet is transmitted through the substream.
  • T1 can be obtained by the following formula (1):
  • the total number of bytes of the buffer queue to be sent is the sum of the number of bytes of the data packet in the buffer queue to be sent in the substream, and the number of bytes of the data packet to be sent is the number of bytes of the data packet to be sent, and each The number of RRT transmittable bytes refers to the number of bytes that the substream can transmit during the current round trip delay period, and RRT refers to the time taken by a round trip delay period.
  • the number of data packets in the buffer queue is relatively large, the number of data packets to be sent can be ignored, and the formula (1) can be further transformed into:
  • T1 it may be estimated based on the average transmission rate of the monitoring substream and the amount of data or the number of packets of the buffer queue to be sent; or the historical state of establishing the network state of the substream with the number of buffer queue packets or the amount of buffer queue data.
  • the model determines the time T1 between the current packet being queued from the queue to be sent and dequeued based on the current network state and the number of buffer queue packets or the amount of buffer queue data.
  • the time T2 of the substream transmission can be considered as half of an RRT, whereby the total time T can be:
  • the value of T can also be obtained by adding the 0.5RRT according to the deformation of the above formula (1).
  • T1 differs greatly from the size of 0.5RRT, the influence of the value of T2 on T can be neglected, and T1 can be used as the total time T.
  • the total transmission time T of each current stream estimation at the time of allocation is determined, and the sub-flows with the smallest value of T are preferentially allocated, so that the total transmission time T of each sub-flow can be made as uniform as possible.
  • B Determine the difference between each substream RRT, and determine, according to the difference between the RRT and the number of bytes that each RRT can send, that each substream has equal T values, and the buffer queue bytes to be sent of each substream.
  • T1a-T1b T2b-T2a
  • the number of bytes of the buffer queue to be sent or the queue of the queue to be sent may be determined according to the difference between the RRT and the number of bytes that can be sent by each RRT of each substream. The difference between the numbers.
  • the respective substreams that perform the aggregate transmission send the data packets in sequence according to the queues to be sent according to the respective queues to be sent.
  • the length of the sending buffer queue may also be controlled. Since the data packet allocation is performed based on the RRT of the substream when the allocation is performed, that is, the time T1 of the data packet in the buffer queue to be transmitted is balanced to balance the difference of the network transmission delay T2 due to the difference of the RRT. However, since the data packet is sent out of the queue to be sent for transmission, the RRT of the substream may be changed when it is allocated to the substream. Therefore, by controlling the length of the buffer queue to be sent of each substream, the time of T1 can be shortened, that is, the time when the data packet is allocated to the substream and the time when the data packet is transmitted through the substream are shortened, thereby reducing the time period. Possible changes in RRT.
  • the length of the queue may be limited by setting a threshold corresponding to the length of the buffer queue of each substream.
  • the system stops. A packet is allocated to the substream.
  • the queue length may also be limited by determining whether the buffer queue length of the substream meets a preset condition. Exemplary:
  • the length of the buffer queue to be sent in the above may be the number of bytes of the buffer queue to be sent or the number of packets, or other quantity used to measure the amount of data in the cache queue.
  • the present embodiment when the substreams are aggregated and transmitted, the total transmission time of the data packets transmitted through the respective substreams is relatively consistent through the allocation of the data packets. Therefore, the total transmission time of the data packet transmitted by each substream is relatively consistent, and after the data packet is allocated, the data packet arrives at the receiving end through the same or similar time, so that the receiving end receives the data packet in sequence and the transmitting end transmits the data.
  • the order in which packets are allocated to substreams is basically the same. Therefore, in addition to the technical effects achieved by the previous embodiment, the present embodiment further effectively reduces the possibility that the receiving end receives the out-of-order data packet during the aggregate transmission. Improve the stability and efficiency of data transmission.
  • FIG. 6 is a schematic flowchart of a method according to still another embodiment of the present invention.
  • This embodiment is further discussed in conjunction with the first embodiment or the second embodiment, and mainly discusses when there are multiple substreams, and only How to carry out the process when part of the substream enters a stable transmission state. Therefore, this embodiment can be understood in conjunction with the first two embodiments. How to determine whether a substream is counted in a stable transmission state, and how to perform redundant transmission or aggregation transmission has been discussed in the first two embodiments. This embodiment will not be described again.
  • S602. Determine whether the number of substreams in the stable subflow set is greater than or equal to 2.
  • FIG. 7 is a schematic flowchart of a method according to still another embodiment of the present invention, which is similar to the embodiment corresponding to FIG. 6.
  • This embodiment is further discussed in conjunction with the first embodiment or the second embodiment. It mainly discusses how to process when there are multiple substreams and only some substreams enter a stable transmission state. Therefore, this embodiment can be understood in conjunction with the first two embodiments. How to determine whether a substream is counted in a stable transmission state, and how to perform redundant transmission or aggregation transmission has been discussed in the first two embodiments. This embodiment will not be described again.
  • This embodiment includes the following steps:
  • the foregoing two embodiments exemplarily provide a packet scheduling method in the case of multiple substreams, and set different sub-flows of different transmission states by setting a stable sub-flow set and an unstable sub-flow set. On the basis of ensuring transmission efficiency and transmission stability, the resource utilization of the substream is improved.
  • FIG. 8 is a logical structural diagram of a network device embodiment 700 of the present invention.
  • the present embodiment is based on the inventive concept of the foregoing method embodiments, and provides a network device including functional modules capable of implementing the foregoing method.
  • the network device includes:
  • the monitoring module 801 is configured to determine at least one network state parameter of the multiple substreams.
  • the monitoring module 701 can be used to perform the step S301 in the foregoing embodiment.
  • the sending module 802 is configured to: when the at least one network state parameter of the at least two of the plurality of substreams meets a preset condition, perform data transmission by using the at least two substreams. Referring to the foregoing method embodiment, the sending module 802 can be used to perform the step S302 in the foregoing embodiment.
  • the sending module 802 is further configured to perform the steps in S303, S304, and S401, S402, and S403 in the foregoing method.
  • the sending module 702 may send, by using the network state parameters acquired by the monitoring module, the multiple sub-streams according to the steps S601-S604 or S701-S704.
  • the transmitting module in this embodiment can be implemented by using the data scheduling module and the data sending module in FIG. 2 in combination with the network device schematic diagram of the MPTCP transmission corresponding to FIG. 2 .
  • each functional module in each embodiment of the present application may be integrated into one physical entity. In hardware, it can also be a separate physical hardware, or two or more modules can be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
  • the network device provided in this embodiment can implement the technical effects described in the foregoing embodiments when data transmission of multiple sub-streams is performed by the network device.
  • a system embodying the present invention includes a general purpose computing device in the form of a network device 900.
  • the network device in this embodiment may be the execution subject of the embodiment of the present invention described in the foregoing scenario and architecture.
  • Elements of network device 900 may include, but are not limited to, processing unit 920, system memory 930, and system bus 910.
  • the system bus couples various system components including system memory to processing unit 920.
  • System bus 910 can be any of several types of bus structures, which can include a memory bus or memory controller, a peripheral bus, and a local bus using a bus structure.
  • the bus structure may include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Extended ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
  • ISA Industry Standard Architecture
  • MCA Micro Channel Architecture
  • EISA Extended ISA
  • VESA Video Electronics Standards Association
  • PCI Peripheral Component Interconnect
  • Network device 900 generally includes a variety of network device readable media.
  • the network device readable medium can be any medium that can be effectively accessed by any network device 900 and includes volatile or nonvolatile media, as well as removable or non-removable media.
  • the network device readable medium can include network device storage media and communication media.
  • Network device storage media includes volatile and non-volatile, removable and non-removable media, which may be implemented by any method or technique for storing information such as network device readable instructions, data structures, program modules or other data. .
  • Network device storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, or hard disk storage, solid state hard disk storage, optical disk storage, disk cartridges, disk storage or other storage devices, or any other The required information and the medium that can be accessed by the network device 900 are stored.
  • Communication media typically includes embedded computer readable instructions, data structures, program modules or other data in a modular data signal (e.g., carrier wave or other transport mechanism) and also includes any medium for information delivery. Combinations of any of the above should also be included within the scope of network device readable media.
  • System memory 930 includes network device storage media, which can be volatile and non-volatile memory, such as read only memory (ROM) 931 and random access memory (RAM) 932.
  • ROM read only memory
  • RAM random access memory
  • the basic input/output system 933 (BIOS) is typically stored in ROM 931 and contains basic routines that facilitate the transfer of information between elements in network device 910.
  • RAM 932 typically contains data and/or program modules that are immediately accessible and/or immediately operational by processing unit 920.
  • FIG. 9 illustrates an operating system 934, an application 935, other program modules 936, and program data 937.
  • Network device 900 may also include other removable/non-removable, volatile/non-volatile network device storage media.
  • FIG. 9 illustrates a hard disk storage 941 which may be a non-removable and non-volatile readable and writable magnetic medium; an external memory 951 which may be a detachable and non-volatile external memory, such as Optical disk, magnetic disk, flash memory or mobile hard disk, etc.; hard disk storage 941 is generally connected to system bus 910 through a non-removable storage interface (eg, interface 940), which typically passes through a removable storage interface (eg, interface 960) and system bus. The 910 is connected.
  • a non-removable storage interface eg, interface 940
  • a removable storage interface eg, interface 960
  • hard disk drive 941 illustrates storage operating system 942, application 943, other program modules 944, and program data 945. It should be noted that these elements may be the same or different from operating system 934, application 935, other program modules 936, and program data 937.
  • the method in the foregoing embodiment or the function of the logic module in the previous embodiment may be read by the processing unit 920 by the code or the readable instruction stored in the network device storage medium or The instructions are readable to perform the method.
  • the user can enter commands and information through various types of input devices 961 network device 900.
  • Various input devices are often connected to the processing unit 920 through a user input interface 960.
  • the user input interface 960 is coupled to the system bus, but can also be connected to the bus structure through other interfaces, such as a parallel interface, or a universal serial. Interface (USB).
  • Display device 990 can also be coupled to system bus 910 via an interface.
  • computing device 900 can also include various types of peripheral output devices 920 that can be connected through output interface 980 or the like.
  • Network device 900 can be coupled to one or more computing devices, such as remote computer 971, via network interface 970.
  • a remote computing node includes network devices, computing nodes, servers, routers, network PCs, equivalent devices, or other general network nodes, and typically includes many or all of the elements discussed above in connection with network device 900.
  • the remote computing node can be a slave node, a compute node, or other network device.
  • the logical connections illustrated in Figure 9 include a local area network (LAN) and a wide area network (WAN), and may also include other networks.
  • the network interface 970 can perform network data transmission of multiple sub-streams by establishing a plurality of TCP connections with the remote computer 971.
  • the network interface 970 may determine, according to the network transmission status of the multiple sub-stream links, redundant transmission or aggregation transmission through multiple sub-streams, thereby improving network transmission stability. Sex and transmission efficiency.
  • FIG. 9 is a general-purpose computer architecture network device that can be used for network transmission of multiple sub-streams.
  • network devices in other hardware architectures are equally applicable to the functions described herein.
  • a device that uses a smart mobile device to perform network transmission over a wireless network may establish multiple links through a cellular network, and determine a network transmission state of each substream through a network transmission module, thereby performing redundant transmission or aggregation transmission.
  • the functions described herein may be implemented in hardware, software, firmware, or any combination thereof.
  • the functions may be stored in a computer readable medium or transmitted as one or more instructions or code on a computer readable medium.
  • 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.

Abstract

本申请实施例提供了一种调度运行设备的方法和中央控制设备、控制设备和运行设备,实现了以分区为单位合理调度运行设备,并根据任务的测试结果选择了执行该任务的合理分区,对集群内的系统资源进行了合理利用,对运行设备进行了合理调度。该方法包括:该中央控制设备向集群内的多个分区的控制设备发送测试任务,该多个分区中每个分区包括至少一个运行设备;获取该多个分区的控制设备发送的该测试任务的测试结果;根据该测试结果,从集群内的多个分区中选择用于执行该第一任务的第一分区;向该第一分区的控制设备发送任务,以便于该控制设备从该第一分区中选择执行该任务的运行设备。

Description

多子流网络传输方法及装置
本申请要求于2017年04月25日提交中国专利局、申请号为201710278562.6、申请名称为“多子流网络传输方法及装置”的中国专利申请的优先权,以及于2017年3月2日提交的申请号为201710121110.7、申请名称为“多子流网络传输方法及装置”中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及网络传输领域,尤其涉及一种多子流数据传输方法。
背景技术
随着网络技术的发展,一些网络场景里面出现了数据收发两端之间同时存在多条传输链路的场景,例如,移动终端同时支持WIFI接入以及LTE接入,数据中心服务器之间存在多条物理链路。通过关联和管理多条子流,并发进行聚合传输,可以提高带宽利用率和传输性能。
例如,MPTCP协议是IETF制定的一种新传输层协议,MPTCP协议对于上层应用使用唯一的Meta-Sock来接收数据,并由Meta-Sock依据数据调度模块的调度算法将应用层下发的数据调度分发到其管理的多个子流的Sub-Sock上进行传输。在现有的MPTCP协议中,协议栈中缺省调度算法的调度原则是优先在往返时延(RTT)最小的子流上调度数据发送。
由于子流之间的传输时延存在差异,发送端在在各个子流上按序发出的数据包可能在接收端会乱序到达,接收端需要将乱序的数据包进行缓存并处理。在实际网络中,子流的网络连接并非一直处于稳定状态。例如,在TCP连接中,TCP慢启动阶段,子流数据传输速率受限于拥塞窗口的变化,而拥塞窗口的变化在慢启动阶段变化接近于指数变化模型。在这种情况下,由于各个子流的传输延迟处于变化状态,接收端处理乱序的数据包的难度增大,需要缓存的数据包数量也增多,从而导致聚合传输的效率和稳定性下降。
发明内容
本发明实施例提供了一种网络传输方法及网络传输装置,可以实现在多子流下的网络数据传输。
一方面,本申请的实施例提供了一种网络传输方法。该方法首先确定多条子流的至少一种网络状态参数,当至少两条子流的网络状态参数满足预设条件时,将数据通过该至少两条子流进行聚合传输。聚合传输为数据包仅通过至少两条子流中的一条进行发送,所述至少两条子流中的每条子流所发送的数据包互不相同。由此,在网络状态参数满足预设条件时,子流处于稳定传输状态。在此情况下,进行聚合传输时,进行传输的子流的网络延迟为稳定且可预测的状态,从而能够根据预测的网络延迟进行聚合传输,提高传输的稳定 性和效率。
在一种可能的实现方式中,当多条子流中至少一条子流的所述至少一种网络状态参数不足预设条件时,将数据分别通过所述至少一条子流进行冗余传输,冗余传输为数据包通过所述至少一条子流中的每条子流进行发送,所述至少一条子流中每条子流所发送的数据包相同。由此,当网络状态不满足预设条件时,子流处于非稳定传输状态。在此情况下,进行冗余传输,可以提高传输的可靠性,减少由于网络延迟的不可预测而导致的传输质量和速率的影响。
判断网络参数是否满足预设条件时,网络参数可以包括:
实时传输速率:即该子流当前的网络传输速率;
拥塞控制窗口:即指发送端在拥塞控制情况下一次最多能发送的数据包的数量;
接收窗口:即接收方根据自己的接收能力设定了接收窗口,并把这个窗口值写入TCP首部中的窗口字段,传送给发送方,发送发由此可以获知接受窗口数量。
已传输数据包数量:即已经成功传送到接收端,并由接收端确认的数据包数量或者数据包字节数。
已传输未确认数据包数量:即向接收端发送后,未由接收端确认的数据包数量或者数据包字节数。
传输时间:即从建立网络数据链接到当前时刻的时间。
传输时延抖动:即数据包发送的传输顺序或者时间间隔与到达接收端的传输顺序或者时间间隔的差异
丢包率:即丢失数据包数量占所发送数据组的比率。
在一种可能的实施方式中,所述网络参数和预设条件包括所述两条子流链路传输时延差值小于或等于对应的阈值,发送的数据包中包括第一数据包,其中,所述第一数据包包含所述第一数据包发送时间。发送端发送该数据包,并获取接收端根据该数据包计算的链路传输时延差值,从而确定链路传输时延差值。
在一种可能的实施方式中,所述网络参数和预设条件包括所述两条子流链路传输时延差值小于或等于对应的阈值,发送的数据包中包括第一数据包,其中,所述第一数据包包含第二数据包标识和所述第一数据包与所述第二数据包的发送时间差,所述第二数据包为与所述第一数据包通过所述至少两条子流中的不同子流发送的数据包。发送端发送该数据包,并获取接收端根据该数据包计算的链路传输时延差值,从而确定链路传输时延差值。
在一种可能的实施方式中,所述网络参数和预设条件包括所述两条子流链路传输时延差值小于或等于对应的阈值,发送的数据包中包括第一数据包,其中,所述第一数据包包含与第三数据包标识,所述第三数据包为与所述第一数据包同时或按照预定的时间间隔发送,且通过所述至少两条子流中的不同子流发送的数据包。发送端发送该数据包,并获取接收端根据该数据包计算的链路传输时延差值,从而确定链路传输时延差值。
所述第二数据包标识或者第三数据包标识,可以是直接用于指示该数据包的标识,也可以是与第二数据包或者第三数据包中所携带的标识相同的标识,从而表征第一数据包与第二数据包或者第三数据包之间的关联关系。在一种可能的实施方式中,所述标识可以为所述数据包本身特征,接收端通过预设的判断条件,确定接收到的数据包为第二数据包或者第三数据包。
在一种可能的实现方式中,当聚合传输的传输速率之和小于或等于对应的阈值时,将数据分别通过所述两条子流进行冗余传输。当聚合传输速率过低时,网络可能处于非稳定传输状态,通过冗余传输进行数据传输,能够提高传输的可靠性。
在一种可能的实现方式中,为每条子流设置待发送缓存队列,用于存储分配到该子流的数据包。进行聚合传输时,将数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中,其中,所述至少两条子流中传输时延大的子流的待发送缓存队列的数据量小于传输时延小的子流的待发送缓存队列的数据量。通过设置数据量大小不同的缓存队列,可以通过数据包在缓存队列中的等待时间抵消子流的传输时延带来的时间差,从而减少数据包到达接收端时产生乱序的可能,提高数据传输质量。
在一种可能的实现方式中,在确定数据包要放入的子流时,将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中,以使得所述至少两条子流的待发送缓存队列中的数据量的差值与所述至少两条子流的传输时延满足预设关系。由此,当数据量的差值与子流的传输时延满足预设关系时,可以通过数据包在缓存队列中的等待时间抵消子流的传输时延带来的时间差,从而减少数据包到达接收端时产生乱序的可能,提高数据传输质量。
在该种实现方式的一种具体的实施中,缓存队列的数据量的差值为子流间传输时延的差值乘以单位时间内该子流的数据传输量。
在一种可能的实现方式中,当确定数据包所要放入的子流时,将所述数据的一个数据包放入所述至少两条子流中预估传输总时间最短的子流,所述预估传输总时间为从数据包进入待发送缓存队列至数据包到达接收端之间的预估时间。由此,时钟选择预估传输送时间最短的子流,可以使得每个子流的预估时间相对一致,从而提高数据通过子流发送时的数据一致性,减少乱序数据包的产生。
在一种可能的实现方式中,每条子流的待发送缓存队列中的数据包数量不大于该条子流对应的阈值。通过控制缓存队列的数据量,可以避免由于缓存队列过长导致数据包在分配到子流时与数据包通过子流发送之间时间过长,子流的网络时延发送变化,从而使得数据包实际传输总时间与预估的传输总时间之间存在差异,导致数据包在接收端出现乱序。
在一种可能的实现方式中,每条子流的待发送缓存队列中的数据包数量与该子流发送窗口字节数满足预设关系。在另一种可能的实现方式中,每条子流的待发送缓存队列中的数据包数量与该子流上最大允许飞行中数据包满足预设关系。
在一种可能的实现方式中,为子流设置稳定传输集合和非稳定传输集合。当子流的至少一种网络状态参数满足预设条件时,则将该子流放入稳定传输集合,反之则放入非稳定传输集合。当稳定传输集合中的子流数量大于或者等于2时,将稳定传输集合中的子流进行聚合传输。或者,当全部子流均在稳定传输集合中时,所有子流进行聚合传输。
另一方面,本发明还提供了一种网络传输装置,该装置具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实现中,该网络传输装置包括用于确定子流的网络状态参数的监控模块以及用于根据状态参数进行聚合传输或者冗余传输的发送模块。所述发送模块可以执行上述方法将数据包分配到子流上进行发送。
在一种可能的实现中,该网络传输装置结构中包括处理器、存储器和网络接口,所述处理器被配置为支持网络传输装置执行上述方法中相应的功能。所述网络接口用于与接收端建立包含多个子流的通信链接。所述存储器用于与处理器耦合,其保存装置必要的程序指令和数据,以及待发送的数据。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述管理节点所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
相较于现有技术,本发明当通过多条子流进行数据传输时,先确定多条子流的至少一种网络状态参数,当多条子流中至少两条子流的所网络状态参数满足预设条件时,才数据包通过所述至少两条子流进行聚合传输。由此,使得进行聚合传输的子流均为稳定传输状态的子流,避免了由于处于不稳定传输状态的子流的传输迟延由于难以预测,导致接收端由于接受大量乱序的数据包而占用缓存空间和消耗处理能力的情况。提高了聚合传输的效率和稳定性。
附图说明
图1为本发明实施例中一种应用场景的场景示意图;
图2为本发明实施中中一种MPTCP网络装置的模块示意图;
图3为本发明实施例中一种方法的流程示意图;
图4为本发明实施例中又一种方法的流程示意图;
图5A为本发明实施例中一种数据包传输的时序流程示意图;
图5B为本发明实施例中又一种数据包传输的时序流程示意图;
图6为本发明实施例中又一种方法的流程示意图;
图7为本发明实施例中又一种方法的流程示意图;
图8为本发明实施例中一种网络装置的逻辑结构示意图;
图9为本发明实施例中一种网络装置的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在下面的描述中,提及多径传输控制协议(MPTCP),其允许在网络设备之间的传输连接中同时跨越网络的多个子流进行数据通信。应当注意的是,这些描述仅仅是示例性的,所描述的实施例的技术或机制可以应用于其他的允许多个网络设备之间的连接同时采用多个子流的其它协议。网络设备之间的“连接”是指使用预定的过程(例如,由MPTCP、TCP(传输控制协议)或者其它协议定义的过程)建立的会话。其中,网络设备之间的连接网络可以具有一个或多个中间设备,例如,路由器、交换机、防火墙、网络地址转换器、代理等等。子流是指属于在路径上发送的连接(例如,TCP连接)的分组流,一般而言,一个子流为一个独自的TCP连接,这些连接构成一个MPTCP连接,子流的开始与终止与一个常规的TCP连接相同。
图1示出了包括连接到第一网络设备104和第二网络设备106的网络102的场景示意图。虽然仅描绘了两个网络设备,但是应当注意的是,网络102可以连接到额外的网络设 备。网络设备的示例包括个人数字助理、移动电话、平板计算机、笔记本计算机、台式计算机、物联网终端、智能汽车、服务器计算机、存储控制器、电子器件、或者其它类型的网络电子设备。
图1中所示的示例示出了可以在网络设备104和106之间建立的连接中提供多个子流108和110。虽然针对网络设备104和106之间的连接仅示出了两个子流108和110,但是应当注意的是,网络设备之间的连接可以具有多于两个的子流。这对网络设备104和106还可以建立多个连接,其中,每一个连接可以与其相应的子流集合相关联。在一些示例中,第一子流108可以是移动通信网络(例如,蜂窝网络)上的路径的一部分。第二子流110可以在无线局域网上。在其它示例中,子流108或110可以是有线路径的一部分。
如图1所示,在采用MPTCP的场景中,网络设备104和106中的每一个包括相应的MPTCP协议栈112和114。协议栈112或114包括应用层(其包括应用软件)和MPTCP层(其用于实现MPTCP功能)。针对每一个子流,在协议栈112或114中存在一个TCP/IP(传输控制协议/互联网协议)实例116A或116B。注意,由于图1的示例中存在两个子流,因此存在两个TCP/IP实例116A、116B。如果针对网络设备104和106之间的连接存在更多个子流,则将在协议栈112或114中提供额外的TCP/IP实例。
每一个TCP/IP实例116A或116B包括相应的TCP层118A或118B以及IP层120A或120B。MPTCP层定义连接级(或者数据级)的连接承载的通信,而每一个TCP层定义子流级的通信。虽然使用MPTCP层和TCP/IP实例描绘了每一个协议栈112或114,但是应当注意的是,根据其它实现的协议栈可以包括其它类型的协议层。
MPTCP被设计为与现有的网络组件后向兼容。在一些情况下,网络102可以包括一个或多个阻塞中间设备120A和120B,也称作序列空洞阻塞中间盒(sequence hole blocking middle box)。阻塞中间设备的示例包括:防火墙、网络地址转换器、代理(例如,性能增强代理)、或者任何其它中间设备,其处于发送机设备与接收机设备之间的分组的路由路径上并且例如当中间设备检测到由中间设备120A或120B接收的分组的序列号失去连续性时防止向目的地转发分组。换言之,如果阻塞中间设备检测到由中间设备接收到的分组中存在序列空洞,则阻塞中间设备将阻止向目的地转发具有在丢失的序列号之后或者大于丢失的序列号的序列号的分组。在备选的实现中,如果阻塞中间设备检测到来自发送机设备的分组流中的某一其它特征,则阻塞中间设备可以阻止转发分组。当阻塞中间设备处于发送机设备与接收机设备之间的分组的路由路径上时,阻塞中间设备处于子流的路径。
在图1的示例中,在相应的子流108和110中提供了中间设备120A和120B。在备选的示例中,仅在子流108和110之一中提供了阻塞中间设备。举另一个例子,中间设备120A和120B中的一个或这二者可以是非阻塞中间设备(即使在分组中存在序列空洞,非阻塞中间设备也允许向目的地转发分组)。假设中间设备120A或120B是阻塞中间设备,如果阻塞中间设备沿着相应的子流(108或110)检测到序列空洞,则这种阻塞中间设备将阻止沿着该子流转发分组。
图2是本发明实施例中MPTCP的一种网络设备200的模块示意图。MPTCP协议对于上层应用使用唯一的Meta-Sock(连接级套接字)来接收数据,并由Meta-Sock依据数据调度模块的调度算法将应用层下发的数据调度分发到其管理的多个子流的Sub-Sock(子流级套接字)上进行传输
在下面的描述中,为了便于理解,首先对在实施例中涉及到的主要概念进行解释:
聚合传输:在数据传输时,一个数据包仅通过一条子流进行传输,每个子流传输不同的数据包的方式为聚合传输。聚合传输能够节省网络资源,最大限度的利用每个子流的带宽从而提升数据传输效率。结合图2的逻辑模块进行理解,上层应用将数据传输给Meta-Sock,Meta-Sock会将数据存储在write queue(写入队列)队列中。当进行聚合传输时,各子流在发送数据时,会从write queue中当前还没有被接收侧确认并且所有子流都还没有发送的数据位置开始取数据进行发送。例如,如图3所示,数据包1-5为通过子流1和子流2聚合传输发送的数据,则子流1与子流2所发送的数据包互不相同。
冗余传输:在数据传输时,一个数据包会通过每条子流重复的进行传输,即每条子流会传输相同的数据包,这种方式为冗余传输。冗余传输可以保证数据的可靠性,并减少接收端在接收数据时的处理负担。结合图2,上层应用将数据传输给Meta-Sock,Meta-Sock会将数据存储在write queue队列中,各子流在发送数据时,会从write queue中当前还没有被接收侧确认并且所有子流都还没有发送的数据位置开始取数据进行发送。例如,如图3所示,数据包6-10为通过子流1和子流2冗余传输发送的数据,子流1与子流2所发送的数据包均为相同的数据包,每个数据包分别在两条子流均进行了发送。
结合图3,是本发明提供的一种网络传输方法实施例的方法流程示意图,本实施例通过建立了多条子流进行数据传输的网络设备中的发送端执行。即,在图1的实例中,网络设备104向106发送数据时,网络设备104为本实施例的执行主体,反之,当网络设备106向104发送数据时,则网络设备106我本实施例的执行主体。在本实施例中,发送端的待发送数据包在待发送缓存队列中,发送端与接收端之间已经建立的多条可以进行数据传输的子流。对于待发送本实施例的步骤如下:
S301、确定子流的至少一种网络状态参数满足预设条件。
发送端在子流建立链接成功后,监控每一条子流的预设的至少一种网络参数,从而监控每一条子流的网络状态。通过监控的网络参数对应设置的预设条件,来判定子流的网络状态是否稳定。当所监控的网络参数满足预设条件时,则认为子流进入了稳定传输状态。稳定传输状态是指子流的网络延迟的值相对稳定或者为可预测的规律性变化中。在稳定传输状态下,发送端可以相对准确的获取或者预测子流的网络延迟。例如,在TCP慢启动阶段,子流数据传输速率受限于拥塞窗口的变化,而拥塞窗口的变化在慢启动阶段变化接近于指数变化模型,因此,在这种情况下,子流的网络延迟变化不稳定,难以预测,即该阶段不是稳定传输阶段。而在此之后,TCP链接的拥塞窗口的变化接近线性规律增长,此时的网络延迟为可预测的变化阶段,则此时子流为稳定传输阶段。
在一种实现方式中,发送端通过多条子流的链路传输时延差值是否小于或等于对应的阈值来判断是否为稳定传输状态。链路传输时延差值,是指进行传输的子流中,各个子流之间的传输时延的差值。当传输时延差值较小时,各个子流之间的传输时延比较接近,网络状态相对稳定。
发送端获取各子流的链路传输时延差值可以通过同种方式实现,示例性的,可以通过在各条子流的部分或者全部数据包中加入相应的信息,接收端可以根据该信息确定链路传输时延差值,并通过响应报文将得到的链路传输时延差值发送给发送端。
在一种具体的实现中,可以通过时间戳等方式,在各条子流的部分或者全部数据包中 加入该数据包的发送时间。接收端通过接受携带有发送时间的数据包,确定各条子流的传输时延,从而计算出个条子流的链路传输时延差值。
在另一种具体的实现中,在数据包中加入在另一子流中传输的数据包的标识,以及与该数据包的发送时间差,接收端可以由此确定在两条链路中的两个数据包的发送时间差,并根据该两个数据包的接收时间差,两者之间的差值即为该两条子流的链路传输时延差值。例如,在一条子流的数据包A中加入在另一子流中传输的数据包B的标识,该标识可以直接指示数据包B,或者数据包A与数据包B携带相同标识,从而使接收端可以根据该标识识别与数据包A相对于的数据包B。数据包A中还包含与数据包B的发送时间差M,其中,M为正则指示数据包A后于数据包B发送,反之则数据包A先于数据包B发送。接收端接收到数据包A后,同时根据数据包A的接收时间Ta以及数据包B的接收时间Tb可以确定该两条子流的链路传输时延差值为Tb-Ta-M,其中,所述差值为正时,数据包A所在链路的传输时延小于数据包A所在链路,反之,数据包A所在链路的传输时延大于数据包A所在链路。
在又一种具体的实现中,在数据包中加入与该数据包同时发送或者在预设的时间间隔中发送的的在另一子流中传输的数据包的标识,接收端由此根据两个数据包的接收时间差,以及预设的发送时间间隔,确定该两条子流的链路传输时延差值。该实现方式原理与前已实现方式区别在于数据包时间的发送时间差是预设的,无需在数据包中包含该时间差,从而减少了网络消耗。
示例性的,用于判断稳定传输状态的网络参数和与之对应的预设条件还可以为以下的一种或者几种:
a、子流的实时传输速率达到预设速率
在一种可能的实现中,可以判断子流的实时传输速率是否达到了预设的速率。一般而言,当子流的传输速率达到一定的速率之上后,该子流的网络传输状态趋于稳定。因此,可以基于该子流具体的网络情况,设定相应的预设速率作为稳定传输状态的判定条件。
在另一种可能的实现中,可以判断子流的实时传输速率在预设的一段时间内是否维持在预设的范围内。当子流的实时传输速率实在预设的一段时间内维持在预设的范围内时,子流的传输速率波动较小,可以认为该子流的网络传输状态稳定。
b、子流的拥塞控制窗口达到预设值
拥塞控制窗口指发送端在拥塞控制情况下一次最多能发送的数据包的数量。发送端根据网络的拥塞程度所预设的一个大小值,而这个值就是拥塞窗口。拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如果再考虑到接收方的接收能力,那么发送窗口还可能小于拥塞窗口。因此,通过监控子流的拥塞控制窗口可以用于判断子流的网络传输状态是否稳定。
c、接收端的接收窗口达到预设值
接收窗口为接收方根据自己的接收能力设定了接收窗口,并把这个窗口值写入TCP首部中的窗口字段,传送给发送方,发送发由此可以获知接受窗口数量。与拥塞控制窗口类似的,接收窗口也可以用于判断网络状态是否稳定。
d、子流已经传输的数据包的数量达到预设值
已传输的数据包的数量是指经成功传送到接收端,并由接收端确认的数据包数量或者 数据包字节数。由于子流在TCP连接建立初期时往往为网络传输状态的不稳定状态,等到传输一定的数据后,则进入稳定状态。因此,根据已经传输的数据包数量,可以判断子流的网络状态是否稳定。
e、子流已传输未确认数据包数量达到预设值
已传输未确认的数据包即正在传输过程中,还未从接收端确认的数据包。当已传输未确认数据包数量达到预设值时,可以表明传输速率达到稳定值,则网络传输状态处于稳定状态。
f、子流开始传输数据之后的持续时间达到预设值
如前所述的,由于子流在TCP连接建立初期时往往为网络传输状态的不稳定状态,一段时间后,则进入稳定状态。因此也可以根据始传输数据之后的持续时间来判断是否进入了稳定传输状态。
g、传输时延抖动小于或等于预设值
传输时延抖动指数据包的传输顺序不如当时产生的顺序或者时间间隔到达接收端的量化值
h、丢包率小于或等于预设值。
以上的网络参数以及其相对应的预设条件的举例是示意性的,本领域技术人员也可以结合现有技术采用其他用于判断网络稳定状态的参数以及条件来确定子流是否进入了稳定传输状态。
S302、当至少两条子流的至少一种网络状态参数满足了预设条件,则将数据包通过达到预设条件的子流进行聚合传输。
按照前述的网络状态参数,若至少两条子流的网络状态参数均满足了预设条件,则将数据包通过该至少两条子流进行聚合传输。在不同的实施方式中,可以至少两条子流中每条子流均满足同一种或者几种网络状态参数符合预设的条件,也可以是至少两条子流中每条子流各自不同的网络状态参数符合预设条件。相应的,即便至少两条子流中各条子流均根据同一种或者几种网络参数进行判断,每条子流的网络参数对应的预设条件也可能因为子流的不同而不同。即,通过网络参数是否满足预设条件的判断,从而判断该条子流是否达到了稳定传输状态。
结合前述对聚合传输的描述,当至少两条子流进行聚合传输时,即将数据包分别通过两条子流互不重复的进行发送,每条子流所发送的数据包互不相同。发送端从待发送队列中获取待发送数据包,并将数据包分配给至少两条子流中的一条进行发送,分配后,该数据包即完成发送,不再重复分配给其他子流。即各子流在发送数据时,会从待发送数据队列中当前还没有被接收侧确认并且所有子流都还没有发送的数据位置开始取数据进行发送。在本实施例中,对发送端按照何种规则将数据包分配给不同的子流不做限制。
可选的,在本实施例中,还可以包含如下步骤:
S303、当至少一条子流的至少一种网络状态参数不满足预设条件,则将数据包通过不满足预设条件的子流进行冗余传输。
在监控了网络状态参数的多条子流中,对于网络参数没有满足预设条件的子流,通过冗余传输的方式进行数据传输。对于多条子流而言,每条子流的网络状态参数可以是相同的网络状态参数,也可以是不同的网络状态参数。多条子流的相同的网络状态参数所对应 的预设条件可以是相同的预设条件,也可以是各自子流所对应的不同的预设条件。参考前述,当一条子流的网络状态参数不满足预设条件时,即认为该条子流在非稳定传输状态。
结合前述对于冗余传输的解释,对于不是稳定传输状态的子流,每条子流均会传输数据所包含的全部数据包,即每个数据包冗余的通过每条子流重复的进行传输。发送端从待发送队列中获取待发送数据包,并将数据包分配到网络参数不满足预设条件的子流中,每条子流均发送该数据包。即各子流在发送数据时,都会从待发送数据队列中当前还没有被接收侧确认并且本子流之前没有发送过的数据位置开始依次取数据进行发送。
可选的,在本实施例中,还可以包含如下步骤:
S304、当进行聚合传输的至少两条子流的传输速率之和小于或等于对应的阈值时,将该至少两条子流由聚合传输变为冗余传输。
通过前述S302步骤,将网络参数复核预设条件的子流进行聚合传输后,监控进行聚合传输的子流的传输速率之和,即聚合传输速率。当聚合传输速率小于或者等于对应的阈值时,则该聚合传输中的子流可能存在不稳定传输状态。因此,将进行该聚合传输的子流由聚合传输变为冗余传输。
通过本实施例所讨论的方法,当通过多条子流进行数据传输时,先确定多条子流的至少一种网络状态参数,当多条子流中至少两条子流的所网络状态参数满足预设条件时,才数据包通过所述至少两条子流进行聚合传输。由此,使得进行聚合传输的子流均为稳定传输状态的子流,避免了由于处于不稳定传输状态的子流的传输迟延由于难以预测,导致接收端由于接受大量乱序的数据包而占用缓存空间和消耗处理能力的情况。提高了聚合传输的效率和稳定性。
结合图4,是本发明的又一实施例的方法流程示意图,本实施例是基于上一实施例的进一步改进,因此为了避免赘述,本实施例会结合上一实施例进行描述,本实施例中的相关步骤可以结合上一实施例的介绍和解释进行理解。
在本实施例中,结合上一实施例,在S301步骤之后,执行S302步骤时,将数据包通过达到预设条件的子流进行聚合传输可以通过如下步骤进行:
S401、为进行聚合传输的每条子流设置待发送缓存队列(后简称为“缓存队列”),用于缓存分配到该子流进行发送的数据包。
每个子流设置有一个待发送缓存队列,发送端进行数据包发送时,会将数据包分配到进行聚合传输的多条子流中的一条进行发送,该数据包即入队到分配到的子流的待发送缓存队列中,直到该子流待发送缓存队列中先于该数据包进入队列的数据包发送后,该数据包出队并进行发送。
通过设置缓存队列,可以调节数据包从分配到子流至到达接收端的时间,从而调整数据包到达接收端的顺序。如图5A所示,在现有技术中,对于待发送的数据包,由于各子流RRT的差异,按顺序从发送端分配到各子流进行发送的数据包会乱序的到达接收端。例如,在图5A中,数据通过子流1和子流2发送的接收端,其中,对于按顺序发送的数据包501、502、503,子流1先发送501,然后子流2发送502,最后子流1再发送503。但是,由于子流1的RRT小于子流2的RRT,因此通过子流1发送的数据包会相对于子流2发送的数据包更快的到达接收端。由此,造成了接收端接收到的数据包乱序,即先接收到503,再接收到502。
当子流设置了各自的缓存队列后,通过调整缓存队列的长度,将RRT较小的子流设置队列长度更长的缓存队列,延迟了RRT较小的子流的数据包发送时间,从而抵消了由于RRT的差值所带来的时间差,减少了接收端乱序的产生。如图5B所示,子流1设置了缓存队列511,子流2设置了缓存队列512,缓存队列511的长度大于缓存队列512。当数据包按照与图5B同的场景进行发送时,由于数据包501与503在分配到子流后,需要更长的时间才能从缓存队列511中出队并发送到接收端,从而抵消了由于RRT更小而造成的与子流2的传输时间的差异。从而在接收端接收到的仍然是正确顺序的数据包。
在一种可能的实现中,在设置缓存队列时,可以通过对数据包分配子流的控制,调节缓存队列的长度,从而使得RRT较小的子流的缓存队列长度比RRT较大的子流的缓存队列长度更长。
S402、将待发送的数据包放入到进行聚合传输的多条子流中的一条子流的待发送缓存队列,以使得数据包通过多条子流的通过缓存队列出队并达到接收端的传输总时间一致。
设置缓存队列后,数据包从被分配到子流时,即入队到被分配子流的待发送缓存队列中时,到数据包到达接收端为止所需要的总时间为T。为了使得数据包到达接收端时的顺序与数据包分配到子流的顺序一致,即接收端接收到的数据包不产生乱序,需要使各个子流的总时间T尽可能的相一致。
总时间T包括了数据包从待发送缓存队列中入队到出队进行发送之间的时间T1以及数据包通过子流传输的时间T2。其中,T1可以通过如下公式(1)获得:
Figure PCTCN2018077581-appb-000001
其中,待发送缓存队列总字节数为该子流中待发送缓存队列中的数据包的字节数之和,待发送数据包字节数即待发送数据包的字节数大小,每个RRT可发送字节数是指子流在当前的往返时延周期内所能够发送的字节数,RRT即指一个往返时延周期所占用的时间。通过该公式,即能够预估该子流在当前稳定传输状态下,数据包从进入待发送缓存队列到从发送端发送的时间差。
在一些场景中,发送端发送的每个数据包字节数大小相等,则上述公式(1)可变形为:
Figure PCTCN2018077581-appb-000002
在一些场景中,缓存队列中数据包数量比较多的情况下,待发送数据包的数量可以忽略,则该公式(1)可以进一步变形为:
Figure PCTCN2018077581-appb-000003
可以理解的,对于T1的估计,除了上述公式给出的示例外,还可以通过其他方法。例如,可以基于监控子流的平均发送速率和待发送缓存队列的数据量或者数据包数量来估计;或者通过历史数据建立子流的网络状态与缓存队列数据包数量或者缓存队列数据量之间的模型,从而基于当前网络状态和和缓存队列数据包数量或者缓存队列数据量,确定当前数据包从待发送缓存队列中入队到出队进行发送之间的时间T1。
子流传输的时间T2,可以认为是一个RRT的一半,由此总时间T可以为:
Figure PCTCN2018077581-appb-000004
T的取值也可以按照前述公式(1)的变形加上0.5RRT得到。当T1的大小与0.5RRT的大小相差较大时,T2的值对于T的影响可以忽略,则可以用T1来作为总时间T。
要使得各子流的传输总时间T尽可能一致,即使得各子流的传输总时间T的差值尽可能小。在具体的实现方式中,可以有多种方式实现,示例性的列举如下:
A、计算每个子流当前估计的传输总时间T,在进行待发送数据包的分配时,始终优先分配给T的值最小的子流。
即通过上述介绍,确定分配时当前每个子流估计的总传输时间T,优先分配给T的值最小的子流,可以使得各子流的传输总时间T尽可能一致。
B、确定各子流RRT的差值,根据RRT的差值以及各子流每个RRT可发送的字节数,确定要使得各子流T值相等,各子流的待发送缓存队列字节数或者待发送缓存队列数据包数的差值,在进行数据包分配时,优先选择减去差值后剩余的缓存队列字节数或者待发送缓存队列数据包数最小的子流。
根据前述描述,由于各个子流的RRT不同,即T2的取值会不同,为了使得总时间T的值相同,则需要各自刘T1的取值的差值抵消T2的取值的差值。以a、b两条子流为例,即:
T1a-T1b=T2b-T2a
代入前述T1和T2的取值,即可以根据根据RRT的差值以及各子流每个RRT可发送的字节数,确定各子流的待发送缓存队列字节数或者待发送缓存队列数据包数的差值。
除了上述的示例外,可以理解的,基于不同的计算T1、T2以及总时间T的方法,还可以得到其他保持各个子流的传输总时间一致的方法。
S403、进行聚合传输的各个子流按照各自的待发送缓存队列,基于数据包入队的先后次序依次发送数据包。
在本实施例中,可选的,还可以对待发送缓存队列的长度进行控制。由于在进行数据包分配时,是基于分配时子流的RRT进行分配的,即通过数据包在待发送缓存队列中的时间T1,来平衡由于RRT的差异造成的网络传输延时T2的差异。但是,由于当数据包从待发送缓存队列中出队进行发送时,与分配到子流时的该子流的RRT可能发生了变化。因此,控制各个子流的待发送缓存队列的长度,可以缩短T1的时间,即使得数据包分配到子流的时间与数据包通过子流进行发送的时间缩短,从而减小在该时间段内RRT可能 产生的变化。
在一种实现方式中,可以直接通过对每条子流的缓存队列长度设置与之对应的阈值来限制队列长度,当子流的待发送缓存队列的长度大于该子流对应的阈值时,即停止向该子流分配数据包。
在另一种实现方式中,还可以通过判断子流的缓存队列长度是否满足预设条件来限制队列长度。示例性的:
1)当子流的待发送缓存队列数据字节数与当前子流发送窗口字节数(bytes of send window)之间的关系达到预定的条件。例如:待发送缓存队列字节数已经达到子流发送窗口字节数的90%。则停止向子流缓存队列中入队数据包
2)当子流的待发送缓存队列数据字节数与当前子流上最大允许飞行中的字节数(maximum bytes in flight)之间的关系达到预定的条件。例如:待发送缓存队列数据字节数已经达到当前子流上最大允许飞行中的字节数的90%,则停止向子流缓存队列中入队数据包。
上述中的待发送缓存队列长度,可以为待发送缓存队列的字节数或者数据包数,或者其他用于衡量缓存队列中的数据量的量值。
基于本实施例,当子流进行聚合传输时,通过数据包的分配,使得数据包通过各个子流发送的传输总时间相对一致。由此,数据包通过各个子流发送的传输总时间相对一致,数据包在进行分配后,会经过相同或者相近的时间到达接收端,从而使得接收端接收到数据包的顺序与发送端将数据包分配到子流的顺序基本一致。因此,本实施例在具备了上一实施例所达到的技术效果外,进一步有效的降低了了在聚合传输时接收端接收到乱序的数据包的可能性。提升了数据传输的稳定性和效率。
结合图6,是本发明的又一实施例的方法流程示意图,本实施例是结合第一个实施例或者第二个实施例进行的进一步讨论,主要讨论了了当存在多个子流,且只有部分子流进入稳定传输状态的情况下,如何进行处理的过程。因此,本实施例可以结合前两个实施例进行理解,对于如何判断子流是否计入稳定传输状态,以及如何进行冗余传输或者聚合传输,在前两个实施例中已经有相关讨论,在本实施例中即不再赘述。
当子流链路多于两个时,基于第一个实施例,通过如下步骤进行:
S601、在进行数据包调度时,遍历所有子流,将子流划分为稳定传输状态子流集合以及非稳定传输状态子流集合两个集合,划分的条件同前述实施例中中描述的条件;
S602、判断稳定子流合集中的子流数是否大于或等于2,
S603、当稳定子流合集中的子流数大于或等于2时,则对于稳定传输状态子流集合中的子流进行聚合传输,对非稳定子流合集中的子流进行冗余传输;
S604、当稳定子流合集中的子流数小于2时,则对所有子流进行冗余传输。
结合图7,是本发明的又一实施例的方法流程示意图,与图6所对应的实施例相类似的,本实施例是结合第一个实施例或者第二个实施例进行的进一步讨论,主要讨论了了当存在多个子流,且只有部分子流进入稳定传输状态的情况下,如何进行处理的过程。因此,本实施例可以结合前两个实施例进行理解,对于如何判断子流是否计入稳定传输状态,以及如何进行冗余传输或者聚合传输,在前两个实施例中已经有相关讨论,在本实施例中即不再赘述。本实施例包含如下步骤:
S701、在进行数据包调度时,遍历所有子流,将子流划分为稳定传输状态子流集合以及非稳定传输状态子流集合两个集合,划分的条件同前述实施例中中描述的条件;
S702、判断是否所有子流均进入稳定子流合集中;
S703、当所有子流均进入稳定子流集合时,则所有子流进行聚合传输;
S704、当不是所有子流均进入稳定子流集合时,则所有子流进行冗余传输。
上述两个实施例,示例性的给出了在多条子流的情况下的数据包调度方法,通过设置稳定子流集合和非稳定子流集合,对不同传输状态的子流进行不同的调度方式,在保证传输效率和传输稳定性的基础上,提高了子流的资源利用率。
结合图8,是本发明一种网络设备实施例700的逻辑结构图。本实施例基于与前述几种方法实施例的发明构思,提供了包含能够实现前述方法的功能模块的网络设备。该网络设备包括:
监控模块801,用于确定所述多条子流的至少一种网络状态参数。监控模块701可用于执行前述实施例中S301步骤。
发送模块802,用于当所述多条子流中至少两条子流的所述至少一种网络状态参数满足预设条件时,将数据通过所述至少两条子流进行聚合传输。参考前述方法实施例,发送模块802可用于执行前述实施例中S302步骤。
可选的,发送模块802还可以用于执行前述方法中的S303、S304以及S401、S402、S403中的步骤。
可选的,结合前述图6和图7所对应的实施例,发送模块702可以基于步骤S601-S604或者S701-S704,通过监控模块获取的网络状态参数对多个子流进行发送。
结合前述图2所对应的MPTCP传输的网络装置示意图,本实施例中的发送模块即可通过图2中的数据调度模块和数据发送模块实现。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个物理硬件中,也可以是单独物理硬件存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
通过该实施例提供的网络设备,当通过该网络设备进行多子流的数据发送时,可以实现前述实施例所述的技术效果。
参照图9,实现本发明所举例的系统包括网络设备900形式的通用计算设备。结合前述图1中所述的系统场景及架构,本实施例所述的网络设备可以为前述场景及架构中所说明的本发明实施例的执行主体。
网络设备900的元件可以包括,但并不限制于,处理单元920,系统存储器930,和系统总线910。系统总线将包括系统存储器的各种系统元件与处理单元920相耦合。系统总线910可以是几种类型总线结构中的任意一种总线,这些总线可以包括存储器总线或存储器控制器,外围总线,和使用一种总线结构的局部总线。总线结构可以包括工业标准结构(ISA)总线,微通道结构(MCA)总线,扩展ISA(EISA)总线,视频电子标准协会(VESA)局域总线,以及外围器件互联(PCI)总线。
网络设备900一般包括多种网络设备可读媒介。网络设备可读媒介可以是任何网络设备900可有效访问的媒介,并包括易失性或非易失性媒介,以及可拆卸或非拆卸的媒介。 例如,但并不限制于,网络设备可读媒介可以包括网络设备存储媒介和通讯媒介。网络设备存储媒介包括易失性和非易失性,可拆卸和非拆卸媒介,这些媒介可以采用存储诸如网络设备可读指令,数据结构,程序模块或其他数据的信息的任何方法或技术来实现。网络设备存储媒介包括,但并不限制于,RAM,ROM,EEPROM,闪存存储器或其他存储器技术,或者硬盘存储、固态硬盘存储、光盘存储,磁盘盒,磁盘存储或其它存储设备,或任何其它可以存储所要求信息和能够被网络设备900访问的媒介。通讯媒介一般包括嵌入的计算机可读指令,数据结构,程序模块或在模块化数据信号(例如,载波或其他传输机制)中的其他数据,并且还包括任何信息传递的媒介。上述任何组合也应该包括在网络设备可读媒介的范围内。
系统存储器930包括网络设备存储媒介,它可以是易失性和非易失性存储器,例如,只读存储器(ROM)931和随即存取存储器(RAM)932。基本输入/输出系统933(BIOS)一般存储于ROM931中,包含着基本的例行程序,它有助于在网络设备910中各元件之间的信息传输。RAM 932一般包含着数据和/或程序模块,它可以被处理单元920即时访问和/或立即操作。例如,但并不限制于,图9说明了操作系统934,应用程序935,其他程序模块936和程序数据937。
网络设备900也可以包括其他可拆卸/非拆卸,易失性/非易失性的网络设备存储媒介。仅仅是一个实例,图9说明了硬盘存储器941,它可以是非拆卸和非易失性的可读写磁媒介;外部存储器951,它可以是可拆卸和非易失性的各类外部存储器,例如光盘、磁盘、闪存或者移动硬盘等;硬盘存储器941一般是通过非拆卸存储接口(例如,接口940)与系统总线910相连接,外部存储器一般通过可拆卸存储接口(例如,接口960)与系统总线910相连接。
上述所讨论的以及图9所示的驱动器和它相关的网络设备存储媒介提供了网络设备可读指令,数据结构,程序模块和网络设备900的其它数据的存储。例如,硬盘驱动器941说明了用于存储操作系统942,应用程序943,其它程序模块944以及程序数据945。值得注意的是,这些元件可以与操作系统934,应用程序935,其他程序模块936,以及程序数据937是相同的或者是不同的。
在本实施例中,前述实施例中的方法或者上一实施例中逻辑模块的功能可以通过存储在网络设备存储媒介中的代码或者可读指令,并由处理单元920读取所述的代码或者可读指令从而执行所述方法。
用户可以通过各类输入设备961网络设备900输入命令和信息。各种输入设备经常都是通过用户输入接口960与处理单元920相连接,用户输入接口960与系统总线相耦合,但也可以通过其他接口和总线结构相连接,例如,并行接口,或通用串行接口(USB)。显示设备990也可以通过接口与系统总线910相连接。此外,诸如计算设备900也可以包括各类外围输出设备920,输出设备可以通过输出接口980等来连接。
网络设备900可以通过网络接口970连接着一个或多个计算设备,例如,远程计算机971。远程计算节点包括网络设备,计算节点,服务器,路由器,网络PC,等同的设备或其它通用的网络结点,并且一般包括许多或所有与网络设备900有关的上述所讨论的元件。结合前述图1所描述的架构中,远程计算节点可以是从节点、计算节点或者其他网络设备。在图9中所说明的逻辑连接包括局域网(LAN)和广域网(WAN),也可以包括其它 网络。网络接口970可以通过和远程计算机971建立多条TCP连接,从而进行多子流的网络数据传输。结合前述实施例,网络接口970在进行网络数据传输时,可以通过前述方法,根据多条子流链路的网络传输状态,判断通过多条子流进行冗余传输或者聚合传输,从而提高网络传输的稳定性以及传输效率。
可以理解的,图9所对应的实施例为可以用于多条子流的网络传输的通用计算机架构的网络设备。但是,通过对本发明所描述逻辑模块功能的理解,其他硬件架构下的网络设备同样可以适用于本发明所描述的功能。例如,采用智能移动设备通过无线网络进行网络传输的设备,可以通过蜂窝网络建立多条链路,通过网络传输模块对各条子流的网络传输状态进行判断,从而进行冗余传输或者聚合传输。
本领域技术人员应该可以意识到,在上述示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (22)

  1. 一种网络传输方法,所述方法用于通过多条子流进行数据传输,其特征在于,
    确定所述多条子流的至少一种网络状态参数;
    当所述多条子流中至少两条子流的所述至少一种网络状态参数满足预设条件时,将数据通过所述至少两条子流进行聚合传输,其中,所述聚合传输为同一数据包仅通过所述至少两条子流中的一条进行发送,所述至少两条子流中的每条子流所发送的数据包互不相同。
  2. 根据权利要求1所述方法,其特征在于,所述方法还包括,当所述多条子流中至少一条子流的所述至少一种网络状态参数不满足预设条件时,将数据分别通过所述至少一条子流进行冗余传输,其中,所述冗余传输为数据包通过所述至少一条子流中的每条子流进行发送,所述至少一条子流中每条子流所发送的数据包相同。
  3. 根据权利要求1或2所述方法,其特征在于,所述方法还包括,当所述聚合传输的传输速率之和小于或等于对应的阈值时,将数据分别通过所述至少两条子流进行冗余传输,其中,所述冗余传输为数据包通过所述至少两条子流中的每条子流进行发送,所述至少两条子流中每条子流所发送的数据包相同。
  4. 根据权利要求1至3中任一所述方法,其特征在于,所述网络状态参数包括:实时传输速率、拥塞控制窗口、接收窗口、已传输数据包数量、已传输未确认数据包数量、传输时间、传输时延抖动、丢包率或者所述至少两条子流的链路传输时延差值。
  5. 根据权利要求4所述方法,其特征在于,当所述网络状态包括所述至少两条子流的链路传输时延差时,所述预设条件具体为:所述两条子流链路传输时延差值小于或等于对应的阈值;
    所述数据包包括第一数据包,其中,所述第一数据包包含所述第一数据包发送时间,或者,所述第一数据包包含第二数据包标识和所述第一数据包与所述第二数据包的发送时间差,所述第二数据包为与所述第一数据包通过所述至少两条子流中的不同子流发送的数据包,或者,所述第一数据包包含与第三数据包标识,所述第三数据包为与所述第一数据包同时或按照预定的时间间隔发送,且通过所述至少两条子流中的不同子流发送的数据包;
    所述方法还包括:获取响应报文,所述响应报文包括根据第一数据包计算得到的所述至少两条子流的链路传输时延差值。
  6. 根据权利要求1所述方法,其特征在于,将数据通过所述至少两条子流进行聚合传输具体包括:
    将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中,其中,所述至少两条子流中传输时延大的子流的待发送缓存队列的数据量小于传输时延小的子流的待发送缓存队列的数据量。
  7. 根据权利要求6所述方法,其特征在于,将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中具体包括:
    将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中,以使得所述至少两条子流的待发送缓存队列中的数据量的差值与所述至少两条子流的传输时延满足预设关系。
  8. 根据权利要求1所述方法,其特征在于,所述将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中具体包括:
    将所述数据的一个数据包放入所述至少两条子流中预估传输总时间最短的子流,所述预估传输总时间为从数据包进入待发送缓存队列至数据包到达接收端之间的预估时间。
  9. 根据权利要求6至8中任一所述方法,其特征在于,所述至少两条子流的每条子流的待发送缓存队列中的数据量不大于该条子流对应的阈值。
  10. 根据权利要求6至8中任一所述方法,其特征在于,所述至少两条子流的每条子流的待发送缓存队列中的数据量还满足如下条件中的至少一种:
    所述至少两条子流的每条子流的待发送缓存队列中的数据量与该子流发送窗口字节数满足预设关系;或者,
    所述至少两条子流的每条子流的待发送缓存队列中的数据包数量与该子流上最大允许飞行中数据包数量。
  11. 根据权利要求1至10中任一所述方法,其特征在于,所述至少两条子流为所述多条子流中的全部子流。
  12. 一种网络传输装置,所述装置用于通过多条子流进行数据传输,其特征在于,所述装置包括:
    监控模块,用于确定所述多条子流的至少一种网络状态参数;
    发送模块,用于当所述多条子流中至少两条子流的所述至少一种网络状态参数满足预设条件时,将数据通过所述至少两条子流进行聚合传输,其中,所述聚合传输为同一数据包仅通过所述至少两条子流中的一条进行发送,所述至少两条子流中的每条子流所发送的数据包互不相同。
  13. 根据权利要求11所述装置,其特征在于,所述发送模块还用于,当所述多条子流中至少一条子流的所述至少一种网络状态参数不满足预设条件时,将数据分别通过所述至少一条子流进行冗余传输,其中,所述冗余传输为数据包均通过所述至少一条子流中的每条子流进行发送,所述至少一条子流中每条子流所发送的数据包相同。
  14. 根据权利要求11或12所述装置,其特征在于,所述发送模块还用于,当所述聚合传输的传输速率之和小于或等于对应的阈值时,将数据分别通过所述至少两条子流进行冗余传输,其中,所述冗余传输为数据包均通过所述至少两条子流中的每条子流进行发送,所述至少两条子流中每条子流所发送的数据包相同。
  15. 根据权利要求11至13中任一所述装置,其特征在于,所述网络状态参数包括:其特征在于,所述网络状态参数包括:实时传输速率、拥塞控制窗口、接收窗口、已传输数据包数量、已传输未确认数据包数量、传输时间、传输时延抖动、丢包率或者所述至少两条子流的链路传输时延差值。
  16. 根据权利要求15所述装置,其特征在于,当所述网络状态包括所述至少两条子流的链路传输时延差时,所述预设条件具体为:所述两条子流链路传输时延差值小于或等于对应的阈值;
    所述数据包包括第一数据包,其中,所述第一数据包包含所述第一数据包发送时间,或者,所述第一数据包包含第二数据包标识和所述第一数据包与所述第二数据包的发送时间差,所述第二数据包为与所述第一数据包通过所述至少两条子流中的不同子流发送的数据包,或者,所述第一数据包包含第三数据包标识,所述第三数据包为与所述第一数据包同时或按照预定时间间隔发送,且通过所述至少两条子流中的不同子流发送的数据包;
    所述装置还包括接收模块,用于获取响应报文,所述响应报文包括根据第一数据包计算得到的所述至少两条子流的链路传输时延差值。
  17. 根据权利要求12所述装置,其特征在于,所述发送模块将数据通过所述至少两条子流进行聚合传输时具体用于,将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中,其中,所述至少两条子流中传输时延大的子流的待发送缓存队列的数据量小于传输时延小的子流的待发送缓存队列的数据量。
  18. 根据权利要求17所述装置,其特征在于,所述发送模块将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中时具体用于:
    将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中,以使得所述至少两条子流的待发送缓存队列中的数据量的差值与所述至少两条子流的传输时延满足预设关系。
  19. 根据权利要求13所述装置,其特征在于,所述发送模块将所述数据的一个数据包放入所述至少两条子流中的一条子流的待发送缓存队列中时具体用于:
    将所述数据的一个数据包放入所述至少两条子流中传输总时间最短的子流,所述传输总时间为从数据包进入待发送缓存队列至数据包到达接收端之间的时间。
  20. 根据权利要求17至19所述装置,其特征在于,所述发送模块中所述所述至少两条子流的每条子流的待发送缓存队列中的数据量不大于该条子流对应的阈值。
  21. 根据权利要求17至19所述装置,其特征在于,所述发送模块中所述至少两条子流的每条子流的待发送缓存队列中的数据量还满足如下条件中的至少一种:
    所述至少两条子流的每条子流的待发送缓存队列中的数据包数量与该子流发送窗口字节数满足预设关系;或者,
    所述至少两条子流的每条子流的待发送缓存队列中的数据包数量与该子流上最大允许飞行中数据包数量。
  22. 根据权利要求13-21所述装置,其特征在于,所述发送模块中所述至少两条子流为所述多条子流中的全部子流
PCT/CN2018/077581 2017-03-02 2018-02-28 多子流网络传输方法及装置 WO2018157819A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP18760794.0A EP3582455B1 (en) 2017-03-02 2018-02-28 Method and apparatus for multiple subflows network transmission
US16/557,140 US11171862B2 (en) 2017-03-02 2019-08-30 Multi-subflow network transmission method and apparatus
US17/499,069 US20220103465A1 (en) 2017-03-02 2021-10-12 Multi-Subflow Network Transmission Method and Apparatus

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201710121110.7 2017-03-02
CN201710121110 2017-03-02
CN201710278562.6A CN108540380B (zh) 2017-03-02 2017-04-25 多子流网络传输方法及装置
CN201710278562.6 2017-04-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/557,140 Continuation US11171862B2 (en) 2017-03-02 2019-08-30 Multi-subflow network transmission method and apparatus

Publications (1)

Publication Number Publication Date
WO2018157819A1 true WO2018157819A1 (zh) 2018-09-07

Family

ID=63369748

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/077581 WO2018157819A1 (zh) 2017-03-02 2018-02-28 多子流网络传输方法及装置

Country Status (3)

Country Link
US (1) US20220103465A1 (zh)
EP (1) EP3582455B1 (zh)
WO (1) WO2018157819A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380108A (zh) * 2020-07-10 2021-02-19 中国航空工业集团公司西安飞行自动控制研究所 一种面向分区空间隔离的全自动测试方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11283721B2 (en) * 2018-06-27 2022-03-22 Nokia Solutions And Networks Oy Application-based traffic control in multipath networks
CN117692396B (zh) * 2024-02-04 2024-04-26 湖南国科亿存信息科技有限公司 一种复杂网络环境下的tcp单边加速方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895466A (zh) * 2010-07-02 2010-11-24 北京交通大学 一种降低sctp多路径传输数据包乱序影响的方法
CN104735726A (zh) * 2013-12-23 2015-06-24 中兴通讯股份有限公司 一种基于多种无线接入网络的业务分流传输的方法及装置
EP2899929A1 (en) * 2014-01-28 2015-07-29 Samsung Electronics Co., Ltd Method and apparatus for traffic distribution control using Multi-Path Transport Control Protocol in wireless heterogeneous networks
CN104954206A (zh) * 2015-07-31 2015-09-30 重庆邮电大学 一种多路径并行传输系统的乱序分析方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7733913B1 (en) * 2006-07-31 2010-06-08 Hewlett-Packard Development Company, L.P. Striping data over transmission channels
GB2532072B (en) * 2014-11-07 2017-04-19 Canon Kk Feedback management in a multipath communication network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895466A (zh) * 2010-07-02 2010-11-24 北京交通大学 一种降低sctp多路径传输数据包乱序影响的方法
CN104735726A (zh) * 2013-12-23 2015-06-24 中兴通讯股份有限公司 一种基于多种无线接入网络的业务分流传输的方法及装置
EP2899929A1 (en) * 2014-01-28 2015-07-29 Samsung Electronics Co., Ltd Method and apparatus for traffic distribution control using Multi-Path Transport Control Protocol in wireless heterogeneous networks
CN104954206A (zh) * 2015-07-31 2015-09-30 重庆邮电大学 一种多路径并行传输系统的乱序分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3582455A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380108A (zh) * 2020-07-10 2021-02-19 中国航空工业集团公司西安飞行自动控制研究所 一种面向分区空间隔离的全自动测试方法
CN112380108B (zh) * 2020-07-10 2023-03-14 中国航空工业集团公司西安飞行自动控制研究所 一种面向分区空间隔离的全自动测试方法

Also Published As

Publication number Publication date
EP3582455A1 (en) 2019-12-18
EP3582455B1 (en) 2022-06-22
EP3582455A4 (en) 2019-12-25
US20220103465A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
CN108540380B (zh) 多子流网络传输方法及装置
US11316795B2 (en) Network flow control method and network device
US11102129B2 (en) Adjusting rate of outgoing data requests for avoiding incast congestion
Hong et al. Finishing flows quickly with preemptive scheduling
JP6303452B2 (ja) 通信ノード
Barré et al. Multipath TCP: from theory to practice
US8102852B2 (en) Method and system for time-stamping data packets from a network
JP2020502948A (ja) パケット伝送システムおよび方法
US20200236052A1 (en) Improving end-to-end congestion reaction using adaptive routing and congestion-hint based throttling for ip-routed datacenter networks
US20140164640A1 (en) Small packet priority congestion control for data center traffic
US20120140621A1 (en) Incast Congestion Control in a Network
CA2732258A1 (en) Dynamic setting of optimal buffer sizes in ip networks
US20220103465A1 (en) Multi-Subflow Network Transmission Method and Apparatus
Singh et al. Enhancing fairness and congestion control in multipath TCP
Lu SED: An SDN-based explicit-deadline-aware TCP for cloud Data Center Networks
Sreekumari et al. Transport protocols for data center networks: a survey of issues, solutions and challenges
US20240098155A1 (en) Systems and methods for push-based data communications
Hu et al. RPO: Receiver-driven transport protocol using opportunistic transmission in data center
JP4698645B2 (ja) フロー制御装置およびフロー制御方法
WO2019080866A1 (zh) 数据传输方法、设备及计算机存储介质
Halepoto et al. Management of buffer space for the concurrent multipath transfer over dissimilar paths
WO2021254475A1 (zh) 一种用于调度队列的方法及装置
CN111224884B (zh) 拥塞控制的处理方法、报文转发装置及报文接收装置
Lu et al. EQF: An explicit queue-length feedback for TCP congestion control in datacenter networks
Sreekumari et al. A simple and efficient approach for reducing TCP timeouts due to lack of duplicate acknowledgments in data center networks

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: 18760794

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: 2018760794

Country of ref document: EP

Effective date: 20190912