Automatic adaptive network traffic prioritization and shaping
First Claim
1. A gateway device for interfacing a local area network with a wide area network, the gateway device comprising:
- a local area network interface for communicating data packets between the gateway device and local area network computers;
a wide area network interface for communicating data packets between the gateway device and remote systems across the wide area network; and
a core processing unit coupled to the local area network interface and the wide area network interface for routing data packets from the local area network computers to the remote systems across the wide area network, the core processing unit comprising a quality of service module configured to automatically assign a real-time quality of service priority to at least one data stream established between a local area network computer and a remote system based on a traffic type derived from packets in the data stream, the quality of service module assigning priority levels within a first range of values, the traffic type determined from an analysis of content of data packets included in with the data stream, the quality of service module further configured to determine a user configured quality of service priority for the data stream, the user configured quality of service priority overriding the real-time quality of service priority, the user configured quality of service priority lower than the first range of values.
5 Assignments
0 Petitions
Accused Products
Abstract
A local area network includes computers and peripherals networked in a high-speed LAN with access to a WAN through a slower connection via a broadband modem. A LAN gateway device manages data traffic between the local computers and peripherals and between the LAN and the WAN. The LAN gateway device provides multiple features, such as wired or wireless links, security, firewall, NAT, DCHP, traffic management, and the like. Traffic management features include an automatic quality of service priority classification scheme. A quality of service module automatically assigns priorities to the data streams based on analysis of the data packets. A configuration access list can be provided with pre-configured priorities for some streams. Initially, all streams are given highest priority and subsequently the priority is automatically adapted to the results of the packet analysis. Traffic shaping techniques control the LAN gateway upstream output and enable IP fragmentation of TCP packets according to measured upstream channel conditions.
-
Citations
24 Claims
-
1. A gateway device for interfacing a local area network with a wide area network, the gateway device comprising:
-
a local area network interface for communicating data packets between the gateway device and local area network computers; a wide area network interface for communicating data packets between the gateway device and remote systems across the wide area network; and a core processing unit coupled to the local area network interface and the wide area network interface for routing data packets from the local area network computers to the remote systems across the wide area network, the core processing unit comprising a quality of service module configured to automatically assign a real-time quality of service priority to at least one data stream established between a local area network computer and a remote system based on a traffic type derived from packets in the data stream, the quality of service module assigning priority levels within a first range of values, the traffic type determined from an analysis of content of data packets included in with the data stream, the quality of service module further configured to determine a user configured quality of service priority for the data stream, the user configured quality of service priority overriding the real-time quality of service priority, the user configured quality of service priority lower than the first range of values. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer readable memory having instructions encoded thereon, the instructions, when executed by a computer processor, implementing a quality of service module for a network device interfacing between network links of different data transfer capacities, the quality of service module for assigning a priority level to one or more streams of data packet corresponding to one or more software applications, each application having an associated maximum latency requirement, at least one stream established between two computer network endpoints, the transmission of the stream including routing from a first network link to a second network link of lower data capacity, the quality of service module comprising:
-
a stream identification module for determining a unique identifier associated with the stream; a packet analysis module configured to analyze content included in packets in the stream and to derive an analysis result associated with the stream based on the analysis of the content included in the packets in the stream; a stream quality of service classification module coupled to the stream identification module to receive the unique identifier associated with the stream and coupled to the packet analysis module to receive the analysis result, the stream quality of service classification module for automatically determining a real-time quality of service priority based on the analysis result associated with the stream based on the analysis of the content included in the packets in the stream, the quality of service classification module assigning priority levels within a first range of values; and a stream access list interface for deriving user configured quality of service priority, wherein the stream quality of service classification module is configured to override the automatically determined real-time quality of service priority for the stream in response to deriving from the stream access list a user configured quality of service priority for the stream, the user configured quality of service priority lower than the first range of values. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A computer readable memory having instructions encoded thereon, the instructions, when executed by a computer processor cause the computer processor to execute the steps of:
-
receiving a data packet, the data packet including a header with information identifying a source network device and a destination network device; deriving a stream identification code from the information in the header of the packet to uniquely identify a stream with which the packet is associated based in part on the source network device and the destination network device; analyzing content of the data packet to compute a data analysis result for characterizing the stream with which the packet is associated; determining a real-time quality of service priority for the stream with which the packet is associated based on the data analysis result of the content of the data packet, the real-time quality of service priority assigned within a first range of values; and determining a user configured quality of service priority for the stream with which the packet is associated, the user configured quality of service priority overriding the real-time quality of service priority, the user configured quality of service priority lower than the first range of values.
-
-
19. A method of automatically assigning network traffic priorities to streams of data packets, the method comprising:
-
receiving a data packet, the data packet including a header with information identifying a source network device and a destination network device; deriving a stream identification code from the information in the header of the packet to uniquely identify a stream with which the packet is associated based in part on the source network device and the destination network device; analyzing content of the data packet to compute a data analysis result for characterizing the stream with which the packet is associated; determining a real-time quality of service priority for the stream with which the packet is associated based on the data analysis result of the content of the data packet, the real-time quality of service priority within a first range of values; and determining a user configured quality of service priority for the stream with which the packet is associated, the user configured quality of service priority overriding the real-time quality of service priority, the user configured quality of service priority lower than the first range of values. - View Dependent Claims (20, 21, 22)
-
-
23. The method of 20, wherein the data analysis result comprises the calculation of a running average packet size associated with the stream.
-
24. A system for automatically assigning network traffic priorities to streams of data packets, the system comprising:
-
means for receiving a data packet, the data packet including a header with information identifying a source network device and a destination network device; means for deriving a stream identification code from the information in the header of the packet to uniquely identify a stream with which the packet is associated based in part on the source network device and the destination network device; means for analyzing content of the data packet to compute a data analysis result for characterizing the stream with which the packet is associated; means for determining a real-time quality of service priority for the stream with which the packet is associated based on the data analysis result of the content of the data packet, the real-time quality of service priority assigned within a first range of values; and means for determining a user configured quality of service priority for the stream with which the packet is associated, the user configured quality of service priority overriding the real-time quality of service priority, the user configured quality of service priority lower than the first range of values.
-
Specification