System and method for processing packets using location and content addressable memories
First Claim
1. A system for processing a plurality of packets according to an application defined by at least one entity, each of the plurality of packets being communicated via a network from a source to a destination intended by the source, each of the plurality of packets comprising a plurality of portions, the system comprising:
- a processor coupled with the network and operative to examine each of the plurality of packets;
a location addressable memory operative to store a plurality of reference data specified by the application, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
a content addressable memory operative to store a plurality of query data specified by the application, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data; and
an interface coupled between the processor, the location addressable memory and the content addressable memory, the interface operative to receive a first query data of the plurality of query data from the processor based on the examination, and, in response to receiving the first query data, access the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data, access the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data, and provide the stored reference data to the processor, the processor being further operative to process at least one of the plurality of packets based on the stored reference data.
15 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method for enhancing the infrastructure of a network such as the Internet is disclosed. A packet interceptor/processor apparatus is coupled with the network so as to be able to intercept and process packets flowing over the network. Further, the apparatus provides external connectivity to other devices that wish to intercept packets as well. The apparatus applies one or more rules to the intercepted packets which execute one or more functions on a dynamically specified portion of the packet and take one or more actions with the packets. The apparatus is capable of analyzing any portion of the packet including the header and payload. Actions include releasing the packet unmodified, deleting the packet, modifying the packet, logging/storing information about the packet or forwarding the packet to an external device for subsequent processing. Further, the rules may be dynamically modified by the external devices.
-
Citations
34 Claims
-
1. A system for processing a plurality of packets according to an application defined by at least one entity, each of the plurality of packets being communicated via a network from a source to a destination intended by the source, each of the plurality of packets comprising a plurality of portions, the system comprising:
-
a processor coupled with the network and operative to examine each of the plurality of packets;
a location addressable memory operative to store a plurality of reference data specified by the application, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
a content addressable memory operative to store a plurality of query data specified by the application, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data; and
an interface coupled between the processor, the location addressable memory and the content addressable memory, the interface operative to receive a first query data of the plurality of query data from the processor based on the examination, and, in response to receiving the first query data, access the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data, access the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data, and provide the stored reference data to the processor, the processor being further operative to process at least one of the plurality of packets based on the stored reference data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A database comprising:
-
a location addressable memory operative to store a plurality of reference data specified by an application, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
a content addressable memory operative to store a plurality of query data specified by the application, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data; and
an interface coupled between the location addressable memory and the content addressable memory, the interface operative to receive a first query data of the plurality of query data from a processor coupled with the interface, and, in response to receiving the first query data, access the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data, access the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data, and provide the stored reference data to the processor. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method of processing a plurality of packets, each of the plurality of packets being communicated via a network from a source to a destination intended by the source, each of the plurality of packets comprising a plurality of portions, the method comprising:
-
receiving an application defined by at least one entity, the application specifying how the plurality of packets are to be processed, the application further specifying a plurality of reference data and a plurality of query data associated with the plurality of reference data;
storing, in a location addressable memory, the plurality of reference data, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
storing, in a content addressable memory, the plurality of query data, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data;
examining each of the plurality of packets;
determining a first query data of the plurality of query data based on the examination;
accessing the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data;
accessing the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data; and
processing at least one of the plurality of packets in accordance with the stored reference data. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A method of accessing a database, the method comprising:
-
receiving a specification of a plurality of reference data and a plurality of query data associated with the plurality of reference data;
storing, in a location addressable memory, the plurality of reference data, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
storing, in a content addressable memory, the plurality of query data, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data;
receiving a first query data from a requester;
accessing the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data;
accessing the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data; and
providing the stored reference data to the requestor. - View Dependent Claims (28, 29, 30, 31, 32)
-
-
33. A system for processing a plurality of packets, each of the plurality of packets being communicated via a network from a source to a destination intended by the source, each of the plurality of packets comprising a plurality of portions, the system comprising:
-
means for receiving an application defined by at least one entity, the application specifying how the plurality of packets are to be processed, the application further specifying a plurality of reference data and a plurality of query data associated with the plurality of reference data;
means for storing, in a location addressable memory, the plurality of reference data, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
means for storing, in a content addressable memory, the plurality of query data, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data;
means for examining each of the plurality of packets;
means for determining a first query data of the plurality of query data based on the examination;
means for accessing the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data;
means for accessing the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data; and
means for processing at least one of the plurality of packets in accordance with the stored reference data.
-
-
34. A database comprising:
-
means for receiving a specification of a plurality of reference data and a plurality of query data associated with the plurality of reference data;
means for storing, in a location addressable memory, the plurality of reference data, each of the plurality of reference data stored at a particular address in the location addressable memory, wherein the location addressable memory is further operative to receive an address and return the reference data stored at the received address in the location addressable memory;
means for storing, in a content addressable memory, the plurality of query data, each of the plurality of query data being stored in the content addressable memory associated with at least one location data, the at least one location data comprising at least one address in the location addressable memory of the particular reference data associated with the particular query data, wherein the content addressable memory is further operative to receive at least one query data of the plurality of query data and respond with the associated at least one location data;
means for receiving a first query data from a requestor;
means for accessing the content addressable memory based on the first query data to obtain the at least one location data associated with the first query data;
means for accessing the location addressable memory based on the obtained at least one location data to obtain the reference data stored in the location addressable memory at the address identified by the obtained at least one location data; and
means for providing the stored reference data to the requester.
-
Specification