IP Library Granted Patent US 9,154,461
Granted Patent B2
US 9,154,461 · App. 13/895,666 · Granted Oct 6, 2015

Packet capture deep packet inspection sensor

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 9,154,461
App. No.
13/895,666
Granted
Oct 6, 2015
Kind
B2
Abstract

Systems and processes for filtering network traffic. In one example, an event based flow record aging process may be used to identify flow records to be removed from memory to provide space for newer flow records. In this example, a new incoming network packet may trigger a determination of the flow record to be removed from memory based on the hardware time stamps of the flow records stored in memory. Determining aging flow records in this way may advantageously reduce the amount of computer resources required to manage flow record aging when compared to traditional techniques that require keeping a timer and periodically performing a cleanup process to check the freshness date of each flow record.

Claims (67)

1. A computer-implemented method for filtering network traffic, the method comprising:

receiving a network packet;

identifying a flow record associated with the received network packet in a flow table;

if the identified flow record is flagged for forwarding, transmitting the packet; and

if the identified flow record is not flagged for forwarding:

determining whether the packet matches a packet profile;

if the packet does not match the packet profile, appending the received packet to a list of packets associated with the identified flow record; and

if the packet matches the packet profile, transmitting a set of packets on the list of packets associated with the identified flow record and flagging the identified flow record for forwarding.

2. The computer-implemented method of claim 1 , wherein identifying a flow record associated with the received network packet comprises:

generating an index of the received network packet based on a TCP host address of a sender of the received network packet, a TCP host address of a receiver of the received network packet, a TCP/IP port number of the sender of the received network packet, a TCP/IP port number of the receiver of the received network packet, a network protocol of the received network packet, and an addressing of the received network packet; and

comparing the generated index to a set of indexes in the flow table.

3. The computer-implemented method of claim 1 , wherein the identified flow record comprises a forward bit that indicates whether or not the identified flow record is flagged for forwarding.

4. The computer-implemented method of claim 1 , wherein determining whether the packet matches a packet profile comprises:

determining whether the received packet is of a protocol of interest; and

determining whether a sender or receiver of the packet is an entity of interest.

5. The computer-implemented method of claim 4 , wherein the protocol of interest is associated with one or more of text-based email, text-based chat sessions, POP, SMTP, and instant messaging.

6. The computer-implemented method of claim 1 , further comprising, before receiving the network packet:

allocating memory for the flow table; and

dividing the allocated memory into a plurality of memory blocks, wherein each of the plurality of memory blocks is for storing an incoming network packet.

7. The computer-implemented method of claim 1 , wherein the method further comprises:

comparing, in response to receiving the network packet, a time stamp of the received network packet with a plurality of flow tables, wherein the plurality of flow tables are stored in a random access memory; and

removing an oldest flow table of the plurality of flow tables from the memory.

8. A non-transitory computer-readable storage medium for filtering network traffic, wherein the non-transitory computer-readable storage medium comprises instructions for:

receiving a network packet;

identifying a flow record associated with the received network packet in a flow table;

if the identified flow record is flagged for forwarding, transmitting the packet; and

if the identified flow record is not flagged for forwarding:

determining whether the packet matches a packet profile;

if the packet does not match the packet profile, appending the received packet to a list of packets associated with the identified flow record; and

if the packet matches the packet profile, transmitting a set of packets on the list of packets associated with the identified flow record and flagging the identified flow record for forwarding.

9. The non-transitory computer-readable storage medium of claim 8 , wherein identifying a flow record associated with the received network packet comprises:

generating an index of the received network packet based on a TCP host address of a sender of the received network packet, a TCP host address of a receiver of the received network packet, a TCP/IP port number of the sender of the received network packet, a TCP/IP port number of the receiver of the received network packet, a network protocol of the received network packet, and an addressing of the received network packet; and

comparing the generated index to a set of indexes in the flow table.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the identified flow record comprises a forward bit that indicates whether or not the identified flow record is flagged for forwarding.

11. The non-transitory computer-readable storage medium of claim 8 , wherein determining whether the packet matches a packet profile comprises:

determining whether the received packet is of a protocol of interest; and

determining whether a sender or receiver of the packet is an entity of interest.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the protocol of interest is associated with one or more of text-based email, text-based chat sessions, POP, SMTP, and instant messaging.

