IP Library › Granted Patent US 9,130,864
Granted Patent B2
US 9,130,864 · App. 13/535,350 · Granted Sep 8, 2015

Prioritizing classes of network traffic to provide a predetermined quality of service

Inventor: Seth Keith (Scotts Valley, CA)
Assignee: Citrix Systems, Inc.
H04L47/2433H04L47/22H04L47/2441
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,130,864
App. No.
13/535,350
Granted
Sep 8, 2015
Kind
B2
Abstract

A network shaping engine can be used to optimize network traffic by employing means to prioritize data packets assigned to a network traffic class over other network traffic. The network shaping engine accomplishes network traffic optimization by determining whether received data packets comprise a traffic class mark or indicia that indicates the data packets are part of a minimum latency traffic class. After analyzing the packets, the network optimization engine sorts the data packets according to the identified traffic classes and transmits the packets. Data packets comprising a traffic class marking are transmitted according to a first transmission scheme while data packets that do not comprise a traffic class marking are transmitted according to a second transmission scheme that differs from the first transmission scheme.

Claims (48)

1. A method for optimizing transmission of network traffic, the method comprising:

receiving, by a network optimization engine executing on an appliance, data packets transmitted over a network between a sender and a recipient;

analyzing, by the network optimization engine, the received data packets to determine whether respective ones of the received data packets comprise a mark identifying a first traffic class in a set of traffic classes, at least one of the received data packets not comprising the mark identifying the first traffic class;

sorting, by the network optimization engine, a plurality of the received data packets comprising the mark identifying the first traffic class into the first traffic class;

pre-acknowledging, by the network optimization engine to the sender, receipt of at least one of the plurality of the received data packets in the first traffic class by the recipient;

repacketizing, by the network optimization engine according to a first transmission scheme for the first traffic class, the at least one of the plurality of the received data packets in the first traffic class by aggregating a plurality of small packets containing sequential data into a larger repacketized packet for transmission;

storing, by the optimization engine, a copy of the larger repacketized packet;

transmitting the larger repacketized packet;

detecting, by the optimization engine, successful receipt of the larger repacketized packet by the recipient and, responsive to the successful receipt, discarding the stored copy of the larger repacketized packet; and

transmitting the at least one of the received data packets not comprising the mark identifying the first traffic class according to a second transmission scheme, the first transmission scheme differing from the second transmission scheme.

2. The method of claim 1 , wherein receiving the data packets transmitted over the network further comprises receiving the data packets from a common output link.

3. The method of claim 2 , wherein receiving the data packets transmitted from the common output link further comprises receiving the data packets from one of a common router and a common switch.

4. The method of claim 2 , wherein receiving the data packets transmitted from the common output link further comprises receiving the data packets over a wide area network (WAN) pipe.

5. The method of claim 1 , wherein analyzing the received data packets to determine whether respective ones of the received data packets comprise the mark identifying the first traffic class further comprises analyzing the received data packets to determine whether respective ones of the received data packets belong to a minimum-latency traffic class.

6. The method of claim 1 , wherein analyzing the received data packets to determine whether respective ones of the received data packets comprise the mark identifying the first traffic class further comprises analyzing a differentiated service code point marking.

7. The method of claim 1 , wherein analyzing the received data packets to determine whether respective ones of the received data packets comprise the mark identifying the first traffic class further comprises analyzing whether a data packet comprises data generated by a first application.

8. The method of claim 7 , wherein the network optimization engine associates the first application with the first traffic class and determines a minimum latency for transmission of data packets associated with the first application.

9. The method of claim 1 , wherein the first transmission scheme assigns the plurality of the received data packets comprising the mark identifying the first traffic class a higher priority than data packets that do not have a traffic class marking.

10. The method of claim 1 , further comprising ordering, by the network optimization engine subsequent to sorting the plurality of the received data packets comprising the mark identifying the first traffic class, the plurality of the received data packets according to a timestamp value associated with each data packet.

11. The method of claim 1 , further comprising:

monitoring link characteristics of a transmission path for transmitting a first set of the received data packets; and

selecting an amount of the plurality of smaller packets containing sequential data to aggregate into the larger repacketized packet from the first set of the received data packets based on the link characteristics of the transmission path.

12. The method of claim 11 , wherein monitored characteristics of the transmission path for transmitting the first set of the received data packets include a packet loss rate of the transmission path.

13. The method of claim 1 , further comprising identifying from the plurality of the received data packets in the first traffic class packets containing sequential data.

14. A system for optimizing transmission of network traffic, the system comprising:

a network optimization engine executing on a network appliance, wherein the network optimization engine receives data packets transmitted over a network between a sender and a recipient, the network optimization engine:

analyzing the received data packets to determine whether respective ones of the received data packets comprise a mark identifying a first traffic class in a set of traffic classes, at least one of the received data packets not comprising the mark identifying the first traffic class,

sorting a plurality of the received data packets comprising the mark identifying the first traffic class into the first traffic class,

pre-acknowledging, by the network optimization engine to the sender, receipt of at least one of the plurality of the received data packets in the first traffic class by the recipient,

repacketizing, according to a first transmission scheme for the first traffic class, the at least one of the plurality of the received data packets in the first traffic class by aggregating a plurality of small packets containing sequential data into a larger repacketized packet for transmission,

storing, by the optimization engine, a copy of the larger repacketized packet,

transmitting the larger repacketized packet,

detecting, by the optimization engine, successful receipt of the larger repacketized packet by the recipient and, responsive to the successful receipt, discarding the stored copy of the larger repacketized packet, and

transmitting the at least one of the received data packets not comprising the mark identifying the first traffic class according to a second transmission scheme, the first transmission scheme differing from the second transmission scheme.

15. The system of claim 14 , wherein the network optimization engine receives the data packets transmitted over the network from a common output link.

16. The system of claim 15 , wherein the common output link comprises one of a common router and a common switch.

17. The system of claim 14 , wherein the network optimization engine receives the data packets over a wide area network (WAN) pipe.

18. The system of claim 14 , wherein the mark identifying the first traffic class indicates the data packets belong to a minimum-latency traffic class.

19. The system of claim 14 , wherein the mark identifying the first traffic class comprises a differentiated service code point.

20. The system of claim 14 , wherein the mark identifying the first traffic class comprises data generated by a first application.

21. The system of claim 20 , wherein the network optimization engine associates the first application with the first traffic class and determines a minimum latency for transmission of data packets associated with the first application.

22. The system of claim 14 , wherein the first transmission scheme assigns the plurality of the received data packets comprising the mark identifying the first traffic class a higher priority than data packets that do not have a traffic class marking.

23. The system of claim 14 , wherein the network optimization engine orders the plurality of the sorted data packets comprising the mark identifying the first traffic class according to a timestamp value associated with each data packet.

24. The system of claim 14 , further comprising:

monitoring link characteristics of a transmission path for transmitting a first set of the received data packets; and

selecting an amount of the plurality of smaller packets containing sequential data to aggregate into the larger repacketized packet from the first set of the received data packets based on the link characteristics of the transmission path.

25. The system of claim 24 , wherein monitored characteristics of the transmission path for transmitting the first set of the received data packets include a packet loss rate of the transmission path.

26. The system of claim 14 , further comprising identifying from the plurality of the received data packets in the first traffic class packets containing sequential data.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2012
From: KEITH, SETH
To: CITRIX SYSTEMS, INC.
Reel/Frame 029340/0259 →
Continuity (3)
Provisional Application 61501739 · Jun 27, 2011
Provisional Application 61501695 · Jun 27, 2011
Related Publication 20130077486A1 · Mar 28, 2013