This invention relates generally to data communications, and more specifically, to a service gateway.
Service gateways such as firewall, server load balancers have been deployed by service providers and enterprises. In the past, service gateways were used for special purposes such as security. They are, however, used in expanded ways today. Many service providers deploy service gateways to perform various service gateway applications to examine and analyze data packets of a communication session between a host device and a server computer. Many gateway applications modify the packets to assist the analysis of the data packets and the communication sessions. Packet modification is a computation intensive and memory access intensive task. The modification task is usually performed by a processor module of a service gateway. Typically the processor or processor module analyzes a data packet, determines the necessary modification data blocks, creates a packet memory buffer, copies some data from the data packet into the data packet memory buffer and copies the modification data blocks into the packet memory buffer. When the data copying is completed, the processor has generated a new data packet from the original data packet. The service gateway then sends the generated data packet onto the network.
The data packet modification process is costly to the processor module, consuming CPU cycles and memory access bandwidth. If the data packet modification process can be offloaded and handled by a high performing hardware-based module of service gateway, the processor module can allocate its resources to handle additional data packets or additional communication sessions.
Therefore, there is a need to introduce a hardware-based high performing packet editing module to handle the data packet modification.
This summary is provided to introduce a selection of concepts in a simplified form that are further described in the Detailed Description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In some embodiments of the present invention, a method for modifying a data packet by a hardware-based packet editor, comprises: receiving, by the packet editor, a packet editing script comprising one or more script entries indicating modifications to be applied to the data packet and a data block comprising data for the modified packet; for each given script entry in the packet editing script, copying, by the packet editor, data in the data block at a location and a size identified in the given script entry into a packet buffer; and generating, by the packet editor, a modified data packet with the data in the packet buffer.
In one aspect of the present invention, the copying comprises: retrieving the given script entry of the packet editing script; determining whether the given script entry is a first script entry for the modified data packet; in response to determining that the given script entry is the first script entry for the modified data packet, reserving the packet buffer for the modified data packet; copying the data in the data block at a block location and with a block length identified in the given editing script into the packet buffer; determining whether the given script entry is a last script entry for the modified data packet; in response to determining that the given script entry is not the last script entry for the modified data packet, performing the copying the data in the data block at a block location and with a block length identified in the given editing script into the packet buffer and the determining whether the given script entry is a last script entry for the next given script entry of the packet editing script.
In one aspect of the present invention, the determining whether the given script entry is a first script entry for the modified data packet comprises: determining whether a start of packet (SOP) indicator in the given script entry indicates that the given script entry is the first script entry for the modified data packet.
In one aspect of the present invention, the determining whether the given script entry is a last script entry for the modified data packet comprises: determining whether an end of packet (EOP) indicator in the given script entry indicates that the given script entry is the last script entry for the modified data packet.
In one aspect of the present invention, the reserving the packet buffer for the modified data packet and the copying the data in the data block at a block location and with a block length identified in the given editing script into the packet buffer comprises: setting a packet buffer marker at a beginning of the packet buffer; appending a copy of the data in the data block at the block location and with the block length identified in the given editing script to the packet buffer at the packet buffer marker; and modifying the packet buffer marker by the block length identified in the given editing script.
In one aspect of the present invention, the generating the modified data packet with the data in the packet buffer comprises: in response to determining that the given script entry is the last script entry for the modified data packet, generating the modified data packet with the data in the packet buffer.
In one aspect of the present invention, the generating the modified data packet with the data in the packet buffer further comprises: determining whether the given script entry is the last script entry in the packet editing script; and in response to determining that the given script entry is not the last script entry in the packet editing script, repeating the retrieving the given script entry of the packet editing script, the determining whether the given script entry is a first script entry for the modified data packet, the reserving the packet buffer for the modified data packet, the copying the data in the data block at a block location and with a block length identified in the given editing script into the packet buffer, the determining whether the given script entry is a last script entry for the modified data packet, the performing the copying of the data into the packet buffer, and the generating the modified data packet with the data in the packet buffer for a next given script entry in the packet editing script.
In one aspect of the present invention, the determining whether the given script entry is the last script entry in the packet editing script comprises: determining whether an end of table (EOT) indicator in the given script entry indicates that the given script entry is the last script entry in the packet editing script.
According to another embodiment of the present invention, a method for processing a data packet by a service gateway comprising a processor, comprises: receiving, by the processor, a data packet from a host to be sent to a server, or from the server to be sent to the host; determining, by the processor, that the data packet requires modification prior to sending to the server or the host; generating, by the processor, a packet editing script, the script comprising one or more script entries indicating modifications to be applied to the data packet and a data block comprising data for the modified packet, wherein the generating comprises: for each and any given portion of the data packet determined to be included in the modified packet, generating a first script entry identifying a first location and a first length in the data block corresponding to the given portion determined to be included; for each and any given portion of the data packet determined to be removed from the data packet, omitting generation of a script entry corresponding to the given portion determined to be removed; and for each and any new data determined to be added to the modified packet, generating the new data to be comprised in the data block of the packet editing script and generating a second script entry identifying a second location and a second length in the data block corresponding to the new data; and sending, by the processor, the packet editing script to a hardware-based packet editor, wherein the packet editor generates the modified packet according to the script entries in the packet editing script.
System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
Embodiments are illustrated by way of example and not by limitation in the figures of the accompanying drawings, in which like references indicate similar elements
The following detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show illustrations in accordance with example embodiments. The following description is presented to enable one of ordinary skill in the art to make and use the present invention and is provided in the context of a patent application and its requirements. Various modifications to the embodiment will be readily apparent to those skilled in the art and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.
The present invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the present invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, point devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified local function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
In an embodiment illustrated in
In one embodiment, data network 150 includes an Internet Protocol (IP) network, a corporate data network, a regional corporate data network, an Internet service provider network, a residential data network, a wired network such as Ethernet, a wireless network such as a WiFi network, a Bluetooth network, or a cellular network. In one embodiment, data network 150 resides in a data center, or connects to a network or application network cloud.
Host 100 is a computing device with network access capabilities. In one embodiment, host 100 is a workstation, a desktop personal computer or a laptop personal computer, a Personal Data Assistant (PDA), a tablet PC, a smartphone, or a cellular phone, a set-top box, an Internet media viewer, an Internet media player, a smart sensor, a smart medical device, a net-top box, a networked television set, a networked DVR, a networked Blu-ray player, a media center, or a network connected device.
Server 200 is a computing device typically coupled to a processor and a computer readable medium which stores computer readable program code. Server 200, with the processor and the computer readable program code, implements functionality of a Web server, a file server, a video server, a database server, an application server, a voice system, a conferencing server, a media gateway, a media center, an app server or a network server providing a network service or an application service to host 100 using the communication session 400.
Service gateway 300 is operationally coupled to a processor module 310, a packet editor 350, a network interface module 330, and a computer readable medium 340. The computer readable medium 340 stores computer readable program code, which when executed by the processor module 310, implements the various embodiments of the present invention as described herein. In some embodiments, service gateway 300 is implemented as a server load balancer, an application delivery controller, a service delivery platform, a traffic manager, a security gateway, a component of a firewall system, a component of a virtual private network (VPN), a load balancer for video servers, a gateway to distribute load to one or more servers, a Web or HyperText Transport Protocol (HTTP) server handling the HTTP layer of the HTTP service session, or a gateway performing network address translation (NAT).
Processor module 310 typically includes one or more general processors or micro-processors. In one embodiment, processor module 310 includes a multi-core microprocessor. In one embodiment, processor module 310 includes a memory unit storing variables used during execution of the computer readable program code stored in computer readable medium 340.
Network interface module 330 connects to data network 150. Network interface module 330 receives data packets of communication session 400 from host 100 and server 200, and sends data packets of communication session 400 to host 100 and server 200.
Packet editor 350 is a hardware-based packet processing accelerating module, typically comprising high performing capabilities to process data packets. In one embodiment, packet editor 350 includes a field programmable gate array (FPGA) module, an application specific integrated circuit (ASIC), a digital signal processor (DSP), or a circuitry capable of performing the high speed processing needs of packet editor 350.
In one embodiment, host 100 sends a data packet 403 of communication session 400 towards server 200. Service gateway 300 receives data packet 403 through network module 330. Processor module 310 processes data packet 403 according to the computer readable program code stored on the computer readable medium 340. Processor module 310 determines that data packet 403 is to be modified by packet editor 350. Packet editor 350 receives data packet 403 and generates data packet 408. Network module 330 transmits data packet 408 to server 200.
In one embodiment, server 200 sends a data packet 418 of communication session 400 towards host 100. Service gateway 300 receives data packet 418 through network module 330. Processor module 310 processes data packet 418 according to the computer readable program code stored on the computer readable medium 340. Processor module 310 determines that data packet 418 to be modified by packet editor 350. Packet editor 350 receives data packet 418 and generates data packet 413. Network module 330 transmits data packet 413 to host 100.
In one embodiment, data packet 403 is a HyperText Transport Protocol (HTTP) packet, and packet editor 350 removes a part of HTTP header of data packet 403 to generate data packet 408. In one embodiment, 418 is a HTTP packet and packet editor 350 inserts a HTTP header to data packet 418 in order to generate data packet 413.
In one embodiment, data packet 403 is an IP packet comprising an IP header, and packet editor 350 inserts a second IP header to data packet 403 in order to generate an IP tunnel data packet 408. In one embodiment, packet editor 350 performs IP fragmentation to generate data packet 408 and a second data packet (not shown) prior to sending data packet 408 and the second data packet to server 200. In one embodiment, data packet 403 is an IP tunnel packet and packet editor 350 removes an IP header from data packet 403 in order to generate data packet 408. In various embodiments, data packet 418 can also have the same or similar properties as data packet 408 (i.e. comprise an IP header, be an IP tunnel packet, etc.). After being processed by packet editor 350, data packet 413 can have the same or similar properties as data packet 408 (i.e. have a second IP header inserted, be fragmented, etc.).
In one embodiment, packet editor 350 processes data packet 403 to generate data packet 408 by copying one or more data blocks of data packet 403 onto data packet 408, copying additional data blocks onto data packet 408 through instruction from processor module 310, computing a checksum using one or more parts of data packet 403, and placing the checksum onto data packet 408.
The above mentioned data packet modification of data packet 408 are applicable in many implementations of service gateway 300, for example, as a HTTP proxy server, TCP proxy server, Layer 3/Layer 4 tunnel gateway, a firewall, IP tunnel gateway, IPv4/IPv6 tunneling gateway, IP-IP tunneling gateway.
For example, in one embodiment, application 314 determines that a HTTP header is to be removed from data packet 405. Packet editing script 512 describes the part of HTTP header to be removed. In one embodiment, application 314 determines that a HTTP header is to be inserted into data packet 405. Packet editing script 512 describes the location where the HTTP header is to be inserted and the data for the HTTP header. In one embodiment, application 314 determines that an additional IP header is to be inserted into data packet 405. Packet editing script 512 describes the details of the additional IP header such that packet editor 350 will perform the insertion. In one embodiment, packet editing script 512 includes data packet 405. Application 314 then sends the packet editing script 512 to the packet editor 350, effectively informing the packet editor 350 that it is to modify data packet 405 using packet editing script 512.
Packet editor 350 receives packet editing script 512 and generates data packet 415 based on the packet editing script 512.
In one embodiment, packet editor 350 sends data packet 415 to network module 330 for transmission. In one embodiment, packet editor 350 informs application 314 after generation of data packet 415. Application 314 informs network module 330 to transmit data packet 415.
Script entry table 524 includes a script entry 542. In one embodiment, script entry 542 includes a plurality of fields comprising a block location 551, a block length 552, a start-of-packet indication (SOP) 554, an end-of-packet indication (EOP) 553, and an end-of-script indication (EOT) 555 (also referred to as end-of-table). In one embodiment, SOP 554, EOP 553 and EOT 555 are 1-bit long indicators; block location 551 has a 10-bit value; block length 552 has an 11-bit value. Script entry 542 may include one or more unused multi-bit fields such that script entry 542 is a 4-byte or 32-bit long data structure.
Block location 551 and block length 552 references a block of data in data block 527. Block location 551 refers to the location of data block 527.
In one embodiment, script entry table 524 includes a second script entry 543 with the same fields. The one or more script entries, such as script entry 542 and second script entry 543, are used by packet editor 350 to generate a modified data packet.
Data block 527 contains one or more blocks of data to generate a modified data packet.
In step 933, control module 356 retrieves script entry 542 from control memory 354, and starts to process script entry 542.
In step 935, control module 356 examines SOP 554. If SOP 554 has a value of 1, control module 356 reserves packet buffer 359 in order to generate a data packet 353. Control module 356 sets the value of packet buffer marker 358 at 0, or at the beginning of packet buffer 359. If SOP 554 has a value of 0, control module 356 proceeds to another step.
In step 937, control module 356 copies a block of data from data block 527 to packet buffer 359, based on block location 551 and block length 552 of script entry 542. Control module 356 appends to packet buffer 359 at the packet buffer marker 358 the block of data from data block 527 starting from block location 551 with a size of block length 552. Control module 356 increases packet buffer marker 358 by the value of block length 552, such that the subsequent copy would start after the current copied data block.
In step 939, control module 356 examines EOP 553. If EOP 553 has a value of 1, control module 356 determines the completion of generating data packet 353 in packet buffer 359, with a block of data up to the packet buffer marker 358. Packet editor 350 continues with step 943. If EOP 553 has a value of 0, step 943 is skipped, and control module 356 proceeds to step 949.
In step 943, packet editor 350 further includes a checksum module 357. Checksum module 357 computes a checksum for data packet 353. In one embodiment, data packet 353 includes an IP packet. Checksum module 357 computes a checksum for the IP header and modifies data packet 353 with the computed checksum. In one embodiment, data packet 353 includes a TCP or UDP packet, checksum module 357 computes a checksum for the corresponding TCP or UDP packet, and modifies data packet 353 with the computed checksum. In one embodiment, data packet 353 includes a packet format requiring a checksum, checksum module 357 computes a checksum for the packet format and modifies data packet 353 with the computed checksum.
In step 949, control module 356 examines EOT 555. If EOT 555 has a value of 1, control module 356 determines processing of packet editing script 512 is completed. If EOT 555 has a value of 0, control module 356 fetches a second script entry from control memory 354 and repeats performing steps 933-949 for the second script entry.
Block location 651=8
Block length 652=192
SOP 654=1
EOP 653=0
EOT 655=0
Second Script entry 643 includes
Block location 661=284
Block length 662=726
SOP 664=0
EOP 663=1
EOT 665=1
Data block 627 includes a total of 1000 bytes of data, which may be a HTTP packet.
Packet editor 350 constructs a data packet 409 according to packet editing script 612, as illustrated in
EOP 653 of value 0 indicates generation of data packet 409 is not completed. After completion of script entry 642, packet editor 350 obtains second script entry 643 and processes accordingly. SOP 664 has a value of 0, indicating to packet editor 350 to continue with data packet 409. Packet editor 350 examines block location 661 and block length 662. Packet editor 350 copies 726 (value of block length 662) bytes of data block 627 starting at location 284 (value of block location 661) of packet editing script 612. Upon completion of copying, packet editor 350 determines from the value (1) of EOP 663 that data packet 409 generation is completed.
EOT 665 of value 1 indicates that second script entry 643 is the last entry in script entry table 624. Packet editor 350 determines the completion of processing of packet editing script 612.
In this embodiment, packet editor 350 does not copy data block from location 192 to location 284 (for a total of 92 bytes). The data block not copied represents a HTTP header field to be removed.
Script entry 742 includes
Block location 821=20
Block length 822=231
SOP 824=1
EOP 823=0
EOT 825=0
Script entry 743 includes
Block location 831=1544
Block length 832=200
SOP 834=0
EOP 833=0
EOT 835=0
Script entry 744 includes
Block location 841=251
Block length 842=1073
SOP 844=0
EOP 843=1
EOT 845=0
Script entry 745 includes
Block location 851=1524
Block length 852=20
SOP 854=1
EOP 853=0
EOT 855=0
Script entry 746 includes
Block location 861=1324
Block length 862=200
SOP 864=0
EOP 863=1
EOT 865=1
Data block 727 includes an original packet 772, a second packet header 773, and a to-be-inserted data block 774. In this example, original packet 772 has a size of 1504 bytes; second packet header 773 is of size 20 bytes and to-be-inserted data block 774 is of size 200 bytes.
The block location of original packet 772 is 20 in data block 727. The block location of the second packet header 773 is 1524. The block location of the to-be-inserted data block 774 is 1324.
According to the process illustrated in
Then packet editor 350, according to script entry 744, copies a block of data from data block 727 of size 1073 (value of block length 842) from location 251 (value of block location 841) onto data packet 411. The block of data copied is a data block in original packet 772 immediately following the block of data copied in script entry 742. EOP 843 being 1 indicates completion of data packet 411 generation.
Then packet editor 350 proceeds to process script entry 745. SOP 854 being 1 instructs packet editor 350 to prepare to generate data packet 412. Packet editor 350 copies a block of data from data block 727 of size 20 bytes (value of block length 852) from location 1524 (value of block location 851) onto data packet 412. The block of data copied includes the entirety of the second packet header 773.
Packet editor 350 proceeds to process script entry 746. Packet editor 350 copies a block of data from data block 727 of size 200 bytes (value of block length 862) from location 1324 (value of block location 861) onto data packet 412. The block of data copied is the remaining data of the original packet 772, after the block of data copied in script entry 744.
EOP 863 of script entry 746 has a value 1. Packet editor 350 determines data packet 412 generation is completed. EOT 865 of script entry 746 has a value 1. Packet editor 350 determines processing of packet editing script 712 is completed. As a result of completing packet editing script 712, packet editor 350 generates data packet 411 and data packet 412.
The above figures illustrate embodiments of packet editing scripts to remove or not to copy one or more blocks of data from data block(s) and to copy one or more blocks of data from data block(s). By using the copying instructions, those skilled in the art may formulate a packet editing script for various data packet manipulation.
In one embodiment, service gateway application 314, illustrated in
In one embodiment of the present invention, service gateway application 314 implements an IP tunneling gateway (such as IP-IP tunnel, IPv4/IPv6 tunnel). Service gateway application 314 receives data packet 405 and determines that an IP tunnel header is to be inserted. Service gateway application 314 prepares data block 532 as the IP tunnel header. Service gateway application 314 creates a packet editing script 512, where the data block 527 includes data packet 405 and data block 532, and script entry table 524 to include one or more script entries to instruct packet editor 350 to copy data block 532, and to copy data packet 405.
In one embodiment, service gateway application 314 determines an IP tunnel header is to be removed. Service gateway application 314 determines the size of the IP tunnel header. Service gateway application 314 creates a packet editing script 512, where the data block 527 includes data packet 405, and a script entry 542 such that the block location of script entry 542 skips the tunnel header. Packet editing script 512 instructs packet editor 350 to copy data packet 405 while skipping, or not copying, the IP tunnel header.
In one embodiment, service gateway application 314 implements a proxy service such as TCP proxy or HTTP proxy. Service gateway application 314 receives an input data packet 405 and determines that a first plurality of data blocks in data packet 403 is to be replaced by a second plurality of data blocks. Service gateway application 314 prepares the second plurality of data blocks, and creates a packet editing script 512, where the data block 527 of packet editing script 512 includes data packet 405 and the second plurality of data blocks. The packet editing script 512 also prepares script entry table 524 to include a plurality of script entries instructing packet editor 350 to copy certain data blocks from data packet 405, not to copy the first plurality of data blocks from data packet 405, and to copy the second plurality of data blocks, in essence replacing the first plurality of data blocks with the second plurality of data blocks.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
The present application is a continuation of U.S. patent application Ser. No. 14/825,609, filed on Aug. 13, 2015 and entitled “Hardware-Based Packet Editor,” which is a continuation and claims the priority benefit of U.S. patent application Ser. No. 13/433,290 filed on Mar. 29, 2012 and entitled “Hardware-Based Packet Editor,” now U.S. Pat. No. 9,118,618 issued on Aug. 25, 2015. The disclosures of the above-referenced patent applications are incorporated herein by reference in their entirety for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4403286 | Fry et al. | Sep 1983 | A |
4495570 | Kitajima et al. | Jan 1985 | A |
4577272 | Ballew et al. | Mar 1986 | A |
4720850 | Oberlander et al. | Jan 1988 | A |
4864492 | Blakely-Fogel et al. | Sep 1989 | A |
4882699 | Evensen | Nov 1989 | A |
5031089 | Liu et al. | Jul 1991 | A |
5218676 | Ben-Ayed et al. | Jun 1993 | A |
5293488 | Riley et al. | Mar 1994 | A |
5341477 | Pitkin et al. | Aug 1994 | A |
5432908 | Heddes et al. | Jul 1995 | A |
5537542 | Eilert et al. | Jul 1996 | A |
5563878 | Blakeley et al. | Oct 1996 | A |
5603029 | Aman et al. | Feb 1997 | A |
5675739 | Eilert et al. | Oct 1997 | A |
5740371 | Wallis | Apr 1998 | A |
5751971 | Dobbins et al. | May 1998 | A |
5754752 | Sheh et al. | May 1998 | A |
5774660 | Brendel et al. | Jun 1998 | A |
5774668 | Choquier et al. | Jun 1998 | A |
5781550 | Templin et al. | Jul 1998 | A |
5796936 | Watabe et al. | Aug 1998 | A |
5812771 | Fee et al. | Sep 1998 | A |
5828847 | Gehr et al. | Oct 1998 | A |
5835724 | Smith | Nov 1998 | A |
5867636 | Walker | Feb 1999 | A |
5867661 | Bittinger et al. | Feb 1999 | A |
5875185 | Wang et al. | Feb 1999 | A |
5875296 | Shi et al. | Feb 1999 | A |
5917997 | Bell et al. | Jun 1999 | A |
5918017 | Attanasio et al. | Jun 1999 | A |
5923854 | Bell et al. | Jul 1999 | A |
5931914 | Chiu | Aug 1999 | A |
5935207 | Logue et al. | Aug 1999 | A |
5935215 | Bell et al. | Aug 1999 | A |
5941988 | Bhagwat et al. | Aug 1999 | A |
5944794 | Okamoto et al. | Aug 1999 | A |
5946686 | Schmuck et al. | Aug 1999 | A |
5951650 | Bell et al. | Sep 1999 | A |
5951694 | Choquier et al. | Sep 1999 | A |
6006264 | Colby et al. | Dec 1999 | A |
6006269 | Phaal | Dec 1999 | A |
6031978 | Cotner et al. | Feb 2000 | A |
6041357 | Kunzelman et al. | Mar 2000 | A |
6076108 | Courts et al. | Jun 2000 | A |
6088728 | Bellemore et al. | Jul 2000 | A |
6098093 | Bayeh et al. | Aug 2000 | A |
6104717 | Coile et al. | Aug 2000 | A |
6119174 | Borowsky et al. | Sep 2000 | A |
6128279 | O'Neil et al. | Oct 2000 | A |
6141749 | Coss et al. | Oct 2000 | A |
6141759 | Braddy | Oct 2000 | A |
6167428 | Ellis | Dec 2000 | A |
6185598 | Farber et al. | Feb 2001 | B1 |
6223205 | Harchol-Balter et al. | Apr 2001 | B1 |
6223287 | Douglas et al. | Apr 2001 | B1 |
6247057 | Barrera, III | Jun 2001 | B1 |
6249820 | Dobbins et al. | Jun 2001 | B1 |
6252878 | Locklear, Jr. et al. | Jun 2001 | B1 |
6262976 | McNamara | Jul 2001 | B1 |
6286039 | Van Home et al. | Sep 2001 | B1 |
6314463 | Abbott et al. | Nov 2001 | B1 |
6317786 | Yannane et al. | Nov 2001 | B1 |
6324177 | Howes et al. | Nov 2001 | B1 |
6324286 | Lai et al. | Nov 2001 | B1 |
6330560 | Harrison et al. | Dec 2001 | B1 |
6339423 | Sampson et al. | Jan 2002 | B1 |
6353614 | Borella et al. | Mar 2002 | B1 |
6360265 | Falck et al. | Mar 2002 | B1 |
6363075 | Huang et al. | Mar 2002 | B1 |
6363081 | Gase | Mar 2002 | B1 |
6374300 | Masters | Apr 2002 | B2 |
6374359 | Shrader et al. | Apr 2002 | B1 |
6381632 | Lowell | Apr 2002 | B1 |
6389462 | Cohen et al. | May 2002 | B1 |
6393475 | Leong et al. | May 2002 | B1 |
6397261 | Eldridge et al. | May 2002 | B1 |
6415329 | Gelman et al. | Jul 2002 | B1 |
6430622 | Aiken, Jr. et al. | Aug 2002 | B1 |
6445704 | Howes et al. | Sep 2002 | B1 |
6446225 | Robsman et al. | Sep 2002 | B1 |
6490682 | Vanstone et al. | Dec 2002 | B2 |
6496866 | Attanasio et al. | Dec 2002 | B2 |
6510464 | Grantges, Jr. et al. | Jan 2003 | B1 |
6515988 | Eldridge et al. | Feb 2003 | B1 |
6519243 | Nonaka et al. | Feb 2003 | B1 |
6535516 | Leu et al. | Mar 2003 | B1 |
6542926 | Zalewski et al. | Apr 2003 | B2 |
6564215 | Hsiao et al. | May 2003 | B1 |
6567857 | Gupta et al. | May 2003 | B1 |
6578066 | Logan et al. | Jun 2003 | B1 |
6587866 | Modi et al. | Jul 2003 | B1 |
6591262 | MacLellan et al. | Jul 2003 | B1 |
6594268 | Aukia et al. | Jul 2003 | B1 |
6598167 | Devine et al. | Jul 2003 | B2 |
6606315 | Albert et al. | Aug 2003 | B1 |
6609150 | Lee et al. | Aug 2003 | B2 |
6611498 | Baker et al. | Aug 2003 | B1 |
6650641 | Albert et al. | Nov 2003 | B1 |
6657974 | Britton et al. | Dec 2003 | B1 |
6658114 | Farn et al. | Dec 2003 | B1 |
6697354 | Borella et al. | Feb 2004 | B1 |
6701377 | Burmann et al. | Mar 2004 | B2 |
6704317 | Dobson | Mar 2004 | B1 |
6711618 | Danner et al. | Mar 2004 | B1 |
6714979 | Brandt et al. | Mar 2004 | B1 |
6718383 | Hebert | Apr 2004 | B1 |
6742126 | Mann et al. | May 2004 | B1 |
6745229 | Gobin et al. | Jun 2004 | B1 |
6748413 | Bournas | Jun 2004 | B1 |
6760758 | Lund et al. | Jul 2004 | B1 |
6763370 | Schnneidler et al. | Jul 2004 | B1 |
6763468 | Gupta et al. | Jul 2004 | B2 |
6772333 | Brendel | Aug 2004 | B1 |
6779017 | Lamberton et al. | Aug 2004 | B1 |
6832322 | Baden et al. | Dec 2004 | B1 |
6877095 | Allen | Apr 2005 | B1 |
6886044 | Miles et al. | Apr 2005 | B1 |
6892307 | Wood et al. | May 2005 | B1 |
6941384 | Aiken, Jr. et al. | Sep 2005 | B1 |
6952728 | Alles et al. | Oct 2005 | B1 |
6954784 | Aiken, Jr. et al. | Oct 2005 | B2 |
6963917 | Callis et al. | Nov 2005 | B1 |
6965930 | Arrowood et al. | Nov 2005 | B1 |
6996617 | Aiken, Jr. et al. | Feb 2006 | B1 |
6996631 | Aiken, Jr. et al. | Feb 2006 | B1 |
7013338 | Nag et al. | Mar 2006 | B1 |
7058600 | Combar et al. | Jun 2006 | B1 |
7058789 | Henderson | Jun 2006 | B2 |
7058973 | Sultan | Jun 2006 | B1 |
7086086 | Ellis | Aug 2006 | B2 |
7111162 | Bagepalli et al. | Sep 2006 | B1 |
7120697 | Aiken, Jr. et al. | Oct 2006 | B2 |
7188181 | Squier et al. | Mar 2007 | B1 |
7225249 | Barry et al. | May 2007 | B1 |
7266604 | Nathan et al. | Sep 2007 | B1 |
7284272 | Howard et al. | Oct 2007 | B2 |
7290050 | Smith et al. | Oct 2007 | B1 |
7308710 | Yarborough | Dec 2007 | B2 |
7370100 | Gunturu | May 2008 | B1 |
7373500 | Ramelson et al. | May 2008 | B2 |
7406709 | Maher et al. | Jul 2008 | B2 |
7430611 | Aiken, Jr. et al. | Sep 2008 | B2 |
7441270 | Edwards et al. | Oct 2008 | B1 |
7451312 | Medvinsky et al. | Nov 2008 | B2 |
7463648 | Eppstein et al. | Dec 2008 | B1 |
7509369 | Tormasov | Mar 2009 | B1 |
7516485 | Lee et al. | Apr 2009 | B1 |
7529242 | Lyle | May 2009 | B1 |
7568041 | Turner et al. | Jul 2009 | B1 |
7583668 | Mayes et al. | Sep 2009 | B1 |
7591001 | Shay | Sep 2009 | B2 |
7603454 | Piper | Oct 2009 | B2 |
7703102 | Eppstein et al. | Apr 2010 | B1 |
7716369 | Le Pennec et al. | May 2010 | B2 |
7779130 | Toutonghi | Aug 2010 | B1 |
7792113 | Foschiano et al. | Sep 2010 | B1 |
7848326 | Leong | Dec 2010 | B1 |
7908651 | Maher | Mar 2011 | B2 |
7948952 | Hurtta et al. | May 2011 | B2 |
7970934 | Patel | Jun 2011 | B1 |
7991859 | Miller et al. | Aug 2011 | B1 |
8019870 | Eppstein et al. | Sep 2011 | B1 |
8032634 | Eppstein et al. | Oct 2011 | B1 |
8079077 | Chen et al. | Dec 2011 | B2 |
8179809 | Eppstein et al. | May 2012 | B1 |
8191106 | Choyi et al. | May 2012 | B2 |
8224971 | Miller et al. | Jul 2012 | B1 |
8234650 | Eppstein et al. | Jul 2012 | B1 |
8239445 | Gage et al. | Aug 2012 | B1 |
8244876 | Sollee | Aug 2012 | B2 |
8255644 | Sonnier | Aug 2012 | B2 |
8291487 | Chen et al. | Oct 2012 | B1 |
8296434 | Miller et al. | Oct 2012 | B1 |
8312507 | Chen et al. | Nov 2012 | B2 |
8327128 | Prince et al. | Dec 2012 | B1 |
8332925 | Chen et al. | Dec 2012 | B2 |
8347392 | Chess et al. | Jan 2013 | B2 |
8387128 | Chen et al. | Feb 2013 | B1 |
8464333 | Chen et al. | Jun 2013 | B1 |
8520615 | Mehta et al. | Aug 2013 | B2 |
8543644 | Gage et al. | Sep 2013 | B2 |
8584199 | Chen et al. | Nov 2013 | B1 |
8595383 | Chen et al. | Nov 2013 | B2 |
8595791 | Chen et al. | Nov 2013 | B1 |
8595819 | Chen et al. | Nov 2013 | B1 |
8675488 | Sidebottom et al. | Mar 2014 | B1 |
8813180 | Chen et al. | Aug 2014 | B1 |
8826372 | Chen et al. | Sep 2014 | B1 |
8885463 | Medved et al. | Nov 2014 | B1 |
8904512 | Chen et al. | Dec 2014 | B1 |
8914871 | Chen et al. | Dec 2014 | B1 |
8918857 | Chen et al. | Dec 2014 | B1 |
RE45347 | Chun et al. | Jan 2015 | E |
8943577 | Chen et al. | Jan 2015 | B1 |
9032502 | Chen et al. | May 2015 | B1 |
9118618 | Davis | Aug 2015 | B2 |
9118620 | Davis | Aug 2015 | B1 |
9124550 | Chen et al. | Sep 2015 | B1 |
9219751 | Chen et al. | Dec 2015 | B1 |
9253152 | Chen et al. | Feb 2016 | B1 |
9258332 | Chen et al. | Feb 2016 | B2 |
9270705 | Chen et al. | Feb 2016 | B1 |
9338225 | Jalan et al. | May 2016 | B2 |
9350744 | Chen et al. | May 2016 | B2 |
9356910 | Chen et al. | May 2016 | B2 |
9497201 | Chen et al. | Nov 2016 | B2 |
9742879 | Davis | Aug 2017 | B2 |
20010015812 | Sugaya | Aug 2001 | A1 |
20010023442 | Masters | Sep 2001 | A1 |
20020010783 | Prinnak et al. | Jan 2002 | A1 |
20020026531 | Keane et al. | Feb 2002 | A1 |
20020046348 | Brustoloni | Apr 2002 | A1 |
20020053031 | Bendinelli et al. | May 2002 | A1 |
20020091831 | Johnson | Jul 2002 | A1 |
20020110134 | Gracon | Aug 2002 | A1 |
20020124089 | Aiken et al. | Sep 2002 | A1 |
20020133491 | Sim et al. | Sep 2002 | A1 |
20020141448 | Matsunaga | Oct 2002 | A1 |
20020143953 | Aiken | Oct 2002 | A1 |
20020143954 | Aiken et al. | Oct 2002 | A1 |
20020143955 | Shimada et al. | Oct 2002 | A1 |
20020166080 | Attanasio et al. | Nov 2002 | A1 |
20020178265 | Aiken et al. | Nov 2002 | A1 |
20020178268 | Aiken et al. | Nov 2002 | A1 |
20020191575 | Kalavade et al. | Dec 2002 | A1 |
20020194335 | Maynard | Dec 2002 | A1 |
20020199000 | Banerjee | Dec 2002 | A1 |
20030023711 | Parmar et al. | Jan 2003 | A1 |
20030023873 | Ben-Itzhak | Jan 2003 | A1 |
20030031180 | Datta et al. | Feb 2003 | A1 |
20030035420 | Niu | Feb 2003 | A1 |
20030061402 | Yadav | Mar 2003 | A1 |
20030065950 | Yarborough | Apr 2003 | A1 |
20030079146 | Burstein | Apr 2003 | A1 |
20030081624 | Aggarwal | May 2003 | A1 |
20030088788 | Yang | May 2003 | A1 |
20030131245 | Linderman | Jul 2003 | A1 |
20030135525 | Huntington | Jul 2003 | A1 |
20030135653 | Marovich | Jul 2003 | A1 |
20030152078 | Henderson | Aug 2003 | A1 |
20030167340 | Jonsson | Sep 2003 | A1 |
20030202536 | Foster et al. | Oct 2003 | A1 |
20030229809 | Wexler et al. | Dec 2003 | A1 |
20040001497 | Sharma | Jan 2004 | A1 |
20040054920 | Wilson et al. | Mar 2004 | A1 |
20040107360 | Herrmann et al. | Jun 2004 | A1 |
20040128312 | Shalabi et al. | Jul 2004 | A1 |
20040139057 | Hirata et al. | Jul 2004 | A1 |
20040139108 | Tang et al. | Jul 2004 | A1 |
20040141005 | Banatwala et al. | Jul 2004 | A1 |
20040143599 | Shalabi et al. | Jul 2004 | A1 |
20040184442 | Jones | Sep 2004 | A1 |
20040210623 | Hydrie et al. | Oct 2004 | A1 |
20040243718 | Fujiyoshi | Dec 2004 | A1 |
20040253956 | Collins | Dec 2004 | A1 |
20050009520 | Herrero et al. | Jan 2005 | A1 |
20050021949 | Izawa et al. | Jan 2005 | A1 |
20050027947 | Landin | Feb 2005 | A1 |
20050033985 | Xu et al. | Feb 2005 | A1 |
20050038898 | Mittig et al. | Feb 2005 | A1 |
20050050364 | Feng | Mar 2005 | A1 |
20050074001 | Mattes et al. | Apr 2005 | A1 |
20050114492 | Arberg et al. | May 2005 | A1 |
20050125276 | Rusu | Jun 2005 | A1 |
20050135422 | Yeh | Jun 2005 | A1 |
20050141506 | Aiken et al. | Jun 2005 | A1 |
20050144468 | Northcutt et al. | Jun 2005 | A1 |
20050169285 | Wills et al. | Aug 2005 | A1 |
20050249225 | Singhal | Nov 2005 | A1 |
20050251856 | Araujo et al. | Nov 2005 | A1 |
20050259586 | Hafid et al. | Nov 2005 | A1 |
20060031506 | Redgate | Feb 2006 | A1 |
20060036733 | Fujimoto et al. | Feb 2006 | A1 |
20060062142 | Appanna et al. | Mar 2006 | A1 |
20060063517 | Oh et al. | Mar 2006 | A1 |
20060064440 | Perry | Mar 2006 | A1 |
20060064478 | Sirkin | Mar 2006 | A1 |
20060069804 | Miyake et al. | Mar 2006 | A1 |
20060077926 | Rune | Apr 2006 | A1 |
20060080446 | Bahl | Apr 2006 | A1 |
20060092950 | Arregoces et al. | May 2006 | A1 |
20060098645 | Walkin | May 2006 | A1 |
20060112170 | Sirkin | May 2006 | A1 |
20060126625 | Schollmeier et al. | Jun 2006 | A1 |
20060190997 | Mahajani et al. | Aug 2006 | A1 |
20060195698 | Pinkerton et al. | Aug 2006 | A1 |
20060209789 | Gupta et al. | Sep 2006 | A1 |
20060227771 | Raghunath et al. | Oct 2006 | A1 |
20060230129 | Swami et al. | Oct 2006 | A1 |
20060233100 | Luft et al. | Oct 2006 | A1 |
20070002857 | Maher | Jan 2007 | A1 |
20070011419 | Conti | Jan 2007 | A1 |
20070086382 | Narayanan et al. | Apr 2007 | A1 |
20070094396 | Takano et al. | Apr 2007 | A1 |
20070118881 | Mitchell et al. | May 2007 | A1 |
20070124487 | Yoshimoto et al. | May 2007 | A1 |
20070156919 | Potti et al. | Jul 2007 | A1 |
20070165622 | O'Rourke et al. | Jul 2007 | A1 |
20070177506 | Singer et al. | Aug 2007 | A1 |
20070180226 | Schory et al. | Aug 2007 | A1 |
20070180513 | Raz et al. | Aug 2007 | A1 |
20070237074 | Curry | Oct 2007 | A1 |
20070259673 | Willars et al. | Nov 2007 | A1 |
20070274285 | Werber et al. | Nov 2007 | A1 |
20070286077 | Wu | Dec 2007 | A1 |
20070288247 | MacKay | Dec 2007 | A1 |
20070294209 | Strub et al. | Dec 2007 | A1 |
20070294694 | Jeter et al. | Dec 2007 | A1 |
20080034111 | Kamath et al. | Feb 2008 | A1 |
20080034419 | Mullick et al. | Feb 2008 | A1 |
20080040789 | Chen et al. | Feb 2008 | A1 |
20080109870 | Sherlock et al. | May 2008 | A1 |
20080134332 | Keohane et al. | Jun 2008 | A1 |
20080162679 | Maher et al. | Jul 2008 | A1 |
20080216177 | Yokosato et al. | Sep 2008 | A1 |
20080263209 | Pisharody et al. | Oct 2008 | A1 |
20080271130 | Ramamoorthy | Oct 2008 | A1 |
20080289044 | Choi | Nov 2008 | A1 |
20080320151 | McCanne | Dec 2008 | A1 |
20090037361 | Prathaban et al. | Feb 2009 | A1 |
20090049537 | Chen et al. | Feb 2009 | A1 |
20090106830 | Maher | Apr 2009 | A1 |
20090113536 | Zhang et al. | Apr 2009 | A1 |
20090141634 | Rothstein et al. | Jun 2009 | A1 |
20090210698 | Candelore | Aug 2009 | A1 |
20090213858 | Dolganow et al. | Aug 2009 | A1 |
20090262741 | Jungck et al. | Oct 2009 | A1 |
20090271472 | Scheifler et al. | Oct 2009 | A1 |
20090313379 | Rydnell et al. | Dec 2009 | A1 |
20100162378 | Jayawardena et al. | Jun 2010 | A1 |
20100188975 | Raleigh | Jul 2010 | A1 |
20100235880 | Chen et al. | Sep 2010 | A1 |
20100257278 | Gunturu | Oct 2010 | A1 |
20100312740 | Clemm et al. | Dec 2010 | A1 |
20100333209 | Alve | Dec 2010 | A1 |
20110013252 | Archambeau et al. | Jan 2011 | A1 |
20110064083 | Borkenhagen et al. | Mar 2011 | A1 |
20110099403 | Miyata et al. | Apr 2011 | A1 |
20110110294 | Valluri et al. | May 2011 | A1 |
20110153834 | Bharrat | Jun 2011 | A1 |
20110185073 | Jagadeeswaran et al. | Jul 2011 | A1 |
20110206055 | Leong | Aug 2011 | A1 |
20110276695 | Maldaner | Nov 2011 | A1 |
20110292939 | Subramaian et al. | Dec 2011 | A1 |
20110307606 | Cobb | Dec 2011 | A1 |
20120023231 | Ueno | Jan 2012 | A1 |
20120026897 | Guichard et al. | Feb 2012 | A1 |
20120066371 | Patel et al. | Mar 2012 | A1 |
20120084460 | McGinnity et al. | Apr 2012 | A1 |
20120117571 | Davis et al. | May 2012 | A1 |
20120144014 | Nathann et al. | Jun 2012 | A1 |
20120151353 | Joanny | Jun 2012 | A1 |
20120155495 | Clee | Jun 2012 | A1 |
20120215910 | Wada | Aug 2012 | A1 |
20120239792 | Banerjee et al. | Sep 2012 | A1 |
20120240185 | Kapoor et al. | Sep 2012 | A1 |
20130007225 | Gage et al. | Jan 2013 | A1 |
20130074177 | Varadhan et al. | Mar 2013 | A1 |
20130083725 | Mallya et al. | Apr 2013 | A1 |
20130089099 | Pollock | Apr 2013 | A1 |
20130091273 | Ly | Apr 2013 | A1 |
20130148500 | Sonoda et al. | Jun 2013 | A1 |
20130166731 | Yamanaka et al. | Jun 2013 | A1 |
20130166762 | Jalan et al. | Jun 2013 | A1 |
20130191548 | Boddukuri | Jul 2013 | A1 |
20130212242 | Mendiratta et al. | Aug 2013 | A1 |
20130227165 | Liu | Aug 2013 | A1 |
20130282791 | Kruglick | Oct 2013 | A1 |
20130311686 | Fetterman | Nov 2013 | A1 |
20130315241 | Kannat et al. | Nov 2013 | A1 |
20140047115 | Lipscomb et al. | Feb 2014 | A1 |
20140164617 | Jalan et al. | Jun 2014 | A1 |
20140258465 | Li | Sep 2014 | A1 |
20140258536 | Chiong | Sep 2014 | A1 |
20140269728 | Jalan et al. | Sep 2014 | A1 |
20140330977 | Van Bemmel | Nov 2014 | A1 |
20140330982 | Jalan et al. | Nov 2014 | A1 |
20140334485 | Jain et al. | Nov 2014 | A1 |
20150047012 | Chen et al. | Feb 2015 | A1 |
20150085650 | Cui et al. | Mar 2015 | A1 |
20150215436 | Kancherla | Jul 2015 | A1 |
20150281087 | Jalan et al. | Oct 2015 | A1 |
20150312092 | Golshan et al. | Oct 2015 | A1 |
20150381465 | Narayanan et al. | Dec 2015 | A1 |
20160014126 | Jalan et al. | Jan 2016 | A1 |
20160036778 | Chen et al. | Feb 2016 | A1 |
20160050233 | Chen et al. | Feb 2016 | A1 |
20160065619 | Chen et al. | Mar 2016 | A1 |
20160105395 | Chen et al. | Apr 2016 | A1 |
20160105446 | Chen et al. | Apr 2016 | A1 |
20160119382 | Chen et al. | Apr 2016 | A1 |
20160139910 | Ramanathan et al. | May 2016 | A1 |
20160173579 | Jalan et al. | Jun 2016 | A1 |
20160261642 | Chen et al. | Sep 2016 | A1 |
20170041350 | Chen et al. | Feb 2017 | A1 |
Number | Date | Country |
---|---|---|
1725702 | Jan 2006 | CN |
1921457 | Feb 2007 | CN |
1937591 | Mar 2007 | CN |
101094225 | Dec 2007 | CN |
101495993 | Jul 2009 | CN |
101567818 | Oct 2009 | CN |
101878663 | Nov 2010 | CN |
101495993 | Feb 2011 | CN |
102104548 | Jun 2011 | CN |
102918801 | Feb 2013 | CN |
103365654 | Oct 2013 | CN |
103428261 | Dec 2013 | CN |
101878663 | Jun 2014 | CN |
102918801 | May 2016 | CN |
0648038 | Apr 1995 | EP |
1482685 | Dec 2004 | EP |
1720287 | Nov 2006 | EP |
1770915 | Apr 2007 | EP |
1885096 | Feb 2008 | EP |
2057552 | May 2009 | EP |
2215863 | Aug 2010 | EP |
2575328 | Apr 2013 | EP |
2577910 | Apr 2013 | EP |
2667571 | Nov 2013 | EP |
2575328 | Nov 2014 | EP |
1182547 | Nov 2013 | HK |
1183569 | Dec 2013 | HK |
1188498 | May 2014 | HK |
1190539 | Jul 2014 | HK |
1182547 | Apr 2015 | HK |
2001298449 | Oct 2001 | JP |
2004350188 | Dec 2004 | JP |
2005518595 | Jun 2005 | JP |
2006180295 | Jul 2006 | JP |
2006333245 | Dec 2006 | JP |
2007048052 | Feb 2007 | JP |
2008217532 | Sep 2008 | JP |
2009219065 | Sep 2009 | JP |
2011505752 | Feb 2011 | JP |
2013059122 | Mar 2013 | JP |
2013070423 | Apr 2013 | JP |
2013078134 | Apr 2013 | JP |
2013528330 | Jul 2013 | JP |
5364101 | Sep 2013 | JP |
5480959 | Feb 2014 | JP |
5579820 | Jul 2014 | JP |
5579821 | Jul 2014 | JP |
5946189 | Jul 2016 | JP |
269763 | Feb 1996 | TW |
375721 | Dec 1999 | TW |
425821 | Mar 2001 | TW |
444478 | Jul 2001 | TW |
WO2003073216 | Sep 2003 | WO |
WO2003103233 | Dec 2003 | WO |
WO2006065691 | Jun 2006 | WO |
WO2007076883 | Jul 2007 | WO |
WO2008021620 | Feb 2008 | WO |
WO2009073295 | Jun 2009 | WO |
WO2011149796 | Dec 2011 | WO |
WO2014088741 | Jun 2014 | WO |
WO2014144837 | Sep 2014 | WO |
WO2014179753 | Nov 2014 | WO |
WO2015164026 | Oct 2015 | WO |
Entry |
---|
ACEdirector: 8-Port 10/100 MBPS Ethernet Web Switch, Alteon WebSystems, 1999, <http://www.andovercg.com/datasheets/alteon-ad3-ad4.pdf>, pp. 2. |
Allot Communications Announces Business-Aware Network Policy Manager, Allot Communications, Sophia Antipolis, France, 1999, pp. 2 |
Allot Communications Announces Directory Services Based Network Policy Manager, Allot Communications, Los Galos, California, 1999, pp. 2 |
Allot Announces the General Availability of its Direotroy Services-Based NetPolicy Manager, Allot Communications, Tel Aviv, Israel, 2000, pp. 2 |
Allot Introduces Turnkey Next Generation IP Service and Creation Solution—The Virtual Bandwidth Manager, Allot Communications, SUPERCOMM, 2000, 2 pgs. |
Allot Communications Launches NetEnforcer with Netwizard, the Fastest Way to Implement Accurate and Reliable Network QoS Policies, Allot Communications, 2001, 2 pgs. |
Allot Communications Announces the NetEnforcer Family of IP Traffic Management Products: Fault-Tolerant, Scaleable, Policy-Based Bandwidth Management, QoS, SLA Solutions, Allot Communications, 1999, 2 pgs. |
Allot Communications Policy-Based Network Architecture, Allot Communications, 2001, pp. 1-12. |
Apostolopoulos, et al., “Design, Implementation and Performance of a Content-Based Switch,” INFOCOM, Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings, 2000, vol. 3, pp. 1117-1126. |
Aron, et al., “Efficient Support for P-HTTP in Cluster-Based Web Servers,” Proceedings of the Annual Conference on USENIX Annual Technical Conference, 1999, pp. 14 |
Aron, “Scalable Content-Aware Request Distribution in Cluster-Based Network Servers,” Department of Computer Science, Rice University, [online retreived Mar. 13, 2001], <URL:http://softlib.rice.edu/scalableRD.html>, pp. 8. |
Aron, et al., “Scalable Content-Aware Request Distribution in Cluster-Based Networks Servers,” Proceedings of the Annual Conference on USENIX Annual Technical Conference, 2000, pp. 15. |
Cardellini, et al., “Dynamic Load Balancing on Web-Server Systems,” IEEE Internet Computing, 1999, vol. 3 (3), pp. 28-39. |
Chiussi, et al., “A Network Architecture for MPLS-Based Micro-Mobility,” IEEE WCNC, 2002, vol. 2, pp. 1-8. |
Dahlin, et al., “EDDIE: A Robust and Scalable Internet Server,” 1998, http://www.eddie.org/, pp. 1-7. |
Data Communications Awards Allot Communications “Hot Product” in Internetworking / IP Tools Catergory, Allot Communications, 1999, 2 pgs. |
1.3.20 Device and Link Statement—Virtual Devices (VIPA), IP Configuration, IBM BookManager BookServer, 1998, <http://w3.enterlib.ibm.com:80/cgi-bin/bookmgr/books/F1AF7001/1.3.2>, pp. 3. |
Devine, “TCP/IP Application Availability and Workload Balancing in the Parallel Sysplex,” Share Technical Conference, 1999, pp. 17. |
Enhancing Web User Experience with Global Server Load Balancing, Alteon WebSystems, 1999, pp. 8. |
1.3.23 Home Statement, IP Configuration, IBM BookManager BookServer, 1998, <http://w3.enterlib.com:80/cgi-bin/bookmgr/books/F1AF7001/1.3.2>, pp. 6. |
Pai, et al., “Locality-Aware Request Distribution in Cluster-Based Network Servers,” ASPLOS VIII Proceedings of the Eighth International Conference on Architectural Support for Programming Languages and Operating Systems, 1998, pp. 205-216. |
Samar, “Single Sign-On Using Cookies for Web Applications,” IEEE WETICE, 1999, pp. 158-163. |
Smith, et al., “Network Security Using NAT and NAPT,” IEEE ICON, 2002, pp. 355-360. |
The Next Step in Server Load Balancing, Alteon WebSystems, 1999, pp. 16. |
1.3.1.2.5 Virtual IP Addressing (VIPA), IP Configuration, IBM BookManager BookServer, 1998, <http://w3.enterlib.ibm.com:80/cgi-bin/boolmgr/books/F1AF7001/1.3.2>, pp. 4. |
Wang, et al., “Shield: Vulnerability-Driven Network Filters for Preventing Known Vulnerability Exploits,” SIGCOMM, 2004, pp. 193-204. |
Number | Date | Country | |
---|---|---|---|
20170324846 A1 | Nov 2017 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14825609 | Aug 2015 | US |
Child | 15659922 | US | |
Parent | 13433290 | Mar 2012 | US |
Child | 14825609 | US |