Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
First Claim
1. A method comprising:
- receiving a plurality of flows, each flow comprising a plurality of packets, a first flow comprising a plurality of first packets, each first packet having the same source-destination address pair as the other first packets, a second flow comprising a plurality of second packets, each second packet having the same source-destination address pair as the other second packets; and
performing the following for each flow;
identifying a virtual path of a plurality of virtual paths for the each flow, each virtual path having a corresponding path record stored in a memory;
accessing the path record corresponding to the virtual path;
allocating one or more packet buffers to the each flow according to the corresponding path record;
determining, from a priority field of the path record of the virtual path of the first flow, a specific number of packets to send from the virtual path of the first flow before sending any packets from a next virtual path listed on a transmit list of virtual paths with packets pending for transmission, wherein the next virtual path is the virtual path of the second flow, the priority field of the path record designating the specific number;
sending the specific number of first packets before sending any of the second packets;
receiving a next packet;
determining that the next packet is not associated with a path record stored in the memory;
generating a new path record to process the next packet; and
storing the new path record in the memory, wherein if the memory has insufficient space to store the new path record, one or more of the plurality of path records are removed from the memory before storing the new path record.
0 Assignments
0 Petitions
Accused Products
Abstract
The invention provides an enhanced datagram packet switched computer network. The invention processes network datagram packets in network devices as separate flows, based on the source-destination address pair in the datagram packet. As a result, the network can control and manage each flow of datagrams in a segregated fashion. The processing steps that can be specified for each flow include traffic management, flow control, packet forwarding, access control, and other network management functions. The ability to control network traffic on a per flow basis allows for the efficient handling of a wide range and a large variety of network traffic, as is typical in large-scale computer networks, including video and multimedia traffic. The amount of buffer resources and bandwidth resources assigned to each flow can be individually controlled by network management. In the dynamic operation of the network, these resources can be varied—based on actual network traffic loading and congestion encountered. The invention also teaches an enhanced datagram packet switched computer network which can selectively control flows of datagram packets entering the network and traveling between network nodes. This new network access control method also interoperates with existing media access control protocols, such as used in the Ethernet or 802.3 local area network. An aspect of the invention is that it does not require any changes to existing network protocols or network applications.
-
Citations
16 Claims
-
1. A method comprising:
-
receiving a plurality of flows, each flow comprising a plurality of packets, a first flow comprising a plurality of first packets, each first packet having the same source-destination address pair as the other first packets, a second flow comprising a plurality of second packets, each second packet having the same source-destination address pair as the other second packets; and performing the following for each flow; identifying a virtual path of a plurality of virtual paths for the each flow, each virtual path having a corresponding path record stored in a memory; accessing the path record corresponding to the virtual path; allocating one or more packet buffers to the each flow according to the corresponding path record; determining, from a priority field of the path record of the virtual path of the first flow, a specific number of packets to send from the virtual path of the first flow before sending any packets from a next virtual path listed on a transmit list of virtual paths with packets pending for transmission, wherein the next virtual path is the virtual path of the second flow, the priority field of the path record designating the specific number; sending the specific number of first packets before sending any of the second packets; receiving a next packet; determining that the next packet is not associated with a path record stored in the memory; generating a new path record to process the next packet; and storing the new path record in the memory, wherein if the memory has insufficient space to store the new path record, one or more of the plurality of path records are removed from the memory before storing the new path record. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An apparatus comprising:
-
one or more ports configured to receive a plurality of flows, each flow comprising a plurality of packets, a first flow comprising a plurality of first packets, each first packet having the same source-destination address pair as the other first packets, a second flow comprising a plurality of second packet, each second packet having the same source-destination address pair as the other second packets; and switch hardware configured to perform the following for each flow; identify a virtual path of a plurality of virtual paths for the each flow, each virtual path having a corresponding path record stored in a memory; access the path record corresponding to the virtual path; allocate one or more packet buffers to the each flow according to the corresponding path record; determine, from a priority field of the path record of the virtual path of the first flow, a specific number of packets to send from the virtual path of the first flow before sending any packets from a next virtual path listed on a transmit list of virtual paths with packets pending for transmission, wherein the next virtual path is the virtual path of the second flow, the priority field of the path record designating the specific number; send the specific number of first packets before sending any of the second packets; receive a next packet; determine that the next packet is not associated with a path record stored in the memory; generate a new path record to process the next packet; and store the new path record in the memory, wherein if the memory has insufficient space to store the new path record, one or more of the plurality of path records are removed from the memory before storing the new path record. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
Specification