US9270686B1 - Zero copy packet buffering using shadow sends - Google Patents
Zero copy packet buffering using shadow sends Download PDFInfo
- Publication number
- US9270686B1 US9270686B1 US12/183,642 US18364208A US9270686B1 US 9270686 B1 US9270686 B1 US 9270686B1 US 18364208 A US18364208 A US 18364208A US 9270686 B1 US9270686 B1 US 9270686B1
- Authority
- US
- United States
- Prior art keywords
- packet
- inspection
- deep
- packet inspection
- deep packet
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
Definitions
- Intrusion Detection Systems can often detect network attacks, but as passive systems they generally offer little more than after-the-fact notification.
- Intrusion Prevention Systems have been developed to complement traditional security products, such as firewalls, by proactively analyzing network traffic flows and active connections while scanning incoming and outgoing requests. As network traffic passes through the IPS, it is examined for malicious packets. Such examination may be performed by one or more “deep packet inspection engines” which perform “deep packet inspection” on some or all of the packets in the network traffic. Traffic is blocked if the IPS identifies it as posing a potential threat or as being associated with an unwanted application, while legitimate traffic is allowed to pass through the system unimpeded.
- an IPS can be an effective network security safeguard.
- an IPS may include multiple deep packet inspection engines for performing deep packet inspection on traffic flows passing through the IPS because a single deep packet inspection engine, typically implemented as a microprocessor executing a suitable operating system and software, may not be capable of processing the flows at a sufficiently high throughput.
- Techniques for balancing network traffic load among multiple deep packet inspection engines in an IPS to increase the aggregate performance of such engines and thereby the overall performance of the IPS are disclosed in U.S.
- the amount of time required to perform deep packet inspection on a single packet may vary widely from packet to packet. This amount of processing time, referred to as “inspection latency,” is affected, for example, by packet length and packet type. If the type of packet inspection applied to a particular type of packet requires that a complex regular expression (“regex”) pattern be matched against the packet, the inspection latency for that packet may be many orders of magnitude greater than the packet transmission speed. For example, the transmission time of a maximum-size Ethernet packet over a gigabit Ethernet link is 12.304 microseconds. Applying deep packet inspection to a packet using a recursive regex pattern may take 10 milliseconds or longer, i.e., approximately 1,000 times longer than the transmission speed.
- regex complex regular expression
- Packets in an intrusion prevention system are inspected by a deep packet inspection engine.
- a packet may be queued for transmission onto an output queue and transmitted over a network while deep packet inspection is still being performed on the packet.
- Such simultaneous inspection processing and transmission may be implemented using two ownership bits for the packet, one to indicate “ownership to process” and one to indicate “ownership to send,” instead of the single ownership bit that is used in conventional systems.
- the packet may be inspected, queued onto the output queue, and transmitted without making a copy of the packet within the deep packet inspection engine.
- one embodiment of the present invention is directed to a method including: (A) receiving a packet over a network; (B) performing deep packet inspection on the packet; and (C) queuing the packet for transmission over a network while deep packet inspection is being performed on the packet.
- the method may further include: (D) transmitting the packet over the network while deep packet inspection is being performed on the packet.
- the method may further include: (D) determining whether a predetermined criterion associated with the packet is satisfied; and (E) performing (C) if the predetermined criterion is satisfied.
- the predetermined criterion may, for example, include whether deep packet inspection has been performed on the packet for longer than a predetermined amount of time.
- the packet may be queued for transmission over the network without copying the packet.
- the method may further include assigning processing ownership of the packet to deep packet inspection means and assigning transmission ownership of the packet to output means. Inspection ownership may be assigned by modifying a first value of a first field in the packet, and transmission ownership of the packet may be assigned by modifying a second value of a second field in the packet.
- the first and second fields may be individual bits.
- FIG. 1A is a block diagram of a network Intrusion Prevent System (IPS) according to one embodiment of the present invention
- FIG. 1B is a diagram of one of the deep packet inspection engines of FIG. 1A in more detail according to one embodiment of the present invention
- FIG. 1C is a diagram of one of the deep packet inspection engines of FIG. 1A in more detail according to another embodiment of the present invention.
- FIG. 2A is a flowchart of a method performed by the system of FIG. 1A according to one embodiment of the present invention.
- FIG. 2B is a flowchart of a method performed by a deep packet inspection engine to process a packet according to one embodiment of the present invention.
- FIG. 1A a block diagram is shown of a network Intrusion Prevention System (IPS) 100 according to one embodiment of the present invention.
- FIG. 2A a flowchart is shown of a method 200 performed by the system 100 of FIG. 1A according to one embodiment of the present invention.
- IPS Intrusion Prevention System
- a stream of packets 102 enters a load balancer 104 (step 202 ), which divides the stream of packets 102 into four sub-streams 106 a - d (step 204 ), which the load balancer 104 transfers to deep packet inspection engines 108 a - d , respectively (step 206 ).
- Examples of techniques that may be used to implement the load balancer 104 may be found in U.S. patent application Ser. Nos. 11/443,490 and 11/782,840.
- the load balancer 104 may balance the incoming packet stream 102 onto any number of sub-streams.
- Deep packet inspection engines 108 a - d include receive queues 110 a - d , respectively.
- the deep packet inspection engines 108 a - d receive the packet sub-streams 106 a - d and queue the packets in the sub-streams 106 a - d onto the receive queues 110 a - d , respectively (step 208 ).
- the receive queues 110 a - d are examples of “packet inspection queues,” as that term is used herein.
- a packet inspection queue is a queue onto which packets are queued for a determination of whether they require deep packet inspection, and for deep packet inspection if required.
- the receive queues 110 a may, for example, be hardware-implemented first-in first-out (FIFO) queues, according to which the packets in the sub-streams 106 a - d are processed by the corresponding deep packet inspection engines 108 a - d in the order in which the packets in the sub-streams 106 a - d are received by the deep packet inspection engines 108 a - d.
- FIFO first-in first-out
- the deep packet inspection engines 108 a - d may process their receive queues 110 a - d in any manner.
- deep packet inspection engine 108 a may include deep packet inspection software 170 which dequeues packets sequentially from the receive queue 110 a (step 210 ) and applies deep packet inspection to them, thereby producing an internal stream of inspected packets 172 (step 212 ).
- this process typically involves making copies of the packets from the receive queue 110 a for purposes of applying deep packet inspection to the packets.
- the inspected packets 172 may not include all of the packets 106 a received by the deep packet inspection engine 108 a since, for example, the deep packet inspection software 170 may drop packets which fail deep packet inspection.
- the deep packet inspection software 170 queues the inspected packets 172 onto a hardware-implemented output queue 174 (step 214 ).
- queueing the packets 172 onto the output queue 174 typically involves copying the packets from a software-implemented queue to the hardware implemented queue 174 .
- the deep packet inspection engine 108 a also includes a hardware-implemented output queue interface 166 which dequeues packets 176 from the output queue 174 (step 216 ) and transmits the dequeued packets 176 over the network 114 as transmitted packets 178 (step 218 ).
- Steps 216 and 218 may, for example, be implemented by an output MAC 190 in the deep packet inspection engine 108 a.
- embodiments of the present invention address this problem by queuing packets onto the output queue 174 without copying the packets and without waiting for deep packet inspection of the packets to finish.
- a packet may be queued onto the output queue 174 while the deep packet inspection software 170 is still performing deep packet inspection on the packet.
- the deep packet inspection engine 108 a may even transmit the packet over the network 114 before deep packet inspection of the packet is complete.
- FIG. 1C the deep packet inspection engine 108 a is shown in more detail according to one embodiment of the present invention.
- FIG. 1C focuses on a single packet 112 in the output queue 174 for purposes of example.
- the packet 112 includes an “own to process” field 150 and an “own to send” field 152 .
- the own to process field 150 indicates whether the deep packet inspection software 170 is currently performing deep packet inspection on the packet 112 .
- the own to process field 150 may be implemented as a single bit, where a value of zero indicates that the deep packet inspection software 170 is performing deep packet inspection on the packet 112 , and where a value of one indicates that the deep packet inspection software 170 is not performing deep packet inspection on the packet 112 , such as because the deep packet inspection software 170 has finished performing deep packet inspection on the packet 112 or because the deep packet inspection software 170 has aborted deep packet inspection of the packet 112 .
- the own to send field 152 indicates whether the output queue interface 166 (e.g., MAC) has authority to transmit the packet 112 over the network 114 .
- the own to send field 152 may be implemented as a single bit, where a value of zero indicates that the output queue interface 166 is not authorized to transmit the packet 112 over the network 114 (because, for example, the deep packet inspection software 170 has not yet queued the packet 112 onto the output queue 174 ), and where a value of one indicates that the output queue interface 166 is authorized to transmit the packet 112 over the network 114 (because, for example, the deep packet inspection software 170 has queued the packet 112 onto the output queue 174 ).
- the packet 112 may be queued onto the output queue 174 by changing a pointer in a descriptor in the output buffer 174 to point to the packet 112 and setting the value of the “own to send” bit 152 to indicate that the output queue interface 166 has ownership of the packet 112 for purposes of transmitting it over the network 114 .
- the packet 112 may be queued onto the output queue 174 , in other words, without copying the packet 112 .
- the deep packet inspection software 170 may own the packet 112 for purposes of performing deep packet inspection on the packet 112 at the same time as the output queue interface 166 owns the packet 112 for purposes of transmitting the packet 112 over the network 114 . As described in more detail below, this enables the output queue interface 166 to transmit the packet 112 over the network 114 even while the deep packet inspection software 170 continues to perform deep packet inspection on the packet 112 .
- FIG. 2B a flowchart is shown of a method 220 that is performed by the deep packet inspection engine 108 a of FIG. 1C according to one embodiment of the present invention.
- the method 220 focuses on the single packet 112 , those having ordinary skill in the art will appreciate how to integrate the method 220 shown in FIG. 2B with the method 200 shown in FIG. 2A .
- the deep packet inspection engine 108 a receives the packet 112 into the receive queue 110 a (step 222 ) and initializes 180 both the own to process field 150 (step 224 ) and the own to send field 152 (step 226 ) to specify that the packet 112 is owned by the deep packet inspection software 170 .
- the initialization may, for example, be performed by the deep packet inspection software 170 .
- the packet 112 is only shown in the output queue 174 in FIG. 1B for ease of illustration, the packet 112 may initially be in the receive queue 110 a.
- the deep packet inspection software 170 begins to perform deep packet inspection on the packet 112 (step 228 ). Note that the deep packet inspection software 170 may perform deep packet inspection on the packet 112 directly in the receive queue 110 a , in other words, without making a copy of the packet 112 .
- Deep packet inspection may not be performed on all packets in the receive queue 110 a .
- the deep packet inspection software 170 performs deep packet inspection on the packet 112 .
- the deep packet inspection software 170 may queue 182 the packet 112 on the output queue 174 (step 232 ). Queueing the packet 112 on the output queue 174 may include changing the value of the own to send field 152 to specify that the output queue interface 166 owns the packet 112 (step 234 ), while leaving the value of the own to process field 150 unchanged. In fact, the packet 112 may be queued onto the output queue 174 solely by changing the value of the own to send field 152 to specify that the output queue interface 166 owns the packet 112 .
- the deep packet inspection software 170 retains ownership of the packet 112 for purposes of performing deep packet inspection on the packet 112 , while the output queue interface 166 gains ownership of the packet 112 for purposes of preparing the packet 112 for transmission over the network 114 and for performing such transmission.
- the deep packet inspection software 170 may continue to perform deep packet inspection on the packet 112 even after the packet is queued onto the output queue 174 in step 232 .
- the packet 112 is only queued onto the output queue 174 before deep packet inspection of the packet 112 is completed if deep packet inspection of the packet 112 lasts longer than the predetermined threshold, this is not a limitation of the present invention. For example, all packets may be queued onto the output queue 174 while deep packet inspection is being performed on them, even if no deep packet inspection threshold is exceeded.
- the packet 112 may be queued onto the output queue 174 without copying the packet 112 . Therefore, although the receive queue 110 a and the output queue 174 are shown as separate components in FIG. 1C , this is not a requirement of the present invention. Rather, for example, the packet 112 may be queued onto the output queue 174 by changing a pointer to the packet 112 or by changing the value of an additional field (not shown) in the packet 112 , but without copying the packet 112 .
- the deep packet inspection software 170 changes 184 the value of the own to process field 150 of the packet 112 to specify the output queue interface 166 (step 238 ), and queues the packet 112 onto the output queue 174 (step 232 ).
- the output queue interface 166 may perform additional processing on the packet 112 before transmitting the packet 112 over the network 114 (step 240 ).
- the output queue interface 166 determines whether the deep packet inspection software 170 is still performing deep packet inspection on the packet 112 by, for example, determining whether the own to process 150 field of the packet 112 still specifies the deep packet inspection software 170 (step 242 ). If the output queue interface 166 determines that the deep packet inspection software 170 is still performing deep packet inspection on the packet 112 , then the output queue interface 166 waits until the deep packet inspection software 170 is no longer processing the packet 112 .
- the output queue interface 166 frees the position of the packet 112 in the output queue 174 for use by subsequent packets (step 244 ).
- the position of the packet 112 in the output queue 174 may be freed, for example, by changing the value of the packet's “own to process” field 150 to indicate that the deep packet inspection software 170 no longer owns the packet 112 for processing.
- the state of the flow (session) of which the packet 112 is a part may be changed to “discard.”
- subsequent packets in the same flow will be marked as “discard,” thereby causing the recipient of the flow to discard the flow's packets.
- the packet's flow may be marked as a high priority flow for purposes of deep packet inspection, thereby causing the deep packet inspection engine 108 a to take up subsequent packets in that flow ahead of packets with lower priority.
- the deep packet inspection engine 108 a will process such high priority packets quickly because, as part of a flow whose status is “discard,” deep packet inspection need not be applied to them.
- One advantage of embodiments of the present invention is that they enable packets to be queued for output and even transmitted over a network while deep packet inspection continues to be performed on such packets. As a result, deep packet inspection does not delay packet transmission, even in cases where deep packet inspection lasts for a particularly long time.
- the techniques disclosed herein therefore reduce total inspection latency, thereby reducing total transmission latency.
- Embodiments of the present invention provide such improved performance without sacrificing security, because even if a packet fails deep packet inspection after it has been transmitted, the packet may still effectively be terminated by marking its flow as “discard” or taking other steps to ensure that the packet's recipient is not harmed by it.
- the techniques disclosed above with respect to FIG. 2C may be used to enable the message containing a packet to be terminated if deep packet inspection of the packet fails after it has been transmitted.
- embodiments of the present invention enable deep packet inspection and other processing of packets to be performed without making multiple copies of each packet. This further decreases both inspection latency and transmission latency, reduces memory consumption, and enables devices such as the deep packet inspection engine to be more compact and manufactured at lower cost.
- the deep packet inspection engine 108 a both reduces or eliminates internal copying of the packet 112 and enables the packet 112 to be inspected and transmitted simultaneously, all of these features need not be implemented together. For example, reduction or elimination of packet copying may be implemented without simultaneous packet inspection and transmission. Conversely, simultaneous packet inspection and transmission may be implemented without reduction or elimination of packet copying.
- the ownership states of the packet 112 are implemented using two ownership fields 150 and 152 .
- the ownership states of the packet 112 may, however, be implemented in other ways, such as by descriptors, packet headers, or some internal state which is linked to the output queue 174 .
- each of the ownership fields 150 and 152 is described herein as a one-bit field having two possible values, this is not a limitation of the present invention. Rather, the ownership states of the packet 112 may be represented in any manner.
- the techniques described above may be implemented, for example, in hardware, software, firmware, or any combination thereof.
- the techniques described above may be implemented in one or more computer programs executing on a programmable computer including a processor, a storage medium readable by the processor (including, for example, volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device.
- Program code may be applied to input entered using the input device to perform the functions described and to generate output.
- the output may be provided to one or more output devices.
- packets are simultaneously transmitted and inspected if deep packet inspection of such packets lasts longer than a predetermined threshold, this is not a requirement of the present invention.
- “dual ownership” of packets by the deep packet inspection software 170 and the output queue interface 166 may be applied to all packets without discrimination.
- criteria other than or in addition to the predetermined time threshold may be used at step 230 in FIG. 2B to determine whether to allow transmission of a packet while it is still being inspected.
- the decision whether to allow simultaneous ownership of a packet by both the deep packet inspection software 170 and the output queue interface 166 may be made based on characteristics of the flow of which the packet is a part. For example, dual ownership of the packet 112 may be allowed if the packet 112 is part of a flow for which termination of subsequent packets (such as by marking their status as “discard”) will cause the recipient to discard packet 112 . If the packet 112 is not part of a flow having this characteristic, for example, then dual ownership of the packet 112 may not be allowed.
- Each computer program within the scope of the claims below may be implemented in any programming language, such as assembly language, machine language, a high-level procedural programming language, or an object-oriented programming language.
- the programming language may, for example, be a compiled or interpreted programming language.
- Each such computer program may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a computer processor.
- Method steps of the invention may be performed by a computer processor executing a program tangibly embodied on a computer-readable medium to perform functions of the invention by operating on input and generating output.
- Suitable processors include, by way of example, both general and special purpose microprocessors.
- the processor receives instructions and data from a read-only memory and/or a random access memory.
- Storage devices suitable for tangibly embodying computer program instructions include, for example, all forms of non-volatile memory, such as semiconductor memory devices, including EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROMs. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits) or FPGAs (Field-Programmable Gate Arrays).
- a computer can generally also receive programs and data from a storage medium such as an internal disk (not shown) or a removable disk.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/183,642 US9270686B1 (en) | 2007-08-03 | 2008-07-31 | Zero copy packet buffering using shadow sends |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95380207P | 2007-08-03 | 2007-08-03 | |
US12/183,642 US9270686B1 (en) | 2007-08-03 | 2008-07-31 | Zero copy packet buffering using shadow sends |
Publications (1)
Publication Number | Publication Date |
---|---|
US9270686B1 true US9270686B1 (en) | 2016-02-23 |
Family
ID=55314804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/183,642 Active 2034-12-24 US9270686B1 (en) | 2007-08-03 | 2008-07-31 | Zero copy packet buffering using shadow sends |
Country Status (1)
Country | Link |
---|---|
US (1) | US9270686B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10243971B2 (en) * | 2016-03-25 | 2019-03-26 | Arbor Networks, Inc. | System and method for retrospective network traffic analysis |
US20190253357A1 (en) * | 2018-10-15 | 2019-08-15 | Intel Corporation | Load balancing based on packet processing loads |
US11360702B2 (en) | 2017-12-11 | 2022-06-14 | Hewlett-Packard Development Company, L.P. | Controller event queues |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023786A1 (en) * | 2001-07-26 | 2003-01-30 | International Business Machines Corporation | Apparatus and method for managing work and completion queues using head and tail pointers |
US20060195904A1 (en) * | 2005-02-28 | 2006-08-31 | Williams Larry L | Data storage device with code scanning capabilty |
US7203960B1 (en) * | 2003-06-20 | 2007-04-10 | Trend Micro, Inc. | Anti-virus method and system guaranteeing a maximum delay for streaming data |
US7844700B2 (en) * | 2005-03-31 | 2010-11-30 | Microsoft Corporation | Latency free scanning of malware at a network transit point |
US7992206B1 (en) * | 2006-12-14 | 2011-08-02 | Trend Micro Incorporated | Pre-scanner for inspecting network traffic for computer viruses |
US8042184B1 (en) * | 2006-10-18 | 2011-10-18 | Kaspersky Lab, Zao | Rapid analysis of data stream for malware presence |
-
2008
- 2008-07-31 US US12/183,642 patent/US9270686B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030023786A1 (en) * | 2001-07-26 | 2003-01-30 | International Business Machines Corporation | Apparatus and method for managing work and completion queues using head and tail pointers |
US7203960B1 (en) * | 2003-06-20 | 2007-04-10 | Trend Micro, Inc. | Anti-virus method and system guaranteeing a maximum delay for streaming data |
US20060195904A1 (en) * | 2005-02-28 | 2006-08-31 | Williams Larry L | Data storage device with code scanning capabilty |
US7844700B2 (en) * | 2005-03-31 | 2010-11-30 | Microsoft Corporation | Latency free scanning of malware at a network transit point |
US8042184B1 (en) * | 2006-10-18 | 2011-10-18 | Kaspersky Lab, Zao | Rapid analysis of data stream for malware presence |
US7992206B1 (en) * | 2006-12-14 | 2011-08-02 | Trend Micro Incorporated | Pre-scanner for inspecting network traffic for computer viruses |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10243971B2 (en) * | 2016-03-25 | 2019-03-26 | Arbor Networks, Inc. | System and method for retrospective network traffic analysis |
US11360702B2 (en) | 2017-12-11 | 2022-06-14 | Hewlett-Packard Development Company, L.P. | Controller event queues |
US20190253357A1 (en) * | 2018-10-15 | 2019-08-15 | Intel Corporation | Load balancing based on packet processing loads |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8756337B1 (en) | Network packet inspection flow management | |
US11082436B1 (en) | System and method for offloading packet processing and static analysis operations | |
US9392002B2 (en) | System and method of providing virus protection at a gateway | |
EP2289221B1 (en) | Network intrusion protection | |
US10547553B2 (en) | Stateful connection tracking | |
EP1915671B1 (en) | Apparatus and method for facilitating network security | |
EP2482520B1 (en) | System and method for efficient classification and processing of network traffic | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US9059965B2 (en) | Method and system for enforcing security policies on network traffic | |
US20160021137A1 (en) | Proactive network attack demand management | |
US8000244B1 (en) | Shared rate limiters using floating buckets | |
US20140129705A1 (en) | Security network processor system and method | |
US20190123894A1 (en) | Programmable hardware based data encryption and decryption systems and methods | |
JP2009534001A (en) | Malicious attack detection system and related use method | |
JP2004503146A (en) | How to prevent denial of service attacks | |
US20030229710A1 (en) | Method for matching complex patterns in IP data streams | |
US11757912B2 (en) | Deep packet analysis | |
US20240223535A1 (en) | Network Traffic Control Method and Related System | |
US20070071007A1 (en) | Decoupled header and packet processing in ipsec | |
KR102014741B1 (en) | Matching method of high speed snort rule and yara rule based on fpga | |
US9270686B1 (en) | Zero copy packet buffering using shadow sends | |
Freitas et al. | A survey on accelerating technologies for fast network packet processing in Linux environments | |
US20030229708A1 (en) | Complex pattern matching engine for matching patterns in IP data streams | |
US8307440B1 (en) | Non-blocking shared state in an intrusion-prevention system | |
EP4199427A1 (en) | Ai-supported network telemetry using data processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TIPPINGPOINT TECHNOLOGIES, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CANION, RODNEY S.;TOMLINSON, ALEXANDER I.;SIGNING DATES FROM 20080929 TO 20080930;REEL/FRAME:022383/0200 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA Free format text: MERGER;ASSIGNOR:3COM CORPORATION;REEL/FRAME:024630/0820 Effective date: 20100428 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD COMPANY, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE SEE ATTACHED;ASSIGNOR:3COM CORPORATION;REEL/FRAME:025039/0844 Effective date: 20100428 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TIPPINGPOINT TECHNOLOGIES, INC.;REEL/FRAME:024755/0973 Effective date: 20100720 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:036987/0001 Effective date: 20151002 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: TREND MICRO INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP;REEL/FRAME:039203/0047 Effective date: 20160308 |
|
AS | Assignment |
Owner name: TREND MICRO INCORPORATED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TREND MICRO INCORPORATED;REEL/FRAME:039512/0945 Effective date: 20160414 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |