Selective deep packet inspection
View Patent ↗Methods, systems, and computer program products for packet inspection are provided herein. The method includes the steps of receiving a first packet of a stream of packets and processing the first packet using a slow processing path. The method also includes the steps of examining a network layer or transport layer of the first packet to determine whether a protocol used by the stream of packets is relevant, and transferring subsequent packets in the stream to a fast processing path if the protocol used is not relevant. The method further includes the steps of examining an application layer of a pre-determined number of packets subsequent to the first packet to determine whether a Uniform Resource Locator (URL) field of each of the pre-determined number of packets is relevant, and transferring packets subsequent to the pre-determined number of packets to a fast processing path if the URLs are not relevant.
1. A method for selective packet inspection, comprising:
receiving a first packet of a stream of packets;
processing the first packet using a first processing path;
examining a destination port in a header of the first packet to determine whether a protocol used by the stream of packets is relevant;
transferring packets subsequent to the first packet in the stream of packets to a second processing path when the protocol is not relevant, the second processing path processing a subsequent packet of the packets subsequent to the first packet in less time than the first processing path;
examining an application layer of a pre-determined number of the packets subsequent to the first packet to determine whether a Uniform Resource Locator (URL) of each of the pre-determined number of packets is relevant; and
transferring packets subsequent to the pre-determined number of packets to the second processing path if the URL is not relevant.
2. The method of claim 1 , further comprising:
examining data content of the pre-determined number of packets; and
transferring the packets subsequent to the pre-determined number of packets to the second processing path when the data content is not relevant.
3. The method of claim 1 , wherein the examining the destination port comprises: examining a network layer or a transport layer of the first packet.
4. The method of claim 1 , wherein the examining the application layer comprises: examining a destination indicated by the URL of the pre-determined number of packets.
5. The method of claim 4 , wherein the examining the destination indicated by the URL of the pre-determined number of packets comprises: determining whether the destination is a search engine.
6. The method of claim 2 , wherein the examining the data content of the pre-determined number of packets comprises: determining whether specific keywords are present in search terms of the pre-determined number of packets.
7. The method of claim 1 , wherein the processing the first packet comprises:
selectively inspecting packets of the stream of packets using a first processor in the first processing path, and
wherein the transferring packets subsequent to the first packet comprises:
selectively parsing the packets of the stream of packets using a second processor in the second processing path to generate parsed data; and
executing microcode using a third processor in the second processing path to selectively process packets of the stream of packets using the parsed data.
8. A system for packet inspection, comprising:
a first processor configured to:
process a first packet of a stream of packets,
examine a destination port in a header of the first packet to determine whether a protocol used by the stream of packets is relevant; and
a second processor, coupled to the first processor, configured to receive packets subsequent to the first packet in the stream of packets from the first processor when the protocol is not relevant, the second processor being configured to process a subsequent packet of the packets subsequent to the first packet in less time than the first processor;
wherein the first processor is further configured to:
examine an application layer of a pre-determined number of the packets subsequent to the first packet to determine whether a Uniform Resource Locator (URL) of each of the pre-determined number of packets is relevant, and
transfer packets subsequent to the pre-determined number of packets to the second processor when the URLs are not relevant.
9. The system of claim 8 , wherein the first processor is further configured to:
examine a data content of the pre-determined number of packets; and
transfer the packets subsequent to the pre-determined number of packets to the second processor when the data content is not relevant.
10. The system of claim 8 , wherein the first processor is configured to: examine a network layer or a transport layer of the first packet to determine whether the protocol is relevant.
11. The system of claim 8 , wherein the first processor is configured to: examine a destination indicated by the URL of the pre-determined number of packets.
12. The system of claim 11 , wherein the first processor is configured to: determine whether the destination is a search engine.
13. The system of claim 9 , wherein the first processor is configured to: determine whether specific keywords are present in search terms of the pre-determined number of packets.
14. The system of claim 8 , wherein the first processor is further configured to selectively inspect packets of the stream of packets,
wherein the second processor is further configured to:
parse packets of the stream of packets and generate parsed data, and
execute microcode to process packets of the stream of packets using the parsed data.
15. A non-transitory computer readable medium including computer executable instructions stored thereon that, when executed by a computing device, cause the computing device to perform operations, the operations comprising:
processing a first packet of a stream of packets using a first processing path;
examining a destination port in a header of the first packet to determine whether a protocol used by the stream of packets is relevant to deep packet inspect and to data mine the first packet of the stream of packets for relevant data;
transferring packets subsequent to the first packet in the stream to a second processing path when the protocol is not relevant, the second processing path being configured to process a subsequent packet of the packets subsequent to the first packet in less time than the first processing path;
examining an application layer of a pre-determined number of the packets subsequent to the first packet to determine whether a Uniform Resource Locator (URL) field of each of the pre-determined number of packets is relevant; and
transferring packets subsequent to the pre-determined number of packets to the second processing path when the URLs are not relevant.
16. The computer readable medium of claim 15 , wherein the operations further comprise:
examining data content of the pre-determined number of packets; and
transferring the packets subsequent to the pre-determined number of packets to the second processing path when the data content is not relevant.
17. The computer readable medium of claim 15 , wherein the examining the destination port comprises examining a network layer or a transport layer of the first packet.