A middlebox is a network appliance that manipulates internet traffic by optimizing data flow across the network. Middleboxes can be configured as wide area network (“WAN”) optimizers and can be deployed in pairs across two geographically separated locations to optimize data traffic between the two middleboxes. Middleboxes can be connected through a single link or multiple links such as a leased line link and a broadband link. Middleboxes use TCP congestion avoidance algorithms, commonly called “TCP flavors,” to optimize TCP data flows as part of a quality of service (“QoS”) scheme. Common examples of TCP avoidance flavors can include algorithms such as TCP Vegas, TCP Reno, TCP NewReno, TCP Hybla, TCP BIC, and TCP CUBIC, among others. Each TCP congestion avoidance flavor is suited for optimizing data flows originating from or received by particular operating systems, link types, and/or other network characteristics.
Some TCP flavors improve quality of service across TCP connections by using congestion control and congestion avoidance techniques that sometimes include TCP traffic prioritization. Traffic prioritization, a traffic shaping technique for Quality of Service (QoS), can ensure that more packets from very high priority (P1) traffic are pushed into the network for increased throughput. Thus when there are enough data to be sent from both P1 and non-high priority (non-P1) traffic, the prioritization functionality of QoS can push more packets from P1 traffic into the network pipe thereby delivering better throughput and providing enhanced QoS for P1 traffic. For example, using conventional methods of prioritization, if traffic prioritization module dictates 3:1 ratio for P1 and non-P1 traffic, we could expect approximately 75% of the packets occupying the leased network pipe to be of P1 traffic.
One down side of conventional prioritization techniques is when the network link gets congested, since there are more packets from the P1 traffic, the probability of packet drops from P1 traffic is much higher than the probability of packet drops in non-P1 traffic. For example, in one congestion scenario, the probability of next packet drop to occur in P1 traffic would be 0.75 as opposed to non-P1 traffic with a probability of 0.25. Thus, using conventional traffic prioritization techniques, P1 traffic could get multiple packet drops, which in turn forces the TCP connection to reduce its congestion window. Therefore, the higher priority TCP traffic can experience reduced throughput and degraded end-to-end QoS.