WO2015172668A1 - Method and device for determining congestion window in network - Google Patents

Method and device for determining congestion window in network Download PDF

Info

Publication number
WO2015172668A1
WO2015172668A1 PCT/CN2015/078246 CN2015078246W WO2015172668A1 WO 2015172668 A1 WO2015172668 A1 WO 2015172668A1 CN 2015078246 W CN2015078246 W CN 2015078246W WO 2015172668 A1 WO2015172668 A1 WO 2015172668A1
Authority
WO
WIPO (PCT)
Prior art keywords
forwarding
data packet
data
controller
congestion window
Prior art date
Application number
PCT/CN2015/078246
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 华为技术有限公司
Publication of WO2015172668A1 publication Critical patent/WO2015172668A1/en

Links

Images

Definitions

  • the embodiments of the present invention relate to network technologies, and in particular, to a method and an apparatus for determining a congestion window in a network.
  • a congestion window is determined according to bandwidth utilization and packet loss rate of two terminals that perform communication to perform congestion control.
  • the congestion window is determined only according to the bandwidth utilization rate and the packet loss rate of the two terminals of the communication, and the determined congestion window is unreasonable, thereby resulting in low bandwidth utilization of the network and low device throughput. Problems such as poor fairness between data streams.
  • Embodiments of the present invention provide a method and apparatus for determining a congestion window in a network to determine a reasonable congestion window, thereby improving network bandwidth utilization, improving device throughput, and improving fairness between data stream connections.
  • a first aspect of the embodiments of the present invention provides a method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method is Includes:
  • the controller Determining, by the controller, the forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1 ⁇ I ⁇ M;
  • the controller acquires a minimum remaining bandwidth among remaining bandwidths of each forwarding device on the forwarding path;
  • the controller carries the minimum remaining bandwidth in the data packet and sends the data to the destination terminal of the data packet, so that the destination terminal determines the data according to the minimum remaining bandwidth and a preset delay. Congestion window of the stream.
  • the controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path, including:
  • the controller is based on:
  • Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1 ⁇ i ⁇ I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  • the controller determines, according to the flow identifier, a forwarding path of the data packet, including:
  • the controller determines a forwarding path of the data packet according to a correspondence between a flow identifier stored by the controller and a forwarding path.
  • the flow identifier includes a source address, a destination address, a source port, and a destination. port.
  • a second aspect of the embodiments of the present invention provides a method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method is include:
  • the destination terminal determines a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay.
  • the destination terminal determines a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay, including:
  • a third aspect of the embodiments of the present invention provides a method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method is include:
  • the controller Determining, by the controller, the forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1 ⁇ I ⁇ M;
  • the controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
  • the controller carries the congestion window in the data packet and sends the destination terminal to the data packet.
  • the controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path, including:
  • the controller is based on:
  • Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1 ⁇ i ⁇ I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  • a fourth aspect of the embodiments of the present invention provides a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the device is include:
  • a receiving module configured to receive a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
  • a determining module configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1 ⁇ I ⁇ M;
  • An acquiring module configured to acquire a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path
  • a sending module configured to carry the minimum remaining bandwidth in the data packet to be sent to the destination terminal of the data packet, so that the destination terminal determines, according to the minimum remaining bandwidth and a preset delay Congestion window for data streams.
  • the acquiring module is specifically configured to Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1 ⁇ i ⁇ I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  • the determining module is specifically configured to determine the data according to a correspondence between a flow identifier and a forwarding path stored by the controller. The forwarding path of the packet.
  • the flow identifier includes a source address, a destination address, a source port, and a destination port.
  • a fifth aspect of the embodiments of the present invention provides a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the device include:
  • a receiving module configured to receive a data packet sent by the controller, where the data packet includes a flow identifier of a data flow to which the data packet belongs, and a remaining bandwidth of each forwarding device on a forwarding path corresponding to the flow identifier Minimum remaining bandwidth;
  • a determining module configured to determine a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay.
  • a sixth aspect of the embodiments of the present invention provides a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, the device.
  • a receiving module configured to receive a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
  • a determining module configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1 ⁇ I ⁇ M;
  • An acquiring module configured to acquire a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path
  • a processing module configured to determine a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay
  • a sending module configured to carry the congestion window in the data packet and send the target terminal to the data packet.
  • the acquiring module is specifically configured to be used according to Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1 ⁇ i ⁇ I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  • the controller receives the data packet sent by the source terminal, determines the forwarding path of the data packet according to the flow identifier in the data packet, and obtains the forwarding path on the forwarding path of the data packet.
  • the minimum remaining bandwidth of the remaining bandwidth of the device is sent to the destination terminal.
  • the destination terminal determines the congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth and the preset delay. It can be seen that in the process of determining the congestion window, consideration is made.
  • the remaining bandwidth of each forwarding device on the forwarding path of the data packet Therefore, the determined congestion window is more reasonable, and the congestion control effect can be improved, thereby improving bandwidth utilization, improving throughput, and improving data flow connection. Fairness and the problem of preventing buffer overflow of forwarding devices.
  • Figure 1 is a system structure diagram of an SDN
  • Embodiment 1 is a schematic flowchart of Embodiment 1 of a method for determining a congestion window in a network according to the present invention
  • FIG. 3 is a schematic diagram of a scenario of a method for determining a congestion window in a network according to the present invention
  • FIG. 4 is a schematic diagram of a data packet format according to Embodiment 1 of a method for determining a congestion window in a network according to the present invention
  • Embodiment 2 is a schematic flowchart of Embodiment 2 of a method for determining a congestion window in a network according to the present invention
  • Embodiment 6 is a schematic flowchart of Embodiment 3 of a method for determining a congestion window in a network according to the present invention
  • FIG. 7 is a schematic structural diagram of Embodiment 1 of a device for determining a congestion window in a network according to the present invention.
  • FIG. 8 is a schematic structural diagram of Embodiment 2 of a device for determining a congestion window in a network according to the present invention.
  • FIG. 9 is a schematic structural diagram of Embodiment 3 of a device for determining a congestion window in a network according to the present invention.
  • Embodiment 4 is a schematic structural diagram of Embodiment 4 of a device for determining a congestion window in a network according to the present invention
  • Embodiment 11 is a schematic structural diagram of Embodiment 5 of a device for determining a congestion window in a network according to the present invention.
  • FIG. 12 is a schematic structural diagram of Embodiment 6 of a device for determining a congestion window in a network according to the present invention. .
  • a Software Defined Network is a network architecture that separates the control plane and the forwarding plane of the network.
  • the control plane deploys the forwarding policy by the controller.
  • the forwarding device of the forwarding plane is guided by the forwarding policy.
  • Data packet forwarding as shown in Figure 1, Figure 1 is a system structure diagram of the SDN, the network includes a controller, M forwarding devices, source terminals and destination terminals, where M is an integer greater than or equal to 1, in Figure 1 M is 5.
  • one controller can control multiple forwarding devices, multiple forwarding devices can communicate with each other, and one forwarding device can communicate with multiple terminals.
  • the congestion window refers to the number of packets that can be sent by the source at a Round-Trip Time (RTT) for a certain data stream. Whether the congestion window is set properly will directly affect the congestion control of the network. Therefore, in order to improve the congestion control effect of the network, the controller obtains the smallest remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet, and sends the minimum remaining bandwidth to the destination terminal, and the destination terminal according to the minimum The remaining bandwidth and the preset delay determine the congestion window of the data flow to which the data packet belongs. Therefore, since the remaining bandwidth of each forwarding device on the packet forwarding path is considered in the process of determining the congestion window, the determined congestion window is more reasonable. It can improve the congestion control effect, improve the bandwidth utilization of the network, improve the throughput of the device, improve the fairness between the data stream connections, and prevent the buffer overflow of the forwarding device.
  • RTT Round-Trip Time
  • Embodiment 1 is a schematic flowchart of Embodiment 1 of a method for determining a congestion window in a network according to the present invention.
  • the execution subject of the embodiment is a controller, and the method in this embodiment is as follows:
  • S201 The controller receives the data packet sent by the source terminal.
  • the data packet includes the flow identifier of the data flow to which the data packet belongs, and the quaternary group (source address, destination address, source port, and destination port) can be used as the flow identifier of a flow, or the flow identifier (ID) number is used as the flow identifier.
  • the flow identifier of a flow the specific form of the flow identifier is not limited in the present invention, as long as it can uniquely identify a data flow.
  • the source terminal sends the data packet to the controller through the forwarding device connected to the source terminal.
  • the forwarding device connected to the source terminal is referred to as a “first forwarding device”, and the first forwarding device receives the source terminal.
  • the packet is sent to the controller according to a preset rule.
  • the purpose of the first forwarding device to send the data packet to the controller is to trigger the controller to obtain the bandwidth utilization of each forwarding device on the forwarding path of the data packet, and notify the destination terminal of the bandwidth utilization situation, so that the destination terminal calculates according to the bandwidth utilization situation.
  • the congestion window of the data stream to which the packet belongs is to trigger the controller to obtain the bandwidth utilization of each forwarding device on the forwarding path of the data packet, and notify the destination terminal of the bandwidth utilization situation, so that the destination terminal calculates according to the bandwidth utilization situation.
  • the preset rules include but are not limited to any of the following rules:
  • the first rule is used to determine the initial congestion window.
  • a control identifier is added to the data packet sent by the source terminal to the destination terminal, so that the first forwarding device sends the data packet according to the control identifier.
  • the controller sends the bandwidth utilization of each forwarding device on the forwarding path of the data packet, and notifies the destination terminal of the bandwidth utilization condition, so that the destination terminal determines the initial congestion window of the data flow to which the data packet belongs according to the bandwidth utilization situation.
  • the following second to fifth rules are often applied after the data flow connection has been established, and the first forwarding device sends the data packet to the controller, and triggers the controller to obtain the latest bandwidth utilization of each forwarding device on the forwarding path of the data packet. In the case, the bandwidth utilization is notified to the destination terminal, so that the destination terminal updates the congestion window of the data flow to which the data packet belongs according to the latest bandwidth utilization.
  • the first rule is: if the data packet sent by the source terminal received by the first forwarding device carries the control identifier, the control identifier is used to indicate whether the data flow is controlled by the controller, and if the control identifier indicates that the data flow is controlled by the controller, The packet is forwarded to the controller.
  • the data stream connection includes a Transmission Control Protocol (TCP) connection and a User Datagram Protocol (hereinafter referred to as UDP) connection, and in most cases, a TCP connection, the present invention establishes TCP.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • the terminal 5 may add a new controller (known as the CA flag), and the "CA flag” is the control identifier. If the "CA flag” is set to logic "1", the congestion window indicating the data flow to which the data packet belongs is determined by the controller, and the first forwarding device forwards the data packet to the controller, and the controller records the data flow.
  • the congestion window is controlled by the controller, and when the data packet of the data stream is subsequently received, the congestion window of the data stream is recalculated; If "CA flag" is set to a logic "0", then the packet in accordance with a conventional distributed congestion control algorithm determines that the congestion window, for example: TCP cubic congestion control algorithm, TCP renou congestion control algorithm.
  • the format of the first data packet is as shown in FIG. 4.
  • FIG. 4 is a schematic diagram of a data packet format according to Embodiment 1 of a method for determining a congestion window in a network according to the present invention.
  • FIG. 4 is only an example of the first rule, and other characters or parameters may also be used as the control identifier, and the present invention is not limited thereto.
  • the second rule is: for a certain data stream, the first forwarding device sends the data packet of the data stream to the controller at a preset time interval.
  • the preset time interval can be adjusted according to the actual application scenario.
  • the first forwarding device may set a timeout device for a certain data stream connection, and the time length of the timeout device may be determined according to an actual application scenario.
  • the first forwarding is performed. The device sends the data packet of the incoming data stream to the controller.
  • the first forwarding device deletes the flow table corresponding to the data stream, and when receiving the data packet of the data stream, sends the data packet of the data stream to the control. Device.
  • the third rule is: if the first forwarding device determines that the packet loss rate of any data stream of the source terminal is greater than the preset packet loss rate, the data packet of the data stream that is greater than the preset packet loss rate is sent to the controller. Specifically, the source terminal can report the packet loss rate of any one of the source terminals to the first forwarding device, so that the controller knows the packet loss rate of any one of the source terminals.
  • the fourth rule is: if the first forwarding device determines that the queue length of any data stream of the source terminal is greater than the preset queue length, the data packet of the data stream that is greater than the preset queue length is sent to the controller. Specifically, the source terminal can report the queue length of any flow on the source terminal to the first forwarding device, so that the controller knows the queue length of any data flow of the source terminal.
  • the fifth rule the second rule to the fourth rule are determined by the first forwarding device, and the fifth rule is determined by the controller. Specifically, for the same data flow, the controller presets the time. An interval indicating that the first forwarding device sends the data packet of the data stream to the controller. Alternatively, the controller determines that the packet loss rate of the data stream of the source terminal is greater than the preset packet loss rate, and instructs the first forwarding device to send the data packet of the data stream that is greater than the preset packet loss rate to the controller. Alternatively, if the controller determines that the queue length of any data stream of the source terminal is greater than the preset queue length, the first forwarding device is instructed to send the data packet of the data stream that is greater than the preset queue length to the controller.
  • the sixth rule the controller monitors the total packet loss rate of each forwarding device on the forwarding path of the data flow. When the total packet loss rate of any forwarding device on the forwarding path is greater than the preset total packet loss rate, the controller indicates The first forwarding device reports the data packet of the data flow to the controller; or the controller monitors the total queue length of each forwarding device on the forwarding path of the data flow, and the total queue length of any forwarding device on the forwarding path is greater than the pre- The total queue length is set, and the controller instructs the first forwarding device to report the data packet of the data stream to the controller.
  • the method before the first forwarding device sends the data packet to the controller, the method further includes: bandwidth occupied by the data stream to which the data packet belongs Adding in the data packet, the bandwidth occupied by the data flow connection to which the data packet belongs can be obtained by the source terminal, that is, the data packet received by the controller also includes the bandwidth occupied by the data flow connection to which the data packet belongs, so that the controller Ability to get the bandwidth of the data stream connection.
  • S202 The controller determines a forwarding path of the data packet according to the flow identifier.
  • the determined forwarding path includes one of the M forwarding devices, where I is an integer and 1 ⁇ I ⁇ M.
  • the controller determines a forwarding path of the data packet according to the flow identifier, including but not limited to the following implementation manners:
  • the first implementation manner the controller pre-stores the correspondence between the flow identifier and the forwarding path, and the controller determines the forwarding path of the data packet according to the correspondence between the flow identifier stored by the controller and the forwarding device.
  • the flow identifier is a quad (source address, destination address, source port, and destination port), and hash operations are performed according to the quaternary, and the forwarding path corresponding to the data flow is determined according to the operation result.
  • the second implementation manner the controller can generally know the topology of the network, and determine the forwarding path of the data packet according to the rules such as the shortest path.
  • the forwarding path of the data packet usually includes at least one forwarding device.
  • the forwarding path includes a forwarding device, that is, the source terminal and the destination terminal directly connect to the same forwarding device.
  • S203 The controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path.
  • the controller After the controller knows the forwarding path of the data packet, it traverses the remaining bandwidth of each forwarding device on the forwarding path of the statistical data packet, and obtains the minimum remaining bandwidth therefrom. For the case where there is only one forwarding device on the forwarding path, the minimum remaining bandwidth, that is, the remaining bandwidth of the forwarding device.
  • the total bandwidth of the forwarding device, the number of data streams, and the bandwidth occupied by each data stream are obtained, according to the total bandwidth of the forwarding device and the number of data streams.
  • the bandwidth occupied by each data stream learns the remaining bandwidth of the forwarding device, and then obtains the minimum remaining bandwidth from the remaining bandwidth of each forwarding device on the forwarding path of the data packet.
  • B represents a minimum remaining bandwidth
  • i represents an i th forwarding device on the forwarding path, 1 ⁇ i ⁇ I
  • I represents a forwarding path
  • the total number of forwarding devices on the network c i represents the total bandwidth of the i-th forwarding device
  • b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i ,K i represents The total number of data stream connections of the i forwarding devices.
  • the data stream connection of the i-th forwarding device does not include the connection of the data stream to which the data packet sent by the source terminal belongs.
  • S204 Carry the minimum remaining bandwidth in the data packet to be sent to the destination terminal of the data packet.
  • the minimum remaining bandwidth carried in the data packet is sent to the destination terminal of the data packet, and is sent to the destination terminal through the forwarding device connected to the destination terminal.
  • the destination terminal After receiving the data packet, the destination terminal determines a congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth in the data packet and the preset delay.
  • the preset delay may be a round-trip delay between the source terminal and the destination terminal according to an empirically preset data packet; after the data flow connection has been established, the preset delay may be The average round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, or the minimum round-trip delay of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, etc.
  • the invention is not limited.
  • the controller receives the data packet sent by the source terminal, determines the forwarding path of the data packet according to the flow identifier in the data packet, and obtains the minimum remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet, and sends the data packet.
  • the destination terminal determines the congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth and the data packet at the source terminal and the preset delay. It can be seen that in the process of determining the congestion window, the forwarding path of the data packet is considered.
  • the determined congestion window is more reasonable, and the congestion control effect can be improved, thereby improving bandwidth utilization, improving throughput, improving fairness between data stream connections, and preventing forwarding device buffering.
  • FIG. 5 is a schematic flowchart of a second embodiment of a method for determining a congestion window in a network according to the present invention.
  • the execution subject of the embodiment is a destination terminal, and the method of the embodiment is as follows:
  • S501 The destination terminal receives the data packet sent by the controller.
  • the data packet includes a flow identifier of the data flow to which the data packet belongs, and a minimum remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path corresponding to the flow identifier.
  • the controller adds the minimum remaining bandwidth of the remaining bandwidth of each forwarding device in the forwarding path of the data packet to the data packet, and sends the packet to the destination terminal through the forwarding device, and the controller obtains the minimum remaining bandwidth. Referring to the embodiment shown in FIG. 2 The detailed description will not be repeated here.
  • S502 Determine a congestion window of the data flow according to the minimum remaining bandwidth and the preset delay.
  • the destination terminal determines a congestion window of the data stream according to the minimum remaining bandwidth received and the preset delay.
  • the preset delay may be a round-trip delay between the source terminal and the destination terminal according to an empirically preset data packet; after the data flow connection has been established, the preset delay may be The average round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, or the minimum round-trip delay of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, etc.
  • the invention is not limited.
  • the destination terminal determines, according to the minimum remaining bandwidth and the preset delay, a congestion window of the data flow to which the data packet belongs, because the minimum remaining bandwidth is the smallest remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet. That is, when determining the congestion window of the data stream, the remaining bandwidth of each forwarding device on the forwarding path of the data packet is considered. Therefore, the determined congestion window is more reasonable, and the congestion control effect can be improved.
  • FIG. 6 is a schematic flowchart of a third embodiment of a method for determining a congestion window in a network according to the present invention.
  • the execution body of the embodiment is a controller, and the embodiment shown in FIG. 6 is different from the embodiment shown in FIG.
  • the controller sends the smallest remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path of the determined data packet to the destination terminal, where the destination terminal uses the minimum remaining bandwidth.
  • the preset delay determines a congestion window of the data stream to which the data packet belongs.
  • FIG. 6 is a schematic flowchart of a third embodiment of a method for determining a congestion window in a network according to the present invention.
  • the execution body of the embodiment is a controller, and the embodiment shown in FIG. 6 is different from the embodiment shown in FIG.
  • the controller sends the smallest remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path of the determined data packet to the destination terminal, where the destination terminal uses the minimum remaining bandwidth.
  • the controller determines the congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth and the preset delay of the remaining bandwidth of each forwarding device on the forwarding path of the determined data packet, and determines the congestion window of the data flow to which the data packet belongs.
  • the congestion window is carried in the data packet and sent to the destination terminal.
  • S601 The controller receives the data packet sent by the source terminal.
  • the data packet includes a flow identifier of a data flow to which the data packet belongs.
  • S602 The controller determines a forwarding path of the data packet according to the flow identifier.
  • the forwarding path of the data packet includes one of the M forwarding devices, where I is an integer and 1 ⁇ I ⁇ M.
  • S603 The controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path.
  • B represents a minimum remaining bandwidth
  • i represents an i th forwarding device on the forwarding path, 1 ⁇ i ⁇ I
  • I represents a forwarding path
  • the total number of forwarding devices on the network c i represents the total bandwidth of the i-th forwarding device
  • b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i ,K i represents The total number of data stream connections of the i forwarding devices.
  • the data stream connection of the i-th forwarding device does not include the connection of the data stream to which the data packet sent by the source terminal belongs.
  • S604 The controller determines a congestion window of the data flow according to the minimum remaining bandwidth and the preset delay.
  • the preset delay may be a round-trip delay between the source terminal and the destination terminal according to an empirically preset data packet; after the data flow connection has been established, The delay may be the mean value of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, or the minimum round-trip delay of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, and the like. In this regard, the invention is not limited.
  • S605 The controller carries the congestion window in the data packet to be sent to the destination terminal of the data packet.
  • the destination terminal that is used to carry the congestion window in the data packet and sent to the data packet is sent to the destination terminal through the forwarding device connected to the destination terminal.
  • the destination terminal After receiving the data packet sent by the controller, the destination terminal parses the data packet, obtains a congestion window therein, and uses the acquired congestion window as a congestion window of the data flow to which the data packet belongs.
  • the controller receives the data packet sent by the source terminal, determines the forwarding path of the data packet according to the flow identifier in the data packet, and obtains the minimum remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet, according to The minimum remaining bandwidth and the preset delay determine the congestion window of the data flow to which the data packet belongs, and the congestion window is carried in the data packet and sent to the destination terminal, so that the destination terminal determines the data flow to which the data packet belongs according to the congestion window carried in the data packet.
  • the congestion window it can be seen that in the process of determining the congestion window, the remaining bandwidth of each forwarding device on the forwarding path of the data packet is considered. Therefore, the determined congestion window is more reasonable and the congestion control effect can be improved.
  • FIG. 7 is a schematic structural diagram of Embodiment 1 of a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1.
  • the device of the example is deployed in the controller, and the device in this embodiment includes a receiving module 701, a determining module 702, an obtaining module 703, and a sending module 704, where the receiving module 701 is configured to receive a data packet sent by the source terminal, where the data packet is a flow identifier of the data flow to which the data packet belongs is included; the determining module 702 is configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices The device, where I is an integer and 1 ⁇ I ⁇ M; the obtaining module 703 is configured to acquire each forwarding on the forwarding path a minimum remaining bandwidth of the remaining bandwidth of the device; the sending module 704 is configured to carry the minimum remaining bandwidth in the data packet and send the target terminal to the data packet, so that the destination terminal is according to the minimum The remaining bandwidth and the preset delay determine a congestion window for the data stream.
  • the receiving module 701 is configured to receive a data packet sent by the source terminal,
  • the obtaining module is specifically configured to be used according to Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1 ⁇ i ⁇ I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  • the determining module is specifically configured to determine a forwarding path of the data packet according to a correspondence between a flow identifier stored by the controller and a forwarding path.
  • the flow identifier includes a source address, a destination address, a source port, and a destination port.
  • the device of the embodiment shown in FIG. 7 can be used to implement the technical solution of the method embodiment shown in FIG. 2, and the implementation principle and technical effects are similar, and details are not described herein again.
  • FIG. 8 is a schematic structural diagram of Embodiment 2 of a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1.
  • the device of the example may be deployed in the destination terminal, and the device in this embodiment includes a receiving module 801 and a determining module 802, where the receiving module 801 is configured to receive a data packet sent by the controller, where the data packet includes the data packet The stream identifier of the data stream and the smallest remaining bandwidth of the remaining bandwidths of the respective forwarding devices on the forwarding path corresponding to the stream identifier; the determining module 802 is configured to determine the data according to the minimum remaining bandwidth and the preset delay Congestion window of the stream.
  • the device of the embodiment shown in FIG. 8 can be used to implement the technical solution of the method embodiment shown in FIG. 5, and the implementation principle and technical effects are similar, and details are not described herein again.
  • FIG. 9 is a schematic structural diagram of Embodiment 3 of a device for determining a congestion window in a network according to the present invention.
  • the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1.
  • the device of the example may be deployed in a controller, and the device in this embodiment includes a receiving module 901, a determining module 902, an obtaining module 903, a processing module 904, and a sending module 905, where the receiving module 901 is configured to receive a data packet sent by the source terminal.
  • the data packet includes a flow identifier of the data flow to which the data packet belongs, and the determining module 902 is configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes the M forwarding devices
  • the first forwarding device in which I is an integer and 1 ⁇ I ⁇ M
  • the obtaining module 903 is configured to acquire the smallest remaining bandwidth among the remaining bandwidths of the forwarding devices on the forwarding path
  • the processing module 904 is configured to use Determining a congestion window of the data stream by using a minimum remaining bandwidth and a preset delay
  • the sending module 905 is configured to carry the congestion window in the data packet and send the data to the data packet The destination terminal of the package.
  • the obtaining module 903 is specifically configured to Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1 ⁇ i ⁇ I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1 ⁇ k ⁇ K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  • the device of the embodiment shown in FIG. 9 can be used to implement the technical solution of the method embodiment shown in FIG. 6.
  • the implementation principle and technical effects are similar, and details are not described herein again.
  • FIG. 10 is a schematic structural diagram of Embodiment 4 of a device for determining a congestion window in a network according to the present invention.
  • the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, as shown in the figure.
  • the determining means of the congestion window in the network includes at least a processor 1001, a memory 1002, a communication interface 1003, and a bus 1004.
  • the processor 1001, the memory 1002, and the communication interface 1003 communicate through the bus 1004.
  • the memory 1002 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction.
  • the memory 1002 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
  • the processor 1001 is configured to execute an execution instruction stored in the memory 1002, which may be a single core or a multi-core central processing unit (CPU), or an application specific integrated circuit (ASIC), or One or more integrated circuits configured to implement embodiments of the present invention.
  • the memory 1002 may be a single core or a multi-core central processing unit (CPU), or an application specific integrated circuit (ASIC), or One or more integrated circuits configured to implement embodiments of the present invention.
  • the communication interface 1003 is configured to communicate with a forwarding device.
  • the processor 1001 runs a program to execute the following instructions:
  • the device in the embodiment of the present invention may specifically be a controller in an SDN network.
  • the device in the embodiment of the present invention may be used to implement the technical solution of the method embodiment shown in FIG. 2, and the implementation principle and the technical effect are similar, and details are not described herein again.
  • the determining means of the congestion window in the network includes at least a processor 1101, a memory 1102, a communication interface 1103, and a bus 1104.
  • the processor 1101, the memory 1102, and the communication interface 1103 communicate through the bus 1104.
  • the memory 1102 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction.
  • the memory 1102 can be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
  • the processor 1101 is configured to execute an execution instruction stored by the memory 1102, which may be a single-core or multi-core CPU, or an ASIC, or one or more integrated circuits configured to implement embodiments of the present invention.
  • the communication interface 1103 is for communicating with a controller or other forwarding device.
  • the processor 1101 runs a program to execute the following instructions:
  • the controller And receiving, by the controller, a data packet, where the data packet includes a flow identifier of the data flow to which the data packet belongs, and a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path corresponding to the flow identifier;
  • the minimum remaining bandwidth and the preset delay determine a congestion window of the data stream.
  • the apparatus of the embodiment of the present invention may specifically be a terminal that receives a data packet in an SDN network.
  • the device in the embodiment of the present invention may be used to implement the technical solution of the method embodiment shown in FIG. 5, and the implementation principle and the technical effect are similar, and details are not described herein again.
  • the determining means of the congestion window in the network includes at least a processor 1201, a memory 1202, a communication interface 1203, and a bus 1204.
  • the processor 1201, the memory 1202, and the communication interface 1203 communicate through the bus 1204.
  • the memory 1202 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction.
  • the memory 1202 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
  • the processor 1201 is configured to execute an execution instruction stored by the memory 1202, which may be a single-core or multi-core CPU, or an ASIC, or one or more integrated circuits configured to implement embodiments of the present invention.
  • the communication interface 1203 is configured to communicate with a forwarding device.
  • the processor 1201 runs a program to execute the following instructions:
  • the congestion window is carried in the data packet and sent to the destination terminal of the data packet.
  • the device in the embodiment of the present invention may specifically be a controller in an SDN network.
  • the device in the embodiment of the present invention may be used to implement the technical solution of the method embodiment shown in FIG. 6.
  • the implementation principle and the technical effect are similar, and details are not described herein again.
  • the embodiment of the present invention further provides a computer readable medium, comprising computer execution instructions, wherein the computer execution instruction is used by a controller to perform the method described in Embodiment 1 of a congestion window determining method in a network of the present invention.
  • the embodiment of the present invention further provides a computer readable medium, comprising: computer-executed instructions, wherein the computer-executed instructions are used by the method for performing the second embodiment of the method for determining a congestion window in the network of the present invention.
  • An embodiment of the present invention further provides a computer readable medium, including computer execution instructions, The computer executes the instructions for the controller to perform the method described in Embodiment 3 of the method for determining a congestion window in the network of the present invention.
  • the aforementioned program can be stored in a computer readable storage medium.
  • the program when executed, performs the steps including the foregoing method embodiments; and the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Embodiments of the present invention provide a method and device for determining a congestion window in a network. A controller receives a data packet sent by a source terminal, determines a forwarding path of the data packet according to a stream identifier in the data packet, acquires a minimum remaining bandwidth in remaining bandwidths of forwarding devices on the forwarding path of the data packet, and sends the minimum remaining bandwidth to a destination terminal. The destination terminal determines a congestion window of a data stream that the data packet belongs to according to the minimum remaining bandwidth and a preset delay. It can be seen that, during the process of determining a congestion window, the condition of the remaining bandwidths of the forwarding devices on the forwarding path of the data packet is considered, so the determined congestion window is more reasonable, the congestion control effect can be improved, and further, the bandwidth utilization rate, the throughput rate and the fairness between data stream connections are improved, and the problem of buffer overflow of the forwarding device is prevented.

