WO2016176818A1 - Method and device for transmitting data - Google Patents

Method and device for transmitting data Download PDF

Info

Publication number
WO2016176818A1
WO2016176818A1 PCT/CN2015/078252 CN2015078252W WO2016176818A1 WO 2016176818 A1 WO2016176818 A1 WO 2016176818A1 CN 2015078252 W CN2015078252 W CN 2015078252W WO 2016176818 A1 WO2016176818 A1 WO 2016176818A1
Authority
WO
WIPO (PCT)
Prior art keywords
substream
substreams
determining
communication connection
load strength
Prior art date
Application number
PCT/CN2015/078252
Other languages
French (fr)
Chinese (zh)
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
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201580001192.0A priority Critical patent/CN107078999B/en
Priority to PCT/CN2015/078252 priority patent/WO2016176818A1/en
Publication of WO2016176818A1 publication Critical patent/WO2016176818A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • Embodiments of the present invention relate to the field of communications and, more particularly, to methods and apparatus for transmitting data in the field of communications.
  • Network topologies in modern data centers provide multiple paths between source and destination nodes, potentially providing conditions for parallel data transfer and increased data transfer throughput.
  • the traditional network transmission protocol does not adapt to this, such as the Transmission Control Protocol (TCP), each communication connection only establishes one stream, so only one of the paths can be used for data transmission at the same time.
  • TCP Transmission Control Protocol
  • each communication connection only establishes one stream, so only one of the paths can be used for data transmission at the same time.
  • the path diversity of modern data center networks cannot be effectively utilized to improve transmission efficiency.
  • MPTCP Multipath Transmission Control Protocol
  • the use of more substreams introduces a new cost to the multipath transport protocol, the magnitude of which is positively related to the number of substreams. Especially when the communication load intensity is small, using too many sub-flows can have serious negative effects.
  • the process of creating and destroying too many substreams increases communication latency and control traffic. For a small data communication connection, the original data transmission using a single or a few substreams in a number of Round Trip Time (RTT), creating too many substreams increases the completion time of the entire communication connection.
  • RTT Round Trip Time
  • each substream needs to maintain an independent data transmission control block. Too many substreams mean excessive central processing unit (CPU) resources and memory resource consumption.
  • the multi-path transport protocol allows more sub-streams to exist in the network. For some networks (such as Software Defined Networking (SDN)), this will increase the demand for network device flow table capacity. Subflows can cause network device flow table overflows, which can lead to network scalability issues.
  • SDN Software Defined
  • the transport layer multipath transmission protocol represented by MPTCP usually uses a fixed number of substreams, and the number of substreams cannot be dynamically adjusted during the lifetime of the communication connection. Since the load strength of the communication connection is usually unknown in advance, the system aggregates the different paths in order to fully utilize the multipath transmission protocol.
  • the ability to idle bandwidth usually sets a larger number of substreams according to the demand of large data traffic transmission. This leads to a small amount of data traffic dominated by the network, using too many substreams, which in turn introduces excessive substream cost. Conversely, if the setting uses only a small number of substreams, the transmission efficiency will be greatly reduced for communication connections with large traffic.
  • Another problem with the existing transport layer multipath transport protocol is that the shaping of network traffic is neglected, that is, the load strength of each substream in the network is unbalanced.
  • Related studies have shown that the characteristics of data traffic have an important impact on the overall transmission efficiency of the network. For example, for the Equal Cost Multipath (ECMP) technology of the mainstream network load balancing technology, it is easier to achieve high network utilization and high transmission efficiency by scheduling a large number of smooth small stream traffic compared to the network traffic with mixed stream size.
  • Multi-path transmission protocol has the opportunity to reshape network traffic characteristics due to the use of multiple sub-streams to transmit data.
  • the existing multi-path transmission protocol does not allocate data between multiple sub-flows from the perspective of shaping network traffic. Design.
  • Embodiments of the present invention provide a method and apparatus for transmitting data, which can dynamically adjust the number of substreams in a communication connection, and improve network utilization and transmission efficiency.
  • a method for transmitting data where a communication connection of a network system to which the method is applied currently includes n sub-streams, the method comprising:
  • the determining, according to the load strength of the current n substreams in the communication connection, determining to create the (n+1)th substream includes:
  • the determining, according to the load strength of the current n substreams in the communication connection, determining to create the (n+1)th substream includes:
  • the load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  • the substream is a base
  • the method before the determining to create the (n+1)th substream, the method further includes:
  • the method further includes:
  • the method further includes:
  • the load strength of the (n+1)th substream is updated.
  • the method further includes:
  • the determining, by the preset second period, whether the current substream of the communication connection needs to be destroyed Subflows including:
  • the determining, by the preset second period, whether the current substream of the communication connection needs to be destroyed Subflows including:
  • a substream having the smallest load intensity among the p substreams is determined as a substream that needs to be destroyed.
  • the method further includes:
  • s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  • the load strength is The normalized throughput rate, which is the amount of data transmitted by the substream in unit time over the unit network interface bandwidth.
  • a second aspect provides an apparatus for transmitting data, where a communication connection of a network system to which the apparatus belongs currently includes n substreams, and the apparatus includes:
  • a first determining unit configured to determine to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer
  • a first sending unit configured to send, on the n+1th substream determined on the first determining unit, the first data packet to be sent.
  • the first determining unit is specifically configured to:
  • the first determining unit is specifically configured to:
  • the load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  • the sub-flow is a sub-flow based on a transmission control protocol (TCP), where the first determining unit is specifically configured to:
  • the first determining unit before determining to create the (n+1)th substream, is further configured to:
  • the device further includes:
  • a second determining unit configured to determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window
  • a second sending unit configured to send, on the substream determined by the second determining unit, a second data packet to be sent.
  • the device further includes:
  • an updating unit configured to update a load strength of the (n+1)th substream when the first data packet is transmitted.
  • the device further includes:
  • a third determining unit configured to determine, according to a preset second period, whether a substream that needs to be destroyed exists in a current substream of the communication connection;
  • the destruction unit is configured to destroy the substream that needs to be destroyed when there is a substream that needs to be destroyed.
  • the third determining unit is specifically configured to:
  • the q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
  • the third determining unit is specifically configured to:
  • a substream having the smallest load intensity among the p substreams is determined as a substream that needs to be destroyed.
  • the device further includes:
  • a creating unit configured to create s substreams when the communication connection is established, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  • the load strength is The normalized throughput rate, which is the amount of data transmitted by the substream in unit time over the unit network interface bandwidth.
  • a network system comprising the apparatus for transmitting data according to any one of the implementations of the second aspect.
  • the method and apparatus for transmitting data determines that a new substream is created according to the load strength of the current substream of the communication connection, and the data packet is sent on the newly created substream, and the communication can be dynamically adjusted.
  • FIG. 1 is a schematic flow chart of a method of transmitting data according to an embodiment of the present invention.
  • FIG. 2 is a schematic flow chart of a method of transmitting data according to another embodiment of the present invention.
  • FIG. 3 is a schematic flowchart of a method for transmitting data according to still another embodiment of the present invention.
  • FIG. 4 is a schematic block diagram of an apparatus for transmitting data according to an embodiment of the present invention.
  • FIG. 5 is a schematic block diagram of an apparatus for transmitting data according to another embodiment of the present invention.
  • MPTCP is currently the most representative and promising transport layer multipath transport protocol.
  • MPTCP performs parallel transmission of data using multiple substreams.
  • Each sub-flow is similar to the traditional TCP, with its own transmission queue, transmission window (congestion window), sequence number space; sub-flow uses independent congestion control mechanism or sub-stream coupling congestion control mechanism; all sub-streams are sent
  • the host side shares the transmission buffer maintenance total transmission window, records the receiving window notified by the receiving end, all sub-streams share the receiving buffer on the receiving host side, maintain the total receiving window, and a set of outer sequence number space can guarantee transmission and reception.
  • the order of the data in the buffer is similar to the traditional TCP, with its own transmission queue, transmission window (congestion window), sequence number space; sub-flow uses independent congestion control mechanism or sub-stream coupling congestion control mechanism; all sub-streams are sent
  • the host side shares the transmission buffer maintenance total transmission window, records the receiving window notified by the receiving end, all sub-streams share the receiving buffer on the receiving host side, maintain the total
  • the data transmission process of the MPTCP communication connection is: the data is obtained from the transmission buffer at the transmitting host end, and the data packet is distributed to each sub-flow for transmission according to the corresponding sub-stream data distribution mechanism; the data of each sub-flow is in accordance with the respective The sequence number is numbered and transmitted in a sequence, potentially flowing through different network paths, and finally to the receiving host; on the receiving host, multiple substreams are received and recombined into one data stream, which is placed in the receiving buffer.
  • the number of substreams is already determined when establishing a communication connection, and is fixed during the lifetime of the communication connection and cannot be dynamically adjusted.
  • the number of substreams of the MPTCP communication connection is specified by configuring the system parameter "net.mptcp.mptcp_path_manager" of the MPTCP. This leads to MPTCP not being able to weigh the advantages and disadvantages of multiple substreams and optimize transmission performance.
  • the use of a fixed number of substreams is also disadvantageous for smoothing the fluctuation of the communication load and providing the transmission capability of dynamic scaling.
  • the current MPTCP provides two sub-stream data distribution mechanisms: one is the minimum RTT-first mechanism, that is, the data is preferentially scheduled to the smallest sub-stream of the RTT; the other is the Round-Robin mechanism, that is, at all The data is rotated on the substream.
  • Which sub-stream data distribution mechanism is used can be specified by configuring the system parameter "net.mptcp.mptcp_scheduler" of MPTCP.
  • the present invention is directed to improvements in the above-described problems in the transport layer multipath transmission protocol represented by MPTCP.
  • FIG. 1 illustrates a method 100 of transmitting data, which is performed by a device that transmits data in a communication connection, and in particular, by a sub-flow control mechanism and a module corresponding to a sub-stream data distribution mechanism, in accordance with an embodiment of the present invention.
  • the communication connection of the network system of the application method 100 currently includes n sub-streams, and the method 100 includes:
  • the embodiment of the present invention controls the allocation of data between substreams by considering the load strength of the substream. Moreover, in order to match the aggregate transmission capacity of the communication load and the substream, and smooth the fluctuation of the communication load, the substream number is managed by the load adaptive subflow control technique.
  • the load adaptive subflow control technique When the load strength of the current substream of the communication connection rises, a new substream can be created according to a preset rule to increase the transmission capability.
  • the apparatus for transmitting data determines that the load of the n substreams in the communication connection is too high according to the load strength of the n substreams in the communication connection. Determining to create an n+1th substream to transmit the first data packet on the (n+1)th substream.
  • the embodiment of the present invention after acquiring the first data packet to be sent, determining, according to the load strength of the current n substreams in the communication connection, determining to create the (n+1)th substream; or according to a certain period.
  • the load strength of the current n substreams in the communication connection is detected, and then the n+1th substream is determined to be created. That is, the embodiment of the present invention does not limit the foregoing, after the first data packet to be sent is obtained, and the first data packet to be sent is obtained.
  • the embodiment of the present invention provides a communication load adaptive sub-flow control method and a sub-stream data distribution mechanism, and the combination of the two mechanisms can solve the sub-flow number unadjustable and sub-flow in the existing multi-path transmission protocol. Traffic shaping is poor.
  • the method for transmitting data determines that a new substream is created according to the load strength of the current substream of the communication connection, and the data packet is sent on the newly created substream, and the substream in the communication connection can be dynamically adjusted. Count and balance the load strength between substreams to improve network utilization and transmission efficiency.
  • S101 is based on the negative of the current n substreams in the communication connection.
  • Load strength determine the creation of the n+1th substream, including:
  • the load strength of the current n substreams in the communication connection is detected.
  • a new substream may be created according to a preset rule to increase the transmission capability. That is, when there is a first data packet to be transmitted, the load strength of the current n substreams in the communication connection is detected, and when the transmission capability of the current n substreams in the communication connection is insufficient, a new n+1th substream is created. Transmitting the first data packet to be transmitted on the (n+1)th substream.
  • S101 determines to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection, including:
  • the load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  • the load strength of the current n substreams in the communication connection is detected according to a first period preset by the system.
  • a new substream may be created according to a preset rule to increase the transmission capability. That is, when the transmission capacity of the current n substreams in the communication connection is insufficient, a new n+1th substream is created.
  • one sub-flow is selected from the sub-streams in the communication connection to send the first data packet to be transmitted.
  • the newly created n+1th substream in the communication connection is selected to send the first data packet to be sent.
  • the sub-flow is a sub-flow based on the transmission control protocol (TCP), and S102 determines to create the (n+1)th sub-stream according to the load strength of the n sub-streams, including:
  • a substream having a transmission window concept such as a TCP-based substream
  • whether data can be transmitted on the substream, on which substream the data is transmitted, whether a new substream needs to be created in addition to considering the substream Load strength, you can also consider whether the substream currently has an available send window (ie, the send window is not full). Therefore, in the embodiment of the present invention, when performing sub-stream data distribution, it is further considered whether the sub-stream currently has an available transmission window.
  • the first threshold may be determined according to the load capacity of the sub-flow, and the different sub-flows may be corresponding to different first thresholds. For the sake of simplicity, the same first threshold may be preset for different sub-flows. limited.
  • a substream of a multipath transmission protocol that does not have a transmission window concept, such as a User Datagram Protocol (UDP) based substream
  • UDP User Datagram Protocol
  • embodiments of the present invention do not consider whether there is a factor of available transmission window. Alternatively, it can be considered that its send window is infinite, that is, it always has an available send window.
  • the method 100 before determining to create the (n+1)th substream, the method 100 further includes:
  • the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
  • the embodiment of the present invention allows a new substream to be created when the load strength of the current substream in the communication connection is large, or when the current substream does not exist, and the data packet cannot be sent.
  • the packet is transmitted on the substream.
  • the maximum number of substreams may be preset to be m.
  • the maximum number of substreams m can be specified in advance by an artificial configuration.
  • the current sub-flow in the communication connection of the embodiment of the present invention may be a TCP-based sub-flow, or may be a sub-flow based on UDP or other protocols, which is not limited by the embodiment of the present invention.
  • the embodiment of the present invention may further allow: when the number of substreams in the communication link reaches the maximum number of substreams m, and the load strengths of all substreams having available transmission windows have reached the preset value.
  • the substream may send more data than the first threshold.
  • the method 100 further includes:
  • the first packet when there is a sub-flow in the communication connection whose load strength is less than the first threshold and has an available transmission window, the first packet may be sent on the determined sub-flow.
  • Two packets For example, the second data packet may be sent on a substream whose detected first load strength is less than a first threshold and has an available transmission window; and the detected multiple load strengths may be less than a first threshold, and have The second data packet is sent by using a sub-stream with the smallest load strength, and the specific implementation manner is not limited in the embodiment of the present invention.
  • the detected load strength may be less than the first threshold in a round robin manner, and And transmitting the second data packet on the first substream having an available transmission window.
  • the embodiment of the present invention can provide better transmission performance by creating a new substream at a high load, and by limiting the load strength of each substream, it can shape good traffic to optimize the overall transmission efficiency of the network.
  • the embodiment of the present invention especially when combined with a low load, can reduce the number of substreams, and can control the number of substreams within a suitable range, so that the number of substreams can satisfy the load requirement of the communication connection.
  • the overhead required to maintain the substream can be balanced with the load requirements, so that the communication system has high transmission performance.
  • the load strength is a normalized throughput rate
  • the normalized throughput rate is a data volume transmitted by the sub-flow in a unit time and a unit network interface bandwidth.
  • the normalized throughput rate of the substream can be used to characterize the load strength of the substream, and the small stream characteristic of the substream can be ensured by controlling the load strength of the substream.
  • the normalized throughput rate is the amount of data transmitted by the substream in unit time over the unit network interface bandwidth.
  • the normalized throughput rate of the substream can be statistically obtained by periodically dividing the lifetime of the communication connection, for example, dividing the lifetime into several A time slice of equal length.
  • the amount of data that has been sent by the substream in each time slice is independently counted, and the amount of data is divided by the entire time slice length to obtain the current on-chip average throughput rate.
  • the throughput rate is generally further expressed as a normalized form, ie, the throughput rate is divided by the network interface bandwidth to obtain a value between 0 and 1, as a normalized throughput rate.
  • the length of the time slice here can be specified by the artificial configuration. Generally, the value should be able to tolerate unequal bursts of several to dozens of data packets, so as to avoid the throughput value for the communication load. The short-term fluctuations are too sensitive.
  • the specific calculation of the normalized throughput rate of the substream can be exemplified as follows: assuming that the time slice length is L, the amount of data that the substream i has sent in the current time slice is C i , and the network interface bandwidth is B i , then the substream i The normalized throughput rate R i is C i /(L ⁇ B i ). It should be noted that the normalized throughput rate of the substream is only one way to measure the load strength of the substream, and the embodiment of the present invention allows other indicators to be used to characterize the load strength of the substream to be replaced.
  • the method 100 further includes:
  • the load strength of the (n+1)th substream is updated, so that before the next data packet to be transmitted is allocated.
  • the load strength of each substream may be stored in a memory of the network system or in a storage unit to which the substream control mechanism and/or the inter-stream data distribution mechanism can read and write.
  • the corresponding module of the sub-flow control mechanism and/or the sub-stream data distribution mechanism calculates a new load strength and updates the newly calculated load strength to the above-mentioned memory or storage unit.
  • the subflow control mechanism and/or the corresponding module of the substream interflow data distribution mechanism are The load strength of each substream is read in a memory or storage unit for use.
  • the load strength of the sub-flow should be updated after the transmission is completed to ensure the accuracy of the load strength of each sub-flow, and it is convenient to determine according to the load strength of each sub-flow. Whether you need to create a new subflow or destroy some substreams, and assign the next packet to be sent.
  • the load strength of each substream in the communication connection may be updated according to a period (for example, according to a time slice) to ensure the accuracy of the load strength of each substream when the data packet is distributed.
  • the method 100 further includes:
  • s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  • one or a specified number of s initial substreams are created.
  • the available transmission window cannot transmit the data packet, a new substream is created, and the data packet is transmitted on the new substream. It can provide better transmission performance and optimize the overall transmission efficiency of the network.
  • the method 100 further includes:
  • the embodiment of the present invention may determine, according to a preset second period (for example, at the end of each time slice), whether there is a need to destroy the current substream of the communication connection according to a preset rule. Subflow.
  • the first period and the second period in the embodiment of the present invention may be the same or different. That is, the creation and destruction of the sub-flows may be performed in the same period or in different periods, which is not limited in the embodiment of the present invention.
  • the embodiment of the present invention can determine the substream to be destroyed according to the load strength of each substream (for example, the normalized throughput rate).
  • the embodiment of the present invention may determine, according to other attributes of the communication connection, such as the round trip time RRT of the data transmission, whether there is a substream that needs to be destroyed in the current substream, and when there is a substream that needs to be destroyed, destroy the substream that needs to be destroyed,
  • the embodiment of the invention is not limited thereto.
  • the substream destruction may be performed after waiting for a certain time.
  • the substream can be destroyed after waiting for the data on the substream to be destroyed to be transferred.
  • the data originally transmitted on the substream is transferred to other substreams for transmission.
  • Other measures may be taken to ensure that the data transmission task can be completed normally, which is not limited by the embodiment of the present invention.
  • determining, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection including:
  • the q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
  • the specific method for determining whether there is a substream to be destroyed in the current substream of the communication connection may be as follows: determining the current substream of the communication connection according to a preset second period (eg, at the end of each time slice) The quantity p; when p is greater than or equal to 2, determining the load strength of each of the p substreams, that is, when more than one substream is included in the communication connection, performing the process of determining the substreams to be destroyed, when When the number of substreams is 1, regardless of the load strength of the substream, the substream is retained, that is, at least one available substream is always maintained; and q substreams whose load strength is less than a preset second threshold are determined to be destroyed.
  • the substream that is, the q substreams with less load strength in the p current substreams are determined as substreams to be destroyed.
  • the second threshold may be determined according to the load capacity of the sub-flow, and the different sub-flows may be corresponding to different second thresholds. For the sake of simplicity, the same second threshold may be preset for different sub-flows. This is not limited.
  • the second threshold should be less than the first threshold according to an embodiment of the invention, so the second threshold can be determined according to the first threshold, for example, the second threshold can be a first threshold multiplied by a constant ⁇ , ⁇ being greater than zero and less than one.
  • determining, according to the preset second period, whether there is a substream to be destroyed in the current substream of the communication connection including:
  • the substream having the smallest load strength among the p substreams is determined as the substream to be destroyed.
  • each substream is destroyed, and the load intensity of the p current substreams is minimized. Stream destruction.
  • a method for transmitting data according to an embodiment of the present invention is described below with a specific example. This example mainly describes the perspective of a data distribution mechanism between sub-streams.
  • 2 illustrates a method 200 of transmitting data in accordance with another embodiment of the present invention.
  • the method 200 can be performed by a module corresponding to a sub-stream data distribution mechanism.
  • the current transport layer multipath protocol communication connection establishment includes n substreams.
  • the module corresponding to the inter-stream data distribution mechanism performs S201 to S208 to determine that one substream transmits the data packet, and when there are multiple data packets to be transmitted, S201 to S208 are repeatedly executed.
  • the method 200 specifically includes:
  • the substream F A is a first substream v having a normalized throughput rate less than a first threshold (R v ⁇ R th ) detected by the round robin method and having an available transmission window. If yes, execute S203; if not, execute S204.
  • S206 Determine whether there is a substream F B that satisfies the condition.
  • the substream F B is a first substream v having a normalized throughput rate greater than or equal to a first threshold (R v ⁇ R th ) detected by the method of rotation and having an available transmission window. If yes, execute S207. If not, the current round does not send a data packet, and S208 is performed.
  • FIG. 3 illustrates a method 300 for transmitting data according to still another embodiment of the present invention.
  • the method 300 may be performed by a module corresponding to a sub-flow control mechanism, and is mainly described from the perspective of a sub-flow control mechanism.
  • the module corresponding to the sub-flow control mechanism creates s initial sub-flows when the communication connection is established, where s is greater than or equal to 1; and when receiving the notification of creating a new sub-flow sent by the sub-flow management module, creating a New subflow.
  • the subflow management module also determines whether to destroy the subflow according to the following steps included in method 300:
  • the size of the sequence numbers of the above processes does not mean the order of execution, and the order of execution of each process should be determined by its function and internal logic, and should not be taken to the embodiments of the present invention.
  • the implementation process constitutes any limitation.
  • Embodiments of the present invention control the allocation of data between substreams by combining a normalized throughput rate constraint and a rotation mechanism—controlling the amount of data transmitted by each substream in a unit time so that the normalized throughput rate does not exceed Specify thresholds and distribute data in a round-robin fashion across all subflows where the normalized throughput does not reach the specified threshold—to shape the small stream flow characteristics.
  • the number of substreams is managed by the load adaptive subflow control technique.
  • sub-flow control mechanism and the inter-stream data distribution mechanism proposed by the embodiments of the present invention are used to perform data distribution and creation and destruction of sub-streams.
  • Subflow control mechanism and substream interflow data distribution mechanism can be
  • the implementation of the corresponding module is also implemented by a unified management module or device, which is not limited by the embodiment of the present invention.
  • the number of substreams can be dynamically adjusted according to the load strength, realizing dynamic expansion and contraction of communication capabilities, and shaping traffic with smooth small substream characteristics.
  • the number of substreams can be greatly reduced at a low load, the transmission efficiency is better than MPTCP at a high load, and the overall transmission of the network is optimized by shaping the traffic. effectiveness.
  • the embodiment of the present invention can increase the communication load strength adaptive sub-flow adjustment capability, and on the one hand, the number of small-sized data communication that is dominant can be used much less than the current sub-flow number setting value of the existing multi-path transmission protocol.
  • the method for transmitting data determines a substream for transmitting a data packet according to a load strength of a current substream of the communication connection, where the substream is a current substream of the communication connection or a newly created substream. Transmitting data packets on the substream enables dynamic adjustment of the number of substreams in the communication link and equalizes the load strength between the substreams, thereby improving network utilization and transmission efficiency.
  • FIG. 4 illustrates an apparatus 400 for transmitting data in accordance with an embodiment of the present invention.
  • the communication connection of the network system to which the device 400 belongs currently includes n substreams.
  • the apparatus 400 includes:
  • the first determining unit 401 is configured to determine, according to the current load strength of the n substreams in the communication connection, that the n+1th substream is created, where n is a positive integer;
  • the first sending unit 402 is configured to send the first data packet to be sent on the n+1th substream determined by the first determining unit 401.
  • the apparatus for transmitting data determines to create a new substream according to the load strength of the current substream of the communication connection, and sends a data packet on the newly created substream, so that the substream in the communication connection can be dynamically adjusted. Count and balance the load strength between substreams to improve network utilization and transmission efficiency.
  • the first determining unit 401 is specifically configured to:
  • the first determining unit 401 is specifically configured to:
  • the load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  • the sub-flow is a sub-flow based on the transmission control protocol TCP, and the first determining unit 401 is specifically configured to:
  • the first determining unit 401 is further configured to:
  • the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
  • the device 400 further includes:
  • a second determining unit configured to determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window
  • a second sending unit configured to send, on the substream determined by the second determining unit, the second data packet to be sent.
  • the device 400 further includes:
  • an updating unit configured to update a load strength of the (n+1)th substream when the first data packet is transmitted.
  • the device 400 further includes:
  • a third determining unit configured to determine, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection;
  • the destruction unit is configured to destroy the substream that needs to be destroyed when there is a substream that needs to be destroyed.
  • the third determining unit is specifically configured to:
  • the q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
  • the third determining unit is specifically configured to:
  • the number p of current substreams of the communication connection is determined, where p is a positive integer number
  • the substream having the smallest load strength among the p substreams is determined as the substream to be destroyed.
  • the device 400 further includes:
  • a creating unit configured to create s substreams when the communication connection is established, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  • the load strength is a normalized throughput rate
  • the normalized throughput rate is the amount of data transmitted by the sub-flow in a unit time and the unit network interface bandwidth.
  • apparatus 400 in accordance with embodiments of the present invention may correspond to an executing body in an embodiment of the method of the present invention, and that the above and other operations and/or functions of the various modules in apparatus 400 are respectively implemented in order to achieve the operations of FIGS. 1 through 3.
  • the corresponding processes of the various methods are not described here for brevity.
  • the apparatus for transmitting data determines a substream for transmitting a data packet according to a load strength of a current substream of the communication connection, where the substream is a current substream of the communication connection or a newly created substream. Transmitting data packets on the substream enables dynamic adjustment of the number of substreams in the communication link and equalizes the load strength between the substreams, thereby improving network utilization and transmission efficiency.
  • an embodiment of the present invention further provides an apparatus 500 for transmitting data, where a communication connection of a network system to which the apparatus 500 belongs currently includes n substreams.
  • the apparatus 500 includes a processor 501, a memory 502, a bus system 503, and a transceiver 504.
  • the processor 501, the memory 502 and the transceiver 504 are connected by a bus system 503 for storing instructions for executing the instructions stored by the memory 502 to control the transceiver 504 to send or receive signals. among them,
  • the processor 501 is configured to: determine to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer;
  • the transceiver 504 is configured to: send the first data packet to be sent on the (n+1)th substream.
  • the apparatus for transmitting data determines to create a new substream according to the load strength of the current substream of the communication connection, and sends a data packet on the newly created substream, so that the substream in the communication connection can be dynamically adjusted. Count and balance the load strength between substreams to improve network utilization and transmission efficiency.
  • the processor 501 may be a central processing unit (“CPU"), and the processor 501 may also be other general-purpose processors, digital signal processors (DSPs). , application specific integrated circuit (ASIC), off-the-shelf programmable gate array (FPGA) Or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, and the like.
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the memory 502 can include read only memory and random access memory and provides instructions and data to the processor 501.
  • a portion of the memory 502 can also include a non-volatile random access memory.
  • the memory 502 can also store information of the device type.
  • the bus system 503 may include a power bus, a control bus, a status signal bus, and the like in addition to the data bus. However, for clarity of description, various buses are labeled as bus system 503 in the figure.
  • each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 501 or an instruction in a form of software.
  • the steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor.
  • the software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like.
  • the storage medium is located in the memory 502, and the processor 501 reads the information in the memory 502 and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
  • the processor 501 determines to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection, including:
  • the processor 501 determines to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection, including:
  • the load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  • the sub-flow is a sub-flow based on the Transmission Control Protocol (TCP), and the processor 501 determines, according to the load strength of the n sub-streams, the creation of the (n+1)th sub-stream, including:
  • the processor 501 before determining to create the (n+1)th substream, is further configured to:
  • the processor 501 is further configured to: determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available send window;
  • the transceiver 504 is further configured to: send the second data packet to be sent on the determined substream.
  • the processor 501 is further configured to: when the first data packet is transmitted, update a load strength of the (n+1)th substream.
  • the processor 501 is further configured to:
  • the processor 501 determines, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection, including:
  • the q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
  • the processor 501 determines, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection, including:
  • the substream having the smallest load strength among the p substreams is determined as the substream to be destroyed.
  • the processor 501 is further configured to:
  • s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  • the load strength is a normalized throughput rate
  • the normalized throughput rate is the amount of data transmitted by the sub-flow in a unit time on a unit network interface bandwidth.
  • apparatus 500 for transmitting data may correspond to the apparatus 400 in the embodiment of the present invention, and may correspond to a corresponding body in the method according to an embodiment of the present invention, and each module in the apparatus 500
  • the above and other operations and/or functions are respectively implemented in order to implement Figure 1
  • the corresponding processes of the respective methods in FIG. 3 are not described herein again for the sake of brevity.
  • the apparatus for transmitting data determines a substream for transmitting a data packet according to a load strength of a current substream of the communication connection, where the substream is a current substream of the communication connection or a newly created substream. Transmitting data packets on the substream enables dynamic adjustment of the number of substreams in the communication link and equalizes the load strength between the substreams, thereby improving network utilization and transmission efficiency.
  • the embodiment of the present invention further provides a network system, including the device 400 or the device 500 for transmitting data described in the embodiment of the present invention.
  • the switching device in the network system may be the device 400 or the device 500 for transmitting data according to an embodiment of the present invention.
  • B corresponding to A means that B is associated with A, and B can be determined according to A.
  • determining B from A does not mean that B is only determined based on A, and that B can also be determined based on A and/or other information.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or 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 various embodiments of the present invention may be integrated in one processing unit
  • each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the functions may be stored in a computer readable storage medium if implemented in the form of a software functional unit and sold or used as a standalone product.
  • the technical solution of the present invention which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including
  • the instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) 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 U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .

Abstract

Disclosed are a method and device for transmitting data. A communication link of a network system applying the method comprises currently an n-number of sub-streams. The method comprises: determining to establish an n+1-ordinal sub-stream on the basis of the load intensity of a current n-number of sub-streams in a communication link, where n is a positive integer; and transmitting a to be transmitted first packet on the n+1-ordinal sub-stream. In addition, the method may further comprise: determining the presence among the current sub-streams of the communication link of a sub-stream having a load intensity less than the first threshold and provided with an available transmission window; and transmitting a to be transmitted second packet on the sub-stream determined. The method and device of embodiments of the present invention for transmitting data determine to establish the new sub-stream on the basis of the load intensity of current sub-streams of the communication link, transmit the packet on the newly established sub-stream, allow the number of sub-streams in the communication link to be adjusted dynamically, balance the load intensity among the sub-streams, and increase the utilization rate and transmission efficiency of the network.

Description

传输数据的方法和装置Method and device for transmitting data 技术领域Technical field
本发明实施例涉及通信领域,并且更具体地,涉及通信领域中传输数据的方法和装置。Embodiments of the present invention relate to the field of communications and, more particularly, to methods and apparatus for transmitting data in the field of communications.
背景技术Background technique
现代数据中心的网络拓扑(例如胖树型(Fat-Tree)网络拓扑)在源节点和目的节点间提供多条路径,潜在地为数据并行传输,提高数据传输吞吐率提供了条件。然而,传统的网络传输协议并不与此相适应,例如传输控制协议(Transmission Control Protocol,TCP),每个通信连接只建立一个流,因此同一时刻只能使用其中的一条路径进行数据传输,这不能有效地利用现代数据中心网络的路径多样性来提高传输效率。Network topologies in modern data centers (such as fat-tree network topologies) provide multiple paths between source and destination nodes, potentially providing conditions for parallel data transfer and increased data transfer throughput. However, the traditional network transmission protocol does not adapt to this, such as the Transmission Control Protocol (TCP), each communication connection only establishes one stream, so only one of the paths can be used for data transmission at the same time. The path diversity of modern data center networks cannot be effectively utilized to improve transmission efficiency.
为了获得更好的传输性能,出现了以多路径传输控制协议(Multipath Transmission Control Protocol,MPTCP)为代表的传输层多路径传输协议。MPTCP可以为每个通信连接建立多个子流,每个子流可以潜在地利用网络的不同路径并行传输,聚合不同路径的空闲带宽,从而实现更好的传输性能。In order to obtain better transmission performance, a transport layer multipath transmission protocol represented by the Multipath Transmission Control Protocol (MPTCP) has appeared. MPTCP can establish multiple sub-streams for each communication connection. Each sub-flow can potentially transmit in parallel using different paths of the network, and aggregate the idle bandwidth of different paths, thereby achieving better transmission performance.
但是,使用更多的子流也为多路径传输协议引入了新的代价,代价的大小与子流数成正相关。尤其是在通信负载强度较小时,使用过多子流会带来严重的负面效应。首先,创建和销毁过多子流的过程,增大了通信延迟和控制流量。对于小数据量的通信连接,原来使用单个或少数子流在数个往返时间(Round Trip Time,RTT)内完成的数据传输,建立过多子流反而增加了整个通信连接的完成时间。第二,每个子流需要维护独立的数据传输控制块,过多的子流意味着过多的中央处理器(Central Processing Unit,CPU)资源和内存资源消耗。第三,多路径传输协议使得网络中同时存在更多的子流,对于一些网络(例如软件定义网络(Software Defined Networking,SDN)),这会增大对网络设备流表容量的需求,过多子流可能导致网络设备流表溢出,进而导致出现网络可扩展性问题。However, the use of more substreams introduces a new cost to the multipath transport protocol, the magnitude of which is positively related to the number of substreams. Especially when the communication load intensity is small, using too many sub-flows can have serious negative effects. First, the process of creating and destroying too many substreams increases communication latency and control traffic. For a small data communication connection, the original data transmission using a single or a few substreams in a number of Round Trip Time (RTT), creating too many substreams increases the completion time of the entire communication connection. Second, each substream needs to maintain an independent data transmission control block. Too many substreams mean excessive central processing unit (CPU) resources and memory resource consumption. Third, the multi-path transport protocol allows more sub-streams to exist in the network. For some networks (such as Software Defined Networking (SDN)), this will increase the demand for network device flow table capacity. Subflows can cause network device flow table overflows, which can lead to network scalability issues.
目前,以MPTCP为代表的传输层多路径传输协议通常使用固定的子流数,在通信连接的生存期内不能动态地调整子流数。由于通信连接的负载强度通常是事先未知的,系统为了充分发挥多路径传输协议聚合不同路径的空 闲带宽的能力,通常按照大数据量通信传输的需求设定较多的子流数。这会导致网络中数量占主导地位的小数据量通信,使用过多子流数,进而引入过大的子流代价。反之,如果设定只使用少量子流,则对于通信量较大的通信连接,传输效率将大打折扣。At present, the transport layer multipath transmission protocol represented by MPTCP usually uses a fixed number of substreams, and the number of substreams cannot be dynamically adjusted during the lifetime of the communication connection. Since the load strength of the communication connection is usually unknown in advance, the system aggregates the different paths in order to fully utilize the multipath transmission protocol. The ability to idle bandwidth usually sets a larger number of substreams according to the demand of large data traffic transmission. This leads to a small amount of data traffic dominated by the network, using too many substreams, which in turn introduces excessive substream cost. Conversely, if the setting uses only a small number of substreams, the transmission efficiency will be greatly reduced for communication connections with large traffic.
现有的传输层多路径传输协议的另一个问题是,忽视了对网络流量的塑造,即网络中各子流的负载强度是不均衡的。相关研究显示,数据流量的特性对于网络的整体传输效率有重要影响。例如,对于主流网络负载均衡技术等价多路径(Equal Cost Multipath,ECMP)技术,相比调度大小流混杂的网络流量,调度大量平稳的小流流量更容易实现网络的高利用率和高传输效率。多路径传输协议由于采用多个子流发送数据,潜在地存在重塑网络流量特性的机会,但现有的多路径传输协议没有从塑造好的网络流量的角度对数据在多子流间的分配策略进行设计。Another problem with the existing transport layer multipath transport protocol is that the shaping of network traffic is neglected, that is, the load strength of each substream in the network is unbalanced. Related studies have shown that the characteristics of data traffic have an important impact on the overall transmission efficiency of the network. For example, for the Equal Cost Multipath (ECMP) technology of the mainstream network load balancing technology, it is easier to achieve high network utilization and high transmission efficiency by scheduling a large number of smooth small stream traffic compared to the network traffic with mixed stream size. . Multi-path transmission protocol has the opportunity to reshape network traffic characteristics due to the use of multiple sub-streams to transmit data. However, the existing multi-path transmission protocol does not allocate data between multiple sub-flows from the perspective of shaping network traffic. Design.
发明内容Summary of the invention
本发明实施例提供了一种传输数据的方法和装置,可以动态调整通信连接中的子流数,提高网络的利用率和传输效率。Embodiments of the present invention provide a method and apparatus for transmitting data, which can dynamically adjust the number of substreams in a communication connection, and improve network utilization and transmission efficiency.
第一方面,提供了一种传输数据的方法,应用所述方法的网络系统的通信连接中当前包括n个子流,所述方法包括:In a first aspect, a method for transmitting data is provided, where a communication connection of a network system to which the method is applied currently includes n sub-streams, the method comprising:
根据所述通信连接中当前的所述n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;Determining to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer;
在所述第n+1子流上发送待发送的第一数据包。Transmitting the first data packet to be sent on the (n+1)th substream.
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:With the first aspect, in a first possible implementation manner of the first aspect, the determining, according to the load strength of the current n substreams in the communication connection, determining to create the (n+1)th substream includes:
在获取所述第一数据包之后,根据所述通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
结合第一方面,在第一方面的第二种可能的实现方式中,所述根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:With reference to the first aspect, in a second possible implementation manner of the first aspect, the determining, according to the load strength of the current n substreams in the communication connection, determining to create the (n+1)th substream includes:
按照预设的第一周期,检测所述通信连接中当前的n个子流的负载强度,根据所述n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
结合第一方面和第一方面的第一种至第二种可能的实现方式中的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述子流为基 于传输控制协议TCP的子流,所述根据所述n个子流的负载强度,确定创建第n+1子流,包括:With reference to the first aspect and any one of the possible implementations of the first to the second possible implementations of the first aspect, in a third possible implementation of the first aspect, the substream is a base The sub-stream of the transmission control protocol TCP, the determining, according to the load strength of the n sub-streams, the creation of the (n+1)th sub-stream, including:
确定所述n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
确定创建所述第n+1子流。It is determined that the n+1th substream is created.
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述确定创建所述第n+1子流之前,所述方法还包括:In conjunction with the third possible implementation of the first aspect, in a fourth possible implementation of the first aspect, before the determining to create the (n+1)th substream, the method further includes:
确定所述通信连接中的当前子流数n小于预设的最大子流数m,其中,m为正整数。Determining that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
结合第一方面的第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:In conjunction with the third or fourth possible implementation of the first aspect, in a fifth possible implementation of the first aspect, the method further includes:
确定所述通信连接的当前子流中存在负载强度小于所述第一阈值,并且具有可用发送窗口的子流;Determining that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window;
在确定的所述子流上发送待发送的第二数据包。Sending a second data packet to be transmitted on the determined substream.
结合第一方面和第一方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法还包括:With reference to the first aspect, and any one of the first to the fifth possible implementation manners of the first aspect, in a sixth possible implementation manner of the first aspect, the method further includes:
当所述第一数据包传输完毕时,更新所述第n+1子流的负载强度。When the first data packet is transmitted, the load strength of the (n+1)th substream is updated.
结合第一方面和第一方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述方法还包括:With reference to the first aspect, and any one of the first to the sixth possible implementation manners of the first aspect, in a seventh possible implementation manner of the first aspect, the method further includes:
按照预设的第二周期,确定所述通信连接的当前子流中是否存在需要销毁的子流;Determining, according to a preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection;
当存在需要销毁的子流时,销毁所述需要销毁的子流。When there is a substream that needs to be destroyed, the substream that needs to be destroyed is destroyed.
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:In conjunction with the seventh possible implementation of the first aspect, in an eighth possible implementation manner of the first aspect, the determining, by the preset second period, whether the current substream of the communication connection needs to be destroyed Subflows, including:
按照所述第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p 的整数,所述预设条件包括子流的负载强度小于预设的第二阈值。Determining the q substreams satisfying the preset condition as substreams to be destroyed, where q is less than p An integer of the preset condition that the load strength of the substream is less than a preset second threshold.
结合第一方面的第七种可能的实现方式,在第一方面的第九种可能的实现方式中,所述按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:In conjunction with the seventh possible implementation of the first aspect, in a ninth possible implementation manner of the first aspect, the determining, by the preset second period, whether the current substream of the communication connection needs to be destroyed Subflows, including:
按照所述第二周期,确定所述通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current communication streams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将所述p个子流中负载强度最小的子流确定为需要销毁的子流。A substream having the smallest load intensity among the p substreams is determined as a substream that needs to be destroyed.
结合第一方面的第四种至第九种可能的实现方式中的任一种可能的实现方式,在第一方面的第十种可能的实现方式中,所述方法还包括:With reference to any one of the possible implementations of the fourth to the ninth possible implementations of the first aspect, in a tenth possible implementation manner of the first aspect, the method further includes:
在所述通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于所述最大子流数m。When the communication connection is established, s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
结合第一方面和第一方面的第一种至第十种可能的实现方式中的任一种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述负载强度为归一化吞吐率,所述归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。With reference to the first aspect and any one of the first to the tenth possible implementation manners of the first aspect, in an eleventh possible implementation manner of the first aspect, the load strength is The normalized throughput rate, which is the amount of data transmitted by the substream in unit time over the unit network interface bandwidth.
第二方面,提供了一种传输数据的装置,所述装置所属的网络系统的通信连接中当前包括n个子流,所述装置包括:A second aspect provides an apparatus for transmitting data, where a communication connection of a network system to which the apparatus belongs currently includes n substreams, and the apparatus includes:
第一确定单元,用于根据所述通信连接中当前的所述n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;a first determining unit, configured to determine to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer;
第一发送单元,用于在所述第一确定单元上确定的所述第n+1子流上发送待发送的第一数据包。a first sending unit, configured to send, on the n+1th substream determined on the first determining unit, the first data packet to be sent.
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一确定单元具体用于:With reference to the second aspect, in a first possible implementation manner of the second aspect, the first determining unit is specifically configured to:
在获取所述第一数据包之后,根据所述通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
结合第二方面,在第二方面的第二种可能的实现方式中,所述第一确定单元具体用于:With reference to the second aspect, in a second possible implementation manner of the second aspect, the first determining unit is specifically configured to:
按照预设的第一周期,检测所述通信连接中当前的n个子流的负载强度,根据所述n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
结合第二方面和第二方面的第一种至第二种可能的实现方式中的任一 种可能的实现方式,在第二方面的第三种可能的实现方式中,所述子流为基于传输控制协议TCP的子流,所述第一确定单元具体用于:Combining the second aspect with any of the first to second possible implementations of the second aspect In a third possible implementation manner of the second aspect, the sub-flow is a sub-flow based on a transmission control protocol (TCP), where the first determining unit is specifically configured to:
确定所述n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
确定创建所述第n+1子流。It is determined that the n+1th substream is created.
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,在确定创建所述第n+1子流之前,所述第一确定单元还用于:In conjunction with the third possible implementation of the second aspect, in a fourth possible implementation of the second aspect, before determining to create the (n+1)th substream, the first determining unit is further configured to:
确定所述通信连接中的当前子流数n小于预设的最大子流数m,其中,m为正整数。Determining that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
结合第二方面的第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括:In conjunction with the third or fourth possible implementation of the second aspect, in a fifth possible implementation of the second aspect, the device further includes:
第二确定单元,用于确定所述通信连接的当前子流中存在负载强度小于所述第一阈值,并且具有可用发送窗口的子流;a second determining unit, configured to determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window;
第二发送单元,用于在所述第二确定单元确定的所述子流上发送待发送的第二数据包。a second sending unit, configured to send, on the substream determined by the second determining unit, a second data packet to be sent.
结合第二方面和第二方面的第一种至第五种可能的实现方式中的任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括:With reference to the second aspect, and any one of the first to the fifth possible implementation manners of the second aspect, in a sixth possible implementation manner of the second aspect, the device further includes:
更新单元,用于当所述第一数据包传输完毕时,更新所述第n+1子流的负载强度。And an updating unit, configured to update a load strength of the (n+1)th substream when the first data packet is transmitted.
结合第二方面和第二方面的第一种至第六种可能的实现方式中的任一种可能的实现方式,在第二方面的第七种可能的实现方式中,所述装置还包括:With reference to the second aspect, and any one of the first to the sixth possible implementation manners of the second aspect, in a seventh possible implementation manner of the second aspect, the device further includes:
第三确定单元,用于按照预设的第二周期,确定所述通信连接的当前子流中是否存在需要销毁的子流;a third determining unit, configured to determine, according to a preset second period, whether a substream that needs to be destroyed exists in a current substream of the communication connection;
销毁单元,用于当存在需要销毁的子流时,销毁所述需要销毁的子流。The destruction unit is configured to destroy the substream that needs to be destroyed when there is a substream that needs to be destroyed.
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实现方式中,所述第三确定单元具体用于:In conjunction with the seventh possible implementation of the second aspect, in the eighth possible implementation of the second aspect, the third determining unit is specifically configured to:
按照所述第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度; Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p的整数,所述预设条件包括子流的负载强度小于预设的第二阈值。The q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
结合第二方面的第七种可能的实现方式,在第二方面的第九种可能的实现方式中,所述第三确定单元具体用于:With reference to the seventh possible implementation of the second aspect, in a ninth possible implementation manner of the second aspect, the third determining unit is specifically configured to:
按照所述第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将所述p个子流中负载强度最小的子流确定为需要销毁的子流。A substream having the smallest load intensity among the p substreams is determined as a substream that needs to be destroyed.
结合第二方面的第四种至第九种可能的实现方式中的任一种可能的实现方式,在第二方面的第十种可能的实现方式中,所述装置还包括:With reference to any one of the possible implementations of the fourth to the ninth possible implementations of the second aspect, in a tenth possible implementation manner of the second aspect, the device further includes:
创建单元,用于在所述通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于所述最大子流数m。a creating unit, configured to create s substreams when the communication connection is established, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
结合第二方面和第二方面的第一种至第十种可能的实现方式中的任一种可能的实现方式,在第二方面的第十一种可能的实现方式中,所述负载强度为归一化吞吐率,所述归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。With reference to the second aspect and any one of the first to the tenth possible implementation manners of the second aspect, in the eleventh possible implementation manner of the second aspect, the load strength is The normalized throughput rate, which is the amount of data transmitted by the substream in unit time over the unit network interface bandwidth.
第三方面,提供了一种网络系统,包括第二方面的任一种实现方式所述的传输数据的装置。In a third aspect, a network system is provided, comprising the apparatus for transmitting data according to any one of the implementations of the second aspect.
基于上述技术特征,本发明实施例的传输数据的方法和装置,根据通信连接的当前子流的负载强度,确定创建新的子流,在新创建的子流上发送数据包,可以动态调整通信连接中的子流数,并均衡各子流间的负载强度,提高网络的利用率和传输效率。Based on the foregoing technical features, the method and apparatus for transmitting data according to the embodiment of the present invention determines that a new substream is created according to the load strength of the current substream of the communication connection, and the data packet is sent on the newly created substream, and the communication can be dynamically adjusted. The number of substreams in the connection, and balance the load strength between the substreams, improving network utilization and transmission efficiency.
附图说明DRAWINGS
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the embodiments or the prior art description will be briefly described below. Obviously, the drawings in the following description are only some of the present invention. For the embodiments, those skilled in the art can obtain other drawings according to the drawings without any creative work.
图1是本发明一个实施例的传输数据的方法的示意性流程图。1 is a schematic flow chart of a method of transmitting data according to an embodiment of the present invention.
图2是本发明另一个实施例的传输数据的方法的示意性流程图。2 is a schematic flow chart of a method of transmitting data according to another embodiment of the present invention.
图3是本发明又一个实施例的传输数据的方法的示意性流程图。 FIG. 3 is a schematic flowchart of a method for transmitting data according to still another embodiment of the present invention.
图4是本发明一个实施例的传输数据的装置的示意性框图。4 is a schematic block diagram of an apparatus for transmitting data according to an embodiment of the present invention.
图5是本发明另一个实施例的传输数据的装置的示意性框图。FIG. 5 is a schematic block diagram of an apparatus for transmitting data according to another embodiment of the present invention.
具体实施方式detailed description
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。The technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are a part of the embodiments of the present invention, but not all embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts are within the scope of the present invention.
本文在此首先对现有的相关技术MPTCP进行简单的介绍。MPTCP是目前最具代表性和最有前景的传输层多路径传输协议。MPTCP利用多个子流执行数据的并行传输。每个子流执行与传统的TCP类似,具有独自的发送队列、发送窗口(拥塞窗口)、顺序号空间;子流采用独立的拥塞控制机制或子流间耦合的拥塞控制机制;所有子流在发送主机端共享发送缓冲器维护总发送窗口,记录接收端通知的接收窗口,所有子流在接收主机端共享接收缓冲器,维护总接收窗口,并且一套外层的顺序号空间可以保证发送和接收缓冲区中数据的保序。This article first briefly introduces the existing related technology MPTCP. MPTCP is currently the most representative and promising transport layer multipath transport protocol. MPTCP performs parallel transmission of data using multiple substreams. Each sub-flow is similar to the traditional TCP, with its own transmission queue, transmission window (congestion window), sequence number space; sub-flow uses independent congestion control mechanism or sub-stream coupling congestion control mechanism; all sub-streams are sent The host side shares the transmission buffer maintenance total transmission window, records the receiving window notified by the receiving end, all sub-streams share the receiving buffer on the receiving host side, maintain the total receiving window, and a set of outer sequence number space can guarantee transmission and reception. The order of the data in the buffer.
MPTCP通信连接的数据传输过程为:在发送主机端从发送缓冲器中取得数据,按照相应的子流间数据分发机制,将数据包分发给各子流进行传输;每个子流的数据按照各自的顺序号空间编号并保序传输,潜在地流经不同的网络路径,最终到达接收主机端;在接收主机端,多个子流被接收并被重新合并为一个数据流,放入接收缓冲器中。The data transmission process of the MPTCP communication connection is: the data is obtained from the transmission buffer at the transmitting host end, and the data packet is distributed to each sub-flow for transmission according to the corresponding sub-stream data distribution mechanism; the data of each sub-flow is in accordance with the respective The sequence number is numbered and transmitted in a sequence, potentially flowing through different network paths, and finally to the receiving host; on the receiving host, multiple substreams are received and recombined into one data stream, which is placed in the receiving buffer.
在MPTCP中,子流数在建立通信连接时就已经被确定,并且在通信连接的生存期内固定不变,无法动态调整。目前MPTCP通信连接的子流数通过配置MPTCP的系统参数“net.mptcp.mptcp_path_manager”指定。这导致MPTCP不能权衡多子流的利弊,优化传输性能。同时,使用固定子流数也不利于平滑通信负载的波动和提供动态伸缩的传输能力。In MPTCP, the number of substreams is already determined when establishing a communication connection, and is fixed during the lifetime of the communication connection and cannot be dynamically adjusted. At present, the number of substreams of the MPTCP communication connection is specified by configuring the system parameter "net.mptcp.mptcp_path_manager" of the MPTCP. This leads to MPTCP not being able to weigh the advantages and disadvantages of multiple substreams and optimize transmission performance. At the same time, the use of a fixed number of substreams is also disadvantageous for smoothing the fluctuation of the communication load and providing the transmission capability of dynamic scaling.
另外,目前的MPTCP提供两种子流间数据分发机制:一种是最小RTT优先的机制,即将数据优先调度到RTT最小的子流上;另一种是轮转(Round-Robin)机制,即在所有子流上轮转发送数据。使用哪种子流间数据分发机制可以通过配置MPTCP的系统参数“net.mptcp.mptcp_scheduler”指定。这些子流间数据分发机制没有考虑对子流流量特性的塑造,子流流量 容易随通信负载强度波动,不平稳,并且子流间的吞吐率也可能差异较大,这会给网络负载均衡带来困难。In addition, the current MPTCP provides two sub-stream data distribution mechanisms: one is the minimum RTT-first mechanism, that is, the data is preferentially scheduled to the smallest sub-stream of the RTT; the other is the Round-Robin mechanism, that is, at all The data is rotated on the substream. Which sub-stream data distribution mechanism is used can be specified by configuring the system parameter "net.mptcp.mptcp_scheduler" of MPTCP. These sub-stream data distribution mechanisms do not consider shaping the characteristics of sub-flow traffic, sub-flow traffic It is easy to fluctuate with the strength of the communication load, is not stable, and the throughput between substreams may also vary greatly, which will bring difficulties to network load balancing.
本发明正是针对以MPTCP为代表的传输层多路径传输协议中的上述问题做出的改进。图1示出了根据本发明一个实施例的传输数据的方法100,该方法100由通信连接中传输数据的装置执行,具体地可以由子流控制机制和子流间数据分发机制对应的模块执行。应用方法100的网络系统的通信连接中当前包括n个子流,方法100包括:The present invention is directed to improvements in the above-described problems in the transport layer multipath transmission protocol represented by MPTCP. 1 illustrates a method 100 of transmitting data, which is performed by a device that transmits data in a communication connection, and in particular, by a sub-flow control mechanism and a module corresponding to a sub-stream data distribution mechanism, in accordance with an embodiment of the present invention. The communication connection of the network system of the application method 100 currently includes n sub-streams, and the method 100 includes:
S101,根据该通信连接中当前的该n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;S101. Determine, according to the current load strength of the n substreams in the communication connection, that the n+1th substream is created, where n is a positive integer.
S102,在该第n+1子流上发送待发送的第一数据包。S102. Send a first data packet to be sent on the (n+1)th substream.
具体而言,相对于现有的数据传输机制,本发明实施例采用考虑子流的负载强度的方法控制数据在子流间的分配。并且,为了匹配通信负载和子流的聚合传输能力,平滑通信负载的波动,采用负载自适应的子流控制技术对子流数进行管理。当通信连接的当前子流的负载强度上升时,根据预设的规则可以创建新的子流以增加传输能力。当存在一个待发送的数据包,例如第一数据包时,本发明实施例的传输数据的装置根据通信连接中的n个子流的负载强度,确定通信连接中的n个子流的负载过高时,确定创建第n+1子流,以在该第n+1子流上发送该第一数据包。Specifically, with respect to the existing data transmission mechanism, the embodiment of the present invention controls the allocation of data between substreams by considering the load strength of the substream. Moreover, in order to match the aggregate transmission capacity of the communication load and the substream, and smooth the fluctuation of the communication load, the substream number is managed by the load adaptive subflow control technique. When the load strength of the current substream of the communication connection rises, a new substream can be created according to a preset rule to increase the transmission capability. When there is a data packet to be transmitted, for example, the first data packet, the apparatus for transmitting data according to the embodiment of the present invention determines that the load of the n substreams in the communication connection is too high according to the load strength of the n substreams in the communication connection. Determining to create an n+1th substream to transmit the first data packet on the (n+1)th substream.
应理解,本发明实施例中,可以在获取待发送的第一数据包之后,根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流;也可以是按照一定的周期检测通信连接中当前的n个子流的负载强度,而后确定创建第n+1子流。即创建第n+1子流可以是在获取待发送的第一数据包之前也可以是在获取待发送的第一数据包之后,本发明实施例对此不作限定。It should be understood that, in the embodiment of the present invention, after acquiring the first data packet to be sent, determining, according to the load strength of the current n substreams in the communication connection, determining to create the (n+1)th substream; or according to a certain period. The load strength of the current n substreams in the communication connection is detected, and then the n+1th substream is determined to be created. That is, the embodiment of the present invention does not limit the foregoing, after the first data packet to be sent is obtained, and the first data packet to be sent is obtained.
从另一方面,本发明实施例提供了一种通信负载自适应的子流控制方法和子流间数据分配机制,两种机制结合可以解决现有的多路径传输协议中子流数不可调整和子流流量塑造差这两个问题。In another aspect, the embodiment of the present invention provides a communication load adaptive sub-flow control method and a sub-stream data distribution mechanism, and the combination of the two mechanisms can solve the sub-flow number unadjustable and sub-flow in the existing multi-path transmission protocol. Traffic shaping is poor.
因此,本发明实施例的传输数据的方法,根据通信连接的当前子流的负载强度,确定创建新的子流,在新创建的子流上发送数据包,可以动态调整通信连接中的子流数,并均衡各子流间的负载强度,提高网络的利用率和传输效率。Therefore, the method for transmitting data according to the embodiment of the present invention determines that a new substream is created according to the load strength of the current substream of the communication connection, and the data packet is sent on the newly created substream, and the substream in the communication connection can be dynamically adjusted. Count and balance the load strength between substreams to improve network utilization and transmission efficiency.
可选地,作为一个实施例,S101根据通信连接中当前的n个子流的负 载强度,确定创建第n+1子流,包括:Optionally, as an embodiment, S101 is based on the negative of the current n substreams in the communication connection. Load strength, determine the creation of the n+1th substream, including:
在获取该第一数据包之后,根据该通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
具体而言,每当有新的待发送的数据包时,检测通信连接中当前的n个子流的负载强度。当通信连接的当前子流的负载强度较强时(例如所有当前子流的负载强度大于预设的阈值时),根据预设的规则可以创建新的子流以增加传输能力。即,当存在待发送的第一数据包时,检测通信连接中当前的n个子流的负载强度,在通信连接中当前的n个子流的传输能力不足时,创建新的第n+1子流,以在第n+1子流上发送待发送的第一数据包。Specifically, whenever there is a new data packet to be transmitted, the load strength of the current n substreams in the communication connection is detected. When the load strength of the current substream of the communication connection is strong (for example, when the load strength of all current substreams is greater than a preset threshold), a new substream may be created according to a preset rule to increase the transmission capability. That is, when there is a first data packet to be transmitted, the load strength of the current n substreams in the communication connection is detected, and when the transmission capability of the current n substreams in the communication connection is insufficient, a new n+1th substream is created. Transmitting the first data packet to be transmitted on the (n+1)th substream.
可选地,作为一个实施例,S101根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:Optionally, as an embodiment, S101 determines to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection, including:
按照预设的第一周期,检测该通信连接中当前的n个子流的负载强度,根据该n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
具体而言,按照系统预设的第一周期,检测通信连接中当前的n个子流的负载强度。当通信连接的当前子流的负载强度较强时(例如所有当前子流的负载强度大于预设的阈值时),根据预设的规则可以创建新的子流以增加传输能力。即,当通信连接中当前的n个子流的传输能力不足时,创建新的第n+1子流。当存在待发送的第一数据包时,从通信连接中的子流中选择一个子流发送待发送的第一数据包。优选地,选择通信连接中新创建的第n+1子流发送待发送的第一数据包。Specifically, the load strength of the current n substreams in the communication connection is detected according to a first period preset by the system. When the load strength of the current substream of the communication connection is strong (for example, when the load strength of all current substreams is greater than a preset threshold), a new substream may be created according to a preset rule to increase the transmission capability. That is, when the transmission capacity of the current n substreams in the communication connection is insufficient, a new n+1th substream is created. When there is a first data packet to be transmitted, one sub-flow is selected from the sub-streams in the communication connection to send the first data packet to be transmitted. Preferably, the newly created n+1th substream in the communication connection is selected to send the first data packet to be sent.
可选地,在本发明实施例中,该子流为基于传输控制协议TCP的子流,S102根据该n个子流的负载强度,确定创建第n+1子流,包括:Optionally, in the embodiment of the present invention, the sub-flow is a sub-flow based on the transmission control protocol (TCP), and S102 determines to create the (n+1)th sub-stream according to the load strength of the n sub-streams, including:
确定该n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
确定创建该第n+1子流。Make sure to create the n+1th substream.
具体而言,对于具有发送窗口概念的子流,例如基于TCP的子流,在子流上是否可以传输数据,在哪个子流上传输数据,是否需要创建新的子流,除了考虑子流的负载强度,还可以考虑该子流当前是否具有可用发送窗口(即发送窗口非满)。因此本发明实施例在执行子流间数据分配时,还进一步考虑子流当前是否具有可用发送窗口。当通信连接中,不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流时,创建新的子流。其中, 第一阈值可以根据子流的负载能力确定,不同的子流可以对应各自不同的第一阈值,为了简便也可以对不同的子流统一预设相同的第一阈值,本发明实施例对此不作限定。Specifically, for a substream having a transmission window concept, such as a TCP-based substream, whether data can be transmitted on the substream, on which substream the data is transmitted, whether a new substream needs to be created, in addition to considering the substream Load strength, you can also consider whether the substream currently has an available send window (ie, the send window is not full). Therefore, in the embodiment of the present invention, when performing sub-stream data distribution, it is further considered whether the sub-stream currently has an available transmission window. When there is no sub-flow with a load strength less than the preset first threshold and the available transmission window is in the communication connection, a new sub-flow is created. among them, The first threshold may be determined according to the load capacity of the sub-flow, and the different sub-flows may be corresponding to different first thresholds. For the sake of simplicity, the same first threshold may be preset for different sub-flows. limited.
对于不具有发送窗口概念的多路径传输协议的子流,例如基于用户数据报协议(User Datagram Protocol,UDP)的子流,本发明实施例不考虑是否具有可用发送窗口这一因素。或者,可以认为其发送窗口无限大,即总具有可用发送窗口。For a substream of a multipath transmission protocol that does not have a transmission window concept, such as a User Datagram Protocol (UDP) based substream, embodiments of the present invention do not consider whether there is a factor of available transmission window. Alternatively, it can be considered that its send window is infinite, that is, it always has an available send window.
可选地,在本发明实施例中,在确定创建该第n+1子流之前,该方法100还包括:Optionally, in the embodiment of the present invention, before determining to create the (n+1)th substream, the method 100 further includes:
确定该通信连接中的当前子流数n小于预设的最大子流数m,其中,m为正整数。It is determined that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
具体而言,本发明实施例允许当通信连接中的当前子流的负载强度都较大时,或者当前子流不存在可用发送窗口不能发送数据包时,可以创建新的子流,并在新的子流上传输数据包。在本发明实施例中,为了避免子流无限增长,可以预设最大子流数为m。最大子流数m可以提前由人为配置指定。应理解,本发明实施例的通信连接中的当前子流可以是基于TCP的子流,也可以是基于UDP或其它协议的子流,本发明实施例对此不作限定。Specifically, the embodiment of the present invention allows a new substream to be created when the load strength of the current substream in the communication connection is large, or when the current substream does not exist, and the data packet cannot be sent. The packet is transmitted on the substream. In the embodiment of the present invention, in order to avoid an infinite growth of the substream, the maximum number of substreams may be preset to be m. The maximum number of substreams m can be specified in advance by an artificial configuration. It should be understood that the current sub-flow in the communication connection of the embodiment of the present invention may be a TCP-based sub-flow, or may be a sub-flow based on UDP or other protocols, which is not limited by the embodiment of the present invention.
为了充分利用网络的传输能力,本发明实施例可以进一步允许:当通信链路中的子流数达到最大子流数m,且所有具有可用发送窗口的子流的负载强度都已经达到预设的第一阈值时,子流可以超过第一阈值发送更多数据。In order to fully utilize the transmission capability of the network, the embodiment of the present invention may further allow: when the number of substreams in the communication link reaches the maximum number of substreams m, and the load strengths of all substreams having available transmission windows have reached the preset value. At the first threshold, the substream may send more data than the first threshold.
可选地,作为一个实施例,方法100还包括:Optionally, as an embodiment, the method 100 further includes:
确定该通信连接的当前子流中存在负载强度小于该第一阈值,并且具有可用发送窗口的子流;Determining that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and having an available transmission window;
在确定的该子流上发送待发送的第二数据包。Sending a second data packet to be sent on the determined substream.
具体而言,本发明实施例中,对于第二数据包,当通信连接中存在负载强度小于该第一阈值,并且具有可用发送窗口的子流时,可以在确定的该子流上发送该第二数据包。例如,可以在检测到的第一个负载强度小于第一阈值,并且具有可用发送窗口的子流上发送该第二数据包;还可以在检测到的多个负载强度小于第一阈值,并且具有可用发送窗口的子流中,选取负载强度最小的一个子流发送该第二数据包,本发明实施例对具体的实现方式不作限定。优选地,可以按轮转的方法在检测到的负载强度小于该第一阈值,并 且具有可用发送窗口的第一个子流上发送该第二数据包。Specifically, in the embodiment of the present invention, for the second data packet, when there is a sub-flow in the communication connection whose load strength is less than the first threshold and has an available transmission window, the first packet may be sent on the determined sub-flow. Two packets. For example, the second data packet may be sent on a substream whose detected first load strength is less than a first threshold and has an available transmission window; and the detected multiple load strengths may be less than a first threshold, and have The second data packet is sent by using a sub-stream with the smallest load strength, and the specific implementation manner is not limited in the embodiment of the present invention. Preferably, the detected load strength may be less than the first threshold in a round robin manner, and And transmitting the second data packet on the first substream having an available transmission window.
本发明实施例通过在高负载时创建新的子流,可以提供更好的传输性能,并且通过对各子流的负载强度进行限制,能够塑造好的流量以优化网络的整体传输效率。本发明实施例,尤其是结合当通信连接为低负载时,可以减少子流数的方案,可以将子流数控制在合适的范围内,使得子流数一方面可以满足通信连接的负载需求,另一方面可以将维护子流所需的开销与负载需求相平衡,使得通信系统具有高的传输性能。The embodiment of the present invention can provide better transmission performance by creating a new substream at a high load, and by limiting the load strength of each substream, it can shape good traffic to optimize the overall transmission efficiency of the network. The embodiment of the present invention, especially when combined with a low load, can reduce the number of substreams, and can control the number of substreams within a suitable range, so that the number of substreams can satisfy the load requirement of the communication connection. On the other hand, the overhead required to maintain the substream can be balanced with the load requirements, so that the communication system has high transmission performance.
可选地,在本发明实施例中,该负载强度为归一化吞吐率,该归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。Optionally, in the embodiment of the present invention, the load strength is a normalized throughput rate, and the normalized throughput rate is a data volume transmitted by the sub-flow in a unit time and a unit network interface bandwidth.
具体而言,在本发明实施例中,可以使用子流的归一化吞吐率表征子流的负载强度,通过控制子流的负载强度来保证子流的小流特性。归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。当使用子流的归一化吞吐率表征子流的负载强度时,子流的归一化吞吐率可以通过以下方式统计得到:将通信连接的生存期进行周期划分,例如将生存期划分为若干个等长的时间片。独立统计每个时间片内子流已发送的数据量,并且将该数据量除以整个时间片长度得到当前时间片内平均吞吐率。为了便于设置第一阈值并与之比较,通常将吞吐率进一步表示为归一化的形式,即将吞吐率除以网络接口带宽,得到一个0和1之间的值,作为归一化吞吐率。需要说明的是,此处的时间片的长度可由人为配置指定,通常来说其取值应该能够容忍数个到数十多个数据包的不等的突发,以避免吞吐率值对于通信负载的短期波动过于敏感。Specifically, in the embodiment of the present invention, the normalized throughput rate of the substream can be used to characterize the load strength of the substream, and the small stream characteristic of the substream can be ensured by controlling the load strength of the substream. The normalized throughput rate is the amount of data transmitted by the substream in unit time over the unit network interface bandwidth. When the normalized throughput rate of the substream is used to characterize the load strength of the substream, the normalized throughput rate of the substream can be statistically obtained by periodically dividing the lifetime of the communication connection, for example, dividing the lifetime into several A time slice of equal length. The amount of data that has been sent by the substream in each time slice is independently counted, and the amount of data is divided by the entire time slice length to obtain the current on-chip average throughput rate. In order to facilitate setting and comparing the first threshold, the throughput rate is generally further expressed as a normalized form, ie, the throughput rate is divided by the network interface bandwidth to obtain a value between 0 and 1, as a normalized throughput rate. It should be noted that the length of the time slice here can be specified by the artificial configuration. Generally, the value should be able to tolerate unequal bursts of several to dozens of data packets, so as to avoid the throughput value for the communication load. The short-term fluctuations are too sensitive.
子流的归一化吞吐率的具体计算可以举例如下:假设时间片长度为L,子流i在当前时间片内已发送的数据量为Ci,网络接口带宽为Bi,则子流i的归一化吞吐率Ri为Ci/(L×Bi)。需要说明的是,子流的归一化吞吐率只是衡量子路的负载强度的一种方式,本发明实施例允许使用其它能够表征子流的负载强度的指标进行替换。The specific calculation of the normalized throughput rate of the substream can be exemplified as follows: assuming that the time slice length is L, the amount of data that the substream i has sent in the current time slice is C i , and the network interface bandwidth is B i , then the substream i The normalized throughput rate R i is C i /(L × B i ). It should be noted that the normalized throughput rate of the substream is only one way to measure the load strength of the substream, and the embodiment of the present invention allows other indicators to be used to characterize the load strength of the substream to be replaced.
可选地,在本发明实施例中,方法100还包括:Optionally, in the embodiment of the present invention, the method 100 further includes:
当该第一数据包传输完毕时,更新该第n+1子流的负载强度。When the transmission of the first data packet is completed, the load strength of the (n+1)th substream is updated.
具体而言,当第一数据包在新创建的第n+1子流上传输完毕时,对该第n+1子流的负载强度进行更新,以便于在分配下一待传输的数据包之前,根据各子流的负载强度确定用于传输数据包的子流。以负载强度为归一化吞吐 率为例,子流j在数据包传输完毕后更新其在当前时间片上发送数据量的统计值为Cj=Cj’+Pkt_Len;子流j在数据包传输完毕后更新其在当前时间片上的归一化吞吐率为Rj=Cj/(L×Bj),其中,Cj’为数据包发送前子流j在当前时间片上已传输的数据量,Pkt_Len为数据包的数据量。Specifically, when the first data packet is transmitted on the newly created n+1th substream, the load strength of the (n+1)th substream is updated, so that before the next data packet to be transmitted is allocated. The substream for transmitting the data packet is determined according to the load strength of each substream. Taking the load strength as the normalized throughput rate, the substream j updates its statistical value of the amount of data transmitted on the current time slice after the data packet is transmitted, C j =C j '+Pkt_Len; the substream j is transmitted in the data packet. After completion, update its normalized throughput rate on the current time slice R j =C j /(L×B j ), where C j ' is the amount of data transmitted by the sub-stream j before the data packet is transmitted on the current time slice. , Pkt_Len is the amount of data of the packet.
应理解,各子流的负载强度可以存储在网络系统的存储器中,或者存储在子流控制机制和/或子流间数据分发机制能够对其读写的存储单元中。当第一数据包传输完毕时,子流控制机制和/或子流间数据分发机制的相应模块计算新的负载强度,并将新计算的负载强度更新到上述存储器或存储单元中。当有新的待传输的数据包时,或者按照预设的第一周期到达判断是否需要新创建子流的时刻时,子流控制机制和/或子流间数据分发机制的相应模块,从上述存储器或存储单元中读取各子流的负载强度以供使用。It should be understood that the load strength of each substream may be stored in a memory of the network system or in a storage unit to which the substream control mechanism and/or the inter-stream data distribution mechanism can read and write. When the first data packet transmission is completed, the corresponding module of the sub-flow control mechanism and/or the sub-stream data distribution mechanism calculates a new load strength and updates the newly calculated load strength to the above-mentioned memory or storage unit. When there is a new data packet to be transmitted, or when a predetermined first period arrives to determine whether a newly created substream needs to be newly created, the subflow control mechanism and/or the corresponding module of the substream interflow data distribution mechanism are The load strength of each substream is read in a memory or storage unit for use.
还应理解,在本发明实施例中,不仅仅是第n+1子流在传输完数据包后,更新其负载强度。通信连接中的其它子流上有数据包发送时,在发送完毕后应该对子流的负载强度进行更新,以保证各子流的负载强度的准确性,便于根据各子流的负载强度,确定是否需要创建新的子流或者销毁部分子流,以及分配下一待发送的数据包。此外,本发明实施例的方案,还可以按照周期(例如按照时间片)对通信连接中的各子流的负载强度进行更新,以保证分发数据包时各子流的负载强度的准确性。It should also be understood that in the embodiment of the present invention, not only the (n+1)th substream is updated in its load strength after the data packet is transmitted. When there are data packets sent on other sub-flows in the communication connection, the load strength of the sub-flow should be updated after the transmission is completed to ensure the accuracy of the load strength of each sub-flow, and it is convenient to determine according to the load strength of each sub-flow. Whether you need to create a new subflow or destroy some substreams, and assign the next packet to be sent. In addition, in the solution of the embodiment of the present invention, the load strength of each substream in the communication connection may be updated according to a period (for example, according to a time slice) to ensure the accuracy of the load strength of each substream when the data packet is distributed.
可选地,在本发明实施例中,方法100还包括:Optionally, in the embodiment of the present invention, the method 100 further includes:
在该通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于最大子流数m。When the communication connection is established, s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
具体而言,当传输层多路径协议的通信连接建立时,创建1个或指定数目s个初始子流。在当前子流的负载强度都较大时,或者当前子流不存在可用发送窗口不能发送数据包时,创建新的子流,并在新的子流上传输数据包。可以提供更好的传输性能,优化网络的整体传输效率。Specifically, when the communication connection of the transport layer multipath protocol is established, one or a specified number of s initial substreams are created. When the current substream load strength is large, or when the current substream does not exist, the available transmission window cannot transmit the data packet, a new substream is created, and the data packet is transmitted on the new substream. It can provide better transmission performance and optimize the overall transmission efficiency of the network.
可选地,在本发明实施例中,方法100还包括:Optionally, in the embodiment of the present invention, the method 100 further includes:
按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流;Determining, according to a preset second period, whether there is a substream to be destroyed in the current substream of the communication connection;
当存在需要销毁的子流时,销毁所述需要销毁的子流。When there is a substream that needs to be destroyed, the substream that needs to be destroyed is destroyed.
具体而言,本发明实施例可以按照预设的第二周期(例如在每个时间片末),根据预先设置的规则确定通信连接的当前子流中是否存在需要销毁的 子流。其中,本发明实施例中的第一周期和第二周期可以相同也可以不同。即创建和销毁子流可以遵照相同的周期也可以遵照不同的周期,本发明实施例对此不作限定。例如,本发明实施例可以根据各子流的负载强度(例如归一化吞吐率),确定需要销毁的子流。本发明实施例可以根据通信连接的其它属性,例如数据传输的往返时间RRT,确定当前子流中是否存在需要销毁的子流,当存在需要销毁的子流时,销毁需要销毁的子流,本发明实施例对此不作限定。Specifically, the embodiment of the present invention may determine, according to a preset second period (for example, at the end of each time slice), whether there is a need to destroy the current substream of the communication connection according to a preset rule. Subflow. The first period and the second period in the embodiment of the present invention may be the same or different. That is, the creation and destruction of the sub-flows may be performed in the same period or in different periods, which is not limited in the embodiment of the present invention. For example, the embodiment of the present invention can determine the substream to be destroyed according to the load strength of each substream (for example, the normalized throughput rate). The embodiment of the present invention may determine, according to other attributes of the communication connection, such as the round trip time RRT of the data transmission, whether there is a substream that needs to be destroyed in the current substream, and when there is a substream that needs to be destroyed, destroy the substream that needs to be destroyed, The embodiment of the invention is not limited thereto.
应理解,在本发明实施例中,在确定需要销毁的子流后,可以等待一定的时间之后再进行子流销毁。例如,可以等待需要销毁的子流上的数据传输完毕之后再进行子流的销毁。或者,在销毁子流后,将原本在该子流上传输的数据转移至其它子流上进行发送。还可以采取其它的措施,保证数据传输任务可以正常完成,本发明实施例对此不作限定。It should be understood that, in the embodiment of the present invention, after determining the substream that needs to be destroyed, the substream destruction may be performed after waiting for a certain time. For example, the substream can be destroyed after waiting for the data on the substream to be destroyed to be transferred. Alternatively, after the substream is destroyed, the data originally transmitted on the substream is transferred to other substreams for transmission. Other measures may be taken to ensure that the data transmission task can be completed normally, which is not limited by the embodiment of the present invention.
可选地,在本发明实施例中,按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:Optionally, in the embodiment of the present invention, determining, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection, including:
按照该第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p的整数,该预设条件包括子流的负载强度小于预设的第二阈值。The q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
具体而言,确定通信连接的当前子流中是否存在需要销毁的子流的具体方法可以如下:按照预设的第二周期(例如在每个时间片末),确定通信连接的当前子流的数量p;当p大于或等于2时,确定p个子流中每一个子流的负载强度,即在通信连接中包括多于一个子流时,再执行确定需要销毁的子流这一过程,当子流数为1时,不论子流的负载强度如何,均保留该子流,即始终保持至少一个可用的子流;将负载强度小于预设的第二阈值的q个子流确定为需要销毁的子流,即将p个当前子流中的负载强度较小的q个子流确定为需要销毁的子流。其中,第二阈值可以根据子流的负载能力确定,不同的子流可以对应各自不同的第二阈值,为了简便也可以对不同的子流统一预设相同的第二阈值,本发明实施例对此不作限定。第二阈值应小于根据本发明实施例的第一阈值,因此第二阈值可以根据第一阈值确定,例如,第二阈值可以是第一阈值乘以常数θ,θ大于0并且小于1。 Specifically, the specific method for determining whether there is a substream to be destroyed in the current substream of the communication connection may be as follows: determining the current substream of the communication connection according to a preset second period (eg, at the end of each time slice) The quantity p; when p is greater than or equal to 2, determining the load strength of each of the p substreams, that is, when more than one substream is included in the communication connection, performing the process of determining the substreams to be destroyed, when When the number of substreams is 1, regardless of the load strength of the substream, the substream is retained, that is, at least one available substream is always maintained; and q substreams whose load strength is less than a preset second threshold are determined to be destroyed. The substream, that is, the q substreams with less load strength in the p current substreams are determined as substreams to be destroyed. The second threshold may be determined according to the load capacity of the sub-flow, and the different sub-flows may be corresponding to different second thresholds. For the sake of simplicity, the same second threshold may be preset for different sub-flows. This is not limited. The second threshold should be less than the first threshold according to an embodiment of the invention, so the second threshold can be determined according to the first threshold, for example, the second threshold can be a first threshold multiplied by a constant θ, θ being greater than zero and less than one.
优选地,在本发明实施例中,按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:Preferably, in the embodiment of the present invention, determining, according to the preset second period, whether there is a substream to be destroyed in the current substream of the communication connection, including:
按照该第二周期,确定该通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current communication streams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将该p个子流中负载强度最小的子流确定为需要销毁的子流。The substream having the smallest load strength among the p substreams is determined as the substream to be destroyed.
具体地,在本发明实施例中,按照预设的第二周期,在当前子流的数量大于或等于2时,每次销毁一个子流,将p个当前子流中的负载强度最小的子流销毁。Specifically, in the embodiment of the present invention, according to the preset second period, when the current number of substreams is greater than or equal to 2, each substream is destroyed, and the load intensity of the p current substreams is minimized. Stream destruction.
下面以一个具体的例子说明本发明实施例的传输数据的方法,本例子主要对子流间数据分发机制的角度进行描述。图2示出了本发明另一个实施例的传输数据的方法200,方法200可以由子流间数据分发机制对应的模块执行。当前传输层多路径协议的通信连接建立中包括n个子流。当有待发送的数据包需要传输时,子流间数据分发机制对应的模块执行S201至S208,确定一个子流发送该数据包,当有多个待发送的数据包时,重复执行S201至S208。方法200具体包括:A method for transmitting data according to an embodiment of the present invention is described below with a specific example. This example mainly describes the perspective of a data distribution mechanism between sub-streams. 2 illustrates a method 200 of transmitting data in accordance with another embodiment of the present invention. The method 200 can be performed by a module corresponding to a sub-stream data distribution mechanism. The current transport layer multipath protocol communication connection establishment includes n substreams. When the data packet to be transmitted needs to be transmitted, the module corresponding to the inter-stream data distribution mechanism performs S201 to S208 to determine that one substream transmits the data packet, and when there are multiple data packets to be transmitted, S201 to S208 are repeatedly executed. The method 200 specifically includes:
S201,获取待发送的数据包。S201. Acquire a data packet to be sent.
S202,判断是否存在满足条件的子流FA。其中,子流FA为按轮转的方法检测到的归一化吞吐率小于第一阈值(Rv<Rth),并且具有可用发送窗口的第一个子流v。如果存在,执行S203;如果不存在,执行S204。S202. Determine whether there is a substream F A that satisfies the condition. Wherein, the substream F A is a first substream v having a normalized throughput rate less than a first threshold (R v <R th ) detected by the round robin method and having an available transmission window. If yes, execute S203; if not, execute S204.
S203,在子流FA上发送数据包,并更新子流v=FA在当前时间片内发送数据量的统计值(Cv=Cv’+Pkt_Len)和归一化吞吐率(Rv=Cv/(L×Bv)),然后执行S208。S203. Send a data packet on the sub-flow F A , and update a statistical value (C v = C v '+Pkt_Len) and a normalized throughput rate (R v ) of the data volume sent by the sub-flow v=F A in the current time slice. =C v /(L × B v )), and then S208 is performed.
S204,判断当前子流数是否小于最大子流数m。如果是,则执行S205;如果否,执行S206。S204. Determine whether the current number of substreams is less than the maximum number of substreams m. If yes, execute S205; if no, execute S206.
S205,通知子流控制机制对应的模块新创建子流FNew,并在新创建的子流FNew上发送数据包,同时更新子流v=FNew在当前时间片内发送数据量的统计值(Cv=Cv’+Pkt_Len)和归一化吞吐率(Rv=Cv/(L×Bv)),然后执行S208。S205, notifies the sub-flow control mechanism module corresponding to a newly created sub-stream F New, and transmits the data packet on the F New sub newly created stream while updating the sub-stream v = F New send statistic data amount in the current time slot (C v = C v '+Pkt_Len) and the normalized throughput rate (R v = C v / (L × B v )), and then S208 is performed.
S206,判断是否存在满足条件的子流FB。其中,子流FB为按轮转的方法检测到的归一化吞吐率大于或等于第一阈值(Rv≥Rth),并具有可用发送窗口的第一个子流v。如果存在,则执行S207,如果不存在,当前回合不发 送数据包,执行S208。S206. Determine whether there is a substream F B that satisfies the condition. The substream F B is a first substream v having a normalized throughput rate greater than or equal to a first threshold (R v ≥R th ) detected by the method of rotation and having an available transmission window. If yes, execute S207. If not, the current round does not send a data packet, and S208 is performed.
S207,在子流FB上发送数据包,并更新子流v=FB在当前时间片内发送数据量的统计值(Cv=Cv’+Pkt_Len)和归一化吞吐率(Rv=Cv/(L×Bv))。S207. Send a data packet on the substream F B , and update a statistical value (C v = C v '+Pkt_Len) and a normalized throughput rate (R v ) of the data volume sent by the substream v=F B in the current time slice. =C v /(L×B v )).
S208,结束处理。S208, the processing ends.
图3示出了本发明又一个实施例的传输数据的方法300,方法300可以由子流控制机制对应的模块执行,主要从子流控制机制的角度进行描述。子流控制机制对应的模块在通信连接建立时,创建s个初始子流,其中s大于或等于1;以及,当收到子流管理模块发来的创建新的子流的通知时,创建一个新的子流。在每个时间片末,子流管理模块还根据方法300包括的以下步骤确定是否销毁子流:FIG. 3 illustrates a method 300 for transmitting data according to still another embodiment of the present invention. The method 300 may be performed by a module corresponding to a sub-flow control mechanism, and is mainly described from the perspective of a sub-flow control mechanism. The module corresponding to the sub-flow control mechanism creates s initial sub-flows when the communication connection is established, where s is greater than or equal to 1; and when receiving the notification of creating a new sub-flow sent by the sub-flow management module, creating a New subflow. At the end of each time slice, the subflow management module also determines whether to destroy the subflow according to the following steps included in method 300:
S301,判断当前子流数p是否大于或等于2:如果是,执行S302;如果否,执行S304结束处理。S301. Determine whether the current sub-flow number p is greater than or equal to 2: if yes, execute S302; if not, execute S304 to end processing.
S302,判断是否存在子流,在多个时间片(例如K个时间片)内始终保持可用,并且归一化吞吐率小于第二阈值θ×Rth(0<θ<1);如果是,执行S303;如果否,执行S304结束处理。其中,K是可配置的时间片常数,例如K=10;θ是可配置的0和1间常数,例如θ=0.5。S302, determining whether there is a substream, is always available in a plurality of time slices (for example, K time slices), and the normalized throughput rate is less than a second threshold θ×R th (0<θ<1); if yes, Go to S303; if no, execute S304 to end the process. Where K is a configurable time slice constant, such as K = 10; θ is a configurable constant between 0 and 1, such as θ = 0.5.
S303,销毁满足S302条件的子流中,归一化吞吐率最小的子流。S303. Destroy the substream that has the smallest throughput rate in the substream that satisfies the condition of S302.
S304,结束处理。S304, the processing ends.
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。It should be understood that, in various embodiments of the present invention, the size of the sequence numbers of the above processes does not mean the order of execution, and the order of execution of each process should be determined by its function and internal logic, and should not be taken to the embodiments of the present invention. The implementation process constitutes any limitation.
本发明实施例采用归一化吞吐率约束和轮转机制相结合的方法控制数据在子流间的分配——控制每个子流在单位时间内传输的数据量,使其归一化吞吐率不超过指定阈值,并在所有归一化吞吐率未达到指定阈值的子流间按轮转的方式分配数据——以此塑造小子流流量特性。并且,为了匹配通信负载和子流的聚合传输能力,并平滑通信负载的波动,采用负载自适应的子流控制技术对子流数目进行管理。当通信负载上升,而现有子流由于达到归一化吞吐率的阈值而不能传输更多数据时,创建新的子流以增加传输能力;当通信负载下降,现有子流传输能力不能充分利用时,销毁性能不佳的子流。Embodiments of the present invention control the allocation of data between substreams by combining a normalized throughput rate constraint and a rotation mechanism—controlling the amount of data transmitted by each substream in a unit time so that the normalized throughput rate does not exceed Specify thresholds and distribute data in a round-robin fashion across all subflows where the normalized throughput does not reach the specified threshold—to shape the small stream flow characteristics. Moreover, in order to match the aggregate transmission capacity of the communication load and the substream, and smooth the fluctuation of the communication load, the number of substreams is managed by the load adaptive subflow control technique. When the communication load rises and the existing substream cannot transmit more data due to reaching the threshold of the normalized throughput rate, a new substream is created to increase the transmission capability; when the communication load is decreased, the existing substream transmission capability is insufficient. When used, destroy sub-flows with poor performance.
本发明实施例提出的子流控制机制和子流间数据分发机制,用于执行数据分发和子流的创建与销毁。子流控制机制和子流间数据分发机制可以由各 自对应的模块执行,还可以通过统一的管理模块或装置实现,本发明实施例对此不作限定。The sub-flow control mechanism and the inter-stream data distribution mechanism proposed by the embodiments of the present invention are used to perform data distribution and creation and destruction of sub-streams. Subflow control mechanism and substream interflow data distribution mechanism can be The implementation of the corresponding module is also implemented by a unified management module or device, which is not limited by the embodiment of the present invention.
本发明实施例的传输数据的方法,子流数可以根据负载强度动态调整,实现通信能力的动态伸缩,并塑造具有平稳小子流特性的流量。与现有的MPTCP采用固定子流数相比,在低负载可以大服务地减少子流数,在高负载时提供比MPTCP更好的传输效率,并且通过塑造好的流量以优化网络的整体传输效率。本发明实施例通过添加通信负载强度自适应的子流调整能力,一方面可以使得数量占主导地位的小数据量通信使用比现有多路径传输协议通常的子流数设定值少得多的子流数,从而大幅地降低上述所述的子流代价;另一方面,对于大数据量的通信,依然能够使用较多子流提供足够的传输能力。In the method for transmitting data according to the embodiment of the present invention, the number of substreams can be dynamically adjusted according to the load strength, realizing dynamic expansion and contraction of communication capabilities, and shaping traffic with smooth small substream characteristics. Compared with the existing MPTCP, the number of substreams can be greatly reduced at a low load, the transmission efficiency is better than MPTCP at a high load, and the overall transmission of the network is optimized by shaping the traffic. effectiveness. The embodiment of the present invention can increase the communication load strength adaptive sub-flow adjustment capability, and on the one hand, the number of small-sized data communication that is dominant can be used much less than the current sub-flow number setting value of the existing multi-path transmission protocol. The number of substreams, thereby substantially reducing the substream cost described above; on the other hand, for large data traffic, it is still possible to provide sufficient transmission capability using more substreams.
因此,本发明实施例的传输数据的方法,根据通信连接的当前子流的负载强度,确定用于发送数据包的子流,该子流为通信连接的当前子流或新创建的子流,在该子流上传输数据包,能够实现动态调整通信链路中的子流数,并均衡各子流间的负载强度,可以提高网络的利用率和传输效率。Therefore, the method for transmitting data according to the embodiment of the present invention determines a substream for transmitting a data packet according to a load strength of a current substream of the communication connection, where the substream is a current substream of the communication connection or a newly created substream. Transmitting data packets on the substream enables dynamic adjustment of the number of substreams in the communication link and equalizes the load strength between the substreams, thereby improving network utilization and transmission efficiency.
上文中结合图1至图3,详细描述了根据本发明实施例的传输数据的方法,下面将结合图4和图5,描述根据本发明实施例的传输数据的装置。The method of transmitting data according to an embodiment of the present invention is described in detail above with reference to FIGS. 1 through 3, and an apparatus for transmitting data according to an embodiment of the present invention will be described below with reference to FIGS. 4 and 5.
图4示出了根据本发明实施例的传输数据的装置400。该装置400所属的网络系统的通信连接中当前包括n个子流。如图4所示,该装置400包括:FIG. 4 illustrates an apparatus 400 for transmitting data in accordance with an embodiment of the present invention. The communication connection of the network system to which the device 400 belongs currently includes n substreams. As shown in FIG. 4, the apparatus 400 includes:
第一确定单元401,用于根据该通信连接中当前的该n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;The first determining unit 401 is configured to determine, according to the current load strength of the n substreams in the communication connection, that the n+1th substream is created, where n is a positive integer;
第一发送单元402,用于在该第一确定单元401上确定的该第n+1子流上发送待发送的第一数据包。The first sending unit 402 is configured to send the first data packet to be sent on the n+1th substream determined by the first determining unit 401.
因此,本发明实施例的传输数据的装置,根据通信连接的当前子流的负载强度,确定创建新的子流,在新创建的子流上发送数据包,可以动态调整通信连接中的子流数,并均衡各子流间的负载强度,提高网络的利用率和传输效率。Therefore, the apparatus for transmitting data according to the embodiment of the present invention determines to create a new substream according to the load strength of the current substream of the communication connection, and sends a data packet on the newly created substream, so that the substream in the communication connection can be dynamically adjusted. Count and balance the load strength between substreams to improve network utilization and transmission efficiency.
在本发明实施例中,可选地,该第一确定单元401具体用于:In the embodiment of the present invention, the first determining unit 401 is specifically configured to:
在获取该第一数据包之后,根据该通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
在本发明实施例中,可选地,该第一确定单元401具体用于: In the embodiment of the present invention, the first determining unit 401 is specifically configured to:
按照预设的第一周期,检测该通信连接中当前的n个子流的负载强度,根据该n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
在本发明实施例中,可选地,子流为基于传输控制协议TCP的子流,该第一确定单元401具体用于:In the embodiment of the present invention, the sub-flow is a sub-flow based on the transmission control protocol TCP, and the first determining unit 401 is specifically configured to:
确定该n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
确定创建该第n+1子流。Make sure to create the n+1th substream.
在本发明实施例中,可选地,在确定创建该第n+1子流之前,该第一确定单元401还用于:In the embodiment of the present invention, optionally, before determining to create the (n+1)th substream, the first determining unit 401 is further configured to:
确定该通信连接中的当前子流数n小于预设的最大子流数m,其中,m为正整数。It is determined that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
在本发明实施例中,可选地,该装置400还包括:In the embodiment of the present invention, optionally, the device 400 further includes:
第二确定单元,用于确定该通信连接的当前子流中存在负载强度小于该第一阈值,并且具有可用发送窗口的子流;a second determining unit, configured to determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window;
第二发送单元,用于在该第二确定单元确定的该子流上发送待发送的第二数据包。And a second sending unit, configured to send, on the substream determined by the second determining unit, the second data packet to be sent.
在本发明实施例中,可选地,该装置400还包括:In the embodiment of the present invention, optionally, the device 400 further includes:
更新单元,用于当该第一数据包传输完毕时,更新该第n+1子流的负载强度。And an updating unit, configured to update a load strength of the (n+1)th substream when the first data packet is transmitted.
在本发明实施例中,可选地,该装置400还包括:In the embodiment of the present invention, optionally, the device 400 further includes:
第三确定单元,用于按照预设的第二周期,确定该通信连接的当前子流中是否存在需要销毁的子流;a third determining unit, configured to determine, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection;
销毁单元,用于当存在需要销毁的子流时,销毁该需要销毁的子流。The destruction unit is configured to destroy the substream that needs to be destroyed when there is a substream that needs to be destroyed.
在本发明实施例中,可选地,第三确定单元具体用于:In the embodiment of the present invention, optionally, the third determining unit is specifically configured to:
按照该第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p的整数,该预设条件包括子流的负载强度小于预设的第二阈值。The q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
在本发明实施例中,可选地,第三确定单元具体用于:In the embodiment of the present invention, optionally, the third determining unit is specifically configured to:
按照该第二周期,确定通信连接的当前子流的数量p,其中,p为正整 数;According to the second period, the number p of current substreams of the communication connection is determined, where p is a positive integer number;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将该p个子流中负载强度最小的子流确定为需要销毁的子流。The substream having the smallest load strength among the p substreams is determined as the substream to be destroyed.
在本发明实施例中,可选地,该装置400还包括:In the embodiment of the present invention, optionally, the device 400 further includes:
创建单元,用于在该通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于该最大子流数m。a creating unit, configured to create s substreams when the communication connection is established, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
在本发明实施例中,可选地,负载强度为归一化吞吐率,该归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。In the embodiment of the present invention, optionally, the load strength is a normalized throughput rate, and the normalized throughput rate is the amount of data transmitted by the sub-flow in a unit time and the unit network interface bandwidth.
应理解,根据本发明实施例的装置400可对应于本发明方法实施例中的执行主体,并且装置400中的各个模块的上述和其它操作和/或功能分别为了实现图1至图3中的各个方法的相应流程,为了简洁,在此不再赘述。It should be understood that apparatus 400 in accordance with embodiments of the present invention may correspond to an executing body in an embodiment of the method of the present invention, and that the above and other operations and/or functions of the various modules in apparatus 400 are respectively implemented in order to achieve the operations of FIGS. 1 through 3. The corresponding processes of the various methods are not described here for brevity.
因此,本发明实施例的传输数据的装置,根据通信连接的当前子流的负载强度,确定用于发送数据包的子流,该子流为通信连接的当前子流或新创建的子流,在该子流上传输数据包,能够实现动态调整通信链路中的子流数,并均衡各子流间的负载强度,可以提高网络的利用率和传输效率。Therefore, the apparatus for transmitting data according to the embodiment of the present invention determines a substream for transmitting a data packet according to a load strength of a current substream of the communication connection, where the substream is a current substream of the communication connection or a newly created substream. Transmitting data packets on the substream enables dynamic adjustment of the number of substreams in the communication link and equalizes the load strength between the substreams, thereby improving network utilization and transmission efficiency.
如图5所示,本发明实施例还提供了一种传输数据的装置500,该装置500所属的网络系统的通信连接中当前包括n个子流。该装置500包括:处理器501、存储器502、总线系统503和收发器504。其中,处理器501、存储器502和收发器504通过总线系统503相连,该存储器502用于存储指令,该处理器501用于执行该存储器502存储的指令,以控制收发器504发送或接收信号;其中,As shown in FIG. 5, an embodiment of the present invention further provides an apparatus 500 for transmitting data, where a communication connection of a network system to which the apparatus 500 belongs currently includes n substreams. The apparatus 500 includes a processor 501, a memory 502, a bus system 503, and a transceiver 504. The processor 501, the memory 502 and the transceiver 504 are connected by a bus system 503 for storing instructions for executing the instructions stored by the memory 502 to control the transceiver 504 to send or receive signals. among them,
处理器501用于:根据该通信连接中当前的该n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;The processor 501 is configured to: determine to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer;
收发器504用于:在该第n+1子流上发送待发送的第一数据包。The transceiver 504 is configured to: send the first data packet to be sent on the (n+1)th substream.
因此,本发明实施例的传输数据的装置,根据通信连接的当前子流的负载强度,确定创建新的子流,在新创建的子流上发送数据包,可以动态调整通信连接中的子流数,并均衡各子流间的负载强度,提高网络的利用率和传输效率。Therefore, the apparatus for transmitting data according to the embodiment of the present invention determines to create a new substream according to the load strength of the current substream of the communication connection, and sends a data packet on the newly created substream, so that the substream in the communication connection can be dynamically adjusted. Count and balance the load strength between substreams to improve network utilization and transmission efficiency.
应理解,在本发明实施例中,该处理器501可以是中央处理单元(Central Processing Unit,简称为“CPU”),该处理器501还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。It should be understood that, in the embodiment of the present invention, the processor 501 may be a central processing unit ("CPU"), and the processor 501 may also be other general-purpose processors, digital signal processors (DSPs). , application specific integrated circuit (ASIC), off-the-shelf programmable gate array (FPGA) Or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, and the like. The general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。The memory 502 can include read only memory and random access memory and provides instructions and data to the processor 501. A portion of the memory 502 can also include a non-volatile random access memory. For example, the memory 502 can also store information of the device type.
该总线系统503除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统503。The bus system 503 may include a power bus, a control bus, a status signal bus, and the like in addition to the data bus. However, for clarity of description, various buses are labeled as bus system 503 in the figure.
在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。In the implementation process, each step of the foregoing method may be completed by an integrated logic circuit of hardware in the processor 501 or an instruction in a form of software. The steps of the method disclosed in the embodiments of the present invention may be directly implemented as a hardware processor, or may be performed by a combination of hardware and software modules in the processor. The software module can be located in a conventional storage medium such as random access memory, flash memory, read only memory, programmable read only memory or electrically erasable programmable memory, registers, and the like. The storage medium is located in the memory 502, and the processor 501 reads the information in the memory 502 and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
可选地,作为一个实施例,处理器501根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:Optionally, as an embodiment, the processor 501 determines to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection, including:
在获取该第一数据包之后,根据该通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
可选地,作为一个实施例,处理器501根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:Optionally, as an embodiment, the processor 501 determines to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection, including:
按照预设的第一周期,检测该通信连接中当前的n个子流的负载强度,根据该n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
可选地,作为一个实施例,该子流为基于传输控制协议TCP的子流,处理器501根据该n个子流的负载强度,确定创建第n+1子流,包括:Optionally, as an embodiment, the sub-flow is a sub-flow based on the Transmission Control Protocol (TCP), and the processor 501 determines, according to the load strength of the n sub-streams, the creation of the (n+1)th sub-stream, including:
确定该n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
确定创建该第n+1子流。Make sure to create the n+1th substream.
可选地,作为一个实施例,在确定创建该第n+1子流之前,处理器501还用于:Optionally, as an embodiment, before determining to create the (n+1)th substream, the processor 501 is further configured to:
确定该通信连接中的当前子流数n小于预设的最大子流数m,其中,m 为正整数。Determining that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m Is a positive integer.
可选地,作为一个实施例,处理器501还用于:确定该通信连接的当前子流中存在负载强度小于该第一阈值,并且具有可用发送窗口的子流;Optionally, as an embodiment, the processor 501 is further configured to: determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available send window;
收发器504还用于:在确定的该子流上发送待发送的第二数据包。The transceiver 504 is further configured to: send the second data packet to be sent on the determined substream.
可选地,作为一个实施例,处理器501还用于:当该第一数据包传输完毕时,更新该第n+1子流的负载强度。Optionally, as an embodiment, the processor 501 is further configured to: when the first data packet is transmitted, update a load strength of the (n+1)th substream.
可选地,作为一个实施例,处理器501还用于:Optionally, as an embodiment, the processor 501 is further configured to:
按照预设的第二周期,确定该通信连接的当前子流中是否存在需要销毁的子流;Determining, according to a preset second period, whether there is a substream to be destroyed in the current substream of the communication connection;
当存在需要销毁的子流时,销毁该需要销毁的子流。When there is a subflow that needs to be destroyed, destroy the subflow that needs to be destroyed.
可选地,作为一个实施例,处理器501按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:Optionally, as an embodiment, the processor 501 determines, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection, including:
按照该第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p的整数,该预设条件包括子流的负载强度小于预设的第二阈值。The q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
可选地,作为一个实施例,处理器501按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:Optionally, as an embodiment, the processor 501 determines, according to the preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection, including:
按照该第二周期,确定该通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current communication streams of the communication connection, where p is a positive integer;
当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
将该p个子流中负载强度最小的子流确定为需要销毁的子流。The substream having the smallest load strength among the p substreams is determined as the substream to be destroyed.
可选地,作为一个实施例,处理器501还用于:Optionally, as an embodiment, the processor 501 is further configured to:
在该通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于该最大子流数m。When the communication connection is established, s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
可选地,作为一个实施例,负载强度为归一化吞吐率,该归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。Optionally, as an embodiment, the load strength is a normalized throughput rate, and the normalized throughput rate is the amount of data transmitted by the sub-flow in a unit time on a unit network interface bandwidth.
应理解,根据本发明实施例的传输数据的装置500可对应于本发明实施例中的装置400,并可以对应于执行根据本发明实施例的方法中的相应主体,并且装置500中的各个模块的上述和其它操作和/或功能分别为了实现图1 至图3中的各个方法的相应流程,为了简洁,在此不再赘述。It should be understood that the apparatus 500 for transmitting data according to an embodiment of the present invention may correspond to the apparatus 400 in the embodiment of the present invention, and may correspond to a corresponding body in the method according to an embodiment of the present invention, and each module in the apparatus 500 The above and other operations and/or functions are respectively implemented in order to implement Figure 1 The corresponding processes of the respective methods in FIG. 3 are not described herein again for the sake of brevity.
因此,本发明实施例的传输数据的装置,根据通信连接的当前子流的负载强度,确定用于发送数据包的子流,该子流为通信连接的当前子流或新创建的子流,在该子流上传输数据包,能够实现动态调整通信链路中的子流数,并均衡各子流间的负载强度,可以提高网络的利用率和传输效率。Therefore, the apparatus for transmitting data according to the embodiment of the present invention determines a substream for transmitting a data packet according to a load strength of a current substream of the communication connection, where the substream is a current substream of the communication connection or a newly created substream. Transmitting data packets on the substream enables dynamic adjustment of the number of substreams in the communication link and equalizes the load strength between the substreams, thereby improving network utilization and transmission efficiency.
本发明实施例还提供一种网络系统,包括本发明实施例中描述的传输数据的装置400或装置500。具体而言,网络系统中的交换设备可以是本发明实施例的传输数据的装置400或装置500。The embodiment of the present invention further provides a network system, including the device 400 or the device 500 for transmitting data described in the embodiment of the present invention. Specifically, the switching device in the network system may be the device 400 or the device 500 for transmitting data according to an embodiment of the present invention.
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。It should be understood that in the embodiment of the present invention, "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that determining B from A does not mean that B is only determined based on A, and that B can also be determined based on A and/or other information.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。Those of ordinary skill in the art will appreciate that the elements and algorithm steps of the various examples described in connection with the embodiments disclosed herein can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software 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.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。A person skilled in the art can clearly understand that for the convenience and brevity of the description, the specific working process of the system, the device and the unit described above can refer to the corresponding process in the foregoing method embodiment, and details are not described herein again.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the device embodiments described above are merely illustrative. For example, the division of the unit is only a logical function division. In actual implementation, there may be another division manner, for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed. In addition, 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.
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元 中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, each functional unit in various embodiments of the present invention may be integrated in one processing unit In addition, each unit may exist physically separately, or two or more units may be integrated into one unit.
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The functions may be stored in a computer readable storage medium if implemented in the form of a software functional unit and sold or used as a standalone product. Based on such understanding, the technical solution of the present invention, which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including The instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) 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 U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。 The above is only a specific embodiment of the present invention, but the scope of the present invention is not limited thereto, and any person skilled in the art can easily think of changes or substitutions within the technical scope of the present invention. It should be covered by the scope of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.

Claims (25)

  1. 一种传输数据的方法,其特征在于,应用所述方法的网络系统的通信连接中当前包括n个子流,所述方法包括:A method for transmitting data, characterized in that a communication connection of a network system to which the method is applied currently includes n sub-streams, the method comprising:
    根据所述通信连接中当前的所述n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;Determining to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer;
    在所述第n+1子流上发送待发送的第一数据包。Transmitting the first data packet to be sent on the (n+1)th substream.
  2. 根据权利要求1所述的方法,其特征在于,所述根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:The method according to claim 1, wherein the determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection comprises:
    在获取所述第一数据包之后,根据所述通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
  3. 根据权利要求1所述的方法,其特征在于,所述根据通信连接中当前的n个子流的负载强度,确定创建第n+1子流,包括:The method according to claim 1, wherein the determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection comprises:
    按照预设的第一周期,检测所述通信连接中当前的n个子流的负载强度,根据所述n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述子流为基于传输控制协议TCP的子流,所述根据所述n个子流的负载强度,确定创建第n+1子流,包括:The method according to any one of claims 1 to 3, wherein the substream is a subflow based on a Transmission Control Protocol (TCP), and the determining is based on a load strength of the n substreams to create an n+th 1 substream, including:
    确定所述n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
    确定创建所述第n+1子流。It is determined that the n+1th substream is created.
  5. 根据权利要求4所述的方法,其特征在于,在所述确定创建第n+1子流之前,所述方法还包括:The method according to claim 4, wherein before the determining to create the (n+1)th substream, the method further comprises:
    确定所述通信连接中的当前子流数n小于预设的最大子流数m,其中,m为正整数。Determining that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
  6. 根据权利要求4或5所述的方法,其特征在于,所述方法还包括:The method according to claim 4 or 5, wherein the method further comprises:
    确定所述通信连接的当前子流中存在负载强度小于所述第一阈值,并且具有可用发送窗口的子流;Determining that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window;
    在确定的所述子流上发送待发送的第二数据包。Sending a second data packet to be transmitted on the determined substream.
  7. 根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1 to 6, wherein the method further comprises:
    当所述第一数据包传输完毕时,更新所述第n+1子流的负载强度。 When the first data packet is transmitted, the load strength of the (n+1)th substream is updated.
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 1 to 7, wherein the method further comprises:
    按照预设的第二周期,确定所述通信连接的当前子流中是否存在需要销毁的子流;Determining, according to a preset second period, whether there is a substream that needs to be destroyed in the current substream of the communication connection;
    当存在需要销毁的子流时,销毁所述需要销毁的子流。When there is a substream that needs to be destroyed, the substream that needs to be destroyed is destroyed.
  9. 根据权利要求8所述的方法,其特征在于,所述按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:The method according to claim 8, wherein the determining, according to the preset second period, whether there is a substream to be destroyed in the current substream of the communication connection comprises:
    按照所述第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
    当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
    将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p的整数,所述预设条件包括子流的负载强度小于预设的第二阈值。The q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
  10. 根据权利要求8所述的方法,其特征在于,所述按照预设的第二周期,确定通信连接的当前子流中是否存在需要销毁的子流,包括:The method according to claim 8, wherein the determining, according to the preset second period, whether there is a substream to be destroyed in the current substream of the communication connection comprises:
    按照所述第二周期,确定所述通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current communication streams of the communication connection, where p is a positive integer;
    当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
    将所述p个子流中负载强度最小的子流确定为需要销毁的子流。A substream having the smallest load intensity among the p substreams is determined as a substream that needs to be destroyed.
  11. 根据权利要求5至10中任一项所述的方法,其特征在于,所述方法还包括:The method according to any one of claims 5 to 10, wherein the method further comprises:
    在所述通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于所述最大子流数m。When the communication connection is established, s substreams are created, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  12. 根据权利要求1至11中任一项所述的方法,其特征在于,所述负载强度为归一化吞吐率,所述归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。The method according to any one of claims 1 to 11, wherein the load strength is a normalized throughput rate, and the normalized throughput rate is a sub-flow in a unit time, on a unit network interface bandwidth. The amount of data transferred.
  13. 一种传输数据的装置,其特征在于,所述装置所属的网络系统的通信连接中当前包括n个子流,所述装置包括:An apparatus for transmitting data, characterized in that a communication connection of a network system to which the apparatus belongs currently includes n substreams, and the apparatus includes:
    第一确定单元,用于根据所述通信连接中当前的所述n个子流的负载强度,确定创建第n+1子流,其中,n为正整数;a first determining unit, configured to determine to create an n+1th substream according to a load strength of the current n substreams in the communication connection, where n is a positive integer;
    第一发送单元,用于在所述第一确定单元上确定的所述第n+1子流上发送待发送的第一数据包。 a first sending unit, configured to send, on the n+1th substream determined on the first determining unit, the first data packet to be sent.
  14. 根据权利要求13所述的装置,其特征在于,所述第一确定单元具体用于:The device according to claim 13, wherein the first determining unit is specifically configured to:
    在获取所述第一数据包之后,根据所述通信连接中当前的n个子流的负载强度,确定创建第n+1子流。After acquiring the first data packet, determining to create the (n+1)th substream according to the load strength of the current n substreams in the communication connection.
  15. 根据权利要求13所述的装置,其特征在于,所述第一确定单元具体用于:The device according to claim 13, wherein the first determining unit is specifically configured to:
    按照预设的第一周期,检测所述通信连接中当前的n个子流的负载强度,根据所述n个子流的负载强度,确定创建第n+1子流。The load strength of the current n substreams in the communication connection is detected according to a preset first period, and the n+1th substream is determined to be created according to the load strength of the n substreams.
  16. 根据权利要求13至15中任一项所述的装置,其特征在于,所述子流为基于传输控制协议TCP的子流,所述第一确定单元具体用于:The device according to any one of claims 13 to 15, wherein the sub-flow is a sub-flow based on a Transmission Control Protocol (TCP), and the first determining unit is specifically configured to:
    确定所述n个子流中不存在负载强度小于预设的第一阈值,并且具有可用发送窗口的子流;Determining that there is no substream in the n substreams whose load strength is less than a preset first threshold and having an available transmission window;
    确定创建所述第n+1子流。It is determined that the n+1th substream is created.
  17. 根据权利要求16所述的装置,其特征在于,在确定创建所述第n+1子流之前,所述第一确定单元还用于:The apparatus according to claim 16, wherein before determining to create the (n+1)th substream, the first determining unit is further configured to:
    确定所述通信连接中的当前子流数n小于预设的最大子流数m,其中,m为正整数。Determining that the current number of substreams n in the communication connection is less than a preset maximum number of substreams m, where m is a positive integer.
  18. 根据权利要求16或17所述的装置,其特征在于,所述装置还包括:The device according to claim 16 or 17, wherein the device further comprises:
    第二确定单元,用于确定所述通信连接的当前子流中存在负载强度小于所述第一阈值,并且具有可用发送窗口的子流;a second determining unit, configured to determine that there is a substream in the current substream of the communication connection that has a load strength less than the first threshold and has an available transmission window;
    第二发送单元,用于在所述第二确定单元确定的所述子流上发送待发送的第二数据包。a second sending unit, configured to send, on the substream determined by the second determining unit, a second data packet to be sent.
  19. 根据权利要求13至18中任一项所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 13 to 18, wherein the device further comprises:
    更新单元,用于当所述第一数据包传输完毕时,更新所述第n+1子流的负载强度。And an updating unit, configured to update a load strength of the (n+1)th substream when the first data packet is transmitted.
  20. 根据权利要求13至19中任一项所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 13 to 19, wherein the device further comprises:
    第三确定单元,用于按照预设的第二周期,确定所述通信连接的当前子流中是否存在需要销毁的子流;a third determining unit, configured to determine, according to a preset second period, whether a substream that needs to be destroyed exists in a current substream of the communication connection;
    销毁单元,用于当存在需要销毁的子流时,销毁所述需要销毁的子流。 The destruction unit is configured to destroy the substream that needs to be destroyed when there is a substream that needs to be destroyed.
  21. 根据权利要求20所述的装置,其特征在于,所述第三确定单元具体用于:The device according to claim 20, wherein the third determining unit is specifically configured to:
    按照所述第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
    当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
    将满足预设条件的q个子流确定为需要销毁的子流,其中,q为小于p的整数,所述预设条件包括子流的负载强度小于预设的第二阈值。The q substreams satisfying the preset condition are determined as substreams to be destroyed, wherein q is an integer smaller than p, and the preset condition includes that the load strength of the substream is less than a preset second threshold.
  22. 根据权利要求20所述的装置,其特征在于,所述第三确定单元具体用于:The device according to claim 20, wherein the third determining unit is specifically configured to:
    按照所述第二周期,确定通信连接的当前子流的数量p,其中,p为正整数;Determining, according to the second period, the number p of current substreams of the communication connection, where p is a positive integer;
    当p大于或等于2时,确定p个子流中每一个子流的负载强度;Determining the load strength of each of the p substreams when p is greater than or equal to 2;
    将所述p个子流中负载强度最小的子流确定为需要销毁的子流。A substream having the smallest load intensity among the p substreams is determined as a substream that needs to be destroyed.
  23. 根据权利要求17至22中任一项所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 17 to 22, wherein the device further comprises:
    创建单元,用于在所述通信连接建立时,创建s个子流,其中,s为大于或等于1的正整数,并且s小于所述最大子流数m。a creating unit, configured to create s substreams when the communication connection is established, where s is a positive integer greater than or equal to 1, and s is less than the maximum number of substreams m.
  24. 根据权利要求13至23中任一项所述的装置,其特征在于,所述负载强度为归一化吞吐率,所述归一化吞吐率为子流在单位时间内,单位网络接口带宽上传输的数据量。The apparatus according to any one of claims 13 to 23, wherein the load strength is a normalized throughput rate, and the normalized throughput rate is a sub-flow in a unit time, on a unit network interface bandwidth The amount of data transferred.
  25. 一种网络系统,其特征在于,包括权利要求13至24中任一项所述的传输数据的装置。 A network system comprising the apparatus for transmitting data according to any one of claims 13 to 24.
PCT/CN2015/078252 2015-05-05 2015-05-05 Method and device for transmitting data WO2016176818A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201580001192.0A CN107078999B (en) 2015-05-05 2015-05-05 Method and device for transmitting data
PCT/CN2015/078252 WO2016176818A1 (en) 2015-05-05 2015-05-05 Method and device for transmitting data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/078252 WO2016176818A1 (en) 2015-05-05 2015-05-05 Method and device for transmitting data

Publications (1)

Publication Number Publication Date
WO2016176818A1 true WO2016176818A1 (en) 2016-11-10

Family

ID=57217432

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/078252 WO2016176818A1 (en) 2015-05-05 2015-05-05 Method and device for transmitting data

Country Status (2)

Country Link
CN (1) CN107078999B (en)
WO (1) WO2016176818A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114443281A (en) * 2021-12-28 2022-05-06 苏州浪潮智能科技有限公司 Network card load adjusting method, device, equipment and readable storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101925125A (en) * 2010-04-23 2010-12-22 清华大学 Method of multipath TCP having mobility and combined with mobile IP (internet protocol)
CN103503357A (en) * 2011-03-04 2014-01-08 黑莓有限公司 Controlling network device behavior
WO2014044333A1 (en) * 2012-09-24 2014-03-27 Telefonaktiebolaget L M Ericsson (Publ) Traffic shaping and steering for a multipath transmission control protocol connection
US20140351447A1 (en) * 2013-05-21 2014-11-27 Citrix Systems, Inc. Systems and methods for multipath transmission control protocol connection management
CN104243443A (en) * 2013-06-06 2014-12-24 苹果公司 Establishment and Control system of Multipath TCP Subflow, and method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905463B (en) * 2014-04-21 2017-02-15 北京邮电大学 Connecting management and control method suitable for multi-path transmitting

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101925125A (en) * 2010-04-23 2010-12-22 清华大学 Method of multipath TCP having mobility and combined with mobile IP (internet protocol)
CN103503357A (en) * 2011-03-04 2014-01-08 黑莓有限公司 Controlling network device behavior
WO2014044333A1 (en) * 2012-09-24 2014-03-27 Telefonaktiebolaget L M Ericsson (Publ) Traffic shaping and steering for a multipath transmission control protocol connection
US20140351447A1 (en) * 2013-05-21 2014-11-27 Citrix Systems, Inc. Systems and methods for multipath transmission control protocol connection management
CN104243443A (en) * 2013-06-06 2014-12-24 苹果公司 Establishment and Control system of Multipath TCP Subflow, and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114443281A (en) * 2021-12-28 2022-05-06 苏州浪潮智能科技有限公司 Network card load adjusting method, device, equipment and readable storage medium
CN114443281B (en) * 2021-12-28 2023-09-15 苏州浪潮智能科技有限公司 Network card load adjustment method, device, equipment and readable storage medium

Also Published As

Publication number Publication date
CN107078999A (en) 2017-08-18
CN107078999B (en) 2020-01-03

Similar Documents

Publication Publication Date Title
US11316795B2 (en) Network flow control method and network device
US10554538B2 (en) Dynamic link state routing protocol
US11102129B2 (en) Adjusting rate of outgoing data requests for avoiding incast congestion
US8265076B2 (en) Centralized wireless QoS architecture
US10680964B1 (en) Rate limiting in a multi-chassis environment by exchanging information between peer network elements
EP2928136B1 (en) Host network accelerator for data center overlay network
US8797877B1 (en) Virtual output queue allocation using dynamic drain bandwidth
JP2020502948A (en) Packet transmission system and method
EP2959645B1 (en) Dynamic optimization of tcp connections
US8081569B2 (en) Dynamic adjustment of connection setup request parameters
US20140105218A1 (en) Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4g ip network/equipment for better traffic performance
WO2019169556A1 (en) Packet sending method and apparatus, and storage device
US20210368392A1 (en) Method and apparatus for load balancing ip address selection in a network environment
US10362632B2 (en) Architecture for radio access network and evolved packet core
US10536385B2 (en) Output rates for virtual output queses
US10389636B2 (en) Technologies for adaptive routing using network traffic characterization
Tso et al. Longer is better: Exploiting path diversity in data center networks
CN116097631A (en) Dynamic deterministic adjustment of bandwidth across multiple hubs with adaptive quality of service (QoS) per tunnel
WO2018149228A1 (en) Packet transmission method and device
Wang et al. Predictable vFabric on informative data plane
Halepoto et al. Management of buffer space for the concurrent multipath transfer over dissimilar paths
WO2016176818A1 (en) Method and device for transmitting data
WO2018157819A1 (en) Method and apparatus for multiple sub-current network transmission
CN109792405B (en) Method and apparatus for shared buffer allocation in a transmission node
CN112787919B (en) Message transmission method and device and readable medium

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15891070

Country of ref document: EP

Kind code of ref document: A1