US11855898B1 - Methods for traffic dependent direct memory access optimization and devices thereof - Google Patents

Methods for traffic dependent direct memory access optimization and devices thereof Download PDF

Info

Publication number
US11855898B1
US11855898B1 US16/353,868 US201916353868A US11855898B1 US 11855898 B1 US11855898 B1 US 11855898B1 US 201916353868 A US201916353868 A US 201916353868A US 11855898 B1 US11855898 B1 US 11855898B1
Authority
US
United States
Prior art keywords
data
criteria
proxy
header
profile
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
Application number
US16/353,868
Inventor
William Ross Baumann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
F5 Inc
Original Assignee
F5 Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by F5 Inc filed Critical F5 Inc
Priority to US16/353,868 priority Critical patent/US11855898B1/en
Assigned to F5 NETWORKS, INC. reassignment F5 NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BAUMANN, WILLIAM ROSS
Application granted granted Critical
Publication of US11855898B1 publication Critical patent/US11855898B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Definitions

  • This technology generally relates to traffic dependent direct memory access (DMA) optimization.
  • DMA traffic dependent direct memory access
  • NICs Network interface controllers
  • DMA direct memory access
  • the packets are transmitted to a queue. This transmission of the packets into the queue by the NICs is independent of the contents included in the packet and the flow associated with the packet.
  • different types of packets based on their content would have increased efficiency if alternate DMA behavior mechanisms were utilized, such as mechanisms with improved use of CPU cache, CPU, or DRAM.
  • a method, implemented by a network traffic management system comprising one or more network traffic management apparatuses, server devices or client devices, includes inspecting a plurality of incoming packets to obtain packet header data for each of the incoming packets.
  • the packet header data is filtered using one or more filtering criteria.
  • At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data.
  • the incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
  • a network traffic management apparatus including memory including programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to inspect a plurality of incoming packets to obtain packet header data for each of the incoming packets.
  • the packet header data is filtered using one or more filtering criteria.
  • At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data.
  • the incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
  • a non-transitory computer readable medium having stored thereon instructions for including executable code that, when executed by one or more processors, causes the processors to inspect a plurality of incoming packets to obtain packet header data for each of the incoming packets.
  • the packet header data is filtered using one or more filtering criteria.
  • At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data.
  • the incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
  • a network traffic management system includes one or more traffic management modules, server modules, or client modules, memory comprising programmed instructions stored thereon, and one or more processors configured to be capable of executing the stored programmed instructions to a plurality of incoming packets to obtain packet header data for each of the incoming packets.
  • the packet header data is filtered using one or more filtering criteria.
  • At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data.
  • the incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
  • This technology has a number of advantages including providing methods, non-transitory computer readable media, network traffic management apparatuses, and network traffic management systems that provide increased efficiency with network load balancing by intelligently processing different types of traffic with a correlated one of a plurality of DMA behavior mechanism.
  • This correlation improves CPU, CPU cache, DRAM or Bus Bandwidth utilization resulting in an improved experience for client devices.
  • this technology provides optimized utilization of NIC storage to eliminate duplicated data to reduce size of entry tables which reduces costs for utilizing expensive storage devices.
  • FIG. 1 is a block diagram of an exemplary network traffic management system with a network traffic management apparatus
  • FIG. 2 is a block diagram of an exemplary network traffic management apparatus
  • FIG. 3 is a functional block diagram of the Network Interface Controller in the exemplary network traffic management apparatus shown in FIG. 2 ;
  • FIG. 4 is a block diagram of an example of a data store in the exemplary network traffic management apparatus shown in FIG. 2 .
  • FIG. 5 is a flowchart of an exemplary method for traffic dependent direct memory access optimization.
  • FIG. 6 is a functional block diagram of an example of a disaggregation in the exemplary method for traffic dependent direct memory access optimization shown in FIG. 5 ;
  • FIG. 7 is a functional block diagram of an example of filtering in the exemplary method for traffic dependent direct memory access optimization shown in FIG. 5 .
  • FIG. 1 an exemplary network environment that
  • the network traffic management system 10 in this example includes a network traffic management apparatus 12 that is coupled to server devices 14 ( 1 )- 14 ( n ), and client devices 16 ( 1 )- 16 ( n ) via communication network(s) 18 ( 1 ) and 18 ( 2 ), although the network traffic management apparatus 12 , server devices 14 ( 1 )- 14 ( n ), and client devices 16 ( 1 )- 16 ( n ) may be coupled together via other topologies.
  • the network traffic management system 10 may include other network devices such as one or more routers or switches, for example, which are known in the art and thus will not be described herein.
  • This technology provides a number of advantages including methods, non-transitory computer readable media, network traffic management systems, and network traffic management apparatuses that provide an increased efficiency of network load balancing by intelligently processing different types of traffic with a correlated one of a plurality of DMA behavior mechanism.
  • the network traffic management apparatus 12 server devices 14 ( 1 )- 14 ( n ), and client devices 16 ( 1 )- 16 ( n ) are disclosed in FIG. 1 as dedicated hardware devices.
  • one or more of the network traffic management apparatus 12 , server devices 14 ( 1 )- 14 ( n ), or client devices 16 ( 1 )- 16 ( n ) can also be implemented in software within one or more other devices in the network traffic management system 10 .
  • the term “module” refers to either an implementation as a dedicated hardware device or apparatus, or an implementation in software hosted by another hardware device or apparatus that may be hosting one or more other software components or implementations.
  • the network traffic management apparatus 12 can be a module implemented as software executing on one of the server devices 14 ( 1 )- 14 ( n ), and many other permutations and types of implementations can also be used in other examples.
  • any or all of the network traffic management apparatus 12 , server devices 14 ( 1 )- 14 ( n ), and client devices 16 ( 1 )- 16 ( n ), can be implemented, and may be referred to herein, as a module.
  • the network traffic management apparatus of the network traffic management system 10 may perform any number of functions including managing network traffic, load balancing network traffic across the server devices 14 ( 1 )- 14 ( n ), or accelerating network traffic associated with web applications hosted by the server devices 14 ( 1 )- 14 ( n ).
  • the network traffic management apparatus 12 in this example includes one or more processor(s) 20 , a memory 22 , and a communication interface 24 , which are coupled together by a bus 26 , although the network traffic management apparatus 12 can include other types or numbers of elements in other configurations.
  • the processor(s) 20 of the network traffic management apparatus 12 may execute programmed instructions stored in the memory 22 of the network traffic management apparatus 12 for any number of the functions identified above.
  • the processor(s) 20 of the network traffic management apparatus 12 may include one or more central processing units (CPUs) or general purpose processors with one or more processing cores, for example, although other types of processor(s) can also be used.
  • the memory 22 of the network traffic management apparatus 12 stores these programmed instructions for one or more aspects of the present technology as described and illustrated herein, although some or all of the programmed instructions could be stored elsewhere.
  • a variety of different types of memory storage devices such as random access memory (RAM), read only memory (ROM), hard disk, solid state drives, flash memory, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the processor(s) 20 , can be used for the memory 22 .
  • the memory 22 of the network traffic management apparatus 12 can store one or more applications that can include computer executable instructions that, when executed by the network traffic management apparatus 12 , cause the network traffic management apparatus 12 to perform actions, such as to transmit, receive, or otherwise process messages, for example, and to perform other actions described and illustrated below with reference to FIGS. 5 - 7 .
  • the application(s) can be implemented as components of other applications. Further, the application(s) can be implemented as operating system extensions, plugins, or the like.
  • the application(s) may be operative in a cloud-based computing environment.
  • the application(s) can be executed within or as virtual machine(s) or virtual server(s) that may be managed in a cloud-based computing environment.
  • the application(s), and even the network traffic management apparatus 12 itself may be located in virtual server(s) running in a cloud-based computing environment rather than being tied to one or more specific physical network computing devices.
  • the application(s) may be running in one or more virtual machines (VMs) executing on the network traffic management apparatus 12 .
  • VMs virtual machines
  • virtual machine(s) running on the network traffic management apparatus 12 may be managed or supervised by a hypervisor.
  • the memory 22 of the network traffic management apparatus 12 may include a filtering criteria data storage 28 , data store 32 , profile data storage 30 , although the memory 22 can include other policies, modules, databases, or applications, for example.
  • the filtering criteria stored in the filtering criteria data storage 28 may include by way of example, virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, and self-internet protocol (IP) criteria, although other types and numbers of criteria may be used.
  • VLAN virtual local area network
  • IP self-internet protocol
  • the profile data storage 30 may include profile data, such as Layer-4 Proxy Profile (L4 proxy profile), Partial Layer-7 proxy profile (Partial L7 proxy profile), Full Layer-7 proxy profile (Full L7 proxy profile) and associated rules for selecting one or more DMA behavior mechanisms.
  • L4 proxy profile Layer-4 Proxy Profile
  • Partial Layer-7 proxy profile Partial Layer-7 proxy profile
  • Full Layer-7 proxy profile Full Layer-7 proxy profile
  • the L4 proxy profile includes one or more policies used to make a determination about the particular processing of each packet. With the L4 proxy profile, processing is on a packet by packet basis and acknowledgements are not required which reduces overhead.
  • the Partial L7 proxy profile in the profile data storage 30 includes one or more policies for processing packets associated with a flow, such as HTTP packets by way of example.
  • packets are processed on a per-flow-basis instead of packet by packet basis and then allocated to a particular one of the server devices 14 ( 1 )- 14 ( n ) based on one of plurality identified types of flow.
  • the Full L7 proxy profile in the profile data storage 30 also includes one or more policies for processing packets associated with a flow, such as HTTP packets by way of example.
  • a flow such as HTTP packets
  • all the packets associated with a flow are collected and then processed.
  • this processing may comprise examining the full stream of traffic for virus or attack signatures.
  • this processing may include examining an HTTP request's URL for special processing such as compression, although other types of processing may be performed.
  • the stored associated rules are used to select one or more optimized DMA behavior mechanisms.
  • one of the rules for selecting one of the DMA behavior mechanisms may comprise determining when a packet is processed using a L4 proxy profile. Upon determining the packet is processed using the L4 proxy profile, another one of the rules may be used to determine whether the Header DMA mechanism or the Contiguous Ring DMA mechanism is selected for processing the packet.
  • the rules may comprise determining whether a flow is being processed by either the Partial L7 proxy profile or the Full L7 proxy profile. Upon determining the packet is processed using either the Partial L7 proxy profile or the Full L7 proxy profile, then one of a plurality of DMA mechanisms may be selected for processing the packets in the flow.
  • the data store 32 may store data from multiple data sources which may be utilized for DMA selection and may include a plurality of data entry tables.
  • the data store 32 is illustrated in FIG. 4 .
  • the data store 32 has a client n-tuple of 128K data entry table 54 for storing a set of client side flow information and transform information and a server n-tuple of 128K data entry table 56 for storing a set of server side flow information and transform information.
  • the transform information may include for example information of translating the server side IP into a client side IP while responding to a client request or vice versa.
  • VLAN virtual local area network
  • IP self internet protocol
  • the filtered header data may include a set of flow and transform information for example, source IP address, destination IP address, server source, pool member, and may be compared with the set of flow information and transform information stored in the client n-tuples 54 and the server n-tuples 56 .
  • the replicated filtered data in the client n-tuples 54 and the server n-tuples 56 of the data store may be deleted or eliminated.
  • the Network Interface Controller (NIC) 24 of the network traffic management apparatus 12 operatively couples and communicates between the network traffic management apparatus 12 , server devices 14 ( 1 )- 14 ( n ), and client devices 16 ( 1 )- 16 ( n ), which are coupled together at least in part by the communication network(s) 18 ( 1 ) and 18 ( 2 ), although other types or numbers of communication networks or systems with other types or numbers of connections or configurations to other devices or elements can also be used.
  • the communication network(s) 18 ( 1 ) and 18 ( 2 ) can include local area network(s) (LAN(s)) or wide area network(s) (WAN(s)), and can use TCP/IP over Ethernet and industry-standard protocols, although other types or numbers of protocols or communication networks can be used.
  • the communication network(s) 18 ( 1 ) and 18 ( 2 ) in this example can employ any suitable interface mechanisms and network communication technologies including, for example, teletraffic in any suitable form (e.g., voice, modem, and the like), Public Switched Telephone Network (PSTNs), Ethernet-based Packet Data Networks (PDNs), combinations thereof, and the like.
  • PSTNs Public Switched Telephone Network
  • PDNs Packet Data Networks
  • the network interface controller 24 is configured to receive packets by the Ethernet medium access control (MAC) or port 48 which are provided to a DMA selector mechanism 36 .
  • the DMA selector mechanism 36 that inspects, filters, and selects one or more DMA behavior mechanisms.
  • a disaggregartor 38 disaggregates each of the packets to one of the selected DMA behavior mechanisms in Queue- 1 40 to Queue-n 44 to be processed and then output by a dequeuing device 46 .
  • the network traffic management apparatus 12 is illustrated in this example as including a single device, the network traffic management apparatus 12 in other examples can include a plurality of devices or blades each having one or more processors (each processor with one or more processing cores) that implement one or more steps of this technology.
  • one or more of the devices can have a dedicated communication interface or memory.
  • one or more of the devices can utilize the memory, communication interface, or other hardware or software components of one or more other devices included in the network traffic management apparatus 12 .
  • one or more of the devices that together comprise the network traffic management apparatus 12 in other examples can be stand-alone devices or integrated with one or more other devices or apparatuses, such as one or more of the server devices 14 ( 1 )- 14 ( n ), for example.
  • one or more of the devices of the network traffic management apparatus 12 in these examples can be in a same or a different communication network including one or more public, private, or cloud networks, for example.
  • Each of the server devices 14 ( 1 )- 14 ( n ) of the network traffic management system 10 in this example includes one or more processors, a memory, and a network interface controller, which are coupled together by a bus or other communication link, although other numbers and/or types of network devices could be used.
  • the server devices 14 ( 1 )- 14 ( n ) in this example can include application servers, database servers, access control servers, or encryption servers, for example, that exchange communications along communication paths expected based on application logic in order to facilitate interactions with an application by users of the client devices 16 ( 1 )- 16 ( n ).
  • one or more of the server devices 14 ( 1 )- 14 ( n ) process login and other requests received from the client devices 16 ( 1 )- 16 ( n ) via the communication network(s) 18 ( 1 ) and 18 ( 2 ) according to the HTTP-based application RFC protocol, for example.
  • a web application may be operating on one or more of the server devices 14 ( 1 )- 14 ( n ) and transmitting data (e.g., files or web pages) to the client devices 16 ( 1 )- 16 ( n ) (e.g., via the network traffic management apparatus 12 ) in response to requests from the client devices 16 ( 1 )- 16 ( n ).
  • the server devices 14 ( 1 )- 14 ( n ) may be hardware or software or may represent a system with multiple servers in a pool, which may include internal or external networks.
  • server devices 14 ( 1 )- 14 ( n ) are illustrated as single devices, one or more actions of each of the server devices 14 ( 1 )- 14 ( n ) may be distributed across one or more distinct network computing devices that together comprise one or more of the server devices 14 ( 1 )- 14 ( n ).
  • the server devices 14 ( 1 )- 14 ( n ) are not limited to a particular configuration.
  • the server devices 14 ( 1 )- 14 ( n ) may contain network computing devices that operate using a master/slave approach, whereby one of the network computing devices of the server devices 14 ( 1 )- 14 ( n ) operate to manage or otherwise coordinate operations of the other network computing devices.
  • the server devices 14 ( 1 )- 14 ( n ) may operate as a plurality of network computing devices within a cluster architecture, a peer-to peer architecture, virtual machines, or within a cloud architecture, for example.
  • one or more of the server devices 14 ( 1 )- 14 ( n ) can operate within the network traffic management apparatus 12 itself rather than as a stand-alone server device communicating with the network traffic management apparatus 12 via communication network(s) 18 ( 2 ).
  • the one or more of the server devices 14 ( 1 )- 14 ( n ) operate within the memory 22 of the network traffic management apparatus 12 .
  • the client devices 16 ( 1 )- 16 ( n ) of the network traffic management system 10 in this example include any type of computing device that can exchange network data, such as mobile, desktop, laptop, or tablet computing devices, virtual machines (including cloud-based computers), or the like.
  • Each of the client devices 16 ( 1 )- 16 ( n ) in this example includes a processor, a memory, and a communication interface, which are coupled together by a bus or other communication link (not illustrated), although other numbers or types of components could also be used.
  • the client devices 16 ( 1 )- 16 ( n ) may run interface applications, such as standard web browsers or standalone client applications, which may provide an interface to make requests for, and receive content stored on, one or more of the server devices 14 ( 1 )- 14 ( n ) via the communication network(s) 18 ( 1 ) and 18 ( 2 ).
  • the client devices 16 ( 1 )- 16 ( n ) may further include a display device, such as a display screen or touchscreen, or an input device, such as a keyboard for example (not illustrated).
  • one or more of the client devices 16 ( 1 )- 16 ( n ) can be configured to execute software code (e.g., JavaScript code within a web browser) in order to log client-side data and provide the logged data to the network traffic management apparatus 12 , as described and illustrated in more detail later.
  • software code e.g., JavaScript code within a web browser
  • server devices 14 ( 1 )- 14 ( n ), client devices 16 ( 1 )- 16 ( n ), and communication network(s) 18 ( 1 ) and 18 ( 2 ) are described and illustrated herein, other types or numbers of systems, devices, components, or elements in other topologies can be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s).
  • One or more of the components depicted in the network security system 10 may be configured to operate as virtual instances on the same physical machine.
  • one or more of the network traffic management apparatus 12 , server devices 14 ( 1 )- 14 ( n ), or client devices 16 ( 1 )- 16 ( n ) may operate on the same physical device rather than as separate devices communicating through communication network(s) 18 ( 1 ) or 18 ( 2 ).
  • two or more computing systems or devices can be substituted for any one of the systems or devices in any example. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples.
  • the examples may also be implemented on computer system(s) that extend across any suitable network using any suitable interface mechanisms and traffic technologies, including by way of example only, wireless traffic networks, cellular traffic networks, Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof.
  • PDNs Packet Data Networks
  • the examples may also be embodied as one or more non-transitory computer readable media having instructions stored thereon, such as in the memory 22 , for one or more aspects of the present technology, as described and illustrated by way of the examples herein.
  • the instructions in some examples include executable code that, when executed by one or more processors, such as the processor(s) 20 , cause the processors to carry out steps necessary to implement the methods of the examples of this technology that are described and illustrated herein.
  • the network traffic management apparatus 12 receives a plurality of packets from the client devices 16 ( 1 )- 16 ( n ) requesting a service at network interface controller 24 , although the packets could be received from other sources.
  • Each of the plurality of packets may include a variety of different types of data, such as packet header data and payload data by way of example.
  • step 510 the network traffic management apparatus 12 performs an inspection of the packet header data in each of the plurality of packets to determine source address data and destination address data from the packet header data, although other types of data in each of the plurality of packets could be inspected and determined.
  • the network traffic management apparatus 12 filters the determined source address data and destination address data from the packet header data for each packet using one or more filtering criteria stored in the filtering criteria data storage 28 to obtain filtered data, although other data may be filtered from the packet header data.
  • the stored filtering criteria may include by way of example, virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, self-internet protocol (IP) criteria and/or tenant account data described further in detail below. Examples of this filtering using the virtual local area network (VLAN) data criteria are described below with reference to FIG. 7 .
  • the packet header data is inspected to obtain a destination address data, such as a destination IP address of 10.0.0.1:80 which is a virtual server internet protocol (IP) address.
  • IP internet protocol
  • the network traffic management apparatus 12 may map this virtual server IP address to stored profile data associated with for example an L4 proxy profile. This process of mapping the virtual server IP address to the profile data is considered filtering with VLAN data criteria.
  • the packet header is inspected to obtain a source address data, such as a source IP address and the port number. Since this is a response coming in from the server for which earlier load balancing decisions had been made based on the earlier client request packet header data which was associated with for example, the L4 proxy profile, this packet that is associated with the server response will also be associated with the L4 proxy profile associated with the client request by the network traffic management apparatus. Since the L4 proxy profile in this example is associated with, for example the contiguous ring DMA behavior mechanism, then the contiguous ring DMA behavior mechanism is selected to service this packet associated with the server response.
  • This process of mapping the server response to the profile data based on listening for the client request profile is considered filtering with listening data criteria. Although two examples of filtering are provided above with reference to FIG. 7 , other types filtering may be used.
  • the network traffic management apparatus 12 may filter from the packet header data source IP which may be matched to identify packets in received traffic for load balancing.
  • the network traffic management apparatus 12 may filter from the packet header data in received packets the local host's IP address (self-IP) in the destination IP to be used in NAT'ing behaviour.
  • This example represents traffic where only the headers need be examined to provide the translation service.
  • a security engine in or associated with the network traffic management apparatus 12 may have determined that a specific IP time to live field value has been associated with hacker activity in traffic. Accordingly, in this example, the network traffic management apparatus 12 may filter packets in traffic matching this criteria and would send those matching packets to a full L7 proxy for deep inspection.
  • the network traffic management apparatus 12 may select one or more optimized DMA behavior mechanisms from a plurality of optimized DMA behavior mechanisms for each of the packets based on the filtered packet header data. For example, the filtering which mapped the packet header data to the L4 proxy profile can now be used to select either a header behavior mechanism or contiguous ring mechanism for the packet based on the association with the L4 proxy profile. In other examples, the filtering associates the packets with other proxy profiles which are correlated to other DMA behavior mechanisms. In other examples, the filtering may select DMA behavior based on a comparison of packet length against MTU. A NAT'ing application that also employs IP fragmentation may choose to direct packets for fragmentation through a contiguous ring instead of header mechanism.
  • the ingress physical port may also be used in the filtering process.
  • packets arriving from a client warrant examination and thus require a contiguous ring. Packet from servers will only require header mechanism. If the ingress physical port can be used to distinguish client from server, then the ingress physical port will be used in the filtering mechanism to select DMA behavior.
  • DMA behavior mechanisms which may be selected may include the scatter/gather mechanism, the contiguous ring mechanism, the dis-contiguous ring mechanism and the header behavior mechanism, although other types and/or numbers of mechanisms may be used.
  • a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers.
  • the buffers are given in a vector of buffers, and the packets in this scatter/gather mechanism are long lived.
  • the scatter/gather mechanism refers to the process of gathering data from, or scattering data into, the given set of buffers.
  • a scatter/gather I/O can operate synchronously or asynchronously and may be used for efficiency and convenience.
  • a buffer With the contiguous ring mechanism, upon receiving the packets from the client, a buffer holds the packets for a pre-determined period of time before the packets are transmitted to the server. With this contiguous ring mechanism, the packets arrive inline and are processed in a standard manner upon arrival. The size of the contiguous ring dictates the amount of data that can be stored and a fixed maximum speed of data transfer provides a maximum time in which the incoming packet must be processed.
  • the dis-contiguous ring mechanism is an optimized form of the contiguous ring mechanism.
  • the dis-contiguous ring mechanism resembles the contiguous ring mechanism, however with the dis-contiguous ring mechanism when the data arrives a determination is made to identify which of the arrived data requires a longer processing time than a threshold. Upon the determining that data requires a longer processing time, that data is skipped which may result in holes or gaps in the buffer for this skipped data.
  • payload data including predictably located values may be inspected and based on the inspected data the packets are then forwarded.
  • the network traffic management apparatus 12 disaggregates each of the plurality of incoming packets based on the corresponding selected one of the optimized DMA behavior mechanisms to the one or more queues, wherein the queues are a data structure for processing packets as illustrated by way of example back in FIG. 3 .
  • the packets are disaggregated by the disaggregator 38 into one of the Queue- 1 40 to Queue-n 44 to be processed using the selected DMA behavior mechanisms for the particular Queue- 1 40 to Queue-n 44 , such as the selected scatter/gather mechanism, contiguous ring mechanism, header behavior mechanism, or dis-contiguous ring behavior mechanism by way of example.
  • an increased efficiency with network load balancing is provided by this technology intelligently processing different types of traffic with an associated DMA behavior mechanism which improves CPU, CPU cache, DRAM or Bus Bandwidth utilization resulting in improved experience for users of client devices.
  • this technology provides advantages of optimized utilization of NIC storage to eliminate duplicated data to reduce size of entry tables which reduces costs for utilizing expensive storage devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Methods, non-transitory computer readable media, network traffic management apparatuses, and network traffic management systems include inspecting a plurality of incoming packets to obtain packet header data for each of the incoming packets. The packet header data is filtered using one or more filtering criteria. At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data. The incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.

