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.
Claims17
A method comprising:
- for each of a first one or more packets of a flow,
- transmitting, by a device, the packet, and
- incrementing, by the device, a counter value by a first size of the packet of the flow;
- and
- for each of a second one or more packets of the flow, identifying, by the device, a second size of the packet;
- determining, by the device, a virtual size equal to a sum of the counter value and the identified second size of each of the second one or more packets;
- responsive to the virtual size exceeding a threshold, placing, by the device, the second one or more packets into one or more queues to schedule transmission of the second one or more packets according to the virtual size of the second one or more packets, and resetting, by the device, the counter value;
- and
- transmitting, by the device from the one or more queues, the second one or more packets.
A device comprising:
- one or more processors, coupled to memory and configured to:
- for each of a first one or more packets of a flow,
- transmit the packet, and
- increment a counter value by a first size of the packet of the flow;
- for each of a second one or more packets of the flow, identify a second size of the packet;
- determine a virtual size equal to a sum of the counter value and the identified second size of each of the second one or more packets;
- responsive to the virtual size exceeding a threshold, place the second one or more packets into one or more queues to schedule transmission of the second one or more packets according to the virtual size of the second one or more packets, and reset the counter value;
- and
- transmit, from the one or more queues, the second one or more packets.
A non-transitory computer readable medium storing program instructions for causing one or more processors to:
- for each of a first one or more packets of a flow,
- transmit the packet, and
- increment a counter value by a first size of the packet of a flow of the flow;
- for each of a second one or more packets of the flow, identify a size of the packet;
- determine a virtual size equal to a sum of the counter value and the identified second size of each of the second one or more packets;
- responsive to the virtual size exceeding a threshold, place the second one or more packets into one or more queues to schedule transmission of the second one or more packets according to the virtual size of the second one or more packets, and reset the counter value;
- and
- transmit, from the one or more queues, the second one or more packets.
Dependencies are inferred from the claim text.