13. The non-transitory computer-readable storage medium of claim 8 , further comprising instructions for:

before receiving the network packet, allocating memory for the flow table; and

dividing the allocated memory into a plurality of memory blocks, wherein each of the plurality of memory blocks is for storing an incoming network packet.

14. The non-transitory computer-readable storage medium of claim 8 , further comprising instructions for:

comparing, in response to receiving the network packet, a time stamp of the received network packet with a plurality of flow tables, wherein the plurality of flow tables are stored in a random access memory; and

removing an oldest flow table of the plurality of flow tables from the memory.

15. A system for filtering network traffic, the system comprising:

a non-transitory computer-readable storage medium comprising instructions for:

receiving a network packet;

identifying a flow record associated with the received network packet in a flow table;

if the identified flow record is flagged for forwarding, transmitting the packet; and

if the identified flow record is not flagged for forwarding:

determining whether the packet matches a packet profile;

if the packet does not match the packet profile, appending the received packet to a list of packets associated with the identified flow record; and

if the packet matches the packet profile, transmitting a set of packets on the list of packets associated with the identified flow record and flagging the identified flow record for forwarding; and

a processor coupled to the non-transitory computer-readable storage medium and configured to execute the instructions.

16. The system of claim 15 , wherein identifying a flow record associated with the received network packet comprises:

generating an index of the received network packet based on a TCP host address of a sender of the received network packet, a TCP host address of a receiver of the received network packet, a TCP/IP port number of the sender of the received network packet, a TCP/IP port number of the receiver of the received network packet, a network protocol of the received network packet, and an addressing of the received network packet; and

comparing the generated index to a set of indexes in the flow table.

17. The system of claim 15 , wherein the identified flow record comprises a forward bit that indicates whether or not the identified flow record is flagged for forwarding.

18. The system of claim 15 , wherein determining whether the packet matches a packet profile comprises:

determining whether the received packet is of a protocol of interest; and

determining whether a sender or receiver of the packet is an entity of interest.

19. The system of claim 15 , wherein the non-transitory computer-readable storage medium further comprises instructions for:

before receiving the network packet, allocating memory for the flow table; and

dividing the allocated memory into a plurality of memory blocks, wherein each of the plurality of memory blocks is for storing an incoming network packet.

20. The system of claim 15 , wherein the non-transitory computer-readable storage medium further comprises instructions for:

comparing, in response to receiving the network packet, a time stamp of the received network packet with a plurality of flow tables, wherein the plurality of flow tables are stored in a random access memory; and

removing an oldest flow table of the plurality of flow tables from the memory.

Assignments (7)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 3, 2024
From: AMENTUM SERVICES, INC.; CENTRA TECHNOLOGY, INC.; DELTA BRIDGE, INC.; DYNCORP INTERNATIONAL LLC; DYNCORP LLC; PACIFIC ARCHITECTS AND ENGINEERS, LLC; PHOENIX CONSULTING GROUP, LLC; TATE, INCORPORATED; AEROPTIC, LLC; JACOBS TECHNOLOGY INC.; THE KEYW CORPORATION; COURAGE SERVICES, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069166/0282 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Jun 12, 2019
From: ROYAL BANK OF CANADA
To: SOTERA DEFENSE SOLUTIONS, INC.; THE KEYW CORPORATION
Reel/Frame 049454/0288 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Jun 12, 2019
From: ROYAL BANK OF CANADA
To: THE KEYW CORPORATION; SOTERA DEFENSE SOLUTIONS, INC.
Reel/Frame 049454/0410 →
RELEASE OF SECURITY INTEREST Recorded May 8, 2018
From: SOTERA DEFENSE SOLUTIONS, INC.; THE KEYW CORPORATION
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 045747/0962 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 8, 2018
From: SOTERA DEFENSE SOLUTIONS, INC.; THE KEYW CORPORATION
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 046113/0491 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 8, 2018
From: SOTERA DEFENSE SOLUTIONS, INC.; THE KEYW CORPORATION
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 046113/0514 →
SECURITY INTEREST Recorded Apr 4, 2017
From: THE KEYW CORPORATION; SOTERA DEFENSE SOLUTIONS, INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 041850/0039 →