Description

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 62/642,725 filed Mar. 14, 2018, which is hereby incorporated by reference in its entirety.
FIELD
This technology generally relates to traffic dependent direct memory access (DMA) optimization.
BACKGROUND
Today, software and hardware interact in a rigid way. Network interface controllers (NICs) provide only a single DMA (direct memory access) behavior mechanism, such as deciding how to lay down buffers and interact with the driver. With a single DMA behavior mechanism, upon receiving packets by the NICs, the packets are transmitted to a queue. This transmission of the packets into the queue by the NICs is independent of the contents included in the packet and the flow associated with the packet. However, different types of packets based on their content would have increased efficiency if alternate DMA behavior mechanisms were utilized, such as mechanisms with improved use of CPU cache, CPU, or DRAM.
SUMMARY
A method, implemented by a network traffic management system comprising one or more network traffic management apparatuses, server devices or client devices, includes inspecting a plurality of incoming packets to obtain packet header data for each of the incoming packets. The packet header data is filtered using one or more filtering criteria. At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data. The incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
A network traffic management apparatus including memory including programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to inspect a plurality of incoming packets to obtain packet header data for each of the incoming packets. The packet header data is filtered using one or more filtering criteria. At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data. The incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
A non-transitory computer readable medium having stored thereon instructions for including executable code that, when executed by one or more processors, causes the processors to inspect a plurality of incoming packets to obtain packet header data for each of the incoming packets. The packet header data is filtered using one or more filtering criteria. At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data. The incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
A network traffic management system includes one or more traffic management modules, server modules, or client modules, memory comprising programmed instructions stored thereon, and one or more processors configured to be capable of executing the stored programmed instructions to a plurality of incoming packets to obtain packet header data for each of the incoming packets. The packet header data is filtered using one or more filtering criteria. At least one of a plurality of optimized DMA behavior mechanisms for each of the incoming packets are selected based on associating the filtered header data for each of the incoming packets with stored profile data. The incoming packets are disaggregated based on the corresponding selected one of the optimized DMA behavior mechanisms.
This technology has a number of advantages including providing methods, non-transitory computer readable media, network traffic management apparatuses, and network traffic management systems that provide increased efficiency with network load balancing by intelligently processing different types of traffic with a correlated one of a plurality of DMA behavior mechanism. This correlation improves CPU, CPU cache, DRAM or Bus Bandwidth utilization resulting in an improved experience for client devices. As a result, this technology provides optimized utilization of NIC storage to eliminate duplicated data to reduce size of entry tables which reduces costs for utilizing expensive storage devices.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an exemplary network traffic management system with a network traffic management apparatus;
FIG. 2 is a block diagram of an exemplary network traffic management apparatus;
FIG. 3 is a functional block diagram of the Network Interface Controller in the exemplary network traffic management apparatus shown in FIG. 2 ;
FIG. 4 is a block diagram of an example of a data store in the exemplary network traffic management apparatus shown in FIG. 2 .
FIG. 5 is a flowchart of an exemplary method for traffic dependent direct memory access optimization; and
FIG. 6 is a functional block diagram of an example of a disaggregation in the exemplary method for traffic dependent direct memory access optimization shown in FIG. 5 ; and
FIG. 7 is a functional block diagram of an example of filtering in the exemplary method for traffic dependent direct memory access optimization shown in FIG. 5 .
DETAILED DESCRIPTION
Referring to FIG. 1 , an exemplary network environment that
incorporates an exemplary network traffic management system 10 is illustrated. The network traffic management system 10 in this example includes a network traffic management apparatus 12 that is coupled to server devices 14(1)-14(n), and client devices 16(1)-16(n) via communication network(s) 18(1) and 18(2), although the network traffic management apparatus 12, server devices 14(1)-14(n), and client devices 16(1)-16(n) may be coupled together via other topologies. The network traffic management system 10 may include other network devices such as one or more routers or switches, for example, which are known in the art and thus will not be described herein. This technology provides a number of advantages including methods, non-transitory computer readable media, network traffic management systems, and network traffic management apparatuses that provide an increased efficiency of network load balancing by intelligently processing different types of traffic with a correlated one of a plurality of DMA behavior mechanism.
In this particular example, the network traffic management apparatus 12, server devices 14(1)-14(n), and client devices 16(1)-16(n) are disclosed in FIG. 1 as dedicated hardware devices. However, one or more of the network traffic management apparatus 12, server devices 14(1)-14(n), or client devices 16(1)-16(n) can also be implemented in software within one or more other devices in the network traffic management system 10. As used herein, the term “module” refers to either an implementation as a dedicated hardware device or apparatus, or an implementation in software hosted by another hardware device or apparatus that may be hosting one or more other software components or implementations.
As one example, the network traffic management apparatus 12, as well as any of its components, models, or applications, can be a module implemented as software executing on one of the server devices 14(1)-14(n), and many other permutations and types of implementations can also be used in other examples. Moreover, any or all of the network traffic management apparatus 12, server devices 14(1)-14(n), and client devices 16(1)-16(n), can be implemented, and may be referred to herein, as a module.
Referring to FIGS. 1-4 , the network traffic management apparatus of the network traffic management system 10 may perform any number of functions including managing network traffic, load balancing network traffic across the server devices 14(1)-14(n), or accelerating network traffic associated with web applications hosted by the server devices 14(1)-14(n). The network traffic management apparatus 12 in this example includes one or more processor(s) 20, a memory 22, and a communication interface 24, which are coupled together by a bus 26, although the network traffic management apparatus 12 can include other types or numbers of elements in other configurations.
The processor(s) 20 of the network traffic management apparatus 12 may execute programmed instructions stored in the memory 22 of the network traffic management apparatus 12 for any number of the functions identified above. The processor(s) 20 of the network traffic management apparatus 12 may include one or more central processing units (CPUs) or general purpose processors with one or more processing cores, for example, although other types of processor(s) can also be used.
The memory 22 of the network traffic management apparatus 12 stores these programmed instructions for one or more aspects of the present technology as described and illustrated herein, although some or all of the programmed instructions could be stored elsewhere. A variety of different types of memory storage devices, such as random access memory (RAM), read only memory (ROM), hard disk, solid state drives, flash memory, or other computer readable medium which is read from and written to by a magnetic, optical, or other reading and writing system that is coupled to the processor(s) 20, can be used for the memory 22.
Accordingly, the memory 22 of the network traffic management apparatus 12 can store one or more applications that can include computer executable instructions that, when executed by the network traffic management apparatus 12, cause the network traffic management apparatus 12 to perform actions, such as to transmit, receive, or otherwise process messages, for example, and to perform other actions described and illustrated below with reference to FIGS. 5-7 . The application(s) can be implemented as components of other applications. Further, the application(s) can be implemented as operating system extensions, plugins, or the like.
Even further, the application(s) may be operative in a cloud-based computing environment. The application(s) can be executed within or as virtual machine(s) or virtual server(s) that may be managed in a cloud-based computing environment. Also, the application(s), and even the network traffic management apparatus 12 itself, may be located in virtual server(s) running in a cloud-based computing environment rather than being tied to one or more specific physical network computing devices. Also, the application(s) may be running in one or more virtual machines (VMs) executing on the network traffic management apparatus 12. Additionally, in one or more examples of this technology, virtual machine(s) running on the network traffic management apparatus 12 may be managed or supervised by a hypervisor.
In this particular example, the memory 22 of the network traffic management apparatus 12 may include a filtering criteria data storage 28, data store 32, profile data storage 30, although the memory 22 can include other policies, modules, databases, or applications, for example.
The filtering criteria stored in the filtering criteria data storage 28 may include by way of example, virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, and self-internet protocol (IP) criteria, although other types and numbers of criteria may be used.
The profile data storage 30 may include profile data, such as Layer-4 Proxy Profile (L4 proxy profile), Partial Layer-7 proxy profile (Partial L7 proxy profile), Full Layer-7 proxy profile (Full L7 proxy profile) and associated rules for selecting one or more DMA behavior mechanisms.
The L4 proxy profile includes one or more policies used to make a determination about the particular processing of each packet. With the L4 proxy profile, processing is on a packet by packet basis and acknowledgements are not required which reduces overhead.
The Partial L7 proxy profile in the profile data storage 30 includes one or more policies for processing packets associated with a flow, such as HTTP packets by way of example. With the Partial L7 proxy profile, packets are processed on a per-flow-basis instead of packet by packet basis and then allocated to a particular one of the server devices 14(1)-14(n) based on one of plurality identified types of flow.
The Full L7 proxy profile in the profile data storage 30 also includes one or more policies for processing packets associated with a flow, such as HTTP packets by way of example. With the Full L7 proxy profile, all the packets associated with a flow are collected and then processed. By way of example, this processing may comprise examining the full stream of traffic for virus or attack signatures. By way of another example, this processing may include examining an HTTP request's URL for special processing such as compression, although other types of processing may be performed.
The stored associated rules are used to select one or more optimized DMA behavior mechanisms. By way of example only, one of the rules for selecting one of the DMA behavior mechanisms may comprise determining when a packet is processed using a L4 proxy profile. Upon determining the packet is processed using the L4 proxy profile, another one of the rules may be used to determine whether the Header DMA mechanism or the Contiguous Ring DMA mechanism is selected for processing the packet. In other examples, the rules may comprise determining whether a flow is being processed by either the Partial L7 proxy profile or the Full L7 proxy profile. Upon determining the packet is processed using either the Partial L7 proxy profile or the Full L7 proxy profile, then one of a plurality of DMA mechanisms may be selected for processing the packets in the flow.
The data store 32 may store data from multiple data sources which may be utilized for DMA selection and may include a plurality of data entry tables. By way of a further example, the data store 32 is illustrated in FIG. 4 . In this example, the data store 32 has a client n-tuple of 128K data entry table 54 for storing a set of client side flow information and transform information and a server n-tuple of 128K data entry table 56 for storing a set of server side flow information and transform information. The transform information may include for example information of translating the server side IP into a client side IP while responding to a client request or vice versa. Additionally, during a filtering process the filtering criteria, virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, or self internet protocol (IP) criteria may compared against the data stored in the client n-tuples 54 and the server n-tuples 56 in the data store 32. The filtered header data may include a set of flow and transform information for example, source IP address, destination IP address, server source, pool member, and may be compared with the set of flow information and transform information stored in the client n-tuples 54 and the server n-tuples 56. When the filtered header data in the memory is replicated in the client n-tuples 54 and the server n-tuples 56, the replicated filtered data in the client n-tuples 54 and the server n-tuples 56 of the data store may be deleted or eliminated.
Referring to FIGS. 1-2 and 4 , the Network Interface Controller (NIC) 24 of the network traffic management apparatus 12 operatively couples and communicates between the network traffic management apparatus 12, server devices 14(1)-14(n), and client devices 16(1)-16(n), which are coupled together at least in part by the communication network(s) 18(1) and 18(2), although other types or numbers of communication networks or systems with other types or numbers of connections or configurations to other devices or elements can also be used.
By way of example only, the communication network(s) 18(1) and 18(2) can include local area network(s) (LAN(s)) or wide area network(s) (WAN(s)), and can use TCP/IP over Ethernet and industry-standard protocols, although other types or numbers of protocols or communication networks can be used. The communication network(s) 18(1) and 18(2) in this example can employ any suitable interface mechanisms and network communication technologies including, for example, teletraffic in any suitable form (e.g., voice, modem, and the like), Public Switched Telephone Network (PSTNs), Ethernet-based Packet Data Networks (PDNs), combinations thereof, and the like.
Referring to FIG. 3 , a functional block diagram of an example of the network interface controller 24 in the exemplary network traffic management apparatus 12 is illustrated, although other configurations for the network interface controller can be used. In this example, the network interface controller 24 is configured to receive packets by the Ethernet medium access control (MAC) or port 48 which are provided to a DMA selector mechanism 36. The DMA selector mechanism 36 that inspects, filters, and selects one or more DMA behavior mechanisms. Next, after the selection by the DMS selector mechanism 36, a disaggregartor 38 disaggregates each of the packets to one of the selected DMA behavior mechanisms in Queue-1 40 to Queue-n 44 to be processed and then output by a dequeuing device 46.
While the network traffic management apparatus 12 is illustrated in this example as including a single device, the network traffic management apparatus 12 in other examples can include a plurality of devices or blades each having one or more processors (each processor with one or more processing cores) that implement one or more steps of this technology. In these examples, one or more of the devices can have a dedicated communication interface or memory. Alternatively, one or more of the devices can utilize the memory, communication interface, or other hardware or software components of one or more other devices included in the network traffic management apparatus 12.
Additionally, one or more of the devices that together comprise the network traffic management apparatus 12 in other examples can be stand-alone devices or integrated with one or more other devices or apparatuses, such as one or more of the server devices 14(1)-14(n), for example. Moreover, one or more of the devices of the network traffic management apparatus 12 in these examples can be in a same or a different communication network including one or more public, private, or cloud networks, for example.
Each of the server devices 14(1)-14(n) of the network traffic management system 10 in this example includes one or more processors, a memory, and a network interface controller, which are coupled together by a bus or other communication link, although other numbers and/or types of network devices could be used. The server devices 14(1)-14(n) in this example can include application servers, database servers, access control servers, or encryption servers, for example, that exchange communications along communication paths expected based on application logic in order to facilitate interactions with an application by users of the client devices 16(1)-16(n).
Accordingly, in some examples, one or more of the server devices 14(1)-14(n) process login and other requests received from the client devices 16(1)-16(n) via the communication network(s) 18(1) and 18(2) according to the HTTP-based application RFC protocol, for example. A web application may be operating on one or more of the server devices 14(1)-14(n) and transmitting data (e.g., files or web pages) to the client devices 16(1)-16(n) (e.g., via the network traffic management apparatus 12) in response to requests from the client devices 16(1)-16(n). The server devices 14(1)-14(n) may be hardware or software or may represent a system with multiple servers in a pool, which may include internal or external networks.
Although the server devices 14(1)-14(n) are illustrated as single devices, one or more actions of each of the server devices 14(1)-14(n) may be distributed across one or more distinct network computing devices that together comprise one or more of the server devices 14(1)-14(n). Moreover, the server devices 14(1)-14(n) are not limited to a particular configuration. Thus, the server devices 14(1)-14(n) may contain network computing devices that operate using a master/slave approach, whereby one of the network computing devices of the server devices 14(1)-14(n) operate to manage or otherwise coordinate operations of the other network computing devices. The server devices 14(1)-14(n) may operate as a plurality of network computing devices within a cluster architecture, a peer-to peer architecture, virtual machines, or within a cloud architecture, for example.
Thus, the technology disclosed herein is not to be construed as being limited to a single environment and other configurations and architectures are also envisaged. For example, one or more of the server devices 14(1)-14(n) can operate within the network traffic management apparatus 12 itself rather than as a stand-alone server device communicating with the network traffic management apparatus 12 via communication network(s) 18(2). In this example, the one or more of the server devices 14(1)-14(n) operate within the memory 22 of the network traffic management apparatus 12.
The client devices 16(1)-16(n) of the network traffic management system 10 in this example include any type of computing device that can exchange network data, such as mobile, desktop, laptop, or tablet computing devices, virtual machines (including cloud-based computers), or the like. Each of the client devices 16(1)-16(n) in this example includes a processor, a memory, and a communication interface, which are coupled together by a bus or other communication link (not illustrated), although other numbers or types of components could also be used.
The client devices 16(1)-16(n) may run interface applications, such as standard web browsers or standalone client applications, which may provide an interface to make requests for, and receive content stored on, one or more of the server devices 14(1)-14(n) via the communication network(s) 18(1) and 18(2). The client devices 16(1)-16(n) may further include a display device, such as a display screen or touchscreen, or an input device, such as a keyboard for example (not illustrated). Additionally, one or more of the client devices 16(1)-16(n) can be configured to execute software code (e.g., JavaScript code within a web browser) in order to log client-side data and provide the logged data to the network traffic management apparatus 12, as described and illustrated in more detail later.
Although the exemplary network traffic management system 10 with the network traffic management apparatus 12, server devices 14(1)-14(n), client devices 16(1)-16(n), and communication network(s) 18(1) and 18(2) are described and illustrated herein, other types or numbers of systems, devices, components, or elements in other topologies can be used. It is to be understood that the systems of the examples described herein are for exemplary purposes, as many variations of the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art(s).
One or more of the components depicted in the network security system 10, such as the network traffic management apparatus 12, server devices 14(1)-14(n), or client devices 16(1)-16(n), for example, may be configured to operate as virtual instances on the same physical machine. In other words, one or more of the network traffic management apparatus 12, server devices 14(1)-14(n), or client devices 16(1)-16(n) may operate on the same physical device rather than as separate devices communicating through communication network(s) 18(1) or 18(2). Additionally, there may be more or fewer network traffic management apparatuses, client devices, or server devices than illustrated in FIG. 1 .
In addition, two or more computing systems or devices can be substituted for any one of the systems or devices in any example. Accordingly, principles and advantages of distributed processing, such as redundancy and replication also can be implemented, as desired, to increase the robustness and performance of the devices and systems of the examples. The examples may also be implemented on computer system(s) that extend across any suitable network using any suitable interface mechanisms and traffic technologies, including by way of example only, wireless traffic networks, cellular traffic networks, Packet Data Networks (PDNs), the Internet, intranets, and combinations thereof.
The examples may also be embodied as one or more non-transitory computer readable media having instructions stored thereon, such as in the memory 22, for one or more aspects of the present technology, as described and illustrated by way of the examples herein. The instructions in some examples include executable code that, when executed by one or more processors, such as the processor(s) 20, cause the processors to carry out steps necessary to implement the methods of the examples of this technology that are described and illustrated herein.
An exemplary method of traffic dependent DMA behavior will now be described with reference to FIGS. 1-7 . Referring more specifically to FIG. 5 , in step 500 in this example, the network traffic management apparatus 12 receives a plurality of packets from the client devices 16(1)-16(n) requesting a service at network interface controller 24, although the packets could be received from other sources. Each of the plurality of packets may include a variety of different types of data, such as packet header data and payload data by way of example.
In step 510, the network traffic management apparatus 12 performs an inspection of the packet header data in each of the plurality of packets to determine source address data and destination address data from the packet header data, although other types of data in each of the plurality of packets could be inspected and determined.
In step 520, the network traffic management apparatus 12 filters the determined source address data and destination address data from the packet header data for each packet using one or more filtering criteria stored in the filtering criteria data storage 28 to obtain filtered data, although other data may be filtered from the packet header data. The stored filtering criteria may include by way of example, virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, self-internet protocol (IP) criteria and/or tenant account data described further in detail below. Examples of this filtering using the virtual local area network (VLAN) data criteria are described below with reference to FIG. 7 .
In this example, when the received packet is originating from a client request, and the packet is received over, for example, a VLAN 1, the packet header data is inspected to obtain a destination address data, such as a destination IP address of 10.0.0.1:80 which is a virtual server internet protocol (IP) address. The network traffic management apparatus 12 may map this virtual server IP address to stored profile data associated with for example an L4 proxy profile. This process of mapping the virtual server IP address to the profile data is considered filtering with VLAN data criteria.
In another example, when the received packet is originating from a server response and the packet is received over, for example a VLAN 2, the packet header is inspected to obtain a source address data, such as a source IP address and the port number. Since this is a response coming in from the server for which earlier load balancing decisions had been made based on the earlier client request packet header data which was associated with for example, the L4 proxy profile, this packet that is associated with the server response will also be associated with the L4 proxy profile associated with the client request by the network traffic management apparatus. Since the L4 proxy profile in this example is associated with, for example the contiguous ring DMA behavior mechanism, then the contiguous ring DMA behavior mechanism is selected to service this packet associated with the server response. This process of mapping the server response to the profile data based on listening for the client request profile is considered filtering with listening data criteria. Although two examples of filtering are provided above with reference to FIG. 7 , other types filtering may be used.
By way of another example, when the network traffic management system 10 is providing TCP stack load balancing with URL matching with TLS decryption, then the network traffic management apparatus 12 may filter from the packet header data source IP which may be matched to identify packets in received traffic for load balancing.
In another example, when the network traffic management system 10 is providing network address translation (NAT'ing) behavior, then the network traffic management apparatus 12 may filter from the packet header data in received packets the local host's IP address (self-IP) in the destination IP to be used in NAT'ing behaviour. This example represents traffic where only the headers need be examined to provide the translation service.
In yet another example, a security engine in or associated with the network traffic management apparatus 12 may have determined that a specific IP time to live field value has been associated with hacker activity in traffic. Accordingly, in this example, the network traffic management apparatus 12 may filter packets in traffic matching this criteria and would send those matching packets to a full L7 proxy for deep inspection.
In step 530, the network traffic management apparatus 12 may select one or more optimized DMA behavior mechanisms from a plurality of optimized DMA behavior mechanisms for each of the packets based on the filtered packet header data. For example, the filtering which mapped the packet header data to the L4 proxy profile can now be used to select either a header behavior mechanism or contiguous ring mechanism for the packet based on the association with the L4 proxy profile. In other examples, the filtering associates the packets with other proxy profiles which are correlated to other DMA behavior mechanisms. In other examples, the filtering may select DMA behavior based on a comparison of packet length against MTU. A NAT'ing application that also employs IP fragmentation may choose to direct packets for fragmentation through a contiguous ring instead of header mechanism. In other examples, the ingress physical port may also be used in the filtering process. In a URL examination example, packets arriving from a client warrant examination and thus require a contiguous ring. Packet from servers will only require header mechanism. If the ingress physical port can be used to distinguish client from server, then the ingress physical port will be used in the filtering mechanism to select DMA behavior.
By way of example, other exemplary types of DMA behavior mechanisms which may be selected may include the scatter/gather mechanism, the contiguous ring mechanism, the dis-contiguous ring mechanism and the header behavior mechanism, although other types and/or numbers of mechanisms may be used.
With the scatter/gather mechanism, a single procedure call sequentially reads data from multiple buffers and writes it to a single data stream, or reads data from a data stream and writes it to multiple buffers. The buffers are given in a vector of buffers, and the packets in this scatter/gather mechanism are long lived. The scatter/gather mechanism refers to the process of gathering data from, or scattering data into, the given set of buffers. A scatter/gather I/O can operate synchronously or asynchronously and may be used for efficiency and convenience.
With the contiguous ring mechanism, upon receiving the packets from the client, a buffer holds the packets for a pre-determined period of time before the packets are transmitted to the server. With this contiguous ring mechanism, the packets arrive inline and are processed in a standard manner upon arrival. The size of the contiguous ring dictates the amount of data that can be stored and a fixed maximum speed of data transfer provides a maximum time in which the incoming packet must be processed.
The dis-contiguous ring mechanism is an optimized form of the contiguous ring mechanism. The dis-contiguous ring mechanism resembles the contiguous ring mechanism, however with the dis-contiguous ring mechanism when the data arrives a determination is made to identify which of the arrived data requires a longer processing time than a threshold. Upon the determining that data requires a longer processing time, that data is skipped which may result in holes or gaps in the buffer for this skipped data.
With the header behavior mechanism, upon receiving the packets the packet header data, payload data including predictably located values may be inspected and based on the inspected data the packets are then forwarded.
In step 540, the network traffic management apparatus 12 disaggregates each of the plurality of incoming packets based on the corresponding selected one of the optimized DMA behavior mechanisms to the one or more queues, wherein the queues are a data structure for processing packets as illustrated by way of example back in FIG. 3 . In this example, the packets are disaggregated by the disaggregator 38 into one of the Queue-1 40 to Queue-n 44 to be processed using the selected DMA behavior mechanisms for the particular Queue-1 40 to Queue-n 44, such as the selected scatter/gather mechanism, contiguous ring mechanism, header behavior mechanism, or dis-contiguous ring behavior mechanism by way of example.
Accordingly, as illustrated by way of the examples herein, an increased efficiency with network load balancing is provided by this technology intelligently processing different types of traffic with an associated DMA behavior mechanism which improves CPU, CPU cache, DRAM or Bus Bandwidth utilization resulting in improved experience for users of client devices. As a result, this technology provides advantages of optimized utilization of NIC storage to eliminate duplicated data to reduce size of entry tables which reduces costs for utilizing expensive storage devices.
Having thus described the basic concept of the invention, it will be rather apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only, and is not limiting. Various alterations, improvements, and modifications will occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested hereby, and are within the spirit and scope of the invention. Additionally, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes to any order except as may be specified in the claims. Accordingly, the invention is limited only by the following claims and equivalents thereto.

Claims (20)

What is claimed is:
1. A method for filtering and processing incoming packets implemented by a network traffic management system comprising one or more network traffic management apparatuses, server devices or client devices, the method comprising:
inspecting an incoming packet to obtain packet header data;
filtering the obtained packet header data for the incoming packet using a filtering criteria;
associating the filtered header data for the incoming packet with a stored network profile data, wherein the stored network profile data comprises proxy profiles and wherein the filtered header data comprises filtered source address data or destination address data from the packet header data which are associated with the proxy profiles;
selecting an optimized one of a plurality DMA behavior mechanism for the incoming packet based on the associated stored network profile data by using the proxy profiles associated with the filtered header data, the proxy profiles being correlated to one of the DMA behavior mechanisms, wherein the proxy profiles comprise a layer-4 proxy profile, a partial layer-7 proxy profile, or a full layer-7 proxy profile; and
disaggregating the incoming packet based on the corresponding selected optimized one of the plurality DMA behavior mechanism.
2. The method of claim 1, wherein the stored profile data comprises a rule for selecting the optimized DMA behavior mechanism; and
wherein the optimized DMA behavior mechanism comprise a scatter and gather mechanism, a contiguous ring mechanism, a dis-contiguous ring mechanism, or a header behavior mechanism.
3. The method of claim 1, wherein the filtering criteria comprises virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, or self-internet protocol (IP) criteria.
4. The method of claim 3, wherein the filtering the obtained packet header data for the incoming packet further comprises filtering using the listening data criteria, wherein the listening data criteria comprises listening for a virtual server internet protocol (IP) address; and
wherein the selecting further comprises selecting the contiguous ring mechanism or the header behavior mechanism for disaggregating the incoming packet, upon determining that the virtual server IP address matches a rule for selecting the contiguous ring mechanism or the header behavior mechanism.
5. The method of claim 1, further comprising
selecting the optimized DMA behavior mechanism based a policy associated with a tenant.
6. A network traffic management apparatus, comprising a memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:
inspect an incoming packet to obtain packet header data;
filter the obtained packet header data for the incoming packet using a filtering criteria;
associate the filtered header data for the incoming packet with a stored network profile data, wherein the stored network profile data comprises proxy profiles and wherein the filtered header data comprises filtered source address data or destination address data from the packet header data which are associated with the proxy profiles;
select an optimized one of a plurality DMA behavior mechanism for the incoming packet based on the associated stored network profile data by using the proxy profiles associated with the filtered header data, the proxy profiles each being correlated to one of the DMA behavior mechanisms, wherein the proxy profiles comprise a layer-4 proxy profile, a partial layer-7 proxy profile, or a full layer-7 proxy profile; and
disaggregate the incoming packet based on the corresponding selected optimized one of the plurality DMA behavior mechanism.
7. The network traffic management apparatus of claim 6, wherein the stored profile data comprises a rule for selecting the optimized DMA behavior mechanism; and
wherein the optimized DMA behavior mechanism comprise a scatter and gather mechanism, a contiguous ring mechanism, a dis-contiguous ring mechanism, or a header behavior mechanism.
8. The network traffic management apparatus of claim 6, wherein the one or more filtering criteria comprises virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, or self-internet protocol (IP) criteria.
9. The network traffic management apparatus of claim 8, wherein the one or more processors are further configured to be capable of executing the stored programmed instructions for the filter and the select to:
filter using the listening data criteria, wherein the listening data criteria comprises listening for a virtual server internet protocol (IP) address; and
select the contiguous ring mechanism or the header behavior mechanism for disaggregating the incoming packet, upon determining that the virtual server IP address matches a rule for selecting the contiguous ring mechanism or the header behavior mechanism.
10. The network traffic management apparatus of claim 6, wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:
select the optimized DMA behavior mechanism based a policy associated with a tenant.
11. A non-transitory computer readable medium having stored thereon instructions for filtering and processing incoming packets comprising executable code which when executed by one or more processors, causes the one or more processors to:
inspect an incoming packet to obtain packet header data;
filter the obtained packet header data for the incoming packet using a filtering criteria;
associate the filtered header data for the incoming packet with a stored network profile data, wherein the stored network profile data comprises proxy profiles and wherein the filtered header data comprises filtered source address data or destination address data from the packet header data which are associated with the proxy profiles;
select an optimized one of a plurality DMA behavior mechanism for the incoming packet based on the associated stored network profile data by using the proxy profiles associated with the filtered header data, the proxy profiles each being correlated to one of the DMA behavior mechanisms, wherein the proxy profiles comprise a layer-4 proxy profile, a partial layer-7 proxy profile, or a full layer-7 proxy profile; and
disaggregate the incoming packet based on the corresponding selected optimized one of the plurality DMA behavior mechanism.
12. The non-transitory computer readable medium of claim 11, wherein the stored profile data comprises a rule for selecting the optimized DMA behavior mechanism; and
wherein the optimized DMA behavior mechanism comprise a scatter and gather mechanism, a contiguous ring mechanism, a dis-contiguous ring mechanism, or a header behavior mechanism.
13. The non-transitory computer readable medium of claim 11, wherein the one or more filtering criteria comprises virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, or self-internet protocol (IP) criteria.
14. The non-transitory computer readable medium of claim 13, wherein the executable code when executed by the one or more processors further causes the one or more processors for the filter and the select to:
filter using the listening data criteria, wherein the listening data criteria comprises listening for a virtual server internet protocol (IP) address; and
select the contiguous ring mechanism or the header behavior mechanism for disaggregating the incoming packet, upon determining that the virtual server IP address matches a rule for selecting the contiguous ring mechanism or the header behavior mechanism.
15. The non-transitory computer readable medium of claim 11, wherein the executable code when executed by the one or more processors further causes the one or more processors to:
select the optimized DMA behavior mechanism based a policy associated with a tenant.
16. A network traffic management system, comprising one or more traffic management apparatuses, client devices, or server devices, the network traffic management system comprising memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:
inspect an incoming packet to obtain packet header data;
filter the obtained packet header data for the incoming packet using a filtering criteria;
associate the filtered header data for the incoming packet with a stored network profile data, wherein the stored network profile data comprises proxy profiles and wherein the filtered header data comprises filtered source address data or destination address data from the packet header data which are associated with the proxy profiles;
select an optimized one of a plurality DMA behavior mechanism for the incoming packet based on the associated stored network profile data by using the proxy profiles associated with the filtered header data, the proxy profiles each being correlated to one of the DMA behavior mechanisms, wherein the proxy profiles comprise a layer-4 proxy profile, a partial layer-7 proxy profile, or a full layer-7 proxy profile; and
disaggregate the incoming packet based on the corresponding selected optimized one of the plurality DMA behavior mechanism.
17. The network traffic management system of claim 16, wherein the stored profile data comprises a rule for selecting the optimized DMA behavior mechanism; and
wherein the optimized DMA behavior mechanism comprise a scatter and gather mechanism, a contiguous ring mechanism, a dis-contiguous ring mechanism, or a header behavior mechanism.
18. The network traffic management system of claim 16, wherein the one or more filtering criteria comprises virtual local area network (VLAN) data criteria, listening data criteria, pool members data criteria, or self-internet protocol (IP) criteria.
19. The network traffic management system of claim 18, wherein the one or more processors are further configured to be capable of executing the stored programmed instructions for the filter and the select to:
filter using the listening data criteria, wherein the listening data criteria comprises listening for a virtual server internet protocol (IP) address; and
select the contiguous ring mechanism or the header behavior mechanism for disaggregating the incoming packet, upon determining that the virtual server IP address matches a rule for selecting the contiguous ring mechanism or the header behavior mechanism.
20. The network traffic management system of claim 16, wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:
select the optimized DMA behavior mechanism based a policy associated with a tenant.
US16/353,868 2018-03-14 2019-03-14 Methods for traffic dependent direct memory access optimization and devices thereof Active US11855898B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/353,868 US11855898B1 (en) 2018-03-14 2019-03-14 Methods for traffic dependent direct memory access optimization and devices thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862642725P 2018-03-14 2018-03-14
US16/353,868 US11855898B1 (en) 2018-03-14 2019-03-14 Methods for traffic dependent direct memory access optimization and devices thereof

Publications (1)

Publication Number Publication Date
US11855898B1 true US11855898B1 (en) 2023-12-26

Family

ID=89384321

Family Applications (1)

Application Number Title Priority Date Filing Date
US16/353,868 Active US11855898B1 (en) 2018-03-14 2019-03-14 Methods for traffic dependent direct memory access optimization and devices thereof

Country Status (1)

Country Link
US (1) US11855898B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995013B2 (en) * 2021-09-01 2024-05-28 Arm Limited Direct memory access (DMA) controller issues memory access requests whereas memory locations having addresses which are offset amounts relative to destination template address
US20240220431A1 (en) * 2023-01-04 2024-07-04 Mercedes-Benz Group AG System, device and/or method for servicing redirected memory access requests using direct memory access scatter and/or gather operations

Citations (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914650A (en) 1988-12-06 1990-04-03 American Telephone And Telegraph Company Bandwidth allocation and congestion control scheme for an integrated voice and data network
US5388237A (en) 1991-12-30 1995-02-07 Sun Microsystems, Inc. Method of and apparatus for interleaving multiple-channel DMA operations
US5477541A (en) 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
US5588128A (en) 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
US5699361A (en) 1995-07-18 1997-12-16 Industrial Technology Research Institute Multimedia channel formulation mechanism
US5742765A (en) 1996-06-19 1998-04-21 Pmc-Sierra, Inc. Combination local ATM segmentation and reassembly and physical layer device
US5761534A (en) 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5797033A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Direct memory access for storing and retrieving data based on packet size
US5809334A (en) 1996-09-24 1998-09-15 Allen-Bradley Company, Llc Receive packet pre-parsing by a DMA controller
US5809560A (en) 1995-10-13 1998-09-15 Compaq Computer Corporation Adaptive read-ahead disk cache
US5828835A (en) 1995-05-10 1998-10-27 3Com Corporation High throughput message passing process using latency and reliability classes
US5940838A (en) 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system and method anticipating cache usage patterns
US5941988A (en) 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US5948080A (en) 1996-04-26 1999-09-07 Texas Instruments Incorporated System for assigning a received data packet to a data communications channel by comparing portion of data packet to predetermined match set to check correspondence for directing channel select signal
US6026090A (en) 1997-11-14 2000-02-15 Fore System, Inc. Method and system for receiving ATM cells from an ATM network by a host
US6026443A (en) 1992-12-22 2000-02-15 Sun Microsystems, Inc. Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6070219A (en) 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US6070230A (en) 1997-12-29 2000-05-30 Hewlett-Packard Company Multi-threaded read ahead prediction by pattern recognition
US6115802A (en) 1995-10-13 2000-09-05 Sun Mircrosystems, Inc. Efficient hash table for use in multi-threaded environments
US20010038629A1 (en) 2000-03-29 2001-11-08 Masayuki Shinohara Arbiter circuit and method of carrying out arbitration
US20010042200A1 (en) 2000-05-12 2001-11-15 International Business Machines Methods and systems for defeating TCP SYN flooding attacks
US20010043614A1 (en) * 1998-07-17 2001-11-22 Krishna Viswanadham Multi-layer switching apparatus and method
US6347337B1 (en) 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US6347347B1 (en) 1999-07-15 2002-02-12 3Com Corporation Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor
US6385624B1 (en) 1997-05-29 2002-05-07 Fujitsu Limited File system control method, parallel file system and program storage medium
US6388989B1 (en) 1998-06-29 2002-05-14 Cisco Technology Method and apparatus for preventing memory overrun in a data transmission system
US20020133586A1 (en) * 2001-01-16 2002-09-19 Carter Shanklin Method and device for monitoring data traffic and preventing unauthorized access to a network
US20020143955A1 (en) 2001-03-27 2002-10-03 Fujitsu Limited Packet relay processing apparatus
US20020156927A1 (en) 2000-12-26 2002-10-24 Alacritech, Inc. TCP/IP offload network interface device
US6529508B1 (en) 1999-02-01 2003-03-04 Redback Networks Inc. Methods and apparatus for packet classification with multiple answer sets
US20030067930A1 (en) * 2001-10-05 2003-04-10 International Business Machines Corporation Packet preprocessing interface for multiprocessor network handler
US6574220B1 (en) 1999-07-06 2003-06-03 Avaya Technology Corp. Traffic shaper that accommodates maintenance cells without causing jitter or delay
US20030204636A1 (en) 2001-07-02 2003-10-30 Globespanvirata Incorporated Communications system using rings architecture
US6647438B1 (en) * 2000-09-19 2003-11-11 Intel Corporation Direct memory access transfer reduction method and apparatus to overlay data on to scatter gather descriptors for bus-mastering I/O controllers
US20040013117A1 (en) 2002-07-18 2004-01-22 Ariel Hendel Method and apparatus for zero-copy receive buffer management
US20040032830A1 (en) 2002-08-19 2004-02-19 Bly Keith Michael System and method for shaping traffic from a plurality of data streams using hierarchical queuing
US6700871B1 (en) 1999-05-04 2004-03-02 3Com Corporation Increased throughput across data network interface by dropping redundant packets
US20040062245A1 (en) 2002-04-22 2004-04-01 Sharp Colin C. TCP/IP offload device
US20040098538A1 (en) 2002-11-18 2004-05-20 Horn Robert L. Caching in a virtualization system
US6748457B2 (en) 2000-02-03 2004-06-08 Realtime Data, Llc Data storewidth accelerator
US6781990B1 (en) 2002-02-11 2004-08-24 Extreme Networks Method and system for managing traffic in a packet network environment
US6785236B1 (en) 2000-05-28 2004-08-31 Lucent Technologies Inc. Packet transmission scheduling with threshold based backpressure mechanism
WO2004079930A2 (en) 2003-03-05 2004-09-16 Messagesoft, Inc. Asynchronous mechanism and message pool
US20040202161A1 (en) 1998-08-28 2004-10-14 Stachura Thomas L. Method and apparatus for transmitting and receiving network protocol compliant signal packets over a platform bus
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US20040249948A1 (en) 2003-03-07 2004-12-09 Sethi Bhupinder S. Performing application layer transactions during the connection establishment phase of connection-oriented protocols
US20040249881A1 (en) 2003-06-05 2004-12-09 Jha Ashutosh K. Transmitting commands and information between a TCP/IP stack and an offload unit
US20040267897A1 (en) 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US20050007991A1 (en) 2003-07-10 2005-01-13 Dat Ton Bandwidth allocation method and apparatus for fixed wireless networks
US20050050364A1 (en) 2003-08-26 2005-03-03 Wu-Chang Feng System and methods for protecting against denial of service attacks
US20050063307A1 (en) 2003-07-29 2005-03-24 Samuels Allen R. Flow control system architecture
US20050083952A1 (en) 2003-10-15 2005-04-21 Texas Instruments Incorporated Flexible ethernet bridge
US20050091390A1 (en) 2003-10-24 2005-04-28 International Business Machines Corporation Speculative method and system for rapid data communications
US20050114559A1 (en) 2003-11-20 2005-05-26 Miller George B. Method for efficiently processing DMA transactions
US20050141427A1 (en) 2003-12-30 2005-06-30 Bartky Alan K. Hierarchical flow-characterizing multiplexor
US20050144394A1 (en) 2003-12-24 2005-06-30 Komarla Eshwari P. For adaptive caching
US6915404B1 (en) 2002-05-31 2005-07-05 Veritas Operating Corporation Computer system implementing a multi-threaded stride prediction read ahead algorithm
US20050154825A1 (en) 2004-01-08 2005-07-14 Fair Robert L. Adaptive file readahead based on multiple factors
US20050175014A1 (en) 2000-09-25 2005-08-11 Patrick Michael W. Hierarchical prioritized round robin (HPRR) scheduling
US6934776B2 (en) 2002-07-16 2005-08-23 Intel Corporation Methods and apparatus for determination of packet sizes when transferring packets via a network
US20050193164A1 (en) * 2004-02-27 2005-09-01 Royer Robert J.Jr. Interface for a block addressable mass storage system
US20050213570A1 (en) 2004-03-26 2005-09-29 Stacy John K Hardware filtering support for denial-of-service attacks
US20050226234A1 (en) 2001-11-20 2005-10-13 Sano Barton J System having interfaces and switch that separates coherent and packet traffic
US20060007928A1 (en) 2004-07-08 2006-01-12 Michael Sangillo Flexible traffic rating interworking
US20060015618A1 (en) 2004-07-14 2006-01-19 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
US20060067349A1 (en) 2004-09-30 2006-03-30 John Ronciak Dynamically assigning packet flows
US7046628B2 (en) 2001-09-24 2006-05-16 Intel Corporation Apparatus and method for just-in-time transfer of transmit commands to a network interface
US20060104303A1 (en) 2004-11-16 2006-05-18 Srihari Makineni Packet coalescing
US7065630B1 (en) 2003-08-27 2006-06-20 Nvidia Corporation Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
US20060174324A1 (en) 2005-01-28 2006-08-03 Zur Uri E Method and system for mitigating denial of service in a communication network
US7117308B1 (en) 2004-04-06 2006-10-03 Cisco Technology, Inc. Hypertransport data path protocol
US20060221832A1 (en) 2005-04-04 2006-10-05 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US20060221990A1 (en) * 2005-04-04 2006-10-05 Shimon Muller Hiding system latencies in a throughput networking system
US20060221835A1 (en) 2005-03-30 2006-10-05 Cisco Technology, Inc. Converting a network device from data rate traffic management to packet rate
US20060224820A1 (en) 2005-04-01 2006-10-05 Hyun-Duk Cho Flash memory device supporting cache read operation
US7120753B2 (en) 2004-04-20 2006-10-10 International Business Machines Corporation System and method for dynamically adjusting read ahead values based upon memory usage
US7124196B2 (en) 2002-08-07 2006-10-17 Intel Corporation Processing a network packet using queues
US20060235996A1 (en) 2005-04-19 2006-10-19 Alcatel Method for operating a packet based data network
US20060271740A1 (en) 2005-05-31 2006-11-30 Mark Timothy W Performing read-ahead operation for a direct input/output request
US20060288128A1 (en) 2005-06-16 2006-12-21 Agere Systems Inc. Emulation of independent active DMA channels with a single DMA capable bus master hardware and firmware
US20070005904A1 (en) 2005-06-29 2007-01-04 Hitachi, Ltd. Read ahead method for data retrieval and computer system
US7164678B2 (en) 2001-06-25 2007-01-16 Intel Corporation Control of processing order for received network packets
US7181457B2 (en) 2003-05-28 2007-02-20 Pervasive Software, Inc. System and method for utilizing compression in database caches to facilitate access to database information
US20070073915A1 (en) * 2005-09-29 2007-03-29 P.A. Semi, Inc. Functional DMA
US7203815B2 (en) 2004-07-30 2007-04-10 International Business Machines Corporation Multi-level page cache for enhanced file system performance via read ahead
US20070094452A1 (en) 2005-10-21 2007-04-26 Fachan Neal T Systems and methods for using excitement values to predict future access to resources
US20070106849A1 (en) 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for adaptive intelligent prefetch
US7236491B2 (en) 2000-11-30 2007-06-26 Industrial Technology Research Institute Method and apparatus for scheduling for packet-switched networks
US20070162619A1 (en) 2006-01-12 2007-07-12 Eliezer Aloni Method and System for Zero Copy in a Virtualized Network Environment
US7281030B1 (en) 1999-09-17 2007-10-09 Intel Corporation Method of reading a remote memory
US7324525B2 (en) 2004-12-09 2008-01-29 International Business Machines Corporation Method and apparatus for coalescing acknowledge packets within a server
US7327674B2 (en) 2002-06-11 2008-02-05 Sun Microsystems, Inc. Prefetching techniques for network interfaces
US20080040538A1 (en) 2006-08-10 2008-02-14 Keiichi Matsuzawa File readahead method with the use of access pattern information attached to metadata
US7349405B2 (en) 2003-06-23 2008-03-25 Transwitch Corporation Method and apparatus for fair queueing of data packets
US7355977B1 (en) 2002-08-16 2008-04-08 F5 Networks, Inc. Method and system for a weighted allocation table
US7359321B1 (en) 2002-01-17 2008-04-15 Juniper Networks, Inc. Systems and methods for selectively performing explicit congestion notification
US7376772B2 (en) 2000-02-03 2008-05-20 Realtime Data Llc Data storewidth accelerator
US20080126509A1 (en) 2006-11-06 2008-05-29 Viswanath Subramanian Rdma qp simplex switchless connection
US7403542B1 (en) 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
US20080184248A1 (en) 2007-01-29 2008-07-31 Yahoo! Inc. Optimization of job scheduling for resource clusters with access control and usage reporting
US20080201772A1 (en) 2007-02-15 2008-08-21 Maxim Mondaeev Method and Apparatus for Deep Packet Inspection for Network Intrusion Detection
US7420931B2 (en) 2003-06-05 2008-09-02 Nvidia Corporation Using TCP/IP offload to accelerate packet filtering
US20080219279A1 (en) 2007-03-06 2008-09-11 Yen Hsiang Chew Scalable and configurable queue management for network packet traffic quality of service
US20080219159A1 (en) 2007-03-07 2008-09-11 Texas Instruments Incorporated Protocol dma engine
US20090003204A1 (en) 2007-06-29 2009-01-01 Packeteer, Inc. Lockless Bandwidth Management for Multiprocessor Networking Devices
US20090007266A1 (en) 2007-06-29 2009-01-01 Reti Corporation Adaptive Defense System Against Network Attacks
US7475122B2 (en) 2000-10-04 2009-01-06 Jean-Patrick Azpitarte System for remotely managing maintenance of a set of facilities
US7478186B1 (en) 2004-06-03 2009-01-13 Integrated Device Technology, Inc. Interrupt coalescer for DMA channel
US20090016217A1 (en) 2007-07-13 2009-01-15 International Business Machines Corporation Enhancement of end-to-end network qos
US7493398B2 (en) 2003-04-16 2009-02-17 Microsoft Corporation Shared socket connections for efficient data transmission
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US7500028B2 (en) 2003-03-20 2009-03-03 Panasonic Corporation DMA controller providing for ring buffer and rectangular block transfers
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US20090089619A1 (en) 2007-09-27 2009-04-02 Kung-Shiuh Huang Automatic detection of functional defects and performance bottlenecks in network devices
US20090106470A1 (en) * 2007-10-23 2009-04-23 Brocade Communications Systems, Inc. Host bus adapter with multiple hosts
US7533197B2 (en) 2006-11-08 2009-05-12 Sicortex, Inc. System and method for remote direct memory access without page locking by the operating system
US20090138420A1 (en) 2007-11-28 2009-05-28 The Boeing Company Methods And System For Modeling Network Traffic
US20090144130A1 (en) 2007-07-13 2009-06-04 Grouf Nicholas A Methods and systems for predicting future data
US20090154459A1 (en) 2001-04-13 2009-06-18 Freescale Semiconductor, Inc. Manipulating data streams in data stream processors
US7558910B2 (en) 1998-11-13 2009-07-07 Cray Inc. Detecting access to a memory location in a multithreaded environment
US7571299B2 (en) 2006-02-16 2009-08-04 International Business Machines Corporation Methods and arrangements for inserting values in hash tables
US20090222598A1 (en) 2004-02-25 2009-09-03 Analog Devices, Inc. Dma controller for digital signal processors
US20090248911A1 (en) 2008-03-27 2009-10-01 Apple Inc. Clock control for dma busses
US20090279559A1 (en) 2004-03-26 2009-11-12 Foundry Networks, Inc., A Delaware Corporation Method and apparatus for aggregating input data streams
WO2009158680A1 (en) 2008-06-26 2009-12-30 Qualcomm Incorporated Methods and apparatuses to reduce context switching during data transmission and reception in a multi-processor device
US7647416B2 (en) 2004-03-02 2010-01-12 Industrial Technology Research Institute Full hardware based TCP/IP traffic offload engine(TOE) device and the method thereof
US7649882B2 (en) 2002-07-15 2010-01-19 Alcatel-Lucent Usa Inc. Multicast scheduling and replication in switches
US20100023595A1 (en) 2008-07-28 2010-01-28 Crossfield Technology LLC System and method of multi-path data communications
US7657659B1 (en) 2006-11-30 2010-02-02 Vmware, Inc. Partial copying of data to transmit buffer for virtual network device
US7668851B2 (en) 2006-11-29 2010-02-23 International Business Machines Corporation Lockless hash table lookups while performing key update on hash table element
US7668727B2 (en) 2005-04-29 2010-02-23 Kimberly-Clark Worldwide, Inc. System and method for building loads from requisitions
US20100082849A1 (en) 2008-09-30 2010-04-01 Apple Inc. Data filtering using central DMA mechanism
US20100085875A1 (en) 2008-10-08 2010-04-08 Richard Solomon Methods and apparatuses for processing packets in a credit-based flow control scheme
US20100094945A1 (en) 2004-11-23 2010-04-15 Cisco Technology, Inc. Caching content and state data at a network element
US7729239B1 (en) 2004-12-27 2010-06-01 Emc Corporation Packet switching network end point controller
US7734809B2 (en) 2003-06-05 2010-06-08 Meshnetworks, Inc. System and method to maximize channel utilization in a multi-channel wireless communication network
US7735099B1 (en) 2005-12-23 2010-06-08 Qlogic, Corporation Method and system for processing network data
US7742412B1 (en) 2004-09-29 2010-06-22 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for preventing head of line blocking in an ethernet system
US20100174824A1 (en) * 2005-07-18 2010-07-08 Eliezer Aloni Method and System for Transparent TCP Offload
US7784093B2 (en) 1999-04-01 2010-08-24 Juniper Networks, Inc. Firewall including local bus
US7826487B1 (en) 2005-05-09 2010-11-02 F5 Network, Inc Coalescing acknowledgement responses to improve network communications
US7877524B1 (en) 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
US7916728B1 (en) 2007-09-28 2011-03-29 F5 Networks, Inc. Lockless atomic table update
US7930444B2 (en) 2005-06-30 2011-04-19 Freescale Semiconductor, Inc. Device and method for controlling multiple DMA tasks
US20110134915A1 (en) * 2009-12-09 2011-06-09 Sun Microsystems, Inc. Apparatus and method for managing packet classification tables
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US8001430B2 (en) 2005-06-30 2011-08-16 Freescale Semiconductor, Inc. Device and method for controlling an execution of a DMA task
US20110228781A1 (en) 2010-03-16 2011-09-22 Erez Izenberg Combined Hardware/Software Forwarding Mechanism and Method
US20110258337A1 (en) * 2008-08-04 2011-10-20 Zte Corporation Method and system for enabling zero-copy transmission of streaming media data
US20110307663A1 (en) * 2010-06-10 2011-12-15 Global Supercomputing Corporation Storage Unsharing
US8103809B1 (en) 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US8112594B2 (en) 2007-04-20 2012-02-07 The Regents Of The University Of Colorado Efficient point-to-point enqueue and dequeue communications
US8112491B1 (en) 2009-01-16 2012-02-07 F5 Networks, Inc. Methods and systems for providing direct DMA
US20120195192A1 (en) 2011-01-28 2012-08-02 Broadcom Corporation Dynamic memory bandwidth allocation
US8306036B1 (en) 2008-06-20 2012-11-06 F5 Networks, Inc. Methods and systems for hierarchical resource allocation through bookmark allocation
US8417842B2 (en) 2008-05-16 2013-04-09 Freescale Semiconductor Inc. Virtual direct memory access (DMA) channel technique with multiple engines for DMA controller
US8447897B2 (en) 2011-06-24 2013-05-21 Freescale Semiconductor, Inc. Bandwidth control for a direct memory access unit within a data processing system
US8447884B1 (en) 2008-12-01 2013-05-21 F5 Networks, Inc. Methods for mapping virtual addresses to physical addresses in a network device and systems thereof
US20130166793A1 (en) * 2011-12-26 2013-06-27 Mellanox Technologies Ltd. Host channel adapter with pattern-type dma
US20130250777A1 (en) 2012-03-26 2013-09-26 Michael L. Ziegler Packet descriptor trace indicators
US8630173B2 (en) 2010-11-19 2014-01-14 Cisco Technology, Inc. Dynamic queuing and pinning to improve quality of service on uplinks in a virtualized environment
US8762595B1 (en) * 2005-04-05 2014-06-24 Oracle America, Inc. Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness
US20140185442A1 (en) 2012-12-27 2014-07-03 Cisco Technology, Inc. Supporting quality of service differentiation using a single shared buffer
US20140301207A1 (en) 2011-12-19 2014-10-09 Kalray System for transmitting concurrent data flows on a network
US8880632B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Method and apparatus for performing multiple DMA channel based network quality of service
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US9036822B1 (en) 2012-02-15 2015-05-19 F5 Networks, Inc. Methods for managing user information and devices thereof
US9152483B2 (en) 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US9270602B1 (en) 2012-12-31 2016-02-23 F5 Networks, Inc. Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US20170235702A1 (en) * 2016-02-17 2017-08-17 International Business Machines Corporation Remote direct memory access-based method of transferring arrays of objects including garbage data
US20180322913A1 (en) * 2017-05-08 2018-11-08 Intel Corporation Flow based rate limit
US10177795B1 (en) * 2016-12-29 2019-01-08 Amazon Technologies, Inc. Cache index mapping
US20190163441A1 (en) * 2017-11-30 2019-05-30 International Business Machines Corporation Multi-cycle key compares for keys and records of variable length
US20190392297A1 (en) * 2016-12-30 2019-12-26 Intel Corporation Deep learning hardware
US20210152659A1 (en) * 2019-11-15 2021-05-20 F5 Networks, Inc. Scheduling services on a platform including configurable resources

Patent Citations (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914650A (en) 1988-12-06 1990-04-03 American Telephone And Telegraph Company Bandwidth allocation and congestion control scheme for an integrated voice and data network
US5477541A (en) 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
US5388237A (en) 1991-12-30 1995-02-07 Sun Microsystems, Inc. Method of and apparatus for interleaving multiple-channel DMA operations
US6026443A (en) 1992-12-22 2000-02-15 Sun Microsystems, Inc. Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface
US5588128A (en) 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
US5797033A (en) * 1995-03-31 1998-08-18 Cirrus Logic, Inc. Direct memory access for storing and retrieving data based on packet size
US5828835A (en) 1995-05-10 1998-10-27 3Com Corporation High throughput message passing process using latency and reliability classes
US5699361A (en) 1995-07-18 1997-12-16 Industrial Technology Research Institute Multimedia channel formulation mechanism
US5809560A (en) 1995-10-13 1998-09-15 Compaq Computer Corporation Adaptive read-ahead disk cache
US6115802A (en) 1995-10-13 2000-09-05 Sun Mircrosystems, Inc. Efficient hash table for use in multi-threaded environments
EP0803819B1 (en) 1996-04-26 2004-11-03 Texas Instruments Incorporated Method of assigning a data packet to a channel in a IEEE 1394 communications system
US5948080A (en) 1996-04-26 1999-09-07 Texas Instruments Incorporated System for assigning a received data packet to a data communications channel by comparing portion of data packet to predetermined match set to check correspondence for directing channel select signal
US5761534A (en) 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5742765A (en) 1996-06-19 1998-04-21 Pmc-Sierra, Inc. Combination local ATM segmentation and reassembly and physical layer device
US5809334A (en) 1996-09-24 1998-09-15 Allen-Bradley Company, Llc Receive packet pre-parsing by a DMA controller
US6070219A (en) 1996-10-09 2000-05-30 Intel Corporation Hierarchical interrupt structure for event notification on multi-virtual circuit network interface controller
US5941988A (en) 1997-01-27 1999-08-24 International Business Machines Corporation Session and transport layer proxies via TCP glue
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6385624B1 (en) 1997-05-29 2002-05-07 Fujitsu Limited File system control method, parallel file system and program storage medium
US5940838A (en) 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system and method anticipating cache usage patterns
US6026090A (en) 1997-11-14 2000-02-15 Fore System, Inc. Method and system for receiving ATM cells from an ATM network by a host
US6070230A (en) 1997-12-29 2000-05-30 Hewlett-Packard Company Multi-threaded read ahead prediction by pattern recognition
US6388989B1 (en) 1998-06-29 2002-05-14 Cisco Technology Method and apparatus for preventing memory overrun in a data transmission system
US20010043614A1 (en) * 1998-07-17 2001-11-22 Krishna Viswanadham Multi-layer switching apparatus and method
US20040202161A1 (en) 1998-08-28 2004-10-14 Stachura Thomas L. Method and apparatus for transmitting and receiving network protocol compliant signal packets over a platform bus
US7558910B2 (en) 1998-11-13 2009-07-07 Cray Inc. Detecting access to a memory location in a multithreaded environment
US6347337B1 (en) 1999-01-08 2002-02-12 Intel Corporation Credit based flow control scheme over virtual interface architecture for system area networks
US6529508B1 (en) 1999-02-01 2003-03-04 Redback Networks Inc. Methods and apparatus for packet classification with multiple answer sets
US7784093B2 (en) 1999-04-01 2010-08-24 Juniper Networks, Inc. Firewall including local bus
US6700871B1 (en) 1999-05-04 2004-03-02 3Com Corporation Increased throughput across data network interface by dropping redundant packets
US6574220B1 (en) 1999-07-06 2003-06-03 Avaya Technology Corp. Traffic shaper that accommodates maintenance cells without causing jitter or delay
US6347347B1 (en) 1999-07-15 2002-02-12 3Com Corporation Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor
US7281030B1 (en) 1999-09-17 2007-10-09 Intel Corporation Method of reading a remote memory
US7376772B2 (en) 2000-02-03 2008-05-20 Realtime Data Llc Data storewidth accelerator
US6748457B2 (en) 2000-02-03 2004-06-08 Realtime Data, Llc Data storewidth accelerator
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US20010038629A1 (en) 2000-03-29 2001-11-08 Masayuki Shinohara Arbiter circuit and method of carrying out arbitration
US6999457B2 (en) 2000-03-29 2006-02-14 Juniper Networks, Inc. Arbiter circuit and method of carrying out arbitration
US20010042200A1 (en) 2000-05-12 2001-11-15 International Business Machines Methods and systems for defeating TCP SYN flooding attacks
US6785236B1 (en) 2000-05-28 2004-08-31 Lucent Technologies Inc. Packet transmission scheduling with threshold based backpressure mechanism
US6647438B1 (en) * 2000-09-19 2003-11-11 Intel Corporation Direct memory access transfer reduction method and apparatus to overlay data on to scatter gather descriptors for bus-mastering I/O controllers
US20050175014A1 (en) 2000-09-25 2005-08-11 Patrick Michael W. Hierarchical prioritized round robin (HPRR) scheduling
US7457313B2 (en) 2000-09-25 2008-11-25 General Instrument Corporation Hierarchical prioritized round robin (HPRR) scheduling
US7475122B2 (en) 2000-10-04 2009-01-06 Jean-Patrick Azpitarte System for remotely managing maintenance of a set of facilities
US7236491B2 (en) 2000-11-30 2007-06-26 Industrial Technology Research Institute Method and apparatus for scheduling for packet-switched networks
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US20020156927A1 (en) 2000-12-26 2002-10-24 Alacritech, Inc. TCP/IP offload network interface device
US20020133586A1 (en) * 2001-01-16 2002-09-19 Carter Shanklin Method and device for monitoring data traffic and preventing unauthorized access to a network
US7107348B2 (en) 2001-03-27 2006-09-12 Fujitsu Limited Packet relay processing apparatus
US20020143955A1 (en) 2001-03-27 2002-10-03 Fujitsu Limited Packet relay processing apparatus
US7929433B2 (en) 2001-04-13 2011-04-19 Freescale Semiconductor, Inc. Manipulating data streams in data stream processors
US20090154459A1 (en) 2001-04-13 2009-06-18 Freescale Semiconductor, Inc. Manipulating data streams in data stream processors
US7164678B2 (en) 2001-06-25 2007-01-16 Intel Corporation Control of processing order for received network packets
US20030204636A1 (en) 2001-07-02 2003-10-30 Globespanvirata Incorporated Communications system using rings architecture
US7046628B2 (en) 2001-09-24 2006-05-16 Intel Corporation Apparatus and method for just-in-time transfer of transmit commands to a network interface
US6904040B2 (en) 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US20030067930A1 (en) * 2001-10-05 2003-04-10 International Business Machines Corporation Packet preprocessing interface for multiprocessor network handler
US20050226234A1 (en) 2001-11-20 2005-10-13 Sano Barton J System having interfaces and switch that separates coherent and packet traffic
US7359321B1 (en) 2002-01-17 2008-04-15 Juniper Networks, Inc. Systems and methods for selectively performing explicit congestion notification
US6781990B1 (en) 2002-02-11 2004-08-24 Extreme Networks Method and system for managing traffic in a packet network environment
US20040062245A1 (en) 2002-04-22 2004-04-01 Sharp Colin C. TCP/IP offload device
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US6915404B1 (en) 2002-05-31 2005-07-05 Veritas Operating Corporation Computer system implementing a multi-threaded stride prediction read ahead algorithm
US7327674B2 (en) 2002-06-11 2008-02-05 Sun Microsystems, Inc. Prefetching techniques for network interfaces
US7649882B2 (en) 2002-07-15 2010-01-19 Alcatel-Lucent Usa Inc. Multicast scheduling and replication in switches
US6934776B2 (en) 2002-07-16 2005-08-23 Intel Corporation Methods and apparatus for determination of packet sizes when transferring packets via a network
US7142540B2 (en) 2002-07-18 2006-11-28 Sun Microsystems, Inc. Method and apparatus for zero-copy receive buffer management
US20040013117A1 (en) 2002-07-18 2004-01-22 Ariel Hendel Method and apparatus for zero-copy receive buffer management
US7403542B1 (en) 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
US7124196B2 (en) 2002-08-07 2006-10-17 Intel Corporation Processing a network packet using queues
US7355977B1 (en) 2002-08-16 2008-04-08 F5 Networks, Inc. Method and system for a weighted allocation table
US20040032830A1 (en) 2002-08-19 2004-02-19 Bly Keith Michael System and method for shaping traffic from a plurality of data streams using hierarchical queuing
US7272150B2 (en) 2002-08-19 2007-09-18 World Wide Packets, Inc. System and method for shaping traffic from a plurality of data streams using hierarchical queuing
US20040098538A1 (en) 2002-11-18 2004-05-20 Horn Robert L. Caching in a virtualization system
WO2004079930A2 (en) 2003-03-05 2004-09-16 Messagesoft, Inc. Asynchronous mechanism and message pool
US20040249948A1 (en) 2003-03-07 2004-12-09 Sethi Bhupinder S. Performing application layer transactions during the connection establishment phase of connection-oriented protocols
US7500028B2 (en) 2003-03-20 2009-03-03 Panasonic Corporation DMA controller providing for ring buffer and rectangular block transfers
US7493398B2 (en) 2003-04-16 2009-02-17 Microsoft Corporation Shared socket connections for efficient data transmission
US7181457B2 (en) 2003-05-28 2007-02-20 Pervasive Software, Inc. System and method for utilizing compression in database caches to facilitate access to database information
US7991918B2 (en) 2003-06-05 2011-08-02 Nvidia Corporation Transmitting commands and information between a TCP/IP stack and an offload unit
US7420931B2 (en) 2003-06-05 2008-09-02 Nvidia Corporation Using TCP/IP offload to accelerate packet filtering
US20040249881A1 (en) 2003-06-05 2004-12-09 Jha Ashutosh K. Transmitting commands and information between a TCP/IP stack and an offload unit
US7734809B2 (en) 2003-06-05 2010-06-08 Meshnetworks, Inc. System and method to maximize channel utilization in a multi-channel wireless communication network
US7349405B2 (en) 2003-06-23 2008-03-25 Transwitch Corporation Method and apparatus for fair queueing of data packets
US20040267897A1 (en) 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US20050007991A1 (en) 2003-07-10 2005-01-13 Dat Ton Bandwidth allocation method and apparatus for fixed wireless networks
US20050063307A1 (en) 2003-07-29 2005-03-24 Samuels Allen R. Flow control system architecture
US20050050364A1 (en) 2003-08-26 2005-03-03 Wu-Chang Feng System and methods for protecting against denial of service attacks
US7065630B1 (en) 2003-08-27 2006-06-20 Nvidia Corporation Dynamically creating or removing a physical-to-virtual address mapping in a memory of a peripheral device
US7512078B2 (en) 2003-10-15 2009-03-31 Texas Instruments Incorporated Flexible ethernet bridge
US20050083952A1 (en) 2003-10-15 2005-04-21 Texas Instruments Incorporated Flexible ethernet bridge
US7552232B2 (en) 2003-10-24 2009-06-23 International Business Machines Corporation Speculative method and system for rapid data communications
US20050091390A1 (en) 2003-10-24 2005-04-28 International Business Machines Corporation Speculative method and system for rapid data communications
US20050114559A1 (en) 2003-11-20 2005-05-26 Miller George B. Method for efficiently processing DMA transactions
US20050144394A1 (en) 2003-12-24 2005-06-30 Komarla Eshwari P. For adaptive caching
US20050141427A1 (en) 2003-12-30 2005-06-30 Bartky Alan K. Hierarchical flow-characterizing multiplexor
US7621162B2 (en) 2003-12-30 2009-11-24 Alcatel Lucent Hierarchical flow-characterizing multiplexor
US20050154825A1 (en) 2004-01-08 2005-07-14 Fair Robert L. Adaptive file readahead based on multiple factors
US20090222598A1 (en) 2004-02-25 2009-09-03 Analog Devices, Inc. Dma controller for digital signal processors
US20050193164A1 (en) * 2004-02-27 2005-09-01 Royer Robert J.Jr. Interface for a block addressable mass storage system
US7647416B2 (en) 2004-03-02 2010-01-12 Industrial Technology Research Institute Full hardware based TCP/IP traffic offload engine(TOE) device and the method thereof
US7411957B2 (en) 2004-03-26 2008-08-12 Cisco Technology, Inc. Hardware filtering support for denial-of-service attacks
US20050213570A1 (en) 2004-03-26 2005-09-29 Stacy John K Hardware filtering support for denial-of-service attacks
US20090279559A1 (en) 2004-03-26 2009-11-12 Foundry Networks, Inc., A Delaware Corporation Method and apparatus for aggregating input data streams
US7117308B1 (en) 2004-04-06 2006-10-03 Cisco Technology, Inc. Hypertransport data path protocol
US7120753B2 (en) 2004-04-20 2006-10-10 International Business Machines Corporation System and method for dynamically adjusting read ahead values based upon memory usage
US7512721B1 (en) 2004-05-25 2009-03-31 Qlogic, Corporation Method and apparatus for efficient determination of status from DMA lists
US7478186B1 (en) 2004-06-03 2009-01-13 Integrated Device Technology, Inc. Interrupt coalescer for DMA channel
US20060007928A1 (en) 2004-07-08 2006-01-12 Michael Sangillo Flexible traffic rating interworking
US20060015618A1 (en) 2004-07-14 2006-01-19 International Business Machines Corporation Apparatus and method for supporting received data processing in an offload of network protocol processing
US7203815B2 (en) 2004-07-30 2007-04-10 International Business Machines Corporation Multi-level page cache for enhanced file system performance via read ahead
US7742412B1 (en) 2004-09-29 2010-06-22 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for preventing head of line blocking in an ethernet system
US7620046B2 (en) 2004-09-30 2009-11-17 Intel Corporation Dynamically assigning packet flows
US20060067349A1 (en) 2004-09-30 2006-03-30 John Ronciak Dynamically assigning packet flows
WO2006055494A1 (en) 2004-11-16 2006-05-26 Intel Corporation Packet coalescing
US7620071B2 (en) 2004-11-16 2009-11-17 Intel Corporation Packet coalescing
EP1813084B1 (en) 2004-11-16 2008-03-05 Intel Corporation Packet coalescing
US20060104303A1 (en) 2004-11-16 2006-05-18 Srihari Makineni Packet coalescing
US20100094945A1 (en) 2004-11-23 2010-04-15 Cisco Technology, Inc. Caching content and state data at a network element
US8799403B2 (en) 2004-11-23 2014-08-05 Cisco Technology, Inc. Caching content and state data at a network element
US7324525B2 (en) 2004-12-09 2008-01-29 International Business Machines Corporation Method and apparatus for coalescing acknowledge packets within a server
US7729239B1 (en) 2004-12-27 2010-06-01 Emc Corporation Packet switching network end point controller
US20060174324A1 (en) 2005-01-28 2006-08-03 Zur Uri E Method and system for mitigating denial of service in a communication network
US20060221835A1 (en) 2005-03-30 2006-10-05 Cisco Technology, Inc. Converting a network device from data rate traffic management to packet rate
US7353326B2 (en) 2005-04-01 2008-04-01 Samsung Electronics Co., Ltd. Flash memory device supporting cache read operation
US20060224820A1 (en) 2005-04-01 2006-10-05 Hyun-Duk Cho Flash memory device supporting cache read operation
US20060221990A1 (en) * 2005-04-04 2006-10-05 Shimon Muller Hiding system latencies in a throughput networking system
US20060221832A1 (en) 2005-04-04 2006-10-05 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US20110110380A1 (en) 2005-04-04 2011-05-12 Shimon Muller Hiding System Latencies in a Throughput Networking Systems
US7415034B2 (en) 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US8006016B2 (en) 2005-04-04 2011-08-23 Oracle America, Inc. Hiding system latencies in a throughput networking systems
US8762595B1 (en) * 2005-04-05 2014-06-24 Oracle America, Inc. Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness
US7590753B2 (en) 2005-04-19 2009-09-15 Alcatel Method for operating a packet based data network
US20060235996A1 (en) 2005-04-19 2006-10-19 Alcatel Method for operating a packet based data network
US7668727B2 (en) 2005-04-29 2010-02-23 Kimberly-Clark Worldwide, Inc. System and method for building loads from requisitions
US7826487B1 (en) 2005-05-09 2010-11-02 F5 Network, Inc Coalescing acknowledgement responses to improve network communications
US20060271740A1 (en) 2005-05-31 2006-11-30 Mark Timothy W Performing read-ahead operation for a direct input/output request
US20060288128A1 (en) 2005-06-16 2006-12-21 Agere Systems Inc. Emulation of independent active DMA channels with a single DMA capable bus master hardware and firmware
US7660916B2 (en) 2005-06-16 2010-02-09 Agere Systems Inc. Emulation of independent active DMA channels with a single DMA capable bus master hardware and firmware
US20070005904A1 (en) 2005-06-29 2007-01-04 Hitachi, Ltd. Read ahead method for data retrieval and computer system
US7930444B2 (en) 2005-06-30 2011-04-19 Freescale Semiconductor, Inc. Device and method for controlling multiple DMA tasks
US8001430B2 (en) 2005-06-30 2011-08-16 Freescale Semiconductor, Inc. Device and method for controlling an execution of a DMA task
US20100174824A1 (en) * 2005-07-18 2010-07-08 Eliezer Aloni Method and System for Transparent TCP Offload
US8274976B2 (en) * 2005-07-18 2012-09-25 Broadcom Corporation Method and system for transparent TCP offload
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US20070073915A1 (en) * 2005-09-29 2007-03-29 P.A. Semi, Inc. Functional DMA
US20070094452A1 (en) 2005-10-21 2007-04-26 Fachan Neal T Systems and methods for using excitement values to predict future access to resources
US20070106849A1 (en) 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for adaptive intelligent prefetch
US7735099B1 (en) 2005-12-23 2010-06-08 Qlogic, Corporation Method and system for processing network data
US20070162619A1 (en) 2006-01-12 2007-07-12 Eliezer Aloni Method and System for Zero Copy in a Virtualized Network Environment
US7996569B2 (en) 2006-01-12 2011-08-09 Broadcom Israel Research Ltd. Method and system for zero copy in a virtualized network environment
US7571299B2 (en) 2006-02-16 2009-08-04 International Business Machines Corporation Methods and arrangements for inserting values in hash tables
US20080040538A1 (en) 2006-08-10 2008-02-14 Keiichi Matsuzawa File readahead method with the use of access pattern information attached to metadata
US8233380B2 (en) 2006-11-06 2012-07-31 Hewlett-Packard Development Company, L.P. RDMA QP simplex switchless connection
US20080126509A1 (en) 2006-11-06 2008-05-29 Viswanath Subramanian Rdma qp simplex switchless connection
US7533197B2 (en) 2006-11-08 2009-05-12 Sicortex, Inc. System and method for remote direct memory access without page locking by the operating system
US7668851B2 (en) 2006-11-29 2010-02-23 International Business Machines Corporation Lockless hash table lookups while performing key update on hash table element
US7657659B1 (en) 2006-11-30 2010-02-02 Vmware, Inc. Partial copying of data to transmit buffer for virtual network device
US20080184248A1 (en) 2007-01-29 2008-07-31 Yahoo! Inc. Optimization of job scheduling for resource clusters with access control and usage reporting
US8448234B2 (en) 2007-02-15 2013-05-21 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for deep packet inspection for network intrusion detection
US20080201772A1 (en) 2007-02-15 2008-08-21 Maxim Mondaeev Method and Apparatus for Deep Packet Inspection for Network Intrusion Detection
US20080219279A1 (en) 2007-03-06 2008-09-11 Yen Hsiang Chew Scalable and configurable queue management for network packet traffic quality of service
US7710989B2 (en) 2007-03-06 2010-05-04 Intel Corporation Scalable and configurable queue management for network packet traffic quality of service
US20080219159A1 (en) 2007-03-07 2008-09-11 Texas Instruments Incorporated Protocol dma engine
US7835391B2 (en) 2007-03-07 2010-11-16 Texas Instruments Incorporated Protocol DMA engine
US8112594B2 (en) 2007-04-20 2012-02-07 The Regents Of The University Of Colorado Efficient point-to-point enqueue and dequeue communications
US8279865B2 (en) 2007-04-20 2012-10-02 John Giacomoni Efficient pipeline parallelism using frame shared memory
US7813277B2 (en) 2007-06-29 2010-10-12 Packeteer, Inc. Lockless bandwidth management for multiprocessor networking devices
US20090003204A1 (en) 2007-06-29 2009-01-01 Packeteer, Inc. Lockless Bandwidth Management for Multiprocessor Networking Devices
US20090007266A1 (en) 2007-06-29 2009-01-01 Reti Corporation Adaptive Defense System Against Network Attacks
US20090016217A1 (en) 2007-07-13 2009-01-15 International Business Machines Corporation Enhancement of end-to-end network qos
US20090144130A1 (en) 2007-07-13 2009-06-04 Grouf Nicholas A Methods and systems for predicting future data
US7936772B2 (en) 2007-07-13 2011-05-03 International Business Machines Corporation Enhancement of end-to-end network QoS
US20090089619A1 (en) 2007-09-27 2009-04-02 Kung-Shiuh Huang Automatic detection of functional defects and performance bottlenecks in network devices
US7840841B2 (en) 2007-09-27 2010-11-23 Cisco Technology, Inc. Automatic detection of functional defects and performance bottlenecks in network devices
US7916728B1 (en) 2007-09-28 2011-03-29 F5 Networks, Inc. Lockless atomic table update
US20090106470A1 (en) * 2007-10-23 2009-04-23 Brocade Communications Systems, Inc. Host bus adapter with multiple hosts
US7877524B1 (en) 2007-11-23 2011-01-25 Pmc-Sierra Us, Inc. Logical address direct memory access with multiple concurrent physical ports and internal switching
US20090138420A1 (en) 2007-11-28 2009-05-28 The Boeing Company Methods And System For Modeling Network Traffic
US9032113B2 (en) 2008-03-27 2015-05-12 Apple Inc. Clock control for DMA busses
US20090248911A1 (en) 2008-03-27 2009-10-01 Apple Inc. Clock control for dma busses
US8417842B2 (en) 2008-05-16 2013-04-09 Freescale Semiconductor Inc. Virtual direct memory access (DMA) channel technique with multiple engines for DMA controller
US8306036B1 (en) 2008-06-20 2012-11-06 F5 Networks, Inc. Methods and systems for hierarchical resource allocation through bookmark allocation
WO2009158680A1 (en) 2008-06-26 2009-12-30 Qualcomm Incorporated Methods and apparatuses to reduce context switching during data transmission and reception in a multi-processor device
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US20100023595A1 (en) 2008-07-28 2010-01-28 Crossfield Technology LLC System and method of multi-path data communications
US20110258337A1 (en) * 2008-08-04 2011-10-20 Zte Corporation Method and system for enabling zero-copy transmission of streaming media data
US8099528B2 (en) 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
US20100082849A1 (en) 2008-09-30 2010-04-01 Apple Inc. Data filtering using central DMA mechanism
US8077620B2 (en) 2008-10-08 2011-12-13 Lsi Corporation Methods and apparatuses for processing packets in a credit-based flow control scheme
US20100085875A1 (en) 2008-10-08 2010-04-08 Richard Solomon Methods and apparatuses for processing packets in a credit-based flow control scheme
US8447884B1 (en) 2008-12-01 2013-05-21 F5 Networks, Inc. Methods for mapping virtual addresses to physical addresses in a network device and systems thereof
US8112491B1 (en) 2009-01-16 2012-02-07 F5 Networks, Inc. Methods and systems for providing direct DMA
US20140032695A1 (en) 2009-01-16 2014-01-30 F5 Networks Network devices with multiple direct memory access channels and methods thereof
US8346993B2 (en) 2009-01-16 2013-01-01 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US9152483B2 (en) 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US20120191800A1 (en) 2009-01-16 2012-07-26 F5 Networks, Inc. Methods and systems for providing direct dma
US8103809B1 (en) 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US8984178B2 (en) 2009-01-16 2015-03-17 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US8880632B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Method and apparatus for performing multiple DMA channel based network quality of service
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US20110134915A1 (en) * 2009-12-09 2011-06-09 Sun Microsystems, Inc. Apparatus and method for managing packet classification tables
US20110228781A1 (en) 2010-03-16 2011-09-22 Erez Izenberg Combined Hardware/Software Forwarding Mechanism and Method
US8848715B2 (en) 2010-03-16 2014-09-30 Marvell Israel (M.I.S.L) Ltd. Combined hardware/software forwarding mechanism and method
US20110307663A1 (en) * 2010-06-10 2011-12-15 Global Supercomputing Corporation Storage Unsharing
US8630173B2 (en) 2010-11-19 2014-01-14 Cisco Technology, Inc. Dynamic queuing and pinning to improve quality of service on uplinks in a virtualized environment
US20120195192A1 (en) 2011-01-28 2012-08-02 Broadcom Corporation Dynamic memory bandwidth allocation
US8447897B2 (en) 2011-06-24 2013-05-21 Freescale Semiconductor, Inc. Bandwidth control for a direct memory access unit within a data processing system
US20140301207A1 (en) 2011-12-19 2014-10-09 Kalray System for transmitting concurrent data flows on a network
US20130166793A1 (en) * 2011-12-26 2013-06-27 Mellanox Technologies Ltd. Host channel adapter with pattern-type dma
US9036822B1 (en) 2012-02-15 2015-05-19 F5 Networks, Inc. Methods for managing user information and devices thereof
US20130250777A1 (en) 2012-03-26 2013-09-26 Michael L. Ziegler Packet descriptor trace indicators
US20140185442A1 (en) 2012-12-27 2014-07-03 Cisco Technology, Inc. Supporting quality of service differentiation using a single shared buffer
US9270602B1 (en) 2012-12-31 2016-02-23 F5 Networks, Inc. Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions
US20170235702A1 (en) * 2016-02-17 2017-08-17 International Business Machines Corporation Remote direct memory access-based method of transferring arrays of objects including garbage data
US10177795B1 (en) * 2016-12-29 2019-01-08 Amazon Technologies, Inc. Cache index mapping
US20190392297A1 (en) * 2016-12-30 2019-12-26 Intel Corporation Deep learning hardware
US20180322913A1 (en) * 2017-05-08 2018-11-08 Intel Corporation Flow based rate limit
US20190163441A1 (en) * 2017-11-30 2019-05-30 International Business Machines Corporation Multi-cycle key compares for keys and records of variable length
US20210152659A1 (en) * 2019-11-15 2021-05-20 F5 Networks, Inc. Scheduling services on a platform including configurable resources

Non-Patent Citations (26)

* Cited by examiner, † Cited by third party
Title
"Cavium Networks Product Selector Guide," Single & Multi-Core MIPS Processors, Security Processors and Accelerator Boards, Cavium Networks, pp. 1-44, Spring 2008.
"Comtech AHA Announces 3.0 Gbps GZIP Compression/Decompression Accelerator, AHA362-PCIX offers high-speed GZIP compression and decompression," News Release, Comtech AHA Corporation, Moscow, ID, pp. 1-2, Apr. 20, 2005.
"Comtech AHA Announces GZIP Compression and Decompression IC Offers the highest speed and compression ratio performance in hardware on the market," News Release, Comtech AHA Corporation, Moscow, ID, pp. 1-2, Jun. 26, 2007.
"Direct Memory Access (DMA) and Interrupt Handling," EventHelix.com, pp. 1-4, last accessed Jan. 29, 2010.
"Direct Memory Access," from Wikipedia, pp. 1-6, Jan. 26, 2010.
"Gigabit Ethernet/PCI Network Interface Card; Host/NIC Software Interface Definition," Revision 12.4.13, P/N 020001, Alteon WebSystems, Inc., pp. 1-80, Jul. 1999.
"Layer 4/7 Switching and Other Custom IP Traffic Processing Using the NEPPI API," Bell Laboratories, pp. 1-11, 1999.
"Memory Mapping and DMA," Linux Device Drivers, Third Edition, Chapter 15, pp. 412-463, Jan. 21, 2005.
"Nagle's Algorithm," from Wikipedia, pp. 1-2, Oct. 9, 2009.
"NITROX™ XL Security Acceleration Modules, PCI 3V or 3V/5V-Universal Boards for SSL and IPSec," Cavium Networks, 1 pp, 2002.
"PCI, PCI-X," Cavium Networks, Product Sheet, 1 pp, last retrieved Oct. 24, 2008.
"Plan 9 Kernel History: Overview," Lucent Technologies, pp. 1-16, last accessed Oct. 22, 2007.
"TCP-Transmission Control Protocol (TCP Fast Retransmit and Recovery)," EventHelix.com, pp. 1-5, Mar. 28, 2002.
Agrawala, Ashok K., "Operating Systems," Operating System Concepts, pp. 1-24, 2004.
Goglin et al., "Performance Analysis of Remote File System Access Over a High-Speed Local Networks," 18th International Parallel and Distributed Processing Symposium, pp. 1-8, Apr. 26-30, 2004.
Harvey et al., "DMA Fundamentals on Various PC Platforms," National Instruments, Application Note 011, pp. 1-18, Apr. 1991.
Kim, Hyong-youb, "TCP Offload Through Connection Handoff," Thesis submitted to Rice University, pp. 1-132, Aug. 2006.
Kurmann et al., "A Comparison of Two Gigabit SAN/LAN Technologies: Scalable Coherent Interface Versus Myrinet," Proceedings of SCI Europe '98 Conference, EMMMSEC'98, pp. 1-12, Sep. 28-30, 1998.
Mangino, John, "Using DMA With High Performance Peripherals to Maximize System Performance," Texas Instruments, pp. 1-23, Jan. 2007.
Mogul, Jeffrey C., "The Case for Persistent-Connection HTTP," ACM SIGCOMM Computer Communication Review, vol. 25, No. 4, pp. 299-313, Oct. 1995.
Moore et al., "Inferring Internet Denial-of-Service Activity," University of California, pp. 1-14, 2000.
Rabinovich et al., "DHTTP: An Efficient and Cache-Friendly Transfer Protocol for the Web," IEEE/ACM Transactions on Networking, vol. 12, No. 6, pp. 1007-1020, Dec. 2004.
Salchow, Jr., KJ, "Clustered Multiprocessing: Changing the Rules of the Performance Game," F5 Networks, Inc., White Paper, pp. 1-11, 2008.
Stevens, W., "TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms," Network Working Group, Request for Comments 2001, Standards Track, pp. 1-6, Jan. 1997.
Wadge, Wallace, "Achieving Gigabit Performance on Programmable Ethernet Network Interface Cards," pp. 1-9, May 29, 2001.
Welch, Von, "A User's Guide to TCP Windows," pp. 1-5, Jun. 19, 1996.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995013B2 (en) * 2021-09-01 2024-05-28 Arm Limited Direct memory access (DMA) controller issues memory access requests whereas memory locations having addresses which are offset amounts relative to destination template address
US20240220431A1 (en) * 2023-01-04 2024-07-04 Mercedes-Benz Group AG System, device and/or method for servicing redirected memory access requests using direct memory access scatter and/or gather operations

Similar Documents

Publication Publication Date Title
US20230006934A1 (en) Multi-path transport design
US10375155B1 (en) System and method for achieving hardware acceleration for asymmetric flow connections
US9609083B2 (en) Distributed service processing of network gateways using virtual machines
US9137156B2 (en) Scalable and efficient flow-aware packet distribution
KR101969194B1 (en) Offloading packet processing for networking device virtualization
CA3145192C (en) Securing communications between services in a cluster using load balancing systems and methods
EP2824880B1 (en) Flexible offload of processing a data flow
US9246819B1 (en) System and method for performing message-based load balancing
US7630368B2 (en) Virtual network interface card loopback fastpath
US9338192B1 (en) Connection management using connection request transfer protocol
US20140006632A1 (en) Multiplexer Load Balancer for Session Initiation Protocol Traffic
US8887280B1 (en) Distributed denial-of-service defense mechanism
US10104002B2 (en) Method and system for network address re-use in network address translation
US20220200910A1 (en) Methods and systems for autonomous rule-based task coordination amongst edge devices
US11956221B2 (en) Encrypted data packet forwarding
US11855898B1 (en) Methods for traffic dependent direct memory access optimization and devices thereof
US10181031B2 (en) Control device, control system, control method, and control program
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
Yang et al. HEELS: A Host-Enabled eBPF-Based Load Balancing Scheme
US20150288763A1 (en) Remote asymmetric tcp connection offload over rdma
US11044350B1 (en) Methods for dynamically managing utilization of Nagle's algorithm in transmission control protocol (TCP) connections and devices thereof
EP4199427A1 (en) Ai-supported network telemetry using data processing unit
US11496438B1 (en) Methods for improved network security using asymmetric traffic delivery and devices thereof
JP2008060747A (en) Layer 2 load balancing system, layer 2 load balancer, and layer 2 load balancing method for the same
Ivanisenko Methods and Algorithms of load balancing

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE