System and method for peak flow detection in a communication network
A method includes determining a delivery performance of a data flow being transmitted from a first network equipment to a second network equipment over a network; determining whether the network is congested based on the determined delivery performance of the data flow being transmitted to the second network equipment; and pacing delivery of the data flow to the second network equipment by reducing a rate at which the data flow is delivered to the second network equipment when the network is determined to be congested.
1. A non-transitory computer-readable media (CRM) including computer programming instructions which, when executed by a processor, cause the processor to perform a method, the method comprising:
determining, using a time interval, a delivery performance of a data flow being transmitted from a first network equipment to a second network equipment over a network;
determining whether the network is congested based on the determined delivery performance of the data flow being transmitted to the second network equipment; and
pacing delivery of the data flow to the second network equipment by reducing a rate at which the data flow is delivered to the second network equipment when the network is determined to be congested,
wherein the time interval is greater than or equal to two times a round trip time between the first network equipment and the second network equipment.
2. The CRM of claim 1 , wherein the method further comprises:
determining whether the data flow is an elephant flow by determining whether the data flow consumes a greater portion of network bandwidth than a threshold level, has a data rate that exceeds a threshold amount, persists for longer than a threshold amount of time, or a combination thereof,
wherein pacing delivery of the data flow to the second network equipment by reducing a rate at which the data flow is delivered to the second network equipment when the network is determined to be congested includes pacing delivery of the data flow when the data flow is determined to be an elephant flow.
3. The CRM of claim 1 , wherein determining the delivery performance of the data flow being transmitted from the first network equipment to the second network equipment comprises:
detecting a number of packets transmitted to and acknowledged by the second network equipment via the data flow during the time interval.
4. The CRM of claim 1 , wherein determining the delivery performance of the data flow being transmitted from the first network equipment to the second network equipment comprises:
detecting, during the time interval, one or more acknowledgment (ACK) packets that are transmitted, by the second network equipment, in response to the second network equipment receiving one or more data packets via the data flow.
5. The CRM of claim 4 , wherein detecting the one or more ACK packets comprises:
prompting, by inserting one or more additional packets into the data flow, the second network equipment to transmit the one or more ACK packets.
6. The CRM of claim 1 , wherein the delivery performance of the data flow being transmitted from the first network equipment to the second network equipment is determined by determining a delivery throughput of the data flow during the time interval.
7. The CRM of claim 6 , wherein detecting whether the network is congested based on the determined delivery performance of the data flow being transmitted from the first network equipment to the second network equipment comprises:
determining whether the delivery throughput is less than a peak throughput by comparing the delivery throughput to the peak throughput for the data flow, the peak throughput being a highest estimated data throughput for the data flow.
8. The CRM of claim 6 , wherein detecting whether the network is congested based on the determined delivery performance of the data flow being transmitted from the first network equipment to the second network equipment comprises:
determining whether the delivery throughput is less than a percentage of a peak throughput of the data flow; and
determining that the network is congested when the delivery throughput is less than the percentage of the peak throughput of the data flow.
9. The CRM of claim 6 , wherein detecting whether the network is congested based on the determined delivery performance of the data flow being transmitted to the second network equipment comprises:
determining whether the delivery throughput is less than a peak throughput by comparing the delivery throughput to the peak throughput, the peak throughput being a highest detected data throughput for one or more other data flows being transmitted over the network.
10. The CRM of claim 1 , wherein pacing the delivery of the data flow to the second network equipment by reducing a rate at which the data flow is being delivered to the second network equipment comprises:
pausing delivery of the data flow when the network is congested; and
causing the data flow to be transmitted to the second network equipment when the network is uncongested.
11. The CRM of claim 1 , wherein pacing the delivery of the data flow to the second network equipment by reducing a rate at which the data flow is being delivered to the second network equipment comprises:
buffering data associated with the data flow in a queue.
12. The CRM of claim 1 , wherein pacing the delivery of the data flow to the second network equipment includes adding one or more latencies between two or more packets of the data flow before the two or more packets are transmitted to the second network equipment.
13. The CRM of claim 1 , wherein the processor is included in a transport manager system located at an interface between a plurality of data networks, the plurality of data networks including the network.
14. The CRM of claim 1 , the processor is included in an inline device connected between the first network equipment and the second network equipment.