US10079740B2 - Packet capture engine for commodity network interface cards in high-speed networks - Google Patents
Packet capture engine for commodity network interface cards in high-speed networks Download PDFInfo
- Publication number
- US10079740B2 US10079740B2 US14/931,956 US201514931956A US10079740B2 US 10079740 B2 US10079740 B2 US 10079740B2 US 201514931956 A US201514931956 A US 201514931956A US 10079740 B2 US10079740 B2 US 10079740B2
- Authority
- US
- United States
- Prior art keywords
- queue
- capture
- packet
- chunk
- packet buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000007246 mechanism Effects 0.000 claims abstract description 24
- 239000000872 buffer Substances 0.000 claims description 103
- 238000012545 processing Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 11
- 238000004064 recycling Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims 2
- 238000000638 solvent extraction Methods 0.000 claims 2
- 238000005192 partition Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 238000013459 approach Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000007774 longterm Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Definitions
- Embodiments generally relate to the field of computer technology. Embodiments also relate to the transmission of data between processing devices such as computers. Specifically, the embodiments provide a novel packet capture engine for commodity network interface cards (NICs) in high-speed networks designed to support packet capture and processing.
- NICs network interface cards
- Packet capture is an essential function for many network applications, including intrusion detection systems and packet-based network performance analysis applications. Packets are typically captured from the wire, temporarily stored at a data capture buffer, and finally delivered to applications for processing. Because these operations are performed on a per-packet basis, packet capture is typically computationally and throughput intensive. In high-speed networks, packet capture faces significant performance challenges.
- Packet drop is a major problem with packet capture in high-speed networks. There are two types of packet drop: packet capture drop and packet delivery drop. Packet capture drop is mainly caused by the inabilities of packet capture to keep pace with the incoming packet rate. Consequently, packets may be dropped because they cannot be captured in time.
- Packet delivery drop is mainly caused by the inability of an application to keep pace with the packet capture rate. Consequently, the data capture buffer overflows and packet drops occur even when 100% of the network traffic is captured from the wire. Any type of packet drop will degrade the accuracy and integrity of network monitoring applications. Thus, there is a need in the art to avoid packet drops in packet capture tools.
- One approach is to apply traffic steering to distribute the traffic evenly. However, this approach cannot preserve the application logic.
- Another approach involves the use of existing packet capture engines to handle load imbalance in the application layer, but an application in user space has little knowledge of low-level layer conditions and cannot effectively handle load imbalance.
- the present embodiments provide improved methods and systems for packet capture.
- the embodiments provide a packet capture engine that is better able to address load imbalance because it has full knowledge of low-level layer conditions.
- Methods and systems for a method for packet capture comprises opening at least one receive queue for packet capture; capturing packets in at least one chunk in the at least one receive queue; processing the captured packets; recycling the at least one chunk associated with the captured packet for future use; and closing the receive queue.
- the method further comprises forming at least one buddy group comprising at least two of the receive queues wherein the buddy group is configured as an offloading mechanism for an application associated with the at least two receive queues.
- the method also comprises providing low-level packet capture and transmit services using a kernel-mode driver and providing an interface for low-level network access.
- the method further comprises assigning three modules in a user space for the at least one receiving queue comprising a capture thread, a work queue pair, and a buddy list.
- the method further comprises accessing one of the at least one receive queue's capture queue in the user space with a packet processing thread; fetching and processing at least one packet buffer chunk in the capture queue; forwarding the modified at least one packet buffer chunk back into a network; and inserting the modified at least one packet buffer chunk into an associated recycle queue.
- the method further comprises determining if a queue length exceeds an offloading percentage threshold, querying a buddy queue list, and placing the at least one packet buffer chunk into a capture queue of a less busy capture thread.
- the method comprises handling each of the at least one receive queues independently in a basic mode.
- the at least one chunk comprises at least one of a free chunk; an attached chunk; and a captured chunk.
- FIG. 4 depicts a block diagram of a ring-buffer-pool in accordance with an exemplary embodiment
- FIG. 6 depicts a block diagram of a buddy group system in accordance with an exemplary embodiment
- FIG. 7 depicts a block diagram of a WireCAP system in accordance with an exemplary embodiment
- FIG. 10 depicts logical operational steps associated with a method for thread capture in basic mode in accordance with an exemplary embodiment
- FIG. 12 depicts logical operational steps associated with a method for thread capture in advanced mode in accordance with an exemplary embodiment
- FIG. 13 depicts logical operational steps associated with a method for a packet-processing thread to analyze, modify, and subsequently forward ingested network data packets back into a network in accordance with an exemplary embodiment.
- FIGS. 1-2 are provided as exemplary diagrams of data-processing environments in which embodiments of the present invention may be implemented. It should be appreciated that FIGS. 1-2 are only exemplary and are not intended to assert or imply any limitation with regard to the environments in which aspects or embodiments of the disclosed embodiments may be implemented. Many modifications to the depicted environments may be made without departing from the spirit and scope of the disclosed embodiments.
- Computer 110 may include or have access to a computing environment that includes input 116 , output 118 , and a communication connection 120 .
- the computer may operate in a networked environment using a communication connection to connect to one or more remote computers or devices.
- the computer may have a commodity network interface card.
- the remote computer may include a personal computer (PC), server, router, network PC, a peer device or other common network node, or the like.
- the communication connection may include a Local Area Network (LAN), a Wide Area Network (WAN), or other networks. This functionality is described in more fully in the description associated with FIG. 2 below.
- Output 118 is most commonly provided as a computer monitor, but may include any computer output device. Output 118 may also include a data collection apparatus associated with computer system 100 .
- input 116 which commonly includes a computer keyboard and/or pointing device such as a computer mouse, computer track pad, or the like, allows a user to select and instruct computer system 100 .
- a user interface can be provided using output 118 and input 116 .
- Output 118 may function as a display for displaying data and information for a user and for interactively displaying a graphical user interface (GUI) 130 .
- GUI graphical user interface
- GUI generally refers to a type of environment that represents programs, files, options, and so forth by means of graphically displayed icons, menus, and dialog boxes on a computer monitor screen.
- a user can interact with the GUI to select and activate such options by directly touching the screen and/or pointing and clicking with a user input device 116 such as, for example, a pointing device such as a mouse and/or with a keyboard.
- a user input device 116 such as, for example, a pointing device such as a mouse and/or with a keyboard.
- a particular item can function in the same manner to the user in all applications because the GUI provides standard software routines (e.g., module 125 ) to handle these elements and report the user's actions.
- Computer system 100 can function as a computing device capable of sending or receiving signals through a wired or a wireless network such as, for example, networks 202 , depicted in FIG. 2 .
- Computer system 100 may implemented as, for example, a desktop computer, a server, or a portable device, such as a cellular telephone, a Smartphone, a display pager, a radio frequency (RF) device, an infrared (IR) device, a Personal Digital Assistant (PDA), a handheld computer, a tablet computer, a laptop computer, a set top box, a wearable computer, or an integrated device combining various features, such as features of the forgoing devices, or the like.
- RF radio frequency
- IR infrared
- PDA Personal Digital Assistant
- servers 204 and 206 connect to network 202 along with storage unit 208 .
- clients 210 , 212 , and 214 connect to network 202 .
- These clients 210 , 212 , and 214 may be, for example, personal computers or network computers.
- Computer system 100 depicted in FIG. 1 can be, for example, a client such as client 210 , 212 , and/or 214 .
- Computer system 100 can also be implemented as a server such as server 206 , depending upon design considerations.
- server 206 provides data such as boot files, operating system images, applications, and application updates to clients 210 , 212 , and 214 .
- Clients 210 , 212 , and 214 are clients to server 206 in this example.
- Network data-processing system 200 may include additional servers, clients, and other devices not shown. Specifically, clients may connect to any member of a network of servers, which provide equivalent content.
- network data-processing system 200 is the Internet with network 202 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another.
- TCP/IP Transmission Control Protocol/Internet Protocol
- At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers consisting of thousands of commercial, government, educational, and other computer systems that route data and messages.
- network data-processing system 200 may also be implemented as a number of different types of networks such as, for example, an intranet, a local area network (LAN), or a wide area network (WAN).
- FIGS. 1 and 2 are intended as examples and not as architectural limitations for different embodiments of the present invention.
- program modules can include, but are not limited to, routines, subroutines, software applications, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types and instructions.
- routines e.g., module 125
- software applications e.g., software applications
- programs e.g., programs, objects, components, data structures, etc.
- data structures e.g., data structures, etc.
- a network packet is a formatted unit of data carried by a packet-switched network.
- Computer communications that do not support packets transmit data as a bit stream.
- the bandwidth of the communication means can be better shared among users than if the network were circuit switched.
- a packet includes two types of data: control information and user data or “payload.”
- the control information provides delivery data such as source and destination network addresses, error detection codes, and sequencing information.
- the first approach is to use a dedicated packet capture card to perform the function in hardware. This approach requires the least amount of central processing unit (CPU) intervention, thus saving the CPU for packet processing.
- CPU central processing unit
- a dedicated packet capture card can ensure that 100% of the network packets are captured and delivered to applications without loss.
- this approach demands custom hardware solutions, which tend to be more costly, relatively inflexible, and not very scalable.
- An alternative approach is to use a commodity system with a commodity network interface card (NIC) to perform packet capture.
- the commodity NIC is put into promiscuous mode to intercept network packets.
- a packet capture engine (embodied as a software driver) receives the intercepted packets and provides support to allow user-space applications to access the captured packets.
- This capture solution depends mainly on the software-based packet capture engine, which is flexible and cost-effective, but requires significant system CPU and memory resources. Therefore, this solution is not suitable for resource-limited systems where resource competition between packet capture and packet processing might lead to drops.
- recent technological advances in multicore platforms and multi-queue NICs have increased the availability of system CPU resources and I/O throughputs.
- FIG. 3 illustrates packet capturing and processing system 300 .
- the system 300 includes a multi-queue NIC 350 that is logically partitioned into n receive queues (“RQs”) 305 , 306 , and 307 , with each queue tied to a distinct core 315 , 316 , and 317 of a multicore host system 310 .
- the Multi-Queue NIC 350 receives network traffic 335 in the form of packets which are distributed across the queues 305 , 306 , and 307 using a hardware-based traffic-steering mechanism 320 . This may include receive-side scaling (RSS) or other such known scaling.
- RSS receive-side scaling
- a thread (or process), such as thread 325 , 326 , and/or 327 , of a packet-processing application runs on each core that has a tied queue. For example, thread 325 runs on core 315 that has tied queue 305 .
- Each thread 325 , 326 , and/or 327 captures packets via a packet capture engine 330 , 331 , and/or 332 and thus handles a portion of the overall traffic.
- there are several programming models e.g., the run-to-completion model and the pipeline model
- the application may be of any type.
- the embodiment illustrated in FIG. 3 exploits the computing parallelism of multi-core systems, such as multi-core host system 310 , and the inherent data parallelism of network traffic 335 to accelerate packet capturing and processing.
- the hardware-based balancing mechanism 320 is configured to evenly distribute the incoming traffic 335 among cores 315 , 316 , and 317 . It should be understood that an integer n number of cores may be used. Thus, each core would handle 1/n of the overall traffic and the packet rate at each core would be reduced to 1/n of the overall packet rate from the network with a significantly reduced chance of causing a packet drop.
- an NIC's 350 traffic-steering mechanism 320 distributes packets to cores 315 , 316 , and 317 based on a per-flow policy that assigns packets of the same flow to the same core.
- a flow is defined by one or more fields of an IP 5-tuple.
- Such a traffic-steering mechanism 320 maintains core affinity in network processing, helping to preserve application logic (i.e., packets belonging to the same flow must be delivered to the same application).
- this method of traffic steering can lead to a load imbalance condition in which certain cores become overloaded while others remain idle. In the worst-case scenario, a single core will be flooded with all the network traffic at wire speed.
- the second type of load imbalance is a long-term load imbalance, which may be due to an uneven distribution of flow groups in an NIC.
- Load imbalance of both types occurs frequently on multicore systems.
- Existing packet capture engines e.g., PF_RING; NETMAP, and DNA
- PF_RING packet capture engines
- NETMAP NETMAP
- DNA DNA
- the embodiments disclosed herein provide a new packet-capture engine that addresses load balance in the packet-capture level to avoid packet loss.
- the embodiments provide a packet capture engine that is in a better position to address load imbalance because it has full knowledge of low-level layer conditions.
- a novel packet capture engine for commodity NICs in high-speed networks supports the packet capturing and processing system 300 shown in FIG. 3 .
- the invention can be embodied as a network interface card (NIC) ring buffer management method and system for computer packet capture engines to eliminate packet losses caused by short-term load imbalance, and to enable zero-copy packet delivery.
- NIC network interface card
- a packet buffer chunk has three addresses: DMA_address, kernel_address, and process_address, which are used by the NIC, the kernel, and the application, respectively. These addresses are maintained and translated by the kernel. A cell within a chunk is accessed by its relative address within the chunk.
- a packet buffer chunk can exist in one of three states: “free”, “attached”, and “captured”.
- a “free” chunk such as chunk 455
- the free chunk 455 includes cells 456 , 457 , and 458 .
- an “attached” state for example, chunk 441
- the chunk is attached to a descriptor segment (for example, 426 ) in its receive ring 410 to receive packets such as packet 450 .
- Each cell 433 , 434 , and 435 in the “attached” chunk 441 is sequentially tied to the corresponding packet descriptor 418 , 419 , and 420 , respectively, in the descriptor segment 426 .
- a “captured” chunk 465 includes cells 466 , 467 , and 468 , and is filled with received packets and captured into the user space 470 for processing of data 475 .
- Open 505 opens a specific receive queue for packet capture. It maps its ring buffer pool into the application's process space and attaches each descriptor segment in the receive ring with a “free” packet buffer chunk.
- Capture 510 captures packets in a specific receive queue.
- the capture operation is performed in the units of the packet buffer chunk; a single operation can move multiple chunks to the user space.
- To capture a packet buffer chunk to user space only its metadata ⁇ nic_id, ring_id, chunk_id ⁇ , process_address, pkt_count ⁇ is passed. The chunk itself is not copied.
- pkt_count counts the number of packets in the chunks.
- Packet processing occurs at step 515 as described in the embodiments throughout.
- receive queue 616 and receive queue 617 can form a buddy group 615 to implement the offloading mechanism for application 670 . It should be understood that the example in FIG. 6 is exemplary and any number of associated receive queues, buddy groups, cores, threads, and applications may be used.
- the user-mode library 750 extends and builds upon the services provided by the kernel-mode driver 705 and executes several mechanisms: it provides a Libpcap-compatible interface 755 for low-level network access, and it applies the buddy-group-based offloading mechanism to handle long-term load imbalance.
- a buddy list 780 keeps the buddies 785 , 786 , and 787 of a receive queue in a buddy group. It is used to implement the buddy-group-based offloading mechanism.
- the receive queues in a buddy group are buddies.
- the user-mode library 750 provides functions to allow an application to populate the buddies of a receive queue.
- Packet buffer chunks in the capture queue 775 are processed one by one; a used packet buffer chunk is placed into the associated recycle queue 776 .
- a capture thread 760 executes the low-level recycle operations to recycle used packet buffer chunks from its associated recycle queue 776 .
- a ring buffer pool can thus be mapped into an application's process space and a network packet can be captured and delivered to the application with zero-copy.
- a multi-queue NIC can be configured with one or multiple transmit queues for outbound packets. Embodiments are illustrated in FIG. 7 .
- the NIC For each transmit queue 720 , the NIC maintains a ring of transmit descriptors 726 , 727 , and 728 , called a transmit ring 725 .
- the packet can be attached to a transmit descriptor 726 , 727 , or 728 in the transmit ring 725 of the queue.
- the transmit descriptor helps the NIC locate the packet in the system. After that, the NIC transmits the packet to a packet buffer chunk 730 with cells 735 , 736 , and 737 .
- a method for packet capture comprises opening at least one receive queue for packet capture; capturing packets in at least one chunk in the at least one receive queue; processing the captured packets; recycling the at least one chunk associated with the captured packet for future use; and closing the receive queue.
- the method further comprises assigning three modules in a user space for the at least one receiving queue comprising a capture thread, a work queue pair, and a buddy list. In an embodiment; the method further comprises accessing one of the at least one receive queue's capture queue in the user space with a packet processing thread; fetching and processing at least one packet buffer chunk in the capture queue; forwarding the modified at least one packet buffer chunk back into a network; and inserting the modified at least one packet buffer chunk into an associated recycle queue.
- the method further comprises determining if a queue length exceeds an offloading percentage threshold, querying a buddy queue list, and placing the at least one packet buffer chunk into a capture queue of a less busy capture thread.
- the system is further configured to form at least one buddy group comprising at least two of the receive queues wherein the buddy group is configured as an offloading mechanism for an application commonly associated with the at least two receive queues.
- the system is further configured to provide low-level packet capture and transmit services using a kernel-mode driver, and provide an interface for low-level network access.
- system is further configured to determine if a queue length exceeds an offloading percentage threshold, query the buddy queue list, and place the at least one packet buffer chunk into the capture queue of a less busy capture thread.
- system is further configured to handle each of the at least one receive queues independently in a basic mode.
- the chunks comprise one of a free chunk, an attached chunk, and a captured chunk.
- system comprises a kernel-mode driver wherein the kernel-mode driver is configured for providing low-level packet capture and transmit services, and providing an interface for low-level network access.
- system further comprises a capture thread, a work queue pair, and a buddy list.
- the instructions are further configured for accessing one of the at least two receive queue's capture queue in a user space with a packet processing thread, fetching and processing at least one packet buffer chunk in the capture queue, forwarding the modified at least one packet buffer chunk back into a network, and inserting the modified at least one packet buffer chunk into an associated recycle queue.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Environmental & Geological Engineering (AREA)
Abstract
Description
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/931,956 US10079740B2 (en) | 2014-11-04 | 2015-11-04 | Packet capture engine for commodity network interface cards in high-speed networks |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462074743P | 2014-11-04 | 2014-11-04 | |
US14/931,956 US10079740B2 (en) | 2014-11-04 | 2015-11-04 | Packet capture engine for commodity network interface cards in high-speed networks |
Publications (2)
Publication Number | Publication Date |
---|---|
US20160127276A1 US20160127276A1 (en) | 2016-05-05 |
US10079740B2 true US10079740B2 (en) | 2018-09-18 |
Family
ID=55853964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/931,956 Active 2036-07-17 US10079740B2 (en) | 2014-11-04 | 2015-11-04 | Packet capture engine for commodity network interface cards in high-speed networks |
Country Status (1)
Country | Link |
---|---|
US (1) | US10079740B2 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10129180B2 (en) | 2015-01-30 | 2018-11-13 | Nicira, Inc. | Transit logical switch within logical router |
GB2546343A (en) * | 2016-01-15 | 2017-07-19 | Stmicroelectronics (Grenoble2) Sas | Apparatus and methods implementing dispatch mechanisms for offloading executable functions |
FI127335B (en) | 2016-05-27 | 2018-04-13 | Cysec Ice Wall Oy | Logging of data traffic in a computer network |
US11054884B2 (en) | 2016-12-12 | 2021-07-06 | Intel Corporation | Using network interface controller (NIC) queue depth for power state management |
US20180285151A1 (en) * | 2017-03-31 | 2018-10-04 | Intel Corporation | Dynamic load balancing in network interface cards for optimal system level performance |
US10990326B2 (en) | 2017-05-31 | 2021-04-27 | Fmad Engineering Kabushiki Gaisha | High-speed replay of captured data packets |
US11128740B2 (en) | 2017-05-31 | 2021-09-21 | Fmad Engineering Kabushiki Gaisha | High-speed data packet generator |
US11036438B2 (en) | 2017-05-31 | 2021-06-15 | Fmad Engineering Kabushiki Gaisha | Efficient storage architecture for high speed packet capture |
US10423358B1 (en) | 2017-05-31 | 2019-09-24 | FMAD Engineering GK | High-speed data packet capture and storage with playback capabilities |
US11392317B2 (en) * | 2017-05-31 | 2022-07-19 | Fmad Engineering Kabushiki Gaisha | High speed data packet flow processing |
CN107995264B (en) * | 2017-11-20 | 2021-03-30 | 北京知道未来信息技术有限公司 | CDN service verification code distribution method and system based on message queue |
US12212504B2 (en) * | 2019-01-29 | 2025-01-28 | Intel Corporation | Techniques to use descriptors for packet transmit scheduling |
US11960596B2 (en) * | 2021-03-11 | 2024-04-16 | Xilinx, Inc. | Network interface device |
JP7597231B2 (en) | 2021-09-14 | 2024-12-10 | 日本電信電話株式会社 | Packet capture device and method |
CN114189462B (en) * | 2021-12-08 | 2024-01-23 | 北京天融信网络安全技术有限公司 | Flow acquisition method and device, electronic equipment and storage medium |
US12184520B2 (en) | 2022-02-21 | 2024-12-31 | FMAD Engineering (SNG) Pte. Ltd. | High-speed packet filtering |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020173857A1 (en) | 2001-05-07 | 2002-11-21 | Ecritical, Inc. | Method and apparatus for measurement, analysis, and optimization of content delivery |
US6782444B1 (en) | 2001-11-15 | 2004-08-24 | Emc Corporation | Digital data storage subsystem including directory for efficiently providing formatting information for stored records |
US20090182953A1 (en) | 2004-12-23 | 2009-07-16 | Solera Networks. Inc. | Method and apparatus for network packet capture distributed storage system |
US7567521B2 (en) | 2006-06-06 | 2009-07-28 | Litepoint Corp. | Apparatus for capturing multiple data packets in a data signal for analysis |
US8284688B2 (en) | 2008-07-28 | 2012-10-09 | Fujitsu Limited | Packet capture apparatus, packet capture method, and computer readable medium having a packet capture program |
US20130086135A1 (en) * | 2009-08-12 | 2013-04-04 | International Business Machines Corporation | Scalable file management for a shared file system |
US20150058404A1 (en) * | 2013-08-22 | 2015-02-26 | Tata Consultancy Services Limited | System and method for managing message queues in a peer-to-peer communication network |
US20160323172A1 (en) * | 2013-12-23 | 2016-11-03 | Bae Systems Plc | Data capture |
-
2015
- 2015-11-04 US US14/931,956 patent/US10079740B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020173857A1 (en) | 2001-05-07 | 2002-11-21 | Ecritical, Inc. | Method and apparatus for measurement, analysis, and optimization of content delivery |
US6782444B1 (en) | 2001-11-15 | 2004-08-24 | Emc Corporation | Digital data storage subsystem including directory for efficiently providing formatting information for stored records |
US20090182953A1 (en) | 2004-12-23 | 2009-07-16 | Solera Networks. Inc. | Method and apparatus for network packet capture distributed storage system |
US7684347B2 (en) | 2004-12-23 | 2010-03-23 | Solera Networks | Method and apparatus for network packet capture distributed storage system |
US7855974B2 (en) | 2004-12-23 | 2010-12-21 | Solera Networks, Inc. | Method and apparatus for network packet capture distributed storage system |
US7567521B2 (en) | 2006-06-06 | 2009-07-28 | Litepoint Corp. | Apparatus for capturing multiple data packets in a data signal for analysis |
US8284688B2 (en) | 2008-07-28 | 2012-10-09 | Fujitsu Limited | Packet capture apparatus, packet capture method, and computer readable medium having a packet capture program |
US20130086135A1 (en) * | 2009-08-12 | 2013-04-04 | International Business Machines Corporation | Scalable file management for a shared file system |
US8892531B2 (en) * | 2009-08-12 | 2014-11-18 | International Business Machines Corporation | Scalable file management for a shared file system |
US20150058404A1 (en) * | 2013-08-22 | 2015-02-26 | Tata Consultancy Services Limited | System and method for managing message queues in a peer-to-peer communication network |
US9438668B2 (en) * | 2013-08-22 | 2016-09-06 | Tata Consultancy Services Limited | System and method for managing message queues in a peer-to-peer communication network |
US20160323172A1 (en) * | 2013-12-23 | 2016-11-03 | Bae Systems Plc | Data capture |
Non-Patent Citations (34)
Title |
---|
Basu, A. et al., "Efficient Virtual Memory for Big Memory Servers," ISCA'13, Tel-Aviv, Israel Jun. 2013, 41 (3):237-248. |
Benson, T. et aL, "Network Traffic Characteristics of Data Centers in the Wild," ICM '10 Proceedings of the 10th ACM SIGCOMM conference on Internet measurement (2010), pp. 267-280. |
Bonelli, N. et al., "On Multi-Gigabit Packet Capturing With Multi-Core Commodity Hardware," PAM '12 Proceedings of the 13th International conference on Passive and Active Measurement (2012) pp. 64-73. |
Braun, L. et aL, "Comparing and Improving Current Packet Capturing Solutions based on Commodity Hardware," IMC '10 Proceedings of the 10th ACM SIGCOMM conference on Internet measurement (2010) pp. 206-217. |
Chu, H.-K. J., "Zero-Copy TCP in Solaris," ATEC '96 Proceedings of the 1996 annual conference on USENIX Annual Technical Conference, 13 pages. |
Crosby, S. A. et al., "Denial of Service via Algorithmic Complexity Attacks," SSYM '03 Proceedings of the 12th Conference on USENIX Security Symposium-vol. 12, 16 pages. |
Crosby, S. A. et al., "Denial of Service via Algorithmic Complexity Attacks," SSYM '03 Proceedings of the 12th Conference on USENIX Security Symposium—vol. 12, 16 pages. |
DNA vs netmap, www.ntop.org/products/pf_ring/dna, 2 pages. |
DPDK, DPDK website, http://dpdk.org. |
Druschel, P. et al., "Lazy Receiver Processing (LRP): A Network Subsystem Architecture for Server Systems," OSDI '96 Proceedings of the second USENIX symposium on Operating Systems design and implementation (1996) ) pp. 261-275. |
Dumitrescu, C. F., "Design Patterns for Packet Processing Applications on Multi-Core Intel(R) Architecture Processors," (2008), http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/ia-multicore-packet-processing-paper.html, 20 pages. |
Foong, A. P. et al., "TCP Performance Re-Visited," IEEE International Symposium on Performance Analysis of Systems and Software Mar. 6-8, 2003, pp. 70-79. |
Fusco, F. et al., "High Speed Network Traffic Analysis with Commodity Multi-core Systems," Proceedings of the 10th ACM SIGCOMM conference on Internet measurement (2010) pp. 218-224. |
Geer, D., "Chip Makers Turn to Multicore Processors," Computer (2005) 38(5):11-13. |
Han, S. et al., "PacketShader: A GPU-Accelerated Software Router," ACM SIGCOMM Computer Communication Review (2010) 40(4):195-206. |
http://www.napatech.com/, 3 pages. |
Intel 82599 10 GbE Controller Datasheet, http://www.intel.com/content/www/us/en/ethernet-controllers/82599-10-gbe-controller-datasheet.html, 1054 pages. |
Jamshed, M. et al., "Kargus: A Highly-scalable Software-based Intrusion Detection System," Proceedings of the 2012 ACM Conference on Computer and Communications Security (2012) pp. 317-328. |
Koch, U., "Userspace I/O drivers in a realtime context," https://www.osadl.org/fileadmin/dam/rtlws/12/Koch.pdf, 7 pages. |
McCanne, S. et al., "The BSD Packet Filter: A New Architecture for User-level Packet Capture," Proceedings of the USENIX Winter 1993 Conference Proceedings, 11 pages. |
Mogul, J. C. et al., "Eliminating Receive Livelock in an Interrupt-Driven Kernel," ACM Transactions on Computer Systems (TOCS) (1997) 15(3):217-252. |
Moreno, V. et al., "Batch to the Future: Analyzing Timestamp Accuracy of High-Performance Packet I/O Engines," IEEE Communications Letters (2012) 16(11):1888-1891. |
Papadogiannakis, A. et al., "Improving the Accuracy of Network Intrusion Detection Systems Under Load Using Selective Packet Discarding," Proceedings of the Third European Workshop on System Security (2010) pp. 15-21. |
Paxson, V., "Automated Packet Trace Analysis of TCP Implementations," ACM SIGCOMM Computer Communication Review (1997) 27(4):167-179. |
PF-RING, www.ntop.org/products/pf-ring/, 3 pages. |
Rizzo, L., "netmap: a novel framework for fast packet I/O," USENIX ATC '12 Proceedings of the 2012 USENIX ,conference on Annual Technical Conference (2012) 12 pages. |
Roesch, M., "Snort-Lightweight Intrusion Detection for Networks," Proceedings of LISA '99: 13th Systems Administration Conference Nov. 7-12, 1999 pp. 229-238. |
TCPDUMP and LIBPCAP public repository, http://www.tcpdump.org/, 2 pages. |
White, J. S. et al., "Quantitative Analysis of Intrusion Detection Systems: Snort and Suricata," Proceedings of SPIE-The International Society for Optical Engineering Apr. 2013, 14 pages. |
White, J. S. et al., "Quantitative Analysis of Intrusion Detection Systems: Snort and Suricata," Proceedings of SPIE—The International Society for Optical Engineering Apr. 2013, 14 pages. |
Wu, W. et al., "A Transport-Friendly NIC for Multicore/Multiprocessor Systems," IEEE Transactions on Parallel and Distributed Systems (2011) 23(4):607-615. |
Wu, W. et al., "The Performance Analysis of Linux Networking-Packet Receiving," Computer Communications (2007) 30(5):1044-1057. |
Wu, W. et al., "Why Can Some Advanced Ethernet NICs Cause Packet Reordering?," IEEE Communication Letters (2010) 15(2):253-255. |
Wu, W. et al., "The Performance Analysis of Linux Networking—Packet Receiving," Computer Communications (2007) 30(5):1044-1057. |
Also Published As
Publication number | Publication date |
---|---|
US20160127276A1 (en) | 2016-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10079740B2 (en) | Packet capture engine for commodity network interface cards in high-speed networks | |
US10356007B2 (en) | Dynamic service orchestration within PAAS platforms | |
US10860356B2 (en) | Networking stack of virtualization software configured to support latency sensitive virtual machines | |
EP4447421A2 (en) | Switch-managed resource allocation and software execution | |
CN109547580B (en) | A method and device for processing data message | |
JP5963966B2 (en) | System and method for performing selective deep packet inspection | |
US9965441B2 (en) | Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics | |
US9154453B2 (en) | Methods and systems for providing direct DMA | |
US20070168525A1 (en) | Method for improved virtual adapter performance using multiple virtual interrupts | |
EP3625939A1 (en) | Access node for data centers | |
EP3625679A1 (en) | Data processing unit for stream processing | |
US9014005B2 (en) | Low-latency lossless switch fabric for use in a data center | |
US9357035B2 (en) | Optimizing network communications | |
US10693801B2 (en) | Packet drop reduction in virtual machine migration | |
US20130294231A1 (en) | Method of high-speed switching for network virtualization and high-speed virtual switch architecture | |
US10904167B2 (en) | Incoming packet processing for a computer system | |
CN115917520A (en) | System for providing LPM implementations for programmable data planes via distributed algorithms | |
US8914803B2 (en) | Flow control-based virtual machine request queuing | |
US20240314141A1 (en) | Multi-engine intrusion detection system | |
US10616116B1 (en) | Network traffic load balancing using rotating hash | |
US10198262B2 (en) | Adaptive core grouping | |
US10901820B1 (en) | Error state message management | |
Lei et al. | Accelerating packet processing in container overlay networks via packet-level parallelism | |
US11212259B2 (en) | Inspection offload clustering | |
US20250190390A1 (en) | Synchronization of streaming data between two peripheral component interconnect express (pcie) devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FERMI RESEARCH ALLIANCE, LLC, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WU, WENJI;DEMAR, PHILIP J.;ZHANG, LIANG;REEL/FRAME:036955/0296 Effective date: 20151103 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: UNITED STATES DEPARTMENT OF ENERGY, DISTRICT OF COLUMBIA Free format text: CONFIRMATORY LICENSE;ASSIGNOR:FERMI RESEARCH ALLIANCE, LLC;REEL/FRAME:063970/0054 Effective date: 20230331 |
|
AS | Assignment |
Owner name: FERMI FORWARD DISCOVERY GROUP, LLC, ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FERMI RESEARCH ALLIANCE, LLC;REEL/FRAME:069795/0347 Effective date: 20241230 |