IP Library Granted Patent US 12,368,663
Granted Patent B2
US 12,368,663 · App. 18/435,714 · Granted Jul 22, 2025

Shaping outgoing traffic of network packets in a network management system

Inventors: Allen Martin Swig (Moorpark, CA); Vadim Olshansky (Tarzana, CA)
Assignee: Nomadix, Inc.
H04L45/04H04L47/822
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 12,368,663
App. No.
18/435,714
Granted
Jul 22, 2025
Kind
B2
Abstract

A network management system can include multiple network interfaces. For example, the network management system can include a first network interface that can receive a stream of network packets associated with users. The network management system can include a second network interface for transmitting the received stream of network packets. The network management system can shape the stream of network packets before transmission. The network management system can assign the network packets into classes. The classes may have a configured hierarchical relationship. The classes may also have an operational hierarchy based on bandwidth usage during operation. The network management system can shape the stream of network packets based on operational hierarchy of classes and configured hierarchical relationship.

Claims (51)

1. A network management system for shaping outgoing traffic of network packets, the network management system comprising:

a first network interface configured to receive a plurality of network packets associated with a plurality of user devices; and

one or more hardware processors configured to:

classify a first plurality of network packets received by the first network interface to a first class based on an association of the first plurality of network packets with a first attribute;

classify a second plurality of network packets received by the first network interface to a second class based on an association of the second plurality of network packets with a second attribute different from the first attribute;

determine a first network packet of the first plurality of network packets;

determine a second network packet of the second plurality of network packets; and

prioritize, in the outgoing traffic, a transmission of the first network packet over a transmission of the second network packet;

wherein the first class has a first relative priority, a first runtime priority, and a first bandwidth requirement, and wherein the second class has a second relative priority, a second runtime priority, and a second bandwidth requirement.

2. The network management system of claim 1 , wherein the one or more hardware processors are further configured to dynamically associate one or more computing devices with the first class or the second class.

3. The network management system of claim 1 , wherein the first bandwidth requirement comprises a first maximum bandwidth and the second bandwidth requirement comprises a second maximum bandwidth.

4. The network management system of claim 1 , wherein the first attribute corresponds to a first user device of the plurality of user devices, and the second attribute corresponds to a second user device of the plurality of user devices, the second user device different from the first user device.

5. The network management system of claim 1 , wherein the first attribute corresponds to a first network traffic type, and the second attribute corresponds to a second network traffic type different from the first network traffic type.

6. The network management system of claim 1 , wherein the first bandwidth requirement comprises a first minimum bandwidth and the second bandwidth requirement comprises a second minimum bandwidth.

7. The network management system of claim 6 , wherein the one or more hardware processors are further configured to:

provide at least the first minimum bandwidth to the first plurality of network packets,

provide at least the second minimum bandwidth to the second plurality of network packets, and

allocate a remaining amount of bandwidth across the first plurality of network packets and the second plurality of network packets according to a runtime hierarchical relationship between the first class and the second class, said allocating based at least in part on the first relative priority of the first class, the first runtime priority of the first class, the second relative priority of the second class, and the second runtime priority of the second class.

8. The network management system of claim 7 , wherein the remaining amount of bandwidth is allocated only to the first plurality of network packets based on the first relative priority being higher than the second relative priority.

9. The network management system of claim 7 , wherein the remaining amount of bandwidth is allocated equally to the first plurality of network packets and the second plurality of network packets based on the first relative priority being equal to the second relative priority.

10. The network management system of claim 7 , wherein the remaining amount of bandwidth is allocated only to the first plurality of network packets based on the first runtime priority being higher than the second runtime priority.

11. A network management method for shaping outgoing traffic of network packets, the network management method comprising:

receiving, via a first network interface, a plurality of network packets associated with a plurality of user devices;

classifying a first plurality of network packets received by the first network interface to a first class based on an association of the first plurality of network packets with a first attribute;

classifying a second plurality of network packets received by the first network interface to a second class based on an association of the second plurality of network packets with a second attribute different from the first attribute;

determining a first network packet of the first plurality of network packets;

determining a second network packet of the second plurality of network packets; and

prioritizing, in the outgoing traffic, a transmission of the first network packet over a transmission of the second network packet;

wherein the first class has a first relative priority, a first runtime priority, and a first bandwidth requirement, and wherein the second class has a second relative priority, a second runtime priority, and a second bandwidth requirement.

12. The network management method of claim 11 , wherein the first bandwidth requirement comprises a first maximum bandwidth and the second bandwidth requirement comprises a second maximum bandwidth.

13. The network management method of claim 11 , wherein the first bandwidth requirement comprises a first minimum bandwidth and the second bandwidth requirement comprises a second minimum bandwidth.

14. The network management method of claim 13 , further comprising:

allocating at least the first minimum bandwidth to the first plurality of network packets,

allocating at least the second minimum bandwidth to the second plurality of network packets, and

allocating a remaining amount of bandwidth across the first plurality of network packets and the second plurality of network packets according to a runtime hierarchical relationship between the first class and the second class, said allocating based at least in part on the first relative priority of the first class, the first runtime priority of the first class, the second relative priority of the second class, and the second runtime priority of the second class.

15. The network management method of claim 14 , wherein the remaining amount of bandwidth is allocated only to the first plurality of network packets based on the first relative priority being higher than the second relative priority.

16. The network management method of claim 14 , wherein the remaining amount of bandwidth is allocated only to the first plurality of network packets based on the first runtime priority being higher than the second runtime priority.

17. A non-transitory computer-readable medium storing instructions which, when executed by one or more computer processors, cause the one or more computer processors to perform a method comprising:

receiving, via a first network interface, a plurality of network packets associated with a plurality of user devices;

classifying a first plurality of network packets received by the first network interface to a first class based on an association of the first plurality of network packets with a first attribute;

classifying a second plurality of network packets received by the first network interface to a second class based on an association of the second plurality of network packets with a second attribute different from the first attribute;

determining a first network packet of the first plurality of network packets;

determining a second network packet of the second plurality of network packets; and

prioritizing, in the outgoing traffic, a transmission of the first network packet over a transmission of the second network packet;

wherein the first class has a first relative priority, a first runtime priority, and a first bandwidth requirement, and wherein the second class has a second relative priority, a second runtime priority, and a second bandwidth requirement.

18. The non-transitory computer-readable medium of claim 17 , wherein the first bandwidth requirement comprises a first maximum bandwidth and the second bandwidth requirement comprises a second maximum bandwidth.

19. The non-transitory computer-readable medium of claim 17 , wherein the first bandwidth requirement comprises a first minimum bandwidth and the second bandwidth requirement comprises a second minimum bandwidth.

20. The non-transitory computer-readable medium of claim 19 , wherein the method further comprises:

allocating at least the first minimum bandwidth to the first plurality of network packets,

allocating at least the second minimum bandwidth to the second plurality of network packets, and

allocating a remaining amount of bandwidth across the first plurality of network packets and the second plurality of network packets according to a runtime hierarchical relationship between the first class and the second class, said allocating based at least in part on the first relative priority of the first class, the first runtime priority of the first class, the second relative priority of the second class, and the second runtime priority of the second class.

Continuity (7)
Continuation 17938262 · Oct 5, 2022
Continuation 16882101 · May 22, 2020
Continuation 15497919 · Apr 26, 2017
Continuation 14880099 · Oct 9, 2015
Provisional Application 62062765 · Oct 10, 2014
Provisional Application 62094894 · Dec 19, 2014
Related Publication 20240406091A1 · Dec 5, 2024
References Cited (70)
US 5748629A · Caldara et al. · 1998 [cited by applicant]
US 6438106B1 · Pillar et al. · 2002 [cited by applicant]
US 6567408B1 · Li · 2003 [cited by examiner]
US 6865185B1 · Patel et al. · 2005 [cited by applicant]
US 6917591B2 · St John · 2005 [cited by applicant]
US 6977930B1 · Epps et al. · 2005 [cited by applicant]
US 7085247B2 · Schweinhart et al. · 2006 [cited by applicant]
US 7099330B2 · Chiussi et al. · 2006 [cited by applicant]
US 7382727B2 · Yang · 2008 [cited by applicant]
US 7457313B2 · Patrick · 2008 [cited by applicant]
US 7675890B2 · Wang · 2010 [cited by applicant]
US 7742499B1 · Erskine et al. · 2010 [cited by applicant]
US 7756037B2 · Oren et al. · 2010 [cited by applicant]
US 7826358B2 · Caram · 2010 [cited by applicant]
US 7908393B2 · Marr et al. · 2011 [cited by applicant]
US 8681614B1 · Mccanne et al. · 2014 [cited by applicant]
US 9641424B1 · Swig · 2017 [cited by examiner]
US 9713167B2 · Kakadia et al. · 2017 [cited by applicant]
US 10666545B2 · Swig et al. · 2020 [cited by applicant]
US 11509566B2 · Swig et al. · 2022 [cited by applicant]
US 11929911B2 · Swig · 2024 [cited by applicant]
US 20010030970A1 · Wiryaman et al. · 2001 [cited by applicant]
US 20020010772A1 · Kusano · 2002 [cited by applicant]
US 20020103895A1 · Chiang · 2002 [cited by applicant]
US 20030099200A1 · Kiremidjian et al. · 2003 [cited by applicant]
US 20030152096A1 · Chapman · 2003 [cited by examiner]
US 20040028054A1 · Khurana et al. · 2004 [cited by applicant]
US 20040100903A1 · Han et al. · 2004 [cited by applicant]
US 20040257994A1 · Paskett et al. · 2004 [cited by applicant]
US 20050094643A1 · Wang et al. · 2005 [cited by applicant]
US 20050175014A1 · Patrick · 2005 [cited by applicant]
US 20050249220A1 · Olsen · 2005 [cited by examiner]
US 20060101144A1 · Wiryaman et al. · 2006 [cited by applicant]
US 20060165103A1 · Trudeau et al. · 2006 [cited by applicant]
US 20060187949A1 · Seshan et al. · 2006 [cited by applicant]
US 20060221978A1 · Venkatachalam · 2006 [cited by applicant]
US 20070041390A1 · Tatar et al. · 2007 [cited by applicant]
US 20100098414A1 · Kramer et al. · 2010 [cited by applicant]
US 20110007687A1 · Howe et al. · 2011 [cited by applicant]
US 20110201307A1 · Segura · 2011 [cited by applicant]
US 20130301412A1 · Weiss · 2013 [cited by examiner]
US 20130336229A1 · Kakadia et al. · 2013 [cited by applicant]
US 20140269292A1 · Kalkunte et al. · 2014 [cited by applicant]
CA 2366781C · 2007 [cited by applicant]
WO 200124428 · 2001 [cited by applicant]
Allalouf et al., “A Comparison of token-bucket based Multi-Color Marking Techniques,” Proceedings of CoNEXT'06 2nd Conference on Future Networking Technologies, Dec. 4-7, 2006, ADETTI/ISCTE, Lisboa, Portugal, 6 pages. [cited by applicant]
Brown et al., “Traffic Control HOWTO” Guide to IP Layer Network 49 (2006). 36 pages. [cited by applicant]
Bucur et al., “Network traffic optimizing algorithms in Linux.” Annals of DAAAM & Proceedings. (2009): 7 pages. [cited by applicant]
Converging the Data Network with VolP Fundamentals Nortel Communication Server 1000. Release 6.0, Publication: NN43001-260. Document release date: Mar. 3, 2010. 462 pages. [cited by applicant]
Deka, Kaushik, “Predictive Bandwidth Provisioning from Temporal Network Measurements.” PhD diss., Computer Science Telecommunications Program. University of Missouri—Kansas City, 2000, 82 pages. [cited by applicant]
Devera, Martin, “HTB Linux Queuing Discipline Manual—User Guide”, 2002, pp. 8, http://luxik.cdi.cz/˜devik/qos/htb/userg.pdf. [cited by applicant]
Extreme Networks, “Policy Based Quality of Service for Enterprise LANs”, http://www.csd.uoc.gr/˜hy536/PB.pdf, 2000, pp. 16. [cited by applicant]
Final Office Action mailed Dec. 7, 2021, for U.S. Appl. No. 16/882,101, filed May 22, 2020, fifteen pages. [cited by applicant]
H3C, “09-ACL and QoS Configuration Guide”, http://www.h3c.com/portal/TechnicalSupprtDocuments/TechnicalDocuments/Routers/H3CSR8800SeriesRoutersLConfiguration/OperationManual/H3CSR8800CG-Release3347-6WI03/09/201211/76192… [cited by applicant]
Heinanen et al., “A Single Rate Three Color Marker” Network Working Group, University of Pennsylvania, Sep. 1999, 6 pages. [cited by applicant]
Hubert, et al, “Linux Advanced Routing & Traffic Control HOWTO,” https://lartc.org/lartc.pdf , May 19, 2012. [cited by applicant]
Kukard, et al., “Bandwidth Management and Optimization” International Network INASP, Opensource Bandwidth Solutions, Mar. 2006, 203 pages. [cited by applicant]
Lenzini, et al., “Aliquem: a Novel DRR Implementation to Achieve Better Latency and Fairness at 0(1) Complexity,” 2002 Tenth IEEE International Workshop on Quality of Service, pp. 77-86. [cited by applicant]
Lenzini, et al., “Performance analysis of Modified Deficit Round Robin schedulers,” Journal of High Speed Networks 16 (2007), pp. 399-422. [cited by applicant]
Microtik, “Bandwidth Control,” https://mikrotik.com/testdocs/ros/3.0/qos/queue.php , Nov. 28, 2007. [cited by applicant]
Moltchanov, D., . “Automatic bandwidth adjustment for content distribution in MPLS networks.” Adv. MultiMedia 2008, 2, Article 3 (Jan. 2008), 15 pages. “Converging the Data Network with VolP Fundamentals” Nortel Communi… [cited by applicant]
Non-Final Office Action mailed Jun. 14, 2023, for U.S. Appl. No. 17/938,262, filed Oct. 5, 2022, eighteen pages. [cited by applicant]
Non-Final Office Action mailed May 17, 2021, for U.S. Appl. No. 16/882,101, filed May 22, 2020, nine pages. [cited by applicant]
Notice of Allowance mailed Jul. 7, 2022, for U.S. Appl. No. 16/882,101, filed May 22, 2020, eight pages. [cited by applicant]
Notice of Allowance mailed Nov. 8, 2023, for U.S. Appl. No. 17/938,262, filed Oct. 5, 2022, seven pages. [cited by applicant]
OpenBSD, “PF: Packet Queueing and Prioritization”, http://web.archive.org/web/2014|025232725Lhttp://www.openbsd.org/faq/pf/queueing.html , as captured Oct. 25, 2014 in 10 pages. [cited by applicant]
Ramachandran et al. “Fair resource allocation in active networks,” in Proceedings Ninth International Conference on Computer Communications and Networks (Cat.No. 00EX440), Las Vegas, NV, USA, 2000, pp. 468-475. [cited by applicant]
Ravichandiran, et al. “Analysis, Modification, and Implementation (AMI) of Scheduling Algorithm for the IEEE 802.116e (Mobile WiMAX)” in International Journal of Computer Science and Information Security, IJCSIS, vol. 7… [cited by applicant]
Shreedhar, et al., “Efficient Fair Queuing Using Deficit Round Robin”, SIGCOMM '95, Aug. 1, 1995, pp. 231-242. [cited by applicant]
Valenzuela, et al., “A Hierarchical Token Bucket Algorithm to Enhance QoS in IEEE 802.11:Proposal, Implementation and Evaluation”, IEEE Semiannual Vehicular Technology Conference (VTC 2004-Fall), Los Angeles (USA), Sep.… [cited by applicant]