Description

网络中拥塞窗口的确定方法和装置Method and device for determining congestion window in network
本申请要求于2014年5月13日提交中国专利局、申请号为201410201059.7、发明名称为“网络中拥塞窗口的确定方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。The present application claims priority to Chinese Patent Application No. 201410201059.7, entitled "Determining Method and Apparatus for Congestion Window in Network", filed on May 13, 2014, the entire contents of which are incorporated herein by reference. In the application.
技术领域Technical field
本发明实施例涉及网络技术,尤其涉及一种网络中拥塞窗口的确定方法和装置。The embodiments of the present invention relate to network technologies, and in particular, to a method and an apparatus for determining a congestion window in a network.
背景技术Background technique
近年来,随着网络技术的发展,网络业务种类的增多,业务质量的提高,网络流量也呈爆炸式增长,因此,如何对网络进行拥塞控制变得至关重要。In recent years, with the development of network technology, the variety of network services has increased, the quality of services has increased, and network traffic has also exploded. Therefore, how to control congestion on the network becomes crucial.
现有技术在进行网络拥塞控制时,根据进行通信的两个终端的带宽利用率和丢包率,确定拥塞窗口,以进行拥塞控制。In the prior art, when performing network congestion control, a congestion window is determined according to bandwidth utilization and packet loss rate of two terminals that perform communication to perform congestion control.
然而,采用现有技术的方法,仅根据通信的两个终端的带宽利用率和丢包率确定拥塞窗口,确定的拥塞窗口不合理,从而导致网络的带宽利用率不高、设备吞吐率低、数据流之间公平性差等问题。However, according to the prior art method, the congestion window is determined only according to the bandwidth utilization rate and the packet loss rate of the two terminals of the communication, and the determined congestion window is unreasonable, thereby resulting in low bandwidth utilization of the network and low device throughput. Problems such as poor fairness between data streams.
发明内容Summary of the invention
本发明实施例提供一种网络中拥塞窗口的确定方法和装置,以确定合理的拥塞窗口,从而提高网络带宽利用率、提高设备的吞吐率,提高数据流连接之间的公平性等。Embodiments of the present invention provide a method and apparatus for determining a congestion window in a network to determine a reasonable congestion window, thereby improving network bandwidth utilization, improving device throughput, and improving fairness between data stream connections.
本发明实施例第一方面提供一种网络中拥塞窗口的确定方法,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述方法包括: A first aspect of the embodiments of the present invention provides a method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method is Includes:
所述控制器接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;Receiving, by the controller, a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
所述控制器根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;Determining, by the controller, the forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
所述控制器获取所述转发路径上各个转发设备的剩余带宽中最小的剩余带宽;The controller acquires a minimum remaining bandwidth among remaining bandwidths of each forwarding device on the forwarding path;
所述控制器将所述最小的剩余带宽携带在所述数据包中发送给所述数据包的目的终端,以使所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。The controller carries the minimum remaining bandwidth in the data packet and sends the data to the destination terminal of the data packet, so that the destination terminal determines the data according to the minimum remaining bandwidth and a preset delay. Congestion window of the stream.
结合第一方面,在第一种可能的实现方式中,所述控制器获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,包括:With reference to the first aspect, in a first possible implementation manner, the controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path, including:
所述控制器根据:The controller is based on:
Figure PCTCN2015078246-appb-000001
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
Figure PCTCN2015078246-appb-000001
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述控制器根据所述流标识确定所述数据包的转发路径,包括:With reference to the first aspect or the first possible implementation manner, in a second possible implementation manner, the controller determines, according to the flow identifier, a forwarding path of the data packet, including:
所述控制器根据控制器存储的流标识与转发路径之间的对应关系,确定所述数据包的转发路径。The controller determines a forwarding path of the data packet according to a correspondence between a flow identifier stored by the controller and a forwarding path.
结合第一方面或第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,所述流标识包括源地址、目的地址、源端口和目的 端口。With reference to the first aspect, the first possible implementation manner, or the second possible implementation manner, in a third possible implementation manner, the flow identifier includes a source address, a destination address, a source port, and a destination. port.
本发明实施例第二方面提供一种网络中拥塞窗口的确定方法,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述方法包括:A second aspect of the embodiments of the present invention provides a method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method is include:
目的终端接收控制器发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识以及所述流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;Receiving, by the destination terminal, a data packet sent by the controller, where the data packet includes a stream identifier of the data stream to which the data packet belongs, and a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path corresponding to the flow identifier;
所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。The destination terminal determines a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay.
结合第二方面,在第一种可能的实现方式中,所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口,包括:With reference to the second aspect, in a first possible implementation, the destination terminal determines a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay, including:
所述目的终端根据W=B×P确定所述数据流的拥塞窗口,其中,W表示所述数据流的拥塞窗口,B表示所述最小的剩余带宽,P表示预设时延。The destination terminal determines a congestion window of the data flow according to W=B×P, where W represents a congestion window of the data flow, B represents the minimum remaining bandwidth, and P represents a preset delay.
本发明实施例第三方面提供一种网络中拥塞窗口的确定方法,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述方法包括:A third aspect of the embodiments of the present invention provides a method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method is include:
所述控制器接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;Receiving, by the controller, a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
所述控制器根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;Determining, by the controller, the forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
所述控制器获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;The controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
所述控制器根据所述最小剩余带宽以及预设时延确定所述数据流的拥塞窗口;Determining, by the controller, a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay;
所述控制器将所述拥塞窗口携带在所述数据包中发送给所述数据包的目的终端。 The controller carries the congestion window in the data packet and sends the destination terminal to the data packet.
结合第三方面,在第一种可能的实现方式中,所述控制器获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,包括:With reference to the third aspect, in a first possible implementation manner, the controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path, including:
所述控制器根据:The controller is based on:
Figure PCTCN2015078246-appb-000002
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
Figure PCTCN2015078246-appb-000002
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
本发明实施例第四方面提供一种网络中拥塞窗口的确定装置,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述装置包括:A fourth aspect of the embodiments of the present invention provides a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the device is include:
接收模块,用于接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;a receiving module, configured to receive a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
确定模块,用于根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;a determining module, configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
获取模块,用于获取所述转发路径上各个转发设备的剩余带宽中最小的剩余带宽;An acquiring module, configured to acquire a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
发送模块,用于将所述最小的剩余带宽携带在所述数据包中发送给所述数据包的目的终端,以使所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。a sending module, configured to carry the minimum remaining bandwidth in the data packet to be sent to the destination terminal of the data packet, so that the destination terminal determines, according to the minimum remaining bandwidth and a preset delay Congestion window for data streams.
结合第四方面,在第一种可能的实现方式中,所述获取模块具体用于根据
Figure PCTCN2015078246-appb-000003
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩 余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
With reference to the fourth aspect, in a first possible implementation, the acquiring module is specifically configured to
Figure PCTCN2015078246-appb-000003
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
结合第四方面或第一种可能的实现方式,在第二种可能的实现方式中,所述确定模块具体用于根据控制器存储的流标识与转发路径之间的对应关系,确定所述数据包的转发路径。With reference to the fourth aspect or the first possible implementation manner, in a second possible implementation, the determining module is specifically configured to determine the data according to a correspondence between a flow identifier and a forwarding path stored by the controller. The forwarding path of the packet.
结合第四方面或第一种可能的实现方式或第二种可能的实现方式,在第三种可能的实现方式中,所述流标识包括源地址、目的地址、源端口和目的端口。With reference to the fourth aspect, the first possible implementation manner, or the second possible implementation manner, in a third possible implementation manner, the flow identifier includes a source address, a destination address, a source port, and a destination port.
本发明实施例第五方面提供一种网络中拥塞窗口的确定装置,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述装置包括:A fifth aspect of the embodiments of the present invention provides a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the device include:
接收模块,用于接收所述控制器发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识以及所述流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;a receiving module, configured to receive a data packet sent by the controller, where the data packet includes a flow identifier of a data flow to which the data packet belongs, and a remaining bandwidth of each forwarding device on a forwarding path corresponding to the flow identifier Minimum remaining bandwidth;
确定模块,用于根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。And a determining module, configured to determine a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay.
结合第五方面,在第一种可能的实现方式中,所述确定模块具体用于根据W=B×P确定所述数据流的拥塞窗口,其中,W表示所述数据流的拥塞窗口,B表示所述最小的剩余带宽,P表示预设时延。With reference to the fifth aspect, in a first possible implementation, the determining module is specifically configured to determine a congestion window of the data flow according to W=B×P, where W represents a congestion window of the data flow, B Indicates the minimum remaining bandwidth, and P represents a preset delay.
本发明实施例第六方面提供一种网络中拥塞窗口的确定装置,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述装置包括: A sixth aspect of the embodiments of the present invention provides a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, the device. Includes:
接收模块,用于接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;a receiving module, configured to receive a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
确定模块,用于根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;a determining module, configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
获取模块,用于获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;An acquiring module, configured to acquire a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
处理模块,用于根据所述最小剩余带宽以及预设时延确定所述数据流的拥塞窗口;a processing module, configured to determine a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay;
发送模块,用于将所述拥塞窗口携带在所述数据包中发送给所述数据包的目的终端。And a sending module, configured to carry the congestion window in the data packet and send the target terminal to the data packet.
结合第六方面,在第一种可能的实现方式中,所述获取模块具体用于根据
Figure PCTCN2015078246-appb-000004
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
With reference to the sixth aspect, in a first possible implementation manner, the acquiring module is specifically configured to be used according to
Figure PCTCN2015078246-appb-000004
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
本发明实施例提供的网络中拥塞窗口的确定方法和装置,通过控制器接收源终端发送的数据包,根据数据包中的流标识确定数据包的转发路径,获取数据包的转发路径上各转发设备的剩余带宽中最小的剩余带宽,发送给目的终端,目的终端根据最小剩余带宽和预设时延确定数据包所属数据流的拥塞窗口,可以看出,在确定拥塞窗口的过程中,考虑了数据包的转发路径上各转发设备的剩余带宽的情况,因此,确定的拥塞窗口更加合理,能够提高拥塞控制效果,进而提高带宽利用率、提高吞吐率、提高数据流连接之间的 公平性以及防止转发设备缓冲区溢出的问题。The method and device for determining a congestion window in a network provided by the embodiment of the present invention, the controller receives the data packet sent by the source terminal, determines the forwarding path of the data packet according to the flow identifier in the data packet, and obtains the forwarding path on the forwarding path of the data packet. The minimum remaining bandwidth of the remaining bandwidth of the device is sent to the destination terminal. The destination terminal determines the congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth and the preset delay. It can be seen that in the process of determining the congestion window, consideration is made. The remaining bandwidth of each forwarding device on the forwarding path of the data packet. Therefore, the determined congestion window is more reasonable, and the congestion control effect can be improved, thereby improving bandwidth utilization, improving throughput, and improving data flow connection. Fairness and the problem of preventing buffer overflow of forwarding devices.
附图说明DRAWINGS
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings used in the description of the embodiments will be briefly described below. It is obvious that the drawings in the following description are only some embodiments of the present invention. Other drawings may also be obtained from those of ordinary skill in the art in light of the inventive work.
图1为SDN的系统结构图;Figure 1 is a system structure diagram of an SDN;
图2为本发明网络中拥塞窗口确定方法实施例一的流程示意图;2 is a schematic flowchart of Embodiment 1 of a method for determining a congestion window in a network according to the present invention;
图3为本发明网络中拥塞窗口确定方法实施例的一种场景示意图;3 is a schematic diagram of a scenario of a method for determining a congestion window in a network according to the present invention;
图4为本发明网络中拥塞窗口确定方法实施例一的一种数据包格式示意图;4 is a schematic diagram of a data packet format according to Embodiment 1 of a method for determining a congestion window in a network according to the present invention;
图5为本发明网络中拥塞窗口的确定方法实施例二的流程示意图;5 is a schematic flowchart of Embodiment 2 of a method for determining a congestion window in a network according to the present invention;
图6为本发明网络中拥塞窗口的确定方法实施例三的流程示意图;6 is a schematic flowchart of Embodiment 3 of a method for determining a congestion window in a network according to the present invention;
图7为本发明网络中拥塞窗口的确定装置实施例一的结构示意图;FIG. 7 is a schematic structural diagram of Embodiment 1 of a device for determining a congestion window in a network according to the present invention;
图8为本发明网络中拥塞窗口的确定装置实施例二的结构示意图;FIG. 8 is a schematic structural diagram of Embodiment 2 of a device for determining a congestion window in a network according to the present invention;
图9为本发明网络中拥塞窗口的确定装置实施例三的结构示意图;FIG. 9 is a schematic structural diagram of Embodiment 3 of a device for determining a congestion window in a network according to the present invention;
图10为本发明网络中拥塞窗口的确定装置实施例四的结构示意图;10 is a schematic structural diagram of Embodiment 4 of a device for determining a congestion window in a network according to the present invention;
图11为本发明网络中拥塞窗口的确定装置实施例五的结构示意图;11 is a schematic structural diagram of Embodiment 5 of a device for determining a congestion window in a network according to the present invention;
图12为本发明网络中拥塞窗口的确定装置实施例六的结构示意图。。FIG. 12 is a schematic structural diagram of Embodiment 6 of a device for determining a congestion window in a network according to 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 only a part of the embodiments of the present invention, but not all embodiments. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative efforts are within the scope of the present invention.
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third", "fourth", etc. (if present) in the specification and claims of the present invention and the above figures are used to distinguish similar objects without being used for Describe a specific order or order. It is to be understood that the data so used may be interchanged as appropriate, such that the embodiments of the invention described herein can be implemented, for example, in a sequence other than those illustrated or described herein. In addition, the terms "comprises" and "comprises" and "the" and "the" are intended to cover a non-exclusive inclusion, for example, a process, method, system, product, or device that comprises a series of steps or units is not necessarily limited to Those steps or units may include other steps or units not explicitly listed or inherent to such processes, methods, products or devices.
软件定义网络(Software Defined Network,以下简称:SDN)是一种将网络的控制平面和转发平面进行分离的网络架构,控制平面由控制器来部署转发策略,转发平面的转发设备在转发策略指导下进行数据包转发,如图1所示,图1为SDN的系统结构图,网络中包含控制器、M个转发设备、源终端和目的终端,其中,M为大于等于1的整数,图1中M为5,从图1可以看出,一个控制器可以控制多个转发设备,多个转发设备之间可通信,一个转发设备可以与多个终端通信。A Software Defined Network (SDN) is a network architecture that separates the control plane and the forwarding plane of the network. The control plane deploys the forwarding policy by the controller. The forwarding device of the forwarding plane is guided by the forwarding policy. Data packet forwarding, as shown in Figure 1, Figure 1 is a system structure diagram of the SDN, the network includes a controller, M forwarding devices, source terminals and destination terminals, where M is an integer greater than or equal to 1, in Figure 1 M is 5. As can be seen from FIG. 1, one controller can control multiple forwarding devices, multiple forwarding devices can communicate with each other, and one forwarding device can communicate with multiple terminals.
拥塞窗口指源端针对某一数据流在一个往返时延(Round-Trip Time,以下简称:RTT)内可以最多发送的数据包个数,拥塞窗口设置的是否合理会直接影响对网络的拥塞控制效果,因此,本发明为了提高网络的拥塞控制效果,通过控制器获取数据包的转发路径上各个转发设备的剩余带宽中最小的剩余带宽,并将最小剩余带宽发送给目的终端,目的终端根据最小剩余带宽以及预设时延确定数据包所属数据流的拥塞窗口,由于在确定拥塞窗口的过程中,考虑了数据包转发路径上各转发设备的剩余带宽的情况,因此,确定的拥塞窗口更加合理,能够提高拥塞控制效果,提高网络的带宽利用率、提高设备的吞吐率、提高数据流连接之间的公平性以及防止转发设备缓冲区溢出的问题。The congestion window refers to the number of packets that can be sent by the source at a Round-Trip Time (RTT) for a certain data stream. Whether the congestion window is set properly will directly affect the congestion control of the network. Therefore, in order to improve the congestion control effect of the network, the controller obtains the smallest remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet, and sends the minimum remaining bandwidth to the destination terminal, and the destination terminal according to the minimum The remaining bandwidth and the preset delay determine the congestion window of the data flow to which the data packet belongs. Therefore, since the remaining bandwidth of each forwarding device on the packet forwarding path is considered in the process of determining the congestion window, the determined congestion window is more reasonable. It can improve the congestion control effect, improve the bandwidth utilization of the network, improve the throughput of the device, improve the fairness between the data stream connections, and prevent the buffer overflow of the forwarding device.
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具 体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。The technical solutions of the present invention will be described in detail below with specific embodiments. Here are a few The embodiments of the present invention may be combined with each other, and the same or similar concepts or processes may not be described in some embodiments.
图2为本发明网络中拥塞窗口确定方法实施例一的流程示意图,本实施例的执行主体是控制器,结合图1所示的网络场景,本实施例的方法如下:2 is a schematic flowchart of Embodiment 1 of a method for determining a congestion window in a network according to the present invention. The execution subject of the embodiment is a controller, and the method in this embodiment is as follows:
S201:控制器接收源终端发送的数据包。S201: The controller receives the data packet sent by the source terminal.
其中,数据包中包含数据包所属的数据流的流标识,可以由四元组(源地址、目的地址、源端口和目的端口)作为一条流的流标识,或者,流标识(ID)号作为一条流的流标识,本发明对流标识的具体形式不做限制,只要能够唯一标识一条数据流即可。The data packet includes the flow identifier of the data flow to which the data packet belongs, and the quaternary group (source address, destination address, source port, and destination port) can be used as the flow identifier of a flow, or the flow identifier (ID) number is used as the flow identifier. The flow identifier of a flow, the specific form of the flow identifier is not limited in the present invention, as long as it can uniquely identify a data flow.
具体地,源终端通过与源终端连接的转发设备将数据包发送到控制器,本实施例中将与源终端连接的转发设备称为“第一转发设备”,第一转发设备接收到源终端发送的数据包之后,根据预设规则将数据包发送给控制器。第一转发设备将数据包发送给控制器的目的是为了触发控制器获取数据包的转发路径上各转发设备的带宽利用情况,将带宽利用情况告知目的终端,以使目的终端根据带宽利用情况计算数据包所属数据流的拥塞窗口。Specifically, the source terminal sends the data packet to the controller through the forwarding device connected to the source terminal. In this embodiment, the forwarding device connected to the source terminal is referred to as a “first forwarding device”, and the first forwarding device receives the source terminal. After the packet is sent, the packet is sent to the controller according to a preset rule. The purpose of the first forwarding device to send the data packet to the controller is to trigger the controller to obtain the bandwidth utilization of each forwarding device on the forwarding path of the data packet, and notify the destination terminal of the bandwidth utilization situation, so that the destination terminal calculates according to the bandwidth utilization situation. The congestion window of the data stream to which the packet belongs.
其中,预设规则包括但不限于下述任一种规则:The preset rules include but are not limited to any of the following rules:
下述第一种规则常应用于确定初始拥塞窗口,通过在建立数据流连接的过程中,在源终端发送给目的终端的数据包中添加控制标识,使第一转发设备根据控制标识将数据包发送给控制器,触发控制器获取数据包的转发路径上各转发设备的带宽利用情况,将带宽利用情况告知目的终端,以使目的终端根据带宽利用情况确定数据包所属数据流的初始拥塞窗口。下述第二种规则至第五种规则常应用于数据流连接已经建立之后,第一转发设备将数据包发送给控制器,触发控制器获取数据包的转发路径上各转发设备的最新带宽利用情况,将带宽利用情况告知目的终端,以使目的终端根据最新带宽利用情况更新数据包所属数据流的拥塞窗口。The first rule is used to determine the initial congestion window. In the process of establishing a data flow connection, a control identifier is added to the data packet sent by the source terminal to the destination terminal, so that the first forwarding device sends the data packet according to the control identifier. The controller sends the bandwidth utilization of each forwarding device on the forwarding path of the data packet, and notifies the destination terminal of the bandwidth utilization condition, so that the destination terminal determines the initial congestion window of the data flow to which the data packet belongs according to the bandwidth utilization situation. The following second to fifth rules are often applied after the data flow connection has been established, and the first forwarding device sends the data packet to the controller, and triggers the controller to obtain the latest bandwidth utilization of each forwarding device on the forwarding path of the data packet. In the case, the bandwidth utilization is notified to the destination terminal, so that the destination terminal updates the congestion window of the data flow to which the data packet belongs according to the latest bandwidth utilization.
第一种规则:若第一转发设备接收的源终端发送的数据包中携带控制标 识,控制标识用于指示数据流是否由控制器控制,若上述控制标识指示数据流由控制器控制,则将数据包转发给控制器。通常,数据流连接包括传输控制协议(Transmission Control Protocol,以下简称:TCP)连接和用户数据报协议(User Datagram Protocol,以下简称:UDP)连接,大部分情况下是TCP连接,本发明以建立TCP连接为例,为了便于描述,结合图3所示的场景示意图,图3为本发明网络中拥塞窗口确定方法实施例的一种场景示意图,假设,要与建立TCP连接,在建立TCP连接的过程中,终端5可以在发送给终端1的第一个数据包的包头中加入一个新的TCP选项控制器知晓的标签(Controller Aware flag,以下简称:CA flag),“CA flag”即为控制标识,如果“CA flag”设置为逻辑“1”,则指示该数据包所属的数据流的拥塞窗口由控制器确定,第一转发设备则将该数据包转发给控制器,控制器记录该数据流的拥塞窗口由控制器控制,在后续接收到该数据流的数据包时,则重新计算该数据流的拥塞窗口;如果“CA flag”设置为逻辑“0”,则将该数据包按照传统的分布式拥塞控制算法确定拥塞窗口,例如:TCP cubic拥塞控制算法,TCP renou拥塞控制算法等。第一个数据包的格式如图4所示,图4为本发明网络中拥塞窗口确定方法实施例一的一种数据包格式示意图。图4仅为第一种规则的一个示例,还可以采用其他的字符或者参数作为控制标识,对此,本发明不做限制。The first rule is: if the data packet sent by the source terminal received by the first forwarding device carries the control identifier, the control identifier is used to indicate whether the data flow is controlled by the controller, and if the control identifier indicates that the data flow is controlled by the controller, The packet is forwarded to the controller. Generally, the data stream connection includes a Transmission Control Protocol (TCP) connection and a User Datagram Protocol (hereinafter referred to as UDP) connection, and in most cases, a TCP connection, the present invention establishes TCP. For the convenience of description, in conjunction with the scenario diagram shown in FIG. 3, FIG. 3 is a schematic diagram of a scenario of a method for determining a congestion window in a network according to the present invention. It is assumed that a TCP connection is established and a TCP connection is established. In the header of the first data packet sent to the terminal 1, the terminal 5 may add a new controller (known as the CA flag), and the "CA flag" is the control identifier. If the "CA flag" is set to logic "1", the congestion window indicating the data flow to which the data packet belongs is determined by the controller, and the first forwarding device forwards the data packet to the controller, and the controller records the data flow. The congestion window is controlled by the controller, and when the data packet of the data stream is subsequently received, the congestion window of the data stream is recalculated; If "CA flag" is set to a logic "0", then the packet in accordance with a conventional distributed congestion control algorithm determines that the congestion window, for example: TCP cubic congestion control algorithm, TCP renou congestion control algorithm. The format of the first data packet is as shown in FIG. 4. FIG. 4 is a schematic diagram of a data packet format according to Embodiment 1 of a method for determining a congestion window in a network according to the present invention. FIG. 4 is only an example of the first rule, and other characters or parameters may also be used as the control identifier, and the present invention is not limited thereto.
第二种规则:针对某一个数据流,第一转发设备每隔预设时间间隔,将该数据流的数据包发送到控制器。上述预设时间间隔可以根据实际应用场景进行调整。具体地,第一转发设备可以为某一条数据流连接设定超时(Timeout)器,超时器的时间长短可以根据实际应用场景确定,当某一条数据流连接的超时器到时后,第一转发设备则将到时的数据流连接的数据包发送给控制器。或者,当某一条数据流连接的超时器到时后,第一转发设备将该数据流对应的流表删除,当接收到该数据流的数据包时,将该数据流的数据包发送给控制器。 The second rule is: for a certain data stream, the first forwarding device sends the data packet of the data stream to the controller at a preset time interval. The preset time interval can be adjusted according to the actual application scenario. Specifically, the first forwarding device may set a timeout device for a certain data stream connection, and the time length of the timeout device may be determined according to an actual application scenario. When a timeout device connected to a certain data flow arrives, the first forwarding is performed. The device sends the data packet of the incoming data stream to the controller. Alternatively, after the timeout device connected to the data stream expires, the first forwarding device deletes the flow table corresponding to the data stream, and when receiving the data packet of the data stream, sends the data packet of the data stream to the control. Device.
第三种规则:若第一转发设备判断源终端的任一条数据流的丢包率大于预设丢包率,则将大于预设丢包率的数据流的数据包发送到控制器。具体地,可以通过源终端向第一转发设备上报源终端上的任一条流的丢包率,使得控制器获知源终端的任一条数据流的丢包率。The third rule is: if the first forwarding device determines that the packet loss rate of any data stream of the source terminal is greater than the preset packet loss rate, the data packet of the data stream that is greater than the preset packet loss rate is sent to the controller. Specifically, the source terminal can report the packet loss rate of any one of the source terminals to the first forwarding device, so that the controller knows the packet loss rate of any one of the source terminals.
第四种规则:若第一转发设备判断源终端的任一条数据流的队列长度大于预设队列长度,则将大于预设队列长度的数据流的数据包发送到控制器。具体地,可以通过源终端向第一转发设备上报源终端上报源终端上的任一条流的队列长度,使得控制器获知源终端的任一条数据流的队列长度。The fourth rule is: if the first forwarding device determines that the queue length of any data stream of the source terminal is greater than the preset queue length, the data packet of the data stream that is greater than the preset queue length is sent to the controller. Specifically, the source terminal can report the queue length of any flow on the source terminal to the first forwarding device, so that the controller knows the queue length of any data flow of the source terminal.
第五种规则:上述第二种规则至第四种规则是由第一转发设备判断的,第五种规则中由控制器判断,具体地,针对同一个数据流,控制器每隔预设时间间隔,指示第一转发设备将该数据流的数据包发送到控制器。或者,控制器判断源终端的任一条数据流的丢包率大于预设丢包率,则指示第一转发设备将大于预设丢包率的数据流的数据包发送到控制器。或者,若控制器判断源终端的任一条数据流的队列长度大于预设队列长度,则指示第一转发设备将大于预设队列长度的数据流的数据包发送到控制器。The fifth rule: the second rule to the fourth rule are determined by the first forwarding device, and the fifth rule is determined by the controller. Specifically, for the same data flow, the controller presets the time. An interval indicating that the first forwarding device sends the data packet of the data stream to the controller. Alternatively, the controller determines that the packet loss rate of the data stream of the source terminal is greater than the preset packet loss rate, and instructs the first forwarding device to send the data packet of the data stream that is greater than the preset packet loss rate to the controller. Alternatively, if the controller determines that the queue length of any data stream of the source terminal is greater than the preset queue length, the first forwarding device is instructed to send the data packet of the data stream that is greater than the preset queue length to the controller.
第六种规则:控制器监测数据流的转发路径上每个转发设备的总丢包率,当转发路径上的任一个转发设备的总丢包率大于预设总丢包率,控制器则指示第一转发设备将该数据流的数据包上报控制器;或者,控制器监测数据流的转发路径上每个转发设备的总队列长度,当转发路径上的任一个转发设备的总队列长度大于预设总队列长度,控制器则指示第一转发设备将该数据流的数据包上报控制器。The sixth rule: the controller monitors the total packet loss rate of each forwarding device on the forwarding path of the data flow. When the total packet loss rate of any forwarding device on the forwarding path is greater than the preset total packet loss rate, the controller indicates The first forwarding device reports the data packet of the data flow to the controller; or the controller monitors the total queue length of each forwarding device on the forwarding path of the data flow, and the total queue length of any forwarding device on the forwarding path is greater than the pre- The total queue length is set, and the controller instructs the first forwarding device to report the data packet of the data stream to the controller.
需要说明的是,在上述第二种规则至第六种规则的任一种规则中,第一转发设备将数据包发送给控制器之前,还包括:将数据包所属数据流连接所占用的带宽添加在数据包中,数据包所属数据流连接所占用的带宽可以由源终端测量获得,也就是,控制器接收的数据包中还包含数据包所属数据流连接所占用的带宽,以使控制器能够获取数据流连接的带宽。 It should be noted that, in any one of the foregoing second to sixth rules, before the first forwarding device sends the data packet to the controller, the method further includes: bandwidth occupied by the data stream to which the data packet belongs Adding in the data packet, the bandwidth occupied by the data flow connection to which the data packet belongs can be obtained by the source terminal, that is, the data packet received by the controller also includes the bandwidth occupied by the data flow connection to which the data packet belongs, so that the controller Ability to get the bandwidth of the data stream connection.
S202:控制器根据流标识确定数据包的转发路径。S202: The controller determines a forwarding path of the data packet according to the flow identifier.
所确定的转发路径包含M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M。The determined forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M.
具体地,控制器根据流标识确定数据包的转发路径,包括但不限于如下实现方式:Specifically, the controller determines a forwarding path of the data packet according to the flow identifier, including but not limited to the following implementation manners:
第一种实现方式:控制器中预先存储了流标识与转发路径之间的对应关系,控制器则可以根据控制器存储的流标识与转发设备的对应关系,确定数据包的转发路径。例如:流标识为四元组(源地址、目的地址、源端口和目的端口),根据四元组进行哈希运算,根据运算结果确定数据流对应的转发路径。The first implementation manner: the controller pre-stores the correspondence between the flow identifier and the forwarding path, and the controller determines the forwarding path of the data packet according to the correspondence between the flow identifier stored by the controller and the forwarding device. For example, the flow identifier is a quad (source address, destination address, source port, and destination port), and hash operations are performed according to the quaternary, and the forwarding path corresponding to the data flow is determined according to the operation result.
第二种实现方式:控制器通常可以获知网络的拓扑结构,根据最短路径等规则确定数据包的转发路径。The second implementation manner: the controller can generally know the topology of the network, and determine the forwarding path of the data packet according to the rules such as the shortest path.
数据包的转发路径上通常包含至少一个转发设备。其中,转发路径上包括一个转发设备的情况,即源终端和目的终端直接连接同一个转发设备。The forwarding path of the data packet usually includes at least one forwarding device. The forwarding path includes a forwarding device, that is, the source terminal and the destination terminal directly connect to the same forwarding device.
S203:控制器获取转发路径上的各个转发设备的剩余带宽中最小的剩余带宽。S203: The controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path.
当控制器获知数据包的转发路径之后,遍历统计数据包的转发路径上的每个转发设备的剩余带宽,从中获取最小的剩余带宽。针对转发路径上只有一个转发设备的情况,最小的剩余带宽,即该转发设备的剩余带宽。After the controller knows the forwarding path of the data packet, it traverses the remaining bandwidth of each forwarding device on the forwarding path of the statistical data packet, and obtains the minimum remaining bandwidth therefrom. For the case where there is only one forwarding device on the forwarding path, the minimum remaining bandwidth, that is, the remaining bandwidth of the forwarding device.
具体地,针对数据包的转发路径上的每个转发设备,获取转发设备的总带宽、数据流的个数以及每个数据流所占的带宽,根据转发设备的总带宽、数据流的个数以及每个数据流所占的带宽获知该转发设备的剩余带宽,再从数据包的转发路径上的各转发设备的剩余带宽中获取最小的剩余带宽。Specifically, for each forwarding device on the forwarding path of the data packet, the total bandwidth of the forwarding device, the number of data streams, and the bandwidth occupied by each data stream are obtained, according to the total bandwidth of the forwarding device and the number of data streams. And the bandwidth occupied by each data stream learns the remaining bandwidth of the forwarding device, and then obtains the minimum remaining bandwidth from the remaining bandwidth of each forwarding device on the forwarding path of the data packet.
可以根据
Figure PCTCN2015078246-appb-000005
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B 表示最小的剩余带宽,i表示转发路径上的第i个转发设备,1≤i≤I,I表示转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,第i个转发设备的数据流连接中不包含源终端发送的数据包所属数据流的连接。
Can be based on
Figure PCTCN2015078246-appb-000005
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, i represents an i th forwarding device on the forwarding path, 1≤i≤I, and I represents a forwarding path The total number of forwarding devices on the network, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i ,K i represents The total number of data stream connections of the i forwarding devices. The data stream connection of the i-th forwarding device does not include the connection of the data stream to which the data packet sent by the source terminal belongs.
S204:将最小的剩余带宽携带在数据包中发送给数据包的目的终端。S204: Carry the minimum remaining bandwidth in the data packet to be sent to the destination terminal of the data packet.
可以理解,这里所描述的将最小的剩余带宽携带在数据包中发送给数据包的目的终端,是指通过与目的终端连接的转发设备发送到目的终端。It can be understood that the minimum remaining bandwidth carried in the data packet is sent to the destination terminal of the data packet, and is sent to the destination terminal through the forwarding device connected to the destination terminal.
目的终端接收到数据包之后,根据数据包中的最小剩余带宽以及预设时延确定数据包所属数据流的拥塞窗口。通常,在建立数据流连接的过程中,预设时延可以是根据经验预设的数据包在源终端与目的终端之间的往返时延;在数据流连接已经建立之后,预设时延可以是终端统计的数据包在源终端与目的终端之间的往返时延的均值,或者,终端统计的数据包在源终端与目的终端之间的往返时延的最小往返时延等,对此,本发明不做限制。具体地:根据W=B×P确定数据流的拥塞窗口,其中,W表示数据流的拥塞窗口,B表示最小的剩余带宽,P表示预设时延。通常,P取数据包在源终端和目的终端之间最小的往返时延。After receiving the data packet, the destination terminal determines a congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth in the data packet and the preset delay. Generally, in the process of establishing a data flow connection, the preset delay may be a round-trip delay between the source terminal and the destination terminal according to an empirically preset data packet; after the data flow connection has been established, the preset delay may be The average round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, or the minimum round-trip delay of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, etc. The invention is not limited. Specifically, the congestion window of the data stream is determined according to W=B×P, where W represents a congestion window of the data stream, B represents a minimum remaining bandwidth, and P represents a preset delay. Generally, P takes the minimum round-trip delay between the source terminal and the destination terminal.
本实施例中,通过控制器接收源终端发送的数据包,根据数据包中的流标识确定数据包的转发路径,获取数据包的转发路径上各转发设备的剩余带宽中最小的剩余带宽,发送给目的终端,目的终端根据最小剩余带宽和数据包在源终端和预设时延确定数据包所属数据流的拥塞窗口,可以看出,在确定拥塞窗口的过程中,考虑了数据包的转发路径上各转发设备的剩余带宽的情况,因此,确定的拥塞窗口更加合理,能够提高拥塞控制效果,进而,提高带宽利用率、提高吞吐率、提高数据流连接之间的公平性以及防止转发设备缓冲区溢出的问题。 In this embodiment, the controller receives the data packet sent by the source terminal, determines the forwarding path of the data packet according to the flow identifier in the data packet, and obtains the minimum remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet, and sends the data packet. For the destination terminal, the destination terminal determines the congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth and the data packet at the source terminal and the preset delay. It can be seen that in the process of determining the congestion window, the forwarding path of the data packet is considered. The situation of the remaining bandwidth of each forwarding device, therefore, the determined congestion window is more reasonable, and the congestion control effect can be improved, thereby improving bandwidth utilization, improving throughput, improving fairness between data stream connections, and preventing forwarding device buffering. The problem of district overflow.
图5为本发明网络中拥塞窗口的确定方法实施例二的流程示意图,本实施例的执行主体是目的终端,结合图1所示的网络场景图,本实施例的方法如下:FIG. 5 is a schematic flowchart of a second embodiment of a method for determining a congestion window in a network according to the present invention. The execution subject of the embodiment is a destination terminal, and the method of the embodiment is as follows:
S501:目的终端接收控制器发送的数据包。S501: The destination terminal receives the data packet sent by the controller.
其中,数据包中包含数据包所属的数据流的流标识,以及流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽。The data packet includes a flow identifier of the data flow to which the data packet belongs, and a minimum remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path corresponding to the flow identifier.
控制器将数据包的转发路径上各转发设备的剩余带宽中最小的剩余带宽添加在数据包中,通过转发设备发送给目的终端,控制器获取最小的剩余带宽的方式参见图2所示实施例的具体描述,在此不再赘述。The controller adds the minimum remaining bandwidth of the remaining bandwidth of each forwarding device in the forwarding path of the data packet to the data packet, and sends the packet to the destination terminal through the forwarding device, and the controller obtains the minimum remaining bandwidth. Referring to the embodiment shown in FIG. 2 The detailed description will not be repeated here.
S502:根据最小的剩余带宽以及预设时延确定数据流的拥塞窗口。S502: Determine a congestion window of the data flow according to the minimum remaining bandwidth and the preset delay.
目的终端根据接收到的最小的剩余带宽,以及获取预设时延确定数据流的拥塞窗口。The destination terminal determines a congestion window of the data stream according to the minimum remaining bandwidth received and the preset delay.
通常,在建立数据流连接的过程中,预设时延可以是根据经验预设的数据包在源终端与目的终端之间的往返时延;在数据流连接已经建立之后,预设时延可以是终端统计的数据包在源终端与目的终端之间的往返时延的均值,或者,终端统计的数据包在源终端与目的终端之间的往返时延的最小往返时延等,对此,本发明不做限制。Generally, in the process of establishing a data flow connection, the preset delay may be a round-trip delay between the source terminal and the destination terminal according to an empirically preset data packet; after the data flow connection has been established, the preset delay may be The average round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, or the minimum round-trip delay of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, etc. The invention is not limited.
本实施例中,通过目的终端根据最小剩余带宽以及预设时延确定数据包所属数据流的拥塞窗口,由于最小剩余带宽是数据包的转发路径上的各转发设备的剩余带宽中最小的剩余带宽,也就是,在确定数据流的拥塞窗口时,考虑了数据包的转发路径上各转发设备的剩余带宽的情况,因此,确定的拥塞窗口更加合理,能够提高拥塞控制效果。In this embodiment, the destination terminal determines, according to the minimum remaining bandwidth and the preset delay, a congestion window of the data flow to which the data packet belongs, because the minimum remaining bandwidth is the smallest remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet. That is, when determining the congestion window of the data stream, the remaining bandwidth of each forwarding device on the forwarding path of the data packet is considered. Therefore, the determined congestion window is more reasonable, and the congestion control effect can be improved.
图6为本发明网络中拥塞窗口的确定方法实施例三的流程示意图,本实施例的执行主体是控制器,图6所示实施例与图2所示实施例不同的是,在图2所示实施例中,控制器将确定的数据包的转发路径上各个转发设备的剩余带宽中最小的剩余带宽发送给目的终端,由目的终端根据最小剩余带宽以 及预设时延确定数据包所属数据流的拥塞窗口。而图6所示实施例中,控制器直接根据确定数据包的转发路径上各个转发设备的剩余带宽中最小的剩余带宽和预设时延,确定数据包所属数据流的拥塞窗口,将所确定的拥塞窗口携带在数据包中发送给目的终端,具体流程如下:FIG. 6 is a schematic flowchart of a third embodiment of a method for determining a congestion window in a network according to the present invention. The execution body of the embodiment is a controller, and the embodiment shown in FIG. 6 is different from the embodiment shown in FIG. In an embodiment, the controller sends the smallest remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path of the determined data packet to the destination terminal, where the destination terminal uses the minimum remaining bandwidth. And the preset delay determines a congestion window of the data stream to which the data packet belongs. In the embodiment shown in FIG. 6, the controller determines the congestion window of the data flow to which the data packet belongs according to the minimum remaining bandwidth and the preset delay of the remaining bandwidth of each forwarding device on the forwarding path of the determined data packet, and determines the congestion window of the data flow to which the data packet belongs. The congestion window is carried in the data packet and sent to the destination terminal. The specific process is as follows:
S601:控制器接收源终端发送的数据包。S601: The controller receives the data packet sent by the source terminal.
其中,上述数据包中包含数据包所属的数据流的流标识。The data packet includes a flow identifier of a data flow to which the data packet belongs.
该步骤的详细描述可参见图2所示实施例的S201,对此不再赘述。For a detailed description of this step, refer to S201 of the embodiment shown in FIG. 2, and details are not described herein again.
S602:控制器根据流标识确定数据包的转发路径。S602: The controller determines a forwarding path of the data packet according to the flow identifier.
数据包的转发路径上包含M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M。The forwarding path of the data packet includes one of the M forwarding devices, where I is an integer and 1≤I≤M.
该步骤的详细描述可参见图2所示实施例的S202,对此不再赘述。For a detailed description of this step, refer to S202 of the embodiment shown in FIG. 2, and details are not described herein again.
S603:控制器获取转发路径上的各个转发设备的剩余带宽中最小的剩余带宽。S603: The controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path.
该步骤的详细描述可参见图2所示实施例的S203,对此不再赘述。For a detailed description of this step, refer to S203 of the embodiment shown in FIG. 2, and details are not described herein again.
具体地,可以根据
Figure PCTCN2015078246-appb-000006
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示转发路径上的第i个转发设备,1≤i≤I,I表示转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,第i个转发设备的数据流连接中不包含源终端发送的数据包所属数据流的连接。
Specifically, it can be
Figure PCTCN2015078246-appb-000006
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, i represents an i th forwarding device on the forwarding path, 1≤i≤I, and I represents a forwarding path The total number of forwarding devices on the network, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i ,K i represents The total number of data stream connections of the i forwarding devices. The data stream connection of the i-th forwarding device does not include the connection of the data stream to which the data packet sent by the source terminal belongs.
S604:控制器根据最小剩余带宽以及预设时延确定数据流的拥塞窗口。S604: The controller determines a congestion window of the data flow according to the minimum remaining bandwidth and the preset delay.
通常,在建立数据流连接的过程中,预设时延可以是根据经验预设的数据包在源终端与目的终端之间的往返时延;在数据流连接已经建立之后,预 设时延可以是终端统计的数据包在源终端与目的终端之间的往返时延的均值,或者,终端统计的数据包在源终端与目的终端之间的往返时延的最小往返时延等,对此,本发明不做限制。Generally, in the process of establishing a data flow connection, the preset delay may be a round-trip delay between the source terminal and the destination terminal according to an empirically preset data packet; after the data flow connection has been established, The delay may be the mean value of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, or the minimum round-trip delay of the round-trip delay between the source terminal and the destination terminal of the data packet counted by the terminal, and the like. In this regard, the invention is not limited.
具体地:根据W=B×P确定数据流的拥塞窗口,其中,W表示数据流的拥塞窗口,B表示最小的剩余带宽,P表示预设时延。通常,P取数据包在源终端和目的终端之间最小的往返时延。Specifically, the congestion window of the data stream is determined according to W=B×P, where W represents a congestion window of the data stream, B represents a minimum remaining bandwidth, and P represents a preset delay. Generally, P takes the minimum round-trip delay between the source terminal and the destination terminal.
S605:控制器将拥塞窗口携带在数据包中发送给数据包的目的终端。S605: The controller carries the congestion window in the data packet to be sent to the destination terminal of the data packet.
可以理解,这里所描述的将拥塞窗口携带在数据包中发送给数据包的目的终端,是指通过与目的终端连接的转发设备发送到目的终端。It can be understood that the destination terminal that is used to carry the congestion window in the data packet and sent to the data packet is sent to the destination terminal through the forwarding device connected to the destination terminal.
目的终端接收到控制器发送的数据包之后,解析数据包,获取其中的拥塞窗口,将所获取的拥塞窗口作为数据包所属数据流的拥塞窗口。After receiving the data packet sent by the controller, the destination terminal parses the data packet, obtains a congestion window therein, and uses the acquired congestion window as a congestion window of the data flow to which the data packet belongs.
本实施例中,通过控制器接收源终端发送的数据包,根据数据包中的流标识确定数据包的转发路径,获取数据包的转发路径上各转发设备的剩余带宽中最小的剩余带宽,根据最小剩余带宽和预设时延确定数据包所属数据流的拥塞窗口,将拥塞窗口携带在数据包中发送给目的终端,以使目的终端根据数据包中携带的拥塞窗口确定数据包所属数据流的拥塞窗口,可以看出,在确定拥塞窗口的过程中,考虑了数据包的转发路径上各转发设备的剩余带宽的情况,因此,确定的拥塞窗口更加合理,能够提高拥塞控制效果。In this embodiment, the controller receives the data packet sent by the source terminal, determines the forwarding path of the data packet according to the flow identifier in the data packet, and obtains the minimum remaining bandwidth of the remaining bandwidth of each forwarding device on the forwarding path of the data packet, according to The minimum remaining bandwidth and the preset delay determine the congestion window of the data flow to which the data packet belongs, and the congestion window is carried in the data packet and sent to the destination terminal, so that the destination terminal determines the data flow to which the data packet belongs according to the congestion window carried in the data packet. In the congestion window, it can be seen that in the process of determining the congestion window, the remaining bandwidth of each forwarding device on the forwarding path of the data packet is considered. Therefore, the determined congestion window is more reasonable and the congestion control effect can be improved.
图7为本发明网络中拥塞窗口的确定装置实施例一的结构示意图,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,本实施例的装置部署在控制器中,本实施例的装置包括接收模块701、确定模块702、获取模块703和发送模块704,其中,接收模块701用于接收源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;确定模块702用于根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;获取模块703用于用于获取所述转发路径上各个转发 设备的剩余带宽中最小的剩余带宽;发送模块704用于将所述最小的剩余带宽携带在所述数据包中发送给所述数据包的目的终端,以使所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。FIG. 7 is a schematic structural diagram of Embodiment 1 of a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1. The device of the example is deployed in the controller, and the device in this embodiment includes a receiving module 701, a determining module 702, an obtaining module 703, and a sending module 704, where the receiving module 701 is configured to receive a data packet sent by the source terminal, where the data packet is a flow identifier of the data flow to which the data packet belongs is included; the determining module 702 is configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices The device, where I is an integer and 1 ≤ I ≤ M; the obtaining module 703 is configured to acquire each forwarding on the forwarding path a minimum remaining bandwidth of the remaining bandwidth of the device; the sending module 704 is configured to carry the minimum remaining bandwidth in the data packet and send the target terminal to the data packet, so that the destination terminal is according to the minimum The remaining bandwidth and the preset delay determine a congestion window for the data stream.
在上述实施例中,所述获取模块具体用于根据
Figure PCTCN2015078246-appb-000007
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
In the above embodiment, the obtaining module is specifically configured to be used according to
Figure PCTCN2015078246-appb-000007
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
在上述实施例中,所述确定模块具体用于根据控制器存储的流标识与转发路径之间的对应关系,确定所述数据包的转发路径。In the foregoing embodiment, the determining module is specifically configured to determine a forwarding path of the data packet according to a correspondence between a flow identifier stored by the controller and a forwarding path.
在上述实施例中,所述流标识包括源地址、目的地址、源端口和目的端口。In the above embodiment, the flow identifier includes a source address, a destination address, a source port, and a destination port.
图7所示实施例的装置对应的可用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。The device of the embodiment shown in FIG. 7 can be used to implement the technical solution of the method embodiment shown in FIG. 2, and the implementation principle and technical effects are similar, and details are not described herein again.
图8为本发明网络中拥塞窗口的确定装置实施例二的结构示意图,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,本实施例的装置可部署在目的终端中,本实施例的装置包括接收模块801和确定模块802,其中,接收模块801用于接收控制器发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识以及所述流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;确定模块802用于根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。FIG. 8 is a schematic structural diagram of Embodiment 2 of a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1. The device of the example may be deployed in the destination terminal, and the device in this embodiment includes a receiving module 801 and a determining module 802, where the receiving module 801 is configured to receive a data packet sent by the controller, where the data packet includes the data packet The stream identifier of the data stream and the smallest remaining bandwidth of the remaining bandwidths of the respective forwarding devices on the forwarding path corresponding to the stream identifier; the determining module 802 is configured to determine the data according to the minimum remaining bandwidth and the preset delay Congestion window of the stream.
在上述实施例中,所述确定模块802具体用于根据W=B×P确定所述数 据流的拥塞窗口,其中,W表示所述数据流的拥塞窗口,B表示所述最小的剩余带宽,P表示预设时延。In the foregoing embodiment, the determining module 802 is specifically configured to determine the number according to W=B×P. According to the congestion window of the flow, where W represents a congestion window of the data stream, B represents the minimum remaining bandwidth, and P represents a preset delay.
图8所示实施例的装置对应的可用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。The device of the embodiment shown in FIG. 8 can be used to implement the technical solution of the method embodiment shown in FIG. 5, and the implementation principle and technical effects are similar, and details are not described herein again.
图9为本发明网络中拥塞窗口的确定装置实施例三的结构示意图,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,本实施例的装置可部署在控制器中,本实施例的装置包括接收模块901、确定模块902、获取模块903、处理模块904和发送模块905,其中,接收模块901用于接收源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;确定模块902用于根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;获取模块903用于获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;处理模块904用于根据所述最小剩余带宽以及预设时延确定所述数据流的拥塞窗口;发送模块905用于将所述拥塞窗口携带在所述数据包中发送给所述数据包的目的终端。FIG. 9 is a schematic structural diagram of Embodiment 3 of a device for determining a congestion window in a network according to the present invention. The network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1. The device of the example may be deployed in a controller, and the device in this embodiment includes a receiving module 901, a determining module 902, an obtaining module 903, a processing module 904, and a sending module 905, where the receiving module 901 is configured to receive a data packet sent by the source terminal. The data packet includes a flow identifier of the data flow to which the data packet belongs, and the determining module 902 is configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes the M forwarding devices The first forwarding device in which I is an integer and 1 ≤ I ≤ M; the obtaining module 903 is configured to acquire the smallest remaining bandwidth among the remaining bandwidths of the forwarding devices on the forwarding path; the processing module 904 is configured to use Determining a congestion window of the data stream by using a minimum remaining bandwidth and a preset delay; the sending module 905 is configured to carry the congestion window in the data packet and send the data to the data packet The destination terminal of the package.
在上述实施例中,获取模块903具体用于根据
Figure PCTCN2015078246-appb-000008
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
In the above embodiment, the obtaining module 903 is specifically configured to
Figure PCTCN2015078246-appb-000008
Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
图9所示实施例的装置对应的可用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,在此不再赘述。 The device of the embodiment shown in FIG. 9 can be used to implement the technical solution of the method embodiment shown in FIG. 6. The implementation principle and technical effects are similar, and details are not described herein again.
图10为本发明网络中拥塞窗口的确定装置实施例四的结构示意图,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,如图10所示,该网络中拥塞窗口的确定装置至少包括:处理器1001、存储器1002、通信接口1003和总线1004。其中,所述处理器1001、所述存储器1002和所述通信接口1003通过所述总线1004通信。10 is a schematic structural diagram of Embodiment 4 of a device for determining a congestion window in a network according to the present invention. The network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, as shown in the figure. As shown at 10, the determining means of the congestion window in the network includes at least a processor 1001, a memory 1002, a communication interface 1003, and a bus 1004. The processor 1001, the memory 1002, and the communication interface 1003 communicate through the bus 1004.
所述存储器1002用于存放程序。具体的,程序中可以包括程序代码,所述程序代码包括计算机执行指令。所述存储器1002可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。The memory 1002 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction. The memory 1002 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
所述处理器1001用于执行所述存储器1002存储的执行指令,可能为单核或多核中央处理单元(Central Processing Unit,CPU),或者为特定集成电路(Application Specific Integrated Circuit,ASIC),或者为被配置成实施本发明实施例的一个或多个集成电路。The processor 1001 is configured to execute an execution instruction stored in the memory 1002, which may be a single core or a multi-core central processing unit (CPU), or an application specific integrated circuit (ASIC), or One or more integrated circuits configured to implement embodiments of the present invention.
所述通信接口1003用于与转发设备进行通信。当拥塞控制装置运行时,处理器1001运行程序,以执行以下指令:The communication interface 1003 is configured to communicate with a forwarding device. When the congestion control device is running, the processor 1001 runs a program to execute the following instructions:
接收源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;Receiving, by the source terminal, a data packet, where the data packet includes a flow identifier of the data flow to which the data packet belongs;
根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;Determining, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
获取所述转发路径上各个转发设备的剩余带宽中最小的剩余带宽;Obtaining a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
将所述最小的剩余带宽携带在所述数据包中发送给所述数据包的目的终端,以使所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。Carrying the minimum remaining bandwidth in the data packet to be sent to the destination terminal of the data packet, so that the destination terminal determines a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay .
本发明实施例的装置具体可为SDN网络中控制器(Controller)。The device in the embodiment of the present invention may specifically be a controller in an SDN network.
本发明实施例的装置可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。 The device in the embodiment of the present invention may be used to implement the technical solution of the method embodiment shown in FIG. 2, and the implementation principle and the technical effect are similar, and details are not described herein again.
图11为本发明网络中拥塞窗口的确定装置实施例五的结构示意图,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,如图11所示,该网络中拥塞窗口的确定装置至少包括:处理器1101、存储器1102、通信接口1103和总线1104。其中,所述处理器1101、所述存储器1102和所述通信接口1103通过所述总线1104通信。11 is a schematic structural diagram of Embodiment 5 of a device for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, as shown in the figure. As shown in FIG. 11, the determining means of the congestion window in the network includes at least a processor 1101, a memory 1102, a communication interface 1103, and a bus 1104. The processor 1101, the memory 1102, and the communication interface 1103 communicate through the bus 1104.
所述存储器1102用于存放程序。具体的,程序中可以包括程序代码,所述程序代码包括计算机执行指令。所述存储器1102可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。The memory 1102 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction. The memory 1102 can be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
所述处理器1101用于执行所述存储器1102存储的执行指令,可能为单核或多核CPU,或者为ASIC,或者为被配置成实施本发明实施例的一个或多个集成电路。The processor 1101 is configured to execute an execution instruction stored by the memory 1102, which may be a single-core or multi-core CPU, or an ASIC, or one or more integrated circuits configured to implement embodiments of the present invention.
所述通信接口1103用于与控制器或者其他转发设备进行通信。当拥塞控制装置运行时,处理器1101运行程序,以执行以下指令:The communication interface 1103 is for communicating with a controller or other forwarding device. When the congestion control device is running, the processor 1101 runs a program to execute the following instructions:
接收控制器发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识以及所述流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。And receiving, by the controller, a data packet, where the data packet includes a flow identifier of the data flow to which the data packet belongs, and a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path corresponding to the flow identifier; The minimum remaining bandwidth and the preset delay determine a congestion window of the data stream.
本发明的实施例的装置具体可为SDN网络中的接收数据包的终端。The apparatus of the embodiment of the present invention may specifically be a terminal that receives a data packet in an SDN network.
本发明实施例的装置可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。The device in the embodiment of the present invention may be used to implement the technical solution of the method embodiment shown in FIG. 5, and the implementation principle and the technical effect are similar, and details are not described herein again.
图12为本发明网络中拥塞窗口的确定装置实施例六的结构示意图,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,如图12所示,该网络中拥塞窗口的确定装置至少包括:处理器1201、存储器1202、通信接口1203和总线1204。其中,所述处理器1201、所述存储器1202和所述通信接口1203通过所述总线1204通信。 12 is a schematic structural diagram of Embodiment 6 of a device for determining a congestion window in a network according to the present invention. The network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, as shown in the figure. As shown in FIG. 12, the determining means of the congestion window in the network includes at least a processor 1201, a memory 1202, a communication interface 1203, and a bus 1204. The processor 1201, the memory 1202, and the communication interface 1203 communicate through the bus 1204.
所述存储器1202用于存放程序。具体的,程序中可以包括程序代码,所述程序代码包括计算机执行指令。所述存储器1202可以为高速RAM存储器,也可以为非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。The memory 1202 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction. The memory 1202 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
所述处理器1201用于执行所述存储器1202存储的执行指令,可能为单核或多核CPU,或者为ASIC,或者为被配置成实施本发明实施例的一个或多个集成电路。The processor 1201 is configured to execute an execution instruction stored by the memory 1202, which may be a single-core or multi-core CPU, or an ASIC, or one or more integrated circuits configured to implement embodiments of the present invention.
所述通信接口1203用于与转发设备进行通信。当拥塞控制装置运行时,处理器1201运行程序,以执行以下指令:The communication interface 1203 is configured to communicate with a forwarding device. When the congestion control device is running, the processor 1201 runs a program to execute the following instructions:
接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;Receiving a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;Determining, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;Obtaining a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
根据所述最小剩余带宽以及预设时延确定所述数据流的拥塞窗口;Determining a congestion window of the data stream according to the minimum remaining bandwidth and a preset delay;
将所述拥塞窗口携带在所述数据包中发送给所述数据包的目的终端。The congestion window is carried in the data packet and sent to the destination terminal of the data packet.
本发明的实施例中的装置具体可为SDN网络中的控制器。The device in the embodiment of the present invention may specifically be a controller in an SDN network.
本发明实施例的装置可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。The device in the embodiment of the present invention may be used to implement the technical solution of the method embodiment shown in FIG. 6. The implementation principle and the technical effect are similar, and details are not described herein again.
本发明实施例还提供一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于控制器执行本发明网络中拥塞窗口确定方法实施例一所述的方法。The embodiment of the present invention further provides a computer readable medium, comprising computer execution instructions, wherein the computer execution instruction is used by a controller to perform the method described in Embodiment 1 of a congestion window determining method in a network of the present invention.
本发明实施例还提供一种计算机可读介质,包含计算机执行指令,所述计算机执行指令用于目的终端执行本发明网络中拥塞窗口的确定方法实施例二所述的方法。The embodiment of the present invention further provides a computer readable medium, comprising: computer-executed instructions, wherein the computer-executed instructions are used by the method for performing the second embodiment of the method for determining a congestion window in the network of the present invention.
本发明实施例还提供一种计算机可读介质,包含计算机执行指令,所述 计算机执行指令用于控制器执行本发明网络中拥塞窗口的确定方法实施例三所述的方法。An embodiment of the present invention further provides a computer readable medium, including computer execution instructions, The computer executes the instructions for the controller to perform the method described in Embodiment 3 of the method for determining a congestion window in the network of the present invention.
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。It should be noted that, for the foregoing method embodiments, for the sake of simple description, they are all expressed as a series of action combinations, but those skilled in the art should understand that the present invention is not limited by the described action sequence. Because certain steps may be performed in other sequences or concurrently in accordance with the present invention. In addition, those skilled in the art should also understand that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。In the above embodiments, the descriptions of the various embodiments are different, and the details that are not detailed in a certain embodiment can be referred to the related descriptions of other embodiments.
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。One of ordinary skill in the art will appreciate that all or part of the steps to implement the various method embodiments described above may be accomplished by hardware associated with the program instructions. The aforementioned program can be stored in a computer readable storage medium. The program, when executed, performs the steps including the foregoing method embodiments; and the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。 Finally, it should be noted that the above embodiments are merely illustrative of the technical solutions of the present invention, and are not intended to be limiting; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art will understand that The technical solutions described in the foregoing embodiments may be modified, or some or all of the technical features may be equivalently replaced; and the modifications or substitutions do not deviate from the technical solutions of the embodiments of the present invention. range.

Claims (16)

  1. 一种网络中拥塞窗口的确定方法,其特征在于,所述网络包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述方法包括:A method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method includes:
    所述控制器接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;Receiving, by the controller, a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
    所述控制器根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;Determining, by the controller, the forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
    所述控制器获取所述转发路径上各个转发设备的剩余带宽中最小的剩余带宽;The controller acquires a minimum remaining bandwidth among remaining bandwidths of each forwarding device on the forwarding path;
    所述控制器将所述最小的剩余带宽携带在所述数据包中发送给所述数据包的目的终端,以使所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。The controller carries the minimum remaining bandwidth in the data packet and sends the data to the destination terminal of the data packet, so that the destination terminal determines the data according to the minimum remaining bandwidth and a preset delay. Congestion window of the stream.
  2. 根据权利要求1所述的方法,其特征在于,所述控制器获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,包括:The method according to claim 1, wherein the controller acquires a minimum remaining bandwidth of remaining bandwidths of the forwarding devices on the forwarding path, including:
    所述控制器根据:The controller is based on:
    Figure PCTCN2015078246-appb-100001
    获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
    Figure PCTCN2015078246-appb-100001
    Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  3. 根据权利要求1或2所述的方法,其特征在于,所述控制器根据所述流标识确定所述数据包的转发路径,包括:The method according to claim 1 or 2, wherein the controller determines a forwarding path of the data packet according to the flow identifier, including:
    所述控制器根据控制器存储的流标识与转发路径之间的对应关系,确定所述数据包的转发路径。 The controller determines a forwarding path of the data packet according to a correspondence between a flow identifier stored by the controller and a forwarding path.
  4. 根据权利要求1~3任一项所述的方法,其特征在于,所述流标识包括源地址、目的地址、源端口和目的端口。The method according to any one of claims 1 to 3, wherein the flow identifier comprises a source address, a destination address, a source port, and a destination port.
  5. 一种网络中拥塞窗口的确定方法,其特征在于,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述方法包括:A method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method includes:
    目的终端接收控制器发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识以及所述流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;Receiving, by the destination terminal, a data packet sent by the controller, where the data packet includes a stream identifier of the data stream to which the data packet belongs, and a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path corresponding to the flow identifier;
    所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。The destination terminal determines a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay.
  6. 根据权利要求5所述的方法,其特征在于,所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口,包括:The method according to claim 5, wherein the destination terminal determines a congestion window of the data stream according to the minimum remaining bandwidth and a preset delay, including:
    所述目的终端根据W=B×P确定所述数据流的拥塞窗口,其中,W表示所述数据流的拥塞窗口,B表示所述最小的剩余带宽,P表示预设时延。The destination terminal determines a congestion window of the data flow according to W=B×P, where W represents a congestion window of the data flow, B represents the minimum remaining bandwidth, and P represents a preset delay.
  7. 一种网络中拥塞窗口的确定方法,其特征在于,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述方法包括:A method for determining a congestion window in a network, where the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the method includes:
    所述控制器接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;Receiving, by the controller, a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
    所述控制器根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;Determining, by the controller, the forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
    所述控制器获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;The controller acquires a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
    所述控制器根据所述最小剩余带宽以及预设时延确定所述数据流的拥塞窗 口;Determining, by the controller, a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay mouth;
    所述控制器将所述拥塞窗口携带在所述数据包中发送给所述数据包的目的终端。The controller carries the congestion window in the data packet and sends the destination terminal to the data packet.
  8. 根据权利要求7所述的方法,其特征在于,所述控制器获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,包括:The method according to claim 7, wherein the controller acquires the smallest remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, including:
    所述控制器根据:The controller is based on:
    Figure PCTCN2015078246-appb-100002
    获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
    Figure PCTCN2015078246-appb-100002
    Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  9. 一种网络中拥塞窗口的确定装置,其特征在于,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述装置包括:A device for determining a congestion window in a network, wherein the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the device includes:
    接收模块,用于接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;a receiving module, configured to receive a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
    确定模块,用于根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;a determining module, configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
    获取模块,用于获取所述转发路径上各个转发设备的剩余带宽中最小的剩余带宽;An acquiring module, configured to acquire a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
    发送模块,用于将所述最小的剩余带宽携带在所述数据包中发送给所述数据包的目的终端,以使所述目的终端根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。a sending module, configured to carry the minimum remaining bandwidth in the data packet to be sent to the destination terminal of the data packet, so that the destination terminal determines, according to the minimum remaining bandwidth and a preset delay Congestion window for data streams.
  10. 根据权利要求9所述的装置,其特征在于,所述获取模块具体用于根 据
    Figure PCTCN2015078246-appb-100003
    获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤I≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
    The apparatus according to claim 9, wherein said acquisition module is specifically configured to
    Figure PCTCN2015078246-appb-100003
    Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤I≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
  11. 根据权利要求9或10所述的装置,其特征在于,所述确定模块具体用于根据控制器存储的流标识与转发路径之间的对应关系,确定所述数据包的转发路径。The apparatus according to claim 9 or 10, wherein the determining module is specifically configured to determine a forwarding path of the data packet according to a correspondence between a flow identifier stored by the controller and a forwarding path.
  12. 根据权利要求9~11任一项所述的装置,其特征在于,所述流标识包括源地址、目的地址、源端口和目的端口。The apparatus according to any one of claims 9 to 11, wherein the flow identifier comprises a source address, a destination address, a source port, and a destination port.
  13. 一种网络中拥塞窗口的确定装置,其特征在于,所述网络中包含控制器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述装置包括:A device for determining a congestion window in a network, wherein the network includes a controller, M forwarding devices, a source terminal, and a destination terminal, where the M is an integer greater than or equal to 1, and the device includes:
    接收模块,用于接收所述控制器发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识以及所述流标识对应的转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;a receiving module, configured to receive a data packet sent by the controller, where the data packet includes a flow identifier of a data flow to which the data packet belongs, and a remaining bandwidth of each forwarding device on a forwarding path corresponding to the flow identifier Minimum remaining bandwidth;
    确定模块,用于根据所述最小的剩余带宽以及预设时延确定所述数据流的拥塞窗口。And a determining module, configured to determine a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay.
  14. 根据权利要求13所述的装置,其特征在于,所述确定模块具体用于根据W=B×P确定所述数据流的拥塞窗口,其中,W表示所述数据流的拥塞窗口,B表示所述最小的剩余带宽,P表示预设时延。The apparatus according to claim 13, wherein the determining module is specifically configured to determine a congestion window of the data stream according to W=B×P, where W represents a congestion window of the data stream, and B represents a The minimum remaining bandwidth, P represents the preset delay.
  15. 一种网络中拥塞窗口的确定装置,其特征在于,所述网络中包含控制 器、M个转发设备、源终端和目的终端,所述M为大于等于1的整数,所述装置包括:A device for determining a congestion window in a network, characterized in that the network includes control , M forwarding devices, source terminals, and destination terminals, where M is an integer greater than or equal to 1, and the device includes:
    接收模块,用于接收所述源终端发送的数据包,所述数据包中包含所述数据包所属的数据流的流标识;a receiving module, configured to receive a data packet sent by the source terminal, where the data packet includes a flow identifier of a data flow to which the data packet belongs;
    确定模块,用于根据所述流标识确定所述数据包的转发路径,所述转发路径上包含所述M个转发设备中的I个转发设备,其中,I为整数且1≤I≤M;a determining module, configured to determine, according to the flow identifier, a forwarding path of the data packet, where the forwarding path includes one of the M forwarding devices, where I is an integer and 1≤I≤M;
    获取模块,用于获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽;An acquiring module, configured to acquire a minimum remaining bandwidth of remaining bandwidths of each forwarding device on the forwarding path;
    处理模块,用于根据所述最小剩余带宽以及预设时延确定所述数据流的拥塞窗口;a processing module, configured to determine a congestion window of the data flow according to the minimum remaining bandwidth and a preset delay;
    发送模块,用于将所述拥塞窗口携带在所述数据包中发送给所述数据包的目的终端。And a sending module, configured to carry the congestion window in the data packet and send the target terminal to the data packet.
  16. 根据权利要求15所述的装置,其特征在于,所述获取模块具体用于根据
    Figure PCTCN2015078246-appb-100004
    获取所述转发路径上的各个转发设备的剩余带宽中最小的剩余带宽,其中,B表示最小的剩余带宽,i表示所述转发路径上的第i个转发设备,1≤i≤I,I表示所述转发路径上的转发设备的总数,ci表示第i个转发设备的总带宽,bk,i表示第i个转发设备上第k个数据流连接的带宽,1≤k≤Ki,Ki表示第i个转发设备的数据流连接的总数,所述第i个转发设备的数据流连接中不包含所述数据流的连接。
    The apparatus according to claim 15, wherein said obtaining module is specifically configured to
    Figure PCTCN2015078246-appb-100004
    Obtaining a minimum remaining bandwidth of the remaining bandwidths of the forwarding devices on the forwarding path, where B represents a minimum remaining bandwidth, and i represents an i-th forwarding device on the forwarding path, where 1≤i≤I, I represents The total number of forwarding devices on the forwarding path, c i represents the total bandwidth of the i-th forwarding device, and b k,i represents the bandwidth of the k-th data stream connection on the i-th forwarding device, 1≤k≤K i , K i represents the total number of data stream connections of the i-th forwarding device, and the data stream connection of the i-th forwarding device does not include the connection of the data stream.
PCT/CN2015/078246 2014-05-13 2015-05-05 Method and device for determining congestion window in network WO2015172668A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410201059.7A CN105099938B (en) 2014-05-13 2014-05-13 The determination method and apparatus of congestion window in network
CN201410201059.7 2014-05-13

Publications (1)

Publication Number Publication Date
WO2015172668A1 true WO2015172668A1 (en) 2015-11-19

Family

ID=54479318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/078246 WO2015172668A1 (en) 2014-05-13 2015-05-05 Method and device for determining congestion window in network

Country Status (2)

Country Link
CN (1) CN105099938B (en)
WO (1) WO2015172668A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106102094B (en) * 2016-07-06 2019-09-06 广州海格通信集团股份有限公司 A kind of TCP jamming control method based on SDN network
CN107959947B (en) * 2016-10-17 2021-06-22 中国移动通信有限公司研究院 Data transmission method, device and base station
CN106791886B (en) * 2016-11-16 2020-03-17 深圳市梦网百科信息技术有限公司 Panoramic video distribution method and system based on visual characteristics
CN108667739B (en) * 2017-03-27 2020-12-08 华为技术有限公司 Congestion control method, device and system
CN108881047B (en) * 2018-08-01 2022-01-25 中国联合网络通信集团有限公司 Network capacity expansion judging method and device
CN110830381B (en) * 2018-08-10 2021-10-26 华为技术有限公司 Congestion control method and related equipment
KR102139378B1 (en) * 2018-11-20 2020-07-29 울산과학기술원 Method and apparatus for controlling congestion
CN109802879B (en) * 2019-01-31 2021-05-28 新华三技术有限公司 Data stream routing method and device
CN111277502B (en) * 2020-01-20 2022-05-17 北京红云融通技术有限公司 Method for transmitting data by multi-link aggregation and transmitting equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064577A1 (en) * 2002-07-25 2004-04-01 Dahlin Michael D. Method and system for background replication of data objects
US20050286416A1 (en) * 2004-06-25 2005-12-29 Nec Corporation Communication system
CN101964755A (en) * 2010-11-03 2011-02-02 中南大学 Explicit congestion control method based on bandwidth estimation in high-bandwidth delay network
CN103491014A (en) * 2013-08-15 2014-01-01 北京邮电大学 Method and system for controlling congestion based on bandwidth allocation in space communication environment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414650B (en) * 2013-07-29 2016-12-07 上海华为技术有限公司 A kind of avoid congested method for routing and device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064577A1 (en) * 2002-07-25 2004-04-01 Dahlin Michael D. Method and system for background replication of data objects
US20050286416A1 (en) * 2004-06-25 2005-12-29 Nec Corporation Communication system
CN101964755A (en) * 2010-11-03 2011-02-02 中南大学 Explicit congestion control method based on bandwidth estimation in high-bandwidth delay network
CN103491014A (en) * 2013-08-15 2014-01-01 北京邮电大学 Method and system for controlling congestion based on bandwidth allocation in space communication environment

Also Published As

Publication number Publication date
CN105099938B (en) 2018-10-12
CN105099938A (en) 2015-11-25

Similar Documents

Publication Publication Date Title
WO2015172668A1 (en) Method and device for determining congestion window in network
US11362960B2 (en) Layer 3 fair rate congestion control notification
CN107204931B (en) Communication device and method for communication
US11271848B2 (en) Data transmission method, apparatus, and device
WO2018210117A1 (en) Congestion control method, network device, and network interface controller thereof
CN108307434B (en) Method and apparatus for flow control
WO2017016106A1 (en) Sdn-based qos-supported communications tunnel establishment method and system
WO2019029318A1 (en) Network congestion notification method, proxy node and computer device
WO2019134383A1 (en) Method for controlling network congestion, access device, and computer readable storage medium
WO2020042624A1 (en) Transmission rate control method and apparatus, sending device and receiving device
BR112020015127A2 (en) METHOD, APPARATUS, AND DATA TRANSMISSION SYSTEM
US9565035B1 (en) Enhanced audio video bridging (AVB) methods and apparatus
WO2020063339A1 (en) Method, device and system for realizing data transmission
WO2015131486A1 (en) Multicast packet forwarding method and device
WO2018113436A1 (en) Method and device for network congestion processing
US11425051B2 (en) Flow control method and system, and device
WO2014183492A1 (en) Packet traffic control method and device based on multi-path transmission
CN106330742B (en) Flow control method and network controller
CN111800351A (en) Congestion notification packet generation by a switch
WO2020063338A1 (en) Method for implementing data transmission, apparatus, and system
WO2020078448A1 (en) Message processing method and apparatus
WO2017097201A1 (en) Data transmission method, transmission device and receiving device
Luo et al. Enhancing responsiveness and scalability for OpenFlow networks via control-message quenching
KR20100051537A (en) Automatic detection and re-configuration of priority status in telecommunications networks
Nguyen et al. Performance evaluation of TCP congestion control algorithms in data center networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15792004

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

Country of ref document: EP

Kind code of ref document: A1