IP Library Granted Patent US 8,730,955
Granted Patent B2
US 8,730,955 · App. 13/024,923 · Granted May 20, 2014

High speed packet capture

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 8,730,955
App. No.
13/024,923
Granted
May 20, 2014
Kind
B2
Abstract

Packets can be read from a network interface into an application using a single kernel copy. In one embodiment, the invention includes a receiver packet memory to store captured packets, and a network interface driver operating in a kernel of a device to read packets captured by network interface hardware into the kernel by storing captured packets in the receiver packet memory. Then, an application interface can expose the receiver packet memory to an application executing on the device by representing the receiver packet memory as a virtual file.

Claims (43)

1. An apparatus, comprising:

a capture system configured to couple to a router, which interacts with a plurality of clients in a network environment, wherein the capture system includes a packet capture module for receiving packets associated with traffic flows involving the clients and stores the packets in a receiver packet memory in the capture system;

a network interface module; and

an application, wherein the packet capture module operates between the network interface module and the application, and wherein the network interface module and the packet capture module operate on a kernel portion of the capture system that is separate from an application portion of the capture system;

wherein:

the packet capture module further includes a control memory accessible by the network interface module and by the application;

the control memory comprising a head pointer updated by the network interface module, and a tail pointer updated by the application;

the head pointer and the tail pointer identify the packets in the receiver packet memory which are unprocessed by the application.

2. The apparatus of claim 1 , wherein at least some of the packets received from the network interface module are read into the packet capture module by a network interface driver that is configured to interact with both the network interface module and the kernel portion of the capture system, and wherein the capture system only uses one kernel copy of a received packet before it is provided to the application on the application portion of the capture system.

3. The apparatus of claim 1 , wherein at least some of the packets received from the network interface module are placed in the receiver packet memory, which is accessible by the application via an application interface that represents the receiver packet memory as a file.

4. The apparatus of claim 3 , wherein the file is opened and mapped in a read-only mode such that the file is accessible concurrently by multiple applications.

5. The apparatus of claim 3 , wherein the control memory that includes pointers to the receiver packet memory for identifying certain locations of at least some of the packets in the receiver packet memory.

6. The apparatus of claim 5 , wherein the control memory is accessible by the network interface module via a network interface driver and the application via the application interface.

7. The apparatus of claim 1 , wherein packet capture processing is only performed on ports of the capture system designated for packet capture.

8. The apparatus of claim 1 , wherein the application is a selected one of a group of applications, the group consisting of:

a) an object assembly application;

b) an object storage application;

c) an object query application; and

d) an object classification application.

9. The apparatus of claim 1 , wherein the packet capture module includes an application interface configured to receive a request for data from the application and, in response to the request, to represent the receiver packet memory as a file to the application.

10. The apparatus of claim 9 , wherein the application migrates certain packets from the receiver packet memory by performing a mapping to the file, the application using file system commands and handles to reference data in the receiver packet memory.

11. The apparatus of claim 1 , wherein the capture system includes the receiver packet memory for storing at least some of the packets in a wraparound fashion such that they are placed contiguously next to a last new packet received.

12. A method, comprising:

receiving packets at a packet capture module of a capture system configured to couple to a router, which interacts with a plurality of clients in a network environment, wherein the packet capture module stores the packets in a receiver packet memory in the capture system; and

reading at least some of the packets via a network interface driver that is configured to interact with both a network interface module and a kernel portion of the capture system, wherein the packet capture module operates between the network interface module and an application, and wherein the network interface module and the packet capture module operate on the kernel portion of the capture system that is separate from an application portion of the capture system;

wherein:

the packet capture module further includes a control memory accessible by the network interface module and by the application;

the control memory comprising a head pointer updated by the network interface module, and a tail pointer updated by the application;

the head pointer and the tail pointer identify the packets in the receiver packet memory which are unprocessed by the application.

13. The method of claim 12 , wherein at least some of the packets received from the network interface module are placed in the receiver packet memory, which is accessible by the application via an application interface that represents the receiver packet memory as a file.

14. The method of claim 13 , wherein the file is opened and mapped in a read-only mode such that the file is accessible concurrently by multiple applications.

15. The method of claim 13 , wherein the control memory includes pointers to the receiver packet memory for identifying certain locations of at least some of the packets in the receiver packet memory, and wherein the control memory is accessible by the network interface module via the network interface driver and the application via the application interface.

16. The method of claim 12 , wherein packet capture processing is only performed on ports of the capture system designated for packet capture, and wherein the packet capture module includes an application interface configured to receive a request for data from the application and, in response to the request, to represent the receiver packet memory as a file to the application.

17. A non-transitory machine accessible storage medium having logic stored thereon, the logic when executed on a processor, cause the processor to:

receiving packets at a packet capture module of a capture system configured to couple to a router, which interacts with a plurality of clients in a network environment, wherein the packet capture module stores the packets in a receiver packet memory in the capture system; and

reading at least some of the packets via a network interface driver that is configured to interact with both a network interface module and a kernel portion of the capture system, wherein the packet capture module operates between the network interface module and an application, and wherein the network interface module and the packet capture module operate on the kernel portion of the capture system that is separate from an application portion of the capture system;

wherein:

the packet capture module further includes a control memory accessible by the network interface module and by the application;

the control memory comprising a head pointer updated by the network interface module, and a tail pointer updated by the application;

the head pointer and the tail pointer identify the packets in the receiver packet memory which are unprocessed by the application.

18. The medium of claim 17 , wherein at least some of the packets received from the network interface module are placed in the receiver packet memory, which is accessible by the application via an application interface that represents the receiver packet memory as a file.

19. The medium of claim 18 , wherein the file is opened and mapped in a read-only mode such that the file is accessible concurrently by multiple applications.

20. The medium of claim 18 , wherein the control memory includes pointers to the receiver packet memory for identifying certain locations of at least some of the packets in the receiver packet memory, and wherein the control memory is accessible by the network interface module via the network interface driver and the application via the application interface.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →