Increasing QoS throughput and efficiency through lazy byte batching
AssigneeCitrix Systems, Inc.
InventorsSeth Kenneth Keith, Mustafa Kutluk Testicioglu, Lampros Dounis
Life of this patent
Estimating the term…
Abstract
Described embodiments improve the performance of a computer network via selectively forwarding packets to bypass quality of service (QoS) processing, avoiding processing delays during critical periods of high demand, increasing throughput and efficiency may be increased by sacrificing a small amount of QoS accuracy. QoS processing may be applied to a subset of packets of a flow or connection, referred to herein as “lazy” processing or lazy byte batching. Packets that bypass QoS processing may be immediately forwarded with the same QoS settings as packets of the flow for which QoS processing is applied, resulting in tremendous overhead savings with only minimal decline in accuracy.
Claims19
A method for improving network efficiency via throughput credits, comprising:
- receiving, by a device, a plurality of packets of a flow;
- determining, by the device, that a throughput credit for the flow does not exceed a predetermined threshold;
- transmitting a first subset of the plurality of packets to bypass quality of service (QoS) processing, by the device, responsive to the determination that the throughput credit for the flow does not exceed the predetermined threshold, the throughput credit incremented for each transmitted packet of the first subset;
- determining, by the device, that the throughput credit for the flow exceeds the predetermined threshold, responsive to incrementing the throughput credit for each transmitted packet of the first subset;
- and
- applying QoS processing to a second subset of the plurality of packets, by the device, responsive to the determination that the throughput credit for the flow exceeds the predetermined threshold, the throughput credit reset upon applying QoS processing to the second subset, by:
- placing the second subset of the plurality of packets in one or more QoS queues according to a virtual size of each packet of the second subset of the plurality of packets, each virtual size comprising a sum of the size of the corresponding packet and the throughput credit for the flow incremented for each transmitted packet of the first subset.
A system for improving network efficiency via throughput credits, comprising:
- a device, comprising a network interface, a quality of service (QoS) processor, and a memory storing a throughput credit for a flow;
- wherein the network interface is configured to receive a plurality of packets of the flow;
- and
- wherein the QoS processor is configured to determine that the throughput credit for the flow does not exceed a predetermined threshold;
- and
- wherein the network interface is further configured to transmit a first subset of the plurality of packets to bypass the QoS processor, responsive to the determination that the throughput credit for the flow does not exceed the predetermined threshold, the throughput credit incremented for each transmitted packet of the first subset;
- and
- wherein the QoS processor is further configured to:
- determine that the throughput credit for the flow exceeds the predetermined threshold, responsive to incrementing the throughput credit for each transmitted packet of the first subset
- apply QoS processing to a second subset of the plurality of packets, responsive to the determination that the throughput credit for the flow exceeds the predetermined threshold, the throughput credit reset upon applying QoS processing to the second subset, by:
- placing the second subset of the plurality of packets in one or more QoS queues according to a virtual size of each packet of the second subset of the plurality of packets, each virtual size comprising a sum of the size of the corresponding packet and the throughput credit for the flow incremented for each transmitted packet of the first subset.
A non-transitory computer readable medium comprising instructions that, when executed by a processor of a computing device, cause the device to:
- receive a plurality of packets of a flow;
- determine that a throughput credit for the flow does not exceed a predetermined threshold;
- transmit a first subset of the plurality of packets to bypass a QoS processor of the computing device, responsive to the determination that the throughput credit for the flow does not exceed the predetermined threshold, the throughput credit incremented for each transmitted packet of the first subset;
- determine that the throughput credit for the flow exceeds the predetermined threshold, responsive to incrementing the throughput credit for each transmitted packet of the first subset;
- and
- apply QoS processing to a second subset of the plurality of packets, responsive to the determination that the throughput credit for the flow exceeds the predetermined threshold, the throughput credit reset upon applying QoS processing to the second subset, by:
- placing the second subset of the plurality of packets in one or more QoS queues according to a virtual size of each packet of the second subset of the plurality of packets, each virtual size comprising a sum of the size of the corresponding packet and the throughput credit for the flow incremented for each transmitted packet of the first subset.
Dependencies are inferred from the claim text.