Generating secure name records

Information

  • Patent Grant
  • 10044582
  • Patent Number
    10,044,582
  • Date Filed
    Saturday, January 28, 2012
    12 years ago
  • Date Issued
    Tuesday, August 7, 2018
    6 years ago
Abstract
A method to generate name records by a service gateway includes: receiving a name service request including a name from a host; creating a name service request using the name; sending the name service request to a name service server; receiving a response from the name service server, the response including a service server name record with one or more service server name entries corresponding to the name; generating and storing service gateway name records using the name and the name entries; and sending a selected service gateway name record to the host as a response to the name service request. When a subsequent name service request including the name is received, the service gateway compares the name against the stored service gateway name records, and in response to finding a match, sending the given service gateway name record as a response to the subsequent name service request.
Description
FIELD

This present invention relates generally to data communications, and more specifically, to a service gateway.


BACKGROUND

Today Internet relies on a proper operating name services over the Internet, such as Domain Name System (DNS) services and other similar name services. These name services translate a service name, or a resource name into one or more network or service addresses corresponding to servers providing the service or resource. To ensure availability of the service or resource, it is common to have many servers offering the service or resource. Such availability may address one or more service problems such as server failure, server maintenance, network delays, network traffic congestion, service scaling with expected large numbers of service sessions, service restrictions to geographical areas, secure access for private networks, or other service considerations.


When a host sends a name service request, the response it receives may contain service addresses that are not appropriate for the host or the service name requested. For example, abc.com may have different services for different geographic location. A host on the East coast should be served by a resource server on the East coast, while hosts on the West coast should be served by servers on the West coast. In another example, movies.universal-studio.com has different distribution agreements with studios over different countries. Hosts from Japan should be directed to servers that enforces Japan's services. Hosts from Belgium should be directed to servers enforcing European services.


For example, a geo-location based name service gateway is deployed between a host and a name service server. The service gateway receives a response from the name service server. The service gateway filters the response according to a set of location based rules and the host before sending the modified response to the host. Typically the service gateway stores the response and uses it to respond to another request for the same service or resource name from another host. The process allows the service gateway to use the same response for many name service requests. The process not only reduces the load onto the name service servers, but also improves the service quality the hosts receive.


However, this process does not works well with a secure name service, where the response from the name service server is encrypted and where the modified response needs to be encrypted before sending to the host. Decryption and encryption are computationally complex and consume valuable CPU cycles of the service gateway. The service quality offered by the service gateway would degrade during a busy period when a large number of name service requests are received by the service gateway over a short period of time. Busy periods are common in many networks and for many Internet services.


Therefore, there is a need for a method to generate a plurality of secure name records based on a name record response from a name service server so as to reduce the need to generate a secure modified response for each name service request.


BRIEF SUMMARY OF THE INVENTION

According to one embodiment of the present invention, a method to generate name records by a service gateway comprising a processor comprises: (a) receiving a name service request from a host, the request comprising a name; (b) obtaining a service server name record from a name service server, the service server name record comprising one or more name entries corresponding to the name; (c) generating and storing a plurality of service gateway name records using the name and the name entries; and (d) sending a service gateway name record of the plurality of service gateway name records to the host as a response to the name service request.


In one aspect of the present invention, the obtaining (b) comprises: (b1) creating a name service request using the name; (b2) sending the name service request to the name service server; and (b3) receiving a response to the name service request from the name service server, the response comprising the service server name record comprising the one or more service server name entries corresponding to the name.


In one aspect of the present invention, the method further comprises: (e) receiving a subsequent name service request comprising the name; (f) comparing the name against the stored plurality of service gateway name records; and (g) in response to determining a match with a given service gateway name record, sending the given service gateway name record as a response to the subsequent name service request.


In one aspect of the present invention, the method further comprises: (h) in response to determining there is no match with the plurality of service gateway name records, creating a name service request using the name; and (i) sending the name service request to the name service server.


In one aspect of the present invention, the generating (c) comprises: (c1) determining a number of name entry combinations as N out of the M name entries obtained from the name service server; (c2) creating a given service gateway name record using the name and a given name entry combination; and (c3) repeating the creating (c2) according to a storage capacity of the service gateway.


In one aspect of the present invention, the creating (c2) comprises: (c2i) creating the given service gateway name record using the name and the given name entry combination according to a service policy.


In one aspect of the present invention, the name entry combinations comprise an ordered number of the name entry combinations.


In one aspect of the present invention, the sending (d) comprises: (d1) determining a status of at least one server corresponding to the service gateway name record; (d2) in response to determining that the status indicates that the at least one server is available, sending the service gateway name record to the host as the response to the name service request.


In one aspect of the present invention, the sending (d) further comprises: (d3) in response to determining that the status indicates that one or more servers corresponding to the service gateway name record is unavailable, do not send the service gateway name record to the host.


System and computer program products corresponding to the above-summarized methods are also described and claimed herein.





BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE FIGURES


FIGS. 1 and 1
a illustrate an embodiment of a service gateway servicing a name service request from a host according to the present invention.



FIGS. 2 and 2
a illustrate an embodiment of a process to generate a plurality of name records according to the present invention.



FIG. 3 illustrates an embodiment of a process to select a name record based on availability status of a server according to the present invention.





DETAILED DESCRIPTION OF THE INVENTION

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.



FIGS. 1 and 1
a illustrate an embodiment of a name services service gateway servicing a name service request between a host and name service server according to the present invention. As illustrated in FIG. 1, host 100 sends a name service request 400 to a service gateway 300. In one embodiment, name service request 400 includes a Domain Name System (DNS) request, a request for a network address based on a name, a domain name, a machine name, a computer name, a computing device name, a service name, a resource identity or any network identity.


Host 100 is typically 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 computing device, 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, or a media center.


Service gateway 300 is a computing device operationally coupled to a processor 313 and a computer readable medium 314. The computer readable medium 314 stores computer readable program code, which when executed by the processor 313, 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 for network address translation, a DNS server, a geo-location based name server, or a gateway enforcing access policies based on location information. Typically service gateway 300 includes functionality to provide name services to host 100.


Service gateway 300 receives name service request 400 and obtains a name 404 from name service request 400. In one embodiment, name 404 includes a domain name such as “www.abc.com”, a computer name such as “yoda”, a network device name such as “router1456”, a service name such as “mail-service.anyisp.biz”, a network resource name “apn.mobile-network.net” or “music-storage.private-network”, or a computer name such as “john-laptop5”.


In one embodiment, service gateway 300 uses name 404 to create a name service request 408, and sends the name service request 408 to a name service server 200. In response, the service gateway 300 receives a name service server name record 660 from the name service server 200, which contains one or more name entries 665 corresponding to name 404. Service gateway 300 receives name record 660 and obtains name entries 665 from name record 660.


In one embodiment, name service server 200 is a DNS server or a global service load balancer. In one embodiment, name service server 200 is a network computing device capable of processing name service request 408. In one embodiment, name service server 200 includes a software program residing in a network computing device where the software program processes name service request 408.


In one embodiment, service gateway 300 includes functionality of name service server 200. In this embodiment, the name service server 200 component of service gateway 300 processes name service request 408 and responds with name record 660. In another embodiment, the name service server 200 component of service gateway 300 does not require name service request 408 and processes name 404 to respond with name record 660.


Using name 404 and the name entries 665, service gateway 300 generates a plurality of service gateway name records 670. In one embodiment, service gateway 300 stores name records 670 in storage 315. Service gateway 300 selects a name record 604 of name records 670 and sends name record 604 to host 100 as a response to name service request 400.


In one embodiment as illustrated in FIG. 1a, name record 660 is encrypted, for example, using a public key encryption method. Service gateway 300 obtains a key 661, based on information of name record 660 and name service server 200. Service gateway 300 uses key 661 to decode name record 660 and obtains name entries 665.


In one embodiment, service gateway 300 encrypts name records 670. Service gateway 300 obtains a key 671 and uses key 671 to encrypt all the name records in name records 670. In one embodiment, for each name record 674 in name records 670, service gateway 300 obtains a separate key 675 to encrypt name record 674.


In one embodiment, service gateway 300 obtains key 661, key 671 or key 675 from a server computer in a data network. In one embodiment, service gateway 300 obtains the keys from storage 315.


In one embodiment, name records 670 include an unencrypted copy of name record 604 for use in comparison operations and an encrypted copy of name record 604. In one embodiment, service gateway 300 sends the encrypted copy of name record 604 to host 100 as a response to name service request 400.


In another embodiment in FIG. 1, service gateway 300 generates name records 670 from a prior name service request, and stores name records 670 in storage 315. In response to receiving a subsequent name service request 400, service gateway 300 obtains name 404 from name service request 400. Service gateway 300 compares the name 404 against name records in the storage 315 and determines there is a match with name records 670. Service gateway 300 selects a matching name record 604 from name records 670, and sends name record 604 to host 100 as a response to name service request 400. In this embodiment, the service gateway 300 avoids creating a name service request to be sent to the name service server 200.


In one embodiment, service gateway 300 does not find a match for the name 404 in the name records in the storage 315. In response, service gateway 300 proceeds to generate name service request 408 to be sent to name service server 200.



FIGS. 2 and 2
a illustrate an embodiment of a process to generate service gateway name records 670 according to the present invention. As illustrated in FIG. 2, service gateway 300 generates name records 670 using name entries 665 and name 404. Service gateway 300 stores generated name records 670 in storage 315. In one embodiment, service gateway 300 limits the storage area for name records 670 within a capacity 327 of the storage 315. Service gateway 300 generates a name record using name 404 and one or more entries in name entries 665. FIG. 2a illustrates steps of a method to generate one or more name records with one or more entries in name entries 665.

    • Step 1: Set M 913=number of entries in Name Entries 665
    • Step 2: Set N 911=1
    • Step 3: Set Capacity 329=Capacity 327
    • Step 4: Set Name Records 670=empty
    • Step 5: If (N 911>M 913) Goto Step 16
    • Step 6: Set Name Entry Combinations 903=a collection of name entry combinations of N 911 name entries out of the M 913 name entries in name entries 665.
    • Step 7: For each Name Entry Combination 905 in Name Entry Combinations 903
    • Step 8: Generate a Name Record 606 using Name 404 and Name Entry Combination 905
    • Step 9: Set Size 619=Storage Size of Name Record 606
    • Step 10: If Capacity 329<Size 619 then Goto Step 16
    • Step 11: Include Name Record 606 into Name Records 670
    • Step 12: Decrement Capacity 329 by Size 619
    • Step 13: End For
    • Step 14: Increment N 911 by 1
    • Step 15: Goto Step 5
    • Step 16: Store Name Records 670 into Storage 315


In an embodiment, name entries 665 include 5 name entries {A, B, C, D, E}. In an embodiment of step 6 where N 911=1, Name Entry Combinations 903 may include {{A}, {B}, {C}, {D}, {E}}. In one embodiment of step 6 where N 911=2, Name Entry Combinations 903 may include {{A, B}, {A, C}, {A, D}, {A, E}, {B, C}, {B, D}, {B, E}, {C, D}, {C, E}, {D, E}}. In one embodiment of step 6 where N 911 is being 4, Name Entry Combinations 903 may include {{A, B, C, D}, {A, B, C, E}, {A, B, D, E}, {A, C, D, E}, {B, C, D, E}}. In one embodiment, Name Entry Combinations 903 may include {{A, B, D, E}, {A, C, D, E}, {B, C, D, E}}. In one embodiment, Name Entry Combinations 903 may not include all possible name entry combinations of N 911 entries from M 913 entries. In one embodiment, service gateway 300 creates Name Entry Combinations 903 based on a service policy such as a location-based policy, a traffic management policy or a security policy. For example, if a given Name Entry Combination is determined to violate the service policy, a name record is not created for the given Name Entry Combination.


In one embodiment, name entries 665 include a specific order for the M 913 entries. Name Entry Combinations 903 include a collection of ordered combinations of N 911 entries.


In one embodiment, N 911 in step 2 is set to M 913 and N 911 is decremented by 1 in step 14. In this embodiment, the test in step 5 is changed to “if (N 911<=0)”.


In one embodiment as illustrated in FIG. 3, service gateway 300 obtains availability status 225 for server 215. Server 215 is a network computer corresponding to name entry 615. In one embodiment, server 215 is a computing device such as 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 SIP server, a remote access server, a VPN server, a media center, an app server or a network server providing a network or application service to host 100.


Status 225 is an indication whether server 215 is available for service. In one embodiment, server 215 is disconnected from network, busy, overload, or under maintenance, does not have necessary software or hardware component, shutdown, not running, or other undesirable condition preventing server 215 from providing services. Status 225 indicates unavailability of server 215.


In one embodiment, service gateway 300 obtains status 225 from server 215 in a communication channel or a communication session over data network 153 with server 215. In one embodiment, service gateway 300 obtains status 225 from another network computer 250 such as a network management system or a network administrative system.


In one embodiment, status 225 indicates server 215 is available. In one embodiment, server 215 resumes operation after maintenance, or after installation of a piece of software or a hardware component. In another embodiment, server 215 becomes available when the CPU load is low, or when server 215 is connected to network. In one embodiment, server 215 indicates availability status in status 225 when there is no change to availability from a previously communicated status.


In one embodiment, service gateway 300 connects to server 215 which is corresponded to a name entry 615. Name entry 615 is used in a generated name record 604. In one embodiment, name record 604 is associated with an attribute 625, which is included in service gateway 300. Service gateway 300 stores status 225 in attribute 625. Service gateway 300 checks status 225 of server 215 from time to time. In one embodiment, service gateway 300 checks periodically such as every 5 minutes, every hour, or every 10 seconds. In one embodiment, service gateway 300 receives an updated status 225 whenever there is a change to server 215. Service gateway stores updated status 225 in attribute 625.


During the processing of name 404 of name service request 400, as illustrated in FIGS. 1 and 1a, service gateway 300 determines a name in name record 604 matches name 404. Service gateway 300 further examines attribute 625 of name record 604. If attribute 625 indicates status 225 of server 215 is not available, service gateway 300 does not select name record 604 as a response to name service request 400.


In one embodiment, service gateway 300 determines status 225 in attribute 625 indicates server 215 is available. Service gateway 300 selects name record 604 as a response to name service request 400.


In one embodiment, name record 604 includes a second name entry 612 corresponding to server 212 and status 222 corresponding to server 212. In one embodiment, service gateway 300 also stores status 222 in attribute 625. Service gateway 300 examines attribute 625 for status 225 and status 222. In one embodiment, status 222 and status 225 indicate server 212 and server 215 are available respectively, service gateway 300 selects name record 604 as a response to name service request 400. In one embodiment, one of status 222 or status 225 indicates unavailability. Service gateway 300 does not select name record 604 as a response.


In one embodiment, attribute 625 includes statuses associating to servers for all name entries in name record 604. Service gateway 300 examines all the statuses for availability before selecting name record 604 as a response to name service request 400.


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.

Claims
  • 1. A method to generate secure name records by a service gateway comprising a processor, the method comprising: receiving a name service request from a host, the name service request comprising a name;obtaining a service server name record from a name service server, the service server name record comprising a plurality of name entries corresponding to the name, wherein a first name entry of the plurality of name entries is associated with a first server and a second name entry of the plurality of name entries is associated with a second server, the first server and the second server providing a service to the host;generating and storing a plurality of service gateway name records associated with the name, the service gateway name records each including the name and one of the plurality of name entries from the service server name record, the generating the plurality of service gateway name records being based on a determined plurality of name entry combinations from the name service server according to a service policy, the service policy consisting of a location based policy, a traffic management policy, or a security policy;determining a violation of the location based policy, the traffic management policy, or the security policy by a name entry combination from the determined plurality of name entry combinations;based on the determining of the violation, excluding the name entry combination from generating one of the plurality of service gateway name records for the name entry combination; andsending a service gateway name record from the plurality of service gateway name records to the host as a response to the name service request, wherein each further service gateway name record of the plurality of service gateway name records is sent to the host in response to one of further name service requests associated with the name and received from the host, the service gateway name record and the each further service gateway name record of the plurality of service gateway name records being generated upon the receiving the name service request associated with the name and prior to receiving the further name service requests associated with the name, the each further service gateway name record including the name and a further name entry of the plurality of name entries from the service server name record.
  • 2. The method of claim 1, wherein the obtaining comprises: creating a name service request using the name;sending the name service request to the name service server; andreceiving a response to the name service request from the name service server, the response comprising the service server name record, the service server name record comprising the at least two service server name entries corresponding to the name.
  • 3. The method of claim 1, further comprising: receiving a subsequent name service request comprising the name;comparing the name against the stored plurality of service gateway name records; andin response to determining a match with a given service gateway name record of the stored plurality of service gateway name records, sending the given service gateway name record as a response to the subsequent name service request.
  • 4. The method of claim 3, further comprising: in response to determining no match with the stored plurality of service gateway name records, creating a name service request using the name; andsending the name service request to the name service server.
  • 5. The method of claim 1, wherein the generating further comprises: determining the plurality of name entry combinations as N out of the M name entries obtained from the name service server;creating a first service gateway name record using the name and at least two name entry combinations of the plurality of name entry combinations; andcreating a second service gateway name record using the name and another at least two name entry combinations of the plurality of name entry combinations, according to a storage capacity of the service gateway.
  • 6. The method of claim 5, wherein the creating the first service gateway name record comprises: creating the service gateway name record using the name and the at least two name entry combinations according to a service policy.
  • 7. The method of claim 5, wherein the plurality of name entry combinations comprises an ordered number of the name entry combinations.
  • 8. The method of claim 1, wherein the sending the service gateway name record comprises: determining a status for each of the at least two servers corresponding to the service gateway name record; andin response to determining that the status indicates each of the at least two servers do not have a service problem, sending the service gateway name record to the host as the response to the name service request.
  • 9. The method of claim 8, wherein the sending further comprises: in response to determining that the status indicates the at least two servers corresponding to the service gateway name record each have a service problem, not sending the service gateway name record to the host.
  • 10. The method of claim 1, wherein the sending the service gateway name record comprises: encrypting the service gateway name record; andsending the encrypted service gateway name record to the host as the response to the name service request.
  • 11. A non-transitory computer-readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for generating secure name records, the method comprising: receiving a name service request from a host, the name service request comprising a name;obtaining a service server name record from a name service server, the service server name record comprising a plurality of name entries corresponding to the name, wherein a first name entry of the plurality of name entries is associated with a first server and a second name entry of the plurality of name entries is associated with a second server, the first server and the second server providing a service to the host;generating and storing a plurality of service gateway name records associated with the name, the service gateway name records each including the name and one of the plurality of name entries from the service server name record, the generating the plurality of service gateway name records being based on a determined plurality of name entry combinations from the name service server according to a service policy, the service policy consisting of a location based policy, a traffic management policy, or a security policy;determining a violation of the location based policy, the traffic management policy, or the security policy by a name entry combination from the determined plurality of name entry combinations;based on the determining of the violation, excluding the name entry combination from generating one of the plurality of service gateway name records for the name entry combination; andsending a service gateway name record from the plurality of service gateway name records to the host as a response to the name service request, wherein each further service gateway name record of the plurality of service gateway name records is sent to the host in response to one of further name service requests associated with the name and received from the host, the service gateway name record and the each further service gateway name record of the plurality of service gateway name records being generated upon the receiving the name service request associated with the name and prior to receiving the further name service requests associated with the name, the each further service gateway name record including the name and a further name entry of the plurality of name entries from the service server name record.
  • 12. The non-transitory computer-readable storage medium of claim 11, wherein the obtaining comprises: creating a name service request using the name;sending the name service request to the name service server; andreceiving a response to the name service request from the name service server, the response comprising the service server name record, the service server name record comprising the at least two service server name entries corresponding to the name.
  • 13. The non-transitory computer-readable storage medium of claim 11 wherein the method further comprises: receiving a subsequent name service request comprising the name;comparing the name against the stored plurality of service gateway name records; andin response to determining a match with a given service gateway name record of the stored plurality of service gateway name records, sending the given service gateway name record as a response to the subsequent name service request.
  • 14. The non-transitory computer-readable storage medium of claim 13 wherein the method further comprises: in response to determining no match with the plurality of service gateway name records, creating a name service request using the name; andsending the name service request to the name service server.
  • 15. The non-transitory computer-readable storage medium of claim 11, wherein the generating further comprises: determining the plurality of name entry combinations as N out of the M name entries obtained from the name service server;creating a first service gateway name record using the name and at least two name entry combinations of the plurality of name entry combinations; andcreating a second service gateway name record using the name and another at least two name entry combinations of the plurality of name entry combinations, according to a storage capacity of the service gateway.
  • 16. The non-transitory computer-readable storage medium of claim 15, wherein the creating the first service gateway name record comprises: creating the service gateway name record using the name and the at least two name entry combinations according to a service policy.
  • 17. The non-transitory computer-readable storage medium of claim 11, wherein the sending the service gateway name record comprises: determining a status for each of the at least two servers corresponding to the service gateway name record;in response to determining that the status indicates the at least two servers do not have a service problem, sending the service gateway name record to the host as the response to the name service request.
  • 18. The non-transitory computer-readable storage medium of claim 17, wherein the sending further comprises: in response to determining that the status indicates that the at least two servers corresponding to the service gateway name record each have a service problem, not sending the service gateway name record to the host.
  • 19. The non-transitory computer-readable storage medium of claim 11, wherein the sending the service gateway name record comprises: encrypting the service gateway name record; andsending the encrypted service gateway name record to the host as the response to the name service request.
  • 20. A service gateway, comprising: a processor; anda memory communicatively coupled to the processor, the memory storing instructions executable by the processor to perform a method comprising:receiving a name service request from a host, the name service request comprising a name;obtaining a service server name record from a name service server, the service server name record comprising a plurality of name entries corresponding to the name, wherein a first name entry of the plurality of name entries is associated with a first server and a second name entry of the plurality of name entries is associated with a second server, the first server and the second server providing a service to the host;generating and storing a plurality of service gateway name records associated with the name, being based on a determined plurality of name entry combinations according to a service policy, using the name and the name entries from the service server name record, each of the plurality of service gateway name records including the name and the name entries from the service server name record, the service policy consisting of a location based policy, a traffic management policy, or a security policy;determining a violation of the location based policy, the traffic management policy, or the security policy by a name entry combination from the determined plurality of name entry combinations;based on the determining of the violation, excluding the name entry combination from generating one of the plurality of service gateway name records for the name entry combination; andsending a service gateway name record from the plurality of service gateway name records to the host as a response to the name service request, wherein each further service gateway name record of the plurality of service gateway name records is sent to the host in response to one of further name service requests associated with the name and received from the host, the service gateway name record and the each further service gateway name record of the plurality of service gateway name records being generated upon the receiving the name service request associated with the name and prior to receiving the further name service requests associated with the name, the each further service gateway name record including the name and a further name entry of the plurality of name entries from the service server name record.
  • 21. The service gateway of claim 20, wherein the obtaining comprises: creating a name service request using the name;sending the name service request to the name service server; andreceiving a response to the name service request from the name service server, the response comprising the service server name record, the service server name record comprising the at least two service server name entries corresponding to the name.
  • 22. The service gateway of claim 20, wherein the method further comprises: receiving a subsequent name service request comprising the name;comparing the name against the stored plurality of service gateway name records; andin response to determining a match with a given service gateway name record of the stored plurality of service gateway name records, sending the given service gateway name record as a response to the subsequent name service request.
  • 23. The service gateway of claim 22, wherein the method further comprises: in response to determining no match with the plurality of service gateway name records, creating a name service request using the name; andsending the name service request to the name service server.
  • 24. The service gateway of claim 20, wherein the generating further comprises: determining the plurality of name entry combinations as N out of the M name entries obtained from the name service server;creating a first service gateway name record using the name and at least two name entry combinations of the plurality of name entry combinations; andcreating a second service gateway name record using the name and another at least two name entry combinations of the plurality of name entry combinations, according to a storage capacity of the service gateway.
  • 25. The service gateway of claim 24, wherein the creating the first service gateway name record comprises: creating the service gateway name record using the name and the at least two name entry combinations according to a service policy.
  • 26. The service gateway of claim 20, wherein the sending the service gateway name record comprises: determining a status for each of the at least two servers corresponding to the service gateway name record;in response to determining that the status indicates the at least two servers do not have a service problem, sending the service gateway name record to the host as the response to the name service request.
  • 27. The service gateway of claim 26, wherein the sending further comprises: in response to determining that the status indicates that the at least two servers corresponding to the service gateway name record each have a service problem, not sending the service gateway name record to the host.
  • 28. The service gateway of claim 20, wherein the sending the service gateway name record comprises: encrypting the service gateway name record; andsending the encrypted service gateway name record to the host as the response to the name service request.
US Referenced Citations (485)
Number Name Date Kind
4001819 Wise Jan 1977 A
5101402 Chiu et al. Mar 1992 A
5163088 LoCascio Nov 1992 A
5218602 Grant et al. Jun 1993 A
5359659 Rosenthal Oct 1994 A
5414833 Hershey et al. May 1995 A
5684875 Ellenberger Nov 1997 A
5774660 Brendel et al. Jun 1998 A
5935207 Logue et al. Aug 1999 A
5940002 Finn et al. Aug 1999 A
5958053 Denker Sep 1999 A
5960177 Tanno Sep 1999 A
5995981 Wikstrom Nov 1999 A
6003069 Cavill Dec 1999 A
6047268 Bartoli et al. Apr 2000 A
6088804 Hill et al. Jul 2000 A
6119236 Shipley Sep 2000 A
6131163 Wiegel Oct 2000 A
6205115 Ikebe et al. Mar 2001 B1
6219706 Fan et al. Apr 2001 B1
6237036 Ueno et al. May 2001 B1
6259705 Takahashi et al. Jul 2001 B1
6304975 Shipley Oct 2001 B1
6321338 Porras et al. Nov 2001 B1
6324286 Lai et al. Nov 2001 B1
6374300 Masters Apr 2002 B2
6449651 Dorfman et al. Sep 2002 B1
6459682 Ellesson et al. Oct 2002 B1
6519703 Joyce Feb 2003 B1
6587866 Modi et al. Jul 2003 B1
6594780 Shen et al. Jul 2003 B1
6715081 Attwood et al. Mar 2004 B1
6732279 Hoffman May 2004 B2
6735702 Yavatkar et al. May 2004 B1
6748414 Bournas Jun 2004 B1
6754832 Godwin et al. Jun 2004 B1
6757822 Feiertag et al. Jun 2004 B1
6772334 Glawitsch Aug 2004 B1
6779017 Lamberton et al. Aug 2004 B1
6779033 Watson et al. Aug 2004 B1
6779117 Wells Aug 2004 B1
6952728 Alles et al. Oct 2005 B1
6988106 Enderwick et al. Jan 2006 B2
7010605 Dharmarajan Mar 2006 B1
7013482 Krumel Mar 2006 B1
7058718 Fontes et al. Jun 2006 B2
7069438 Balabine et al. Jun 2006 B2
7076555 Orman et al. Jul 2006 B1
7143087 Fairweather Nov 2006 B2
7159237 Schneier et al. Jan 2007 B2
7167927 Philbrick et al. Jan 2007 B2
7181524 Lele Feb 2007 B1
7194766 Noehring et al. Mar 2007 B2
7218722 Turner et al. May 2007 B1
7222366 Bruton, III et al. May 2007 B2
7228359 Monteiro Jun 2007 B1
7234161 Maufer et al. Jun 2007 B1
7236457 Joe Jun 2007 B2
7254133 Govindarajan et al. Aug 2007 B2
7269850 Govindarajan et al. Sep 2007 B2
7277963 Dolson et al. Oct 2007 B2
7301899 Goldstone Nov 2007 B2
7308499 Chavez Dec 2007 B2
7310686 Uysal Dec 2007 B2
7328267 Bashyam et al. Feb 2008 B1
7334232 Jacobs et al. Feb 2008 B2
7337241 Boucher et al. Feb 2008 B2
7343399 Hayball et al. Mar 2008 B2
7349970 Clement et al. Mar 2008 B2
7370353 Yang May 2008 B2
7391725 Huitema et al. Jun 2008 B2
7392241 Lin et al. Jun 2008 B2
7398317 Chen et al. Jul 2008 B2
7418733 Connary et al. Aug 2008 B2
7423977 Joshi Sep 2008 B1
7430755 Hughes et al. Sep 2008 B1
7463648 Eppstein et al. Dec 2008 B1
7467202 Savchuk Dec 2008 B2
7472190 Robinson Dec 2008 B2
7492766 Cabeca et al. Feb 2009 B2
7506360 Wilkinson et al. Mar 2009 B1
7509369 Tormasov Mar 2009 B1
7512980 Copeland et al. Mar 2009 B2
7533409 Keane et al. May 2009 B2
7543052 Cesa Klein Jun 2009 B1
7552323 Shay Jun 2009 B2
7565549 Satterlee et al. Jul 2009 B2
7577833 Lai Aug 2009 B2
7584262 Wang et al. Sep 2009 B1
7584301 Joshi Sep 2009 B1
7590736 Hydrie et al. Sep 2009 B2
7613193 Swami et al. Nov 2009 B2
7613822 Joy et al. Nov 2009 B2
7640591 Tripathi et al. Dec 2009 B1
7653633 Villella et al. Jan 2010 B2
7665138 Song et al. Feb 2010 B2
7673072 Boucher et al. Mar 2010 B2
7675854 Chen et al. Mar 2010 B2
7703102 Eppstein et al. Apr 2010 B1
7707295 Szeto et al. Apr 2010 B1
7711790 Barrett et al. May 2010 B1
7739736 Tripathi et al. Jun 2010 B1
7747748 Allen Jun 2010 B2
7765328 Bryers et al. Jul 2010 B2
7792113 Foschiano et al. Sep 2010 B1
7808994 Vinokour et al. Oct 2010 B1
7809131 Njemanze et al. Oct 2010 B1
7826487 Mukerji et al. Nov 2010 B1
7881215 Daigle et al. Feb 2011 B1
7895649 Brook et al. Feb 2011 B1
7948952 Hurtta et al. May 2011 B2
7970934 Patel Jun 2011 B1
7983258 Ruben et al. Jul 2011 B1
7990847 Leroy et al. Aug 2011 B1
7991859 Miller et al. Aug 2011 B1
8019870 Eppstein et al. Sep 2011 B1
8032634 Eppstein et al. Oct 2011 B1
8037532 Haswell Oct 2011 B2
8090866 Bashyam et al. Jan 2012 B1
8122116 Matsunaga et al. Feb 2012 B2
8179809 Eppstein et al. May 2012 B1
8185651 Moran et al. May 2012 B2
8191106 Choyi et al. May 2012 B2
8220056 Owens, Jr. Jul 2012 B2
8224971 Miller et al. Jul 2012 B1
8239670 Kaufman et al. Aug 2012 B1
8266235 Jalan et al. Sep 2012 B2
8289981 Wei et al. Oct 2012 B1
8296434 Miller et al. Oct 2012 B1
8301802 Wei et al. Oct 2012 B2
8312507 Chen et al. Nov 2012 B2
8379515 Mukerji Feb 2013 B1
8448245 Banerjee et al. May 2013 B2
8478708 Larcom Jul 2013 B1
8499093 Grosser et al. Jul 2013 B2
8539075 Bali et al. Sep 2013 B2
8554929 Szeto et al. Oct 2013 B1
8560693 Wang et al. Oct 2013 B1
8584199 Chen et al. Nov 2013 B1
8595791 Chen et al. Nov 2013 B1
8595845 Basavapatna et al. Nov 2013 B2
RE44701 Chen et al. Jan 2014 E
8675488 Sidebottom et al. Mar 2014 B1
8681610 Mukerji Mar 2014 B1
8750164 Casado et al. Jun 2014 B2
8782221 Han Jul 2014 B2
8800034 McHugh et al. Aug 2014 B2
8813180 Chen et al. Aug 2014 B1
8813228 Magee et al. Aug 2014 B2
8826372 Chen et al. Sep 2014 B1
8832832 Visbal Sep 2014 B1
8879427 Krumel Nov 2014 B2
8885463 Medved et al. Nov 2014 B1
8897154 Jalan et al. Nov 2014 B2
8965957 Barros Feb 2015 B2
8977749 Han Mar 2015 B1
8990262 Chen et al. Mar 2015 B2
9094364 Jalan et al. Jul 2015 B2
9106561 Jalan et al. Aug 2015 B2
9154577 Jalan et al. Oct 2015 B2
9154584 Han Oct 2015 B1
9215208 Fraize et al. Dec 2015 B2
9215275 Kannan et al. Dec 2015 B2
9219751 Chen et al. Dec 2015 B1
9253152 Chen et al. Feb 2016 B1
9270705 Chen et al. Feb 2016 B1
9270774 Jalan et al. Feb 2016 B2
9338225 Jalan et al. May 2016 B2
9350744 Chen et al. May 2016 B2
9356910 Chen et al. May 2016 B2
20010042204 Blaker et al. Nov 2001 A1
20010049741 Skene et al. Dec 2001 A1
20020010798 Ben-Shaul Jan 2002 A1
20020032777 Kawata et al. Mar 2002 A1
20020078164 Reinschmidt Jun 2002 A1
20020087708 Low et al. Jul 2002 A1
20020091844 Craft et al. Jul 2002 A1
20020103916 Chen et al. Aug 2002 A1
20020133491 Sim et al. Sep 2002 A1
20020138618 Szabo Sep 2002 A1
20020143991 Chow et al. Oct 2002 A1
20020178259 Doyle et al. Nov 2002 A1
20020188839 Noehring et al. Dec 2002 A1
20020191575 Kalavade et al. Dec 2002 A1
20020194335 Maynard Dec 2002 A1
20020194350 Lu et al. Dec 2002 A1
20030009591 Hayball et al. Jan 2003 A1
20030014544 Pettey Jan 2003 A1
20030023711 Parmar et al. Jan 2003 A1
20030023846 Krishna et al. Jan 2003 A1
20030023873 Ben-Itzhak Jan 2003 A1
20030028585 Yeager et al. Feb 2003 A1
20030035409 Wang et al. Feb 2003 A1
20030035420 Niu Feb 2003 A1
20030061507 Xiong et al. Mar 2003 A1
20030069973 Ganesan et al. Apr 2003 A1
20030091028 Chang et al. May 2003 A1
20030131245 Linderman Jul 2003 A1
20030135625 Fontes et al. Jul 2003 A1
20030187688 Fey et al. Oct 2003 A1
20030195962 Kikuchi et al. Oct 2003 A1
20030196081 Savarda et al. Oct 2003 A1
20030200456 Cyr et al. Oct 2003 A1
20040008711 Lahti et al. Jan 2004 A1
20040054807 Harvey et al. Mar 2004 A1
20040059943 Marquet et al. Mar 2004 A1
20040059951 Pinkas et al. Mar 2004 A1
20040059952 Newport et al. Mar 2004 A1
20040062246 Boucher et al. Apr 2004 A1
20040073703 Boucher et al. Apr 2004 A1
20040078419 Ferrari et al. Apr 2004 A1
20040078480 Boucher et al. Apr 2004 A1
20040093524 Sakai May 2004 A1
20040111516 Cain Jun 2004 A1
20040111635 Boivie 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
20040143751 Peikari Jul 2004 A1
20040187032 Gels et al. Sep 2004 A1
20040199616 Karhu Oct 2004 A1
20040199646 Susai et al. Oct 2004 A1
20040202182 Lund et al. Oct 2004 A1
20040210623 Hydrie et al. Oct 2004 A1
20040210663 Phillips et al. Oct 2004 A1
20040213158 Collett et al. Oct 2004 A1
20040242200 Maeoka et al. Dec 2004 A1
20040268358 Darling et al. Dec 2004 A1
20050005207 Herneque Jan 2005 A1
20050009520 Herrero et al. Jan 2005 A1
20050021848 Jorgenson Jan 2005 A1
20050021999 Touitou et al. Jan 2005 A1
20050027862 Nguyen et al. Feb 2005 A1
20050036501 Chung et al. Feb 2005 A1
20050036511 Baratakke et al. Feb 2005 A1
20050041584 Lau et al. Feb 2005 A1
20050044068 Lin et al. Feb 2005 A1
20050044270 Grove et al. Feb 2005 A1
20050074013 Hershey et al. Apr 2005 A1
20050080890 Yang et al. Apr 2005 A1
20050102400 Nakahara et al. May 2005 A1
20050108434 Witchey May 2005 A1
20050125276 Rusu Jun 2005 A1
20050163073 Heller et al. Jul 2005 A1
20050198335 Brown et al. Sep 2005 A1
20050213586 Cyganski et al. Sep 2005 A1
20050240989 Kim et al. Oct 2005 A1
20050249225 Singhal Nov 2005 A1
20050257093 Johnson et al. Nov 2005 A1
20050259586 Hafid et al. Nov 2005 A1
20060023721 Miyake et al. Feb 2006 A1
20060036610 Wang Feb 2006 A1
20060036733 Fujimoto et al. Feb 2006 A1
20060056297 Bryson et al. Mar 2006 A1
20060061507 Mohamadi Mar 2006 A1
20060064478 Sirkin Mar 2006 A1
20060069774 Chen et al. Mar 2006 A1
20060069804 Miyake et al. Mar 2006 A1
20060077926 Rune Apr 2006 A1
20060092950 Arregoces et al. May 2006 A1
20060098645 Walkin May 2006 A1
20060112170 Sirkin May 2006 A1
20060143707 Song et al. Jun 2006 A1
20060168319 Trossen Jul 2006 A1
20060187901 Cortes et al. Aug 2006 A1
20060190997 Mahajani et al. Aug 2006 A1
20060206936 Liang et al. Sep 2006 A1
20060209789 Gupta et al. Sep 2006 A1
20060230129 Swami et al. Oct 2006 A1
20060233100 Luft et al. Oct 2006 A1
20060251057 Kwon et al. Nov 2006 A1
20060253902 Rabadan et al. Nov 2006 A1
20060256716 Caci Nov 2006 A1
20060265585 Lai Nov 2006 A1
20060277303 Hegde et al. Dec 2006 A1
20060280121 Matoba Dec 2006 A1
20060288411 Garg et al. Dec 2006 A1
20070011168 Keohane Jan 2007 A1
20070019543 Wei et al. Jan 2007 A1
20070056038 Lok Mar 2007 A1
20070086382 Narayanan et al. Apr 2007 A1
20070094396 Takano et al. Apr 2007 A1
20070118881 Mitchell et al. May 2007 A1
20070156919 Potti et al. Jul 2007 A1
20070165622 O'Rourke et al. Jul 2007 A1
20070185998 Touitou et al. Aug 2007 A1
20070195792 Chen et al. Aug 2007 A1
20070230337 Igarashi et al. Oct 2007 A1
20070245090 King et al. Oct 2007 A1
20070259673 Willars et al. Nov 2007 A1
20070283429 Chen et al. Dec 2007 A1
20070286077 Wu Dec 2007 A1
20070288247 Mackay Dec 2007 A1
20070291773 Khan et al. Dec 2007 A1
20070294209 Strub et al. Dec 2007 A1
20080031263 Ervin et al. Feb 2008 A1
20080101396 Miyata May 2008 A1
20080109452 Patterson May 2008 A1
20080109870 Sherlock et al. May 2008 A1
20080134332 Keohane et al. Jun 2008 A1
20080162679 Maher et al. Jul 2008 A1
20080183885 Durrey et al. Jul 2008 A1
20080228781 Chen et al. Sep 2008 A1
20080229418 Chen et al. Sep 2008 A1
20080250099 Shen et al. Oct 2008 A1
20080256623 Worley et al. Oct 2008 A1
20080263209 Pisharody et al. Oct 2008 A1
20080271130 Ramamoorthy Oct 2008 A1
20080282254 Blander et al. Nov 2008 A1
20080291911 Lee et al. Nov 2008 A1
20090049198 Blinn et al. Feb 2009 A1
20090070470 Bauman et al. Mar 2009 A1
20090077651 Poeluev Mar 2009 A1
20090092124 Singhal et al. Apr 2009 A1
20090106830 Maher Apr 2009 A1
20090138606 Moran et al. May 2009 A1
20090138945 Savchuk May 2009 A1
20090141634 Rothstein et al. Jun 2009 A1
20090150996 Haswell Jun 2009 A1
20090164614 Christian et al. Jun 2009 A1
20090168995 Banga et al. Jul 2009 A1
20090172093 Matsubara Jul 2009 A1
20090213858 Dolganow et al. Aug 2009 A1
20090222583 Josefsberg et al. Sep 2009 A1
20090227228 Hu Sep 2009 A1
20090228547 Miyaoka et al. Sep 2009 A1
20090241190 Todd et al. Sep 2009 A1
20090262741 Jungck et al. Oct 2009 A1
20090271472 Scheifler et al. Oct 2009 A1
20090313379 Rydnell et al. Dec 2009 A1
20100008229 Bi et al. Jan 2010 A1
20100023621 Ezolt et al. Jan 2010 A1
20100036952 Hazlewood et al. Feb 2010 A1
20100054139 Chun et al. Mar 2010 A1
20100061319 Aso et al. Mar 2010 A1
20100064008 Yan et al. Mar 2010 A1
20100082787 Kommula et al. Apr 2010 A1
20100083076 Ushiyama Apr 2010 A1
20100094985 Abu-Samaha et al. Apr 2010 A1
20100098417 Tse-Au Apr 2010 A1
20100106833 Banerjee et al. Apr 2010 A1
20100106854 Kim et al. Apr 2010 A1
20100128606 Patel et al. May 2010 A1
20100162378 Jayawardena et al. Jun 2010 A1
20100210265 Borzsei et al. Aug 2010 A1
20100217793 Preiss Aug 2010 A1
20100217819 Chen et al. Aug 2010 A1
20100223630 Degenkolb et al. Sep 2010 A1
20100228819 Wei Sep 2010 A1
20100235507 Szeto et al. Sep 2010 A1
20100235522 Chen et al. Sep 2010 A1
20100235880 Chen et al. Sep 2010 A1
20100238828 Russell Sep 2010 A1
20100265824 Chao et al. Oct 2010 A1
20100268814 Cross et al. Oct 2010 A1
20100284300 Deshpande et al. Nov 2010 A1
20100286998 Picken Nov 2010 A1
20100293296 Hsu et al. Nov 2010 A1
20100312740 Clemm et al. Dec 2010 A1
20100318631 Shukla Dec 2010 A1
20100322252 Suganthi et al. Dec 2010 A1
20100330971 Selitser et al. Dec 2010 A1
20100333101 Pope et al. Dec 2010 A1
20110007652 Bai Jan 2011 A1
20110019550 Bryers et al. Jan 2011 A1
20110023071 Li et al. Jan 2011 A1
20110026537 Kolhi Feb 2011 A1
20110029599 Pulleyn et al. Feb 2011 A1
20110032941 Quach et al. Feb 2011 A1
20110040826 Chadzelek et al. Feb 2011 A1
20110047294 Singh et al. Feb 2011 A1
20110060831 Ishii et al. Mar 2011 A1
20110082947 Szeto et al. Apr 2011 A1
20110093522 Chen et al. Apr 2011 A1
20110093785 Lee et al. Apr 2011 A1
20110099403 Miyata et al. Apr 2011 A1
20110110294 Valluri et al. May 2011 A1
20110131646 Park et al. Jun 2011 A1
20110145324 Reinert et al. Jun 2011 A1
20110153744 Brown Jun 2011 A1
20110153834 Bharrat Jun 2011 A1
20110178985 San Martin Arribas et al. Jul 2011 A1
20110185073 Jagadeeswaran et al. Jul 2011 A1
20110191773 Pavel et al. Aug 2011 A1
20110196971 Reguraman et al. Aug 2011 A1
20110249572 Singhal et al. Oct 2011 A1
20110276695 Maldaner Nov 2011 A1
20110276982 Nakayama et al. Nov 2011 A1
20110289496 Steer Nov 2011 A1
20110292939 Subramaian et al. Dec 2011 A1
20110302256 Sureshehandra et al. Dec 2011 A1
20110307541 Walsh et al. Dec 2011 A1
20120008495 Shen et al. Jan 2012 A1
20120023231 Ueno Jan 2012 A1
20120026897 Guichard et al. Feb 2012 A1
20120030341 Jensen et al. Feb 2012 A1
20120036272 El Zur Feb 2012 A1
20120042060 Jackowski et al. Feb 2012 A1
20120066371 Patel et al. Mar 2012 A1
20120084419 Kannan et al. Apr 2012 A1
20120084460 McGinnity et al. Apr 2012 A1
20120106355 Ludwig May 2012 A1
20120110472 Amrhein et al. May 2012 A1
20120117571 Davis et al. May 2012 A1
20120144014 Natham et al. Jun 2012 A1
20120144015 Jalan et al. Jun 2012 A1
20120151353 Joanny Jun 2012 A1
20120163186 Wei et al. Jun 2012 A1
20120170548 Rajagopalan et al. Jul 2012 A1
20120173759 Agarwal et al. Jul 2012 A1
20120174196 Bhogavilli et al. Jul 2012 A1
20120179770 Jalan et al. Jul 2012 A1
20120191839 Maynard Jul 2012 A1
20120226582 Hammad Sep 2012 A1
20120239792 Banerjee et al. Sep 2012 A1
20120240185 Kapoor et al. Sep 2012 A1
20120290727 Tivig Nov 2012 A1
20120297046 Raja et al. Nov 2012 A1
20120297197 Yale Nov 2012 A1
20120311116 Jalan et al. Dec 2012 A1
20130019025 Chaturvedi et al. Jan 2013 A1
20130046876 Narayana et al. Feb 2013 A1
20130058335 Koponen et al. Mar 2013 A1
20130074177 Varadhan et al. Mar 2013 A1
20130083725 Mallya et al. Apr 2013 A1
20130100958 Jalan et al. Apr 2013 A1
20130124713 Feinberg et al. May 2013 A1
20130136139 Zheng et al. May 2013 A1
20130139245 Thomas May 2013 A1
20130148500 Sonoda et al. Jun 2013 A1
20130166762 Jalan et al. Jun 2013 A1
20130173795 McPherson Jul 2013 A1
20130176854 Chisu et al. Jul 2013 A1
20130191486 Someya et al. Jul 2013 A1
20130212265 Rubio Vidales et al. Aug 2013 A1
20130250765 Ehsan et al. Sep 2013 A1
20130258846 Damola Oct 2013 A1
20130282791 Kruglick Oct 2013 A1
20140006508 Goyet et al. Jan 2014 A1
20140012972 Han Jan 2014 A1
20140025568 Smith et al. Jan 2014 A1
20140089500 Sankar et al. Mar 2014 A1
20140137190 Carey et al. May 2014 A1
20140164617 Jalan et al. Jun 2014 A1
20140169168 Jalan et al. Jun 2014 A1
20140207845 Han et al. Jul 2014 A1
20140258465 Li Sep 2014 A1
20140258536 Chiong Sep 2014 A1
20140269308 Oshiba Sep 2014 A1
20140269728 Jalan et al. Sep 2014 A1
20140280832 Oshiba Sep 2014 A1
20140283065 Teddy et al. Sep 2014 A1
20140286313 Fu et al. Sep 2014 A1
20140298091 Carlen et al. Oct 2014 A1
20140325588 Jalan et al. Oct 2014 A1
20140330982 Jalan et al. Nov 2014 A1
20140334485 Jain et al. Nov 2014 A1
20140359052 Joachimpillai et al. Dec 2014 A1
20150033341 Schmidtler et al. Jan 2015 A1
20150039671 Jalan et al. Feb 2015 A1
20150088597 Doherty et al. Mar 2015 A1
20150156223 Xu et al. Jun 2015 A1
20150215436 Kancherla Jul 2015 A1
20150237173 Virkki et al. Aug 2015 A1
20150281087 Jalan et al. Oct 2015 A1
20150281104 Golshan et al. Oct 2015 A1
20150296058 Jalan et al. Oct 2015 A1
20150312268 Ray Oct 2015 A1
20150333988 Jalan et al. Nov 2015 A1
20150350048 Sampat et al. Dec 2015 A1
20150350379 Jalan et al. Dec 2015 A1
20160014052 Han Jan 2016 A1
20160036778 Chen et al. Feb 2016 A1
20160042014 Jalan et al. Feb 2016 A1
20160043901 Sankar et al. Feb 2016 A1
20160044095 Sankar et al. Feb 2016 A1
20160050233 Chen et al. Feb 2016 A1
20160088074 Kannan 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
20160156708 Jalan et al. Jun 2016 A1
20160173579 Jalan et al. Jun 2016 A1
Foreign Referenced Citations (115)
Number Date Country
1372662 Oct 2002 CN
1422468 Jun 2003 CN
1449618 Oct 2003 CN
1473300 Feb 2004 CN
1529460 Sep 2004 CN
1575582 Feb 2005 CN
1714545 Dec 2005 CN
1725702 Jan 2006 CN
1910869 Feb 2007 CN
101004740 Jul 2007 CN
101094225 Dec 2007 CN
101163336 Apr 2008 CN
101169785 Apr 2008 CN
101189598 May 2008 CN
101193089 Jun 2008 CN
101247349 Aug 2008 CN
101231644 Sep 2008 CN
101495993 Jul 2009 CN
101878663 Nov 2010 CN
102143075 Aug 2011 CN
102546590 Jul 2012 CN
102571742 Jul 2012 CN
102577252 Jul 2012 CN
102918801 Feb 2013 CN
103533018 Jan 2014 CN
103944954 Jul 2014 CN
104040990 Sep 2014 CN
104067569 Sep 2014 CN
104106241 Oct 2014 CN
104137491 Nov 2014 CN
104796396 Jul 2015 CN
102577252 Mar 2016 CN
102918801 May 2016 CN
1209876 May 2002 EP
1770915 Apr 2007 EP
1885096 Feb 2008 EP
02296313 Mar 2011 EP
2577910 Apr 2013 EP
2622795 Aug 2013 EP
2647174 Oct 2013 EP
2760170 Jul 2014 EP
2772026 Sep 2014 EP
2901308 Aug 2015 EP
2760170 Dec 2015 EP
1182560 Nov 2013 HK
1183569 Dec 2013 HK
1183996 Jan 2014 HK
1189438 Jun 2014 HK
1198565 May 2015 HK
1198848 Jun 2015 HK
1199153 Jun 2015 HK
1199779 Jul 2015 HK
1200617 Aug 2015 HK
3764CHENP2014 Aug 2015 IN
H09097233 Apr 1997 JP
1999096128 Apr 1999 JP
H11338836 Dec 1999 JP
2000276432 Oct 2000 JP
2000307634 Nov 2000 JP
2001051859 Feb 2001 JP
2001298449 Oct 2001 JP
2002091936 Mar 2002 JP
2003141068 May 2003 JP
2003186776 Jul 2003 JP
2005141441 Jun 2005 JP
2006332825 Dec 2006 JP
2008040718 Feb 2008 JP
2009500731 Jan 2009 JP
2013528330 May 2011 JP
2014504484 Feb 2014 JP
2014143686 Aug 2014 JP
2015507380 Mar 2015 JP
5855663 Dec 2015 JP
5906263 Mar 2016 JP
5913609 Apr 2016 JP
10-0830413 May 2008 KR
1020130096624 Aug 2013 KR
101576585 Dec 2015 KR
375721 Dec 1999 TW
477140 Feb 2002 TW
574655 Feb 2004 TW
576066 Feb 2004 TW
I225999 Jan 2005 TW
I252976 Apr 2006 TW
WO1998042108 Sep 1998 WO
0113228 Feb 2001 WO
2001014990 Mar 2001 WO
WO2001045349 Jun 2001 WO
2003103237 Dec 2003 WO
WO2004084085 Sep 2004 WO
WO2006098033 Sep 2006 WO
2008053954 May 2008 WO
WO2008078593 Jul 2008 WO
2001049770 Apr 2011 WO
WO2011079381 Jul 2011 WO
2011149796 Dec 2011 WO
2012050747 Apr 2012 WO
2012075237 Jun 2012 WO
WO2012083264 Jun 2012 WO
WO2012097015 Jul 2012 WO
2013070391 May 2013 WO
2013081952 Jun 2013 WO
2013096019 Jun 2013 WO
2013112492 Aug 2013 WO
WO2014031046 Feb 2014 WO
2014052099 Apr 2014 WO
2014088741 Jun 2014 WO
2014093829 Jun 2014 WO
WO2014138483 Sep 2014 WO
WO2014144837 Sep 2014 WO
WO2014150617 Sep 2014 WO
WO2014151072 Sep 2014 WO
WO2014176461 Oct 2014 WO
WO2014179753 Nov 2014 WO
WO2015153020 Oct 2015 WO
Non-Patent Literature Citations (22)
Entry
Spatscheck et al., “Optimizing TCP Forwarder Performance”, IEEE/ACM Transactions on Networking, vol. 8, No. 2, Apr. 2000.
Kjaer et al. “Resource allocation and disturbance rejection in web servers using SLAs and virtualized servers”, IEEE Transactions on Network and Service Management, IEEE, US, vol. 6, No. 4, Dec. 1, 2009.
Sharifian et al. “An approximation-based load-balancing algorithm with admission control for cluster web servers with dynamic workloads”, The Journal of Supercomputing, Kluwer Academic Publishers, BO, vol. 53, No. 3, Jul. 3, 2009.
Cardellini et al., “Dynamic Load Balancing on Web-server Systems”, IEEE Internet Computing, vol. 3, No. 3, pp. 28-39, May-Jun. 1999.
Hunt et al. NetDispatcher: A TCP Connection Router, IBM Research Report RC 20853 May 19, 1997.
Gite, Vivek, “Linux Tune Network Stack (Buffers Size) to Increase Networking Performance,” accessed Apr. 13, 2016 at URL: <<http://www.cyberciti.biz/faq/linux-tcp-tuning/>>, Jul. 8, 2009, 24 pages.
“tcp—TCP Protocol”, Linux Programmer's Manual, accessed Apr. 13, 2016 at URL: <<https://www.freebsd.org/cgi/man.cgi?query=tcp&apropos=0&sektion=7&manpath=SuSE+Linux%2Fi386+11.0&format=asci>>, Nov. 25, 2007, 11 pages.
Koike et al., “Transport Middleware for Network-Based Control,” IEICE Technical Report, Jun. 22, 2000, vol. 100, No. 53, pp. 13-18.
Yamamoto et al., “Performance Evaluation of Window Size in Proxy-based TCP for Multi-hop Wireless Networks,” IPSJ SIG Technical Reports, May 15, 2008, vol. 2008, No. 44, pp. 109-114.
Abe et al., “Adaptive Split Connection Schemes in Advanced Relay Nodes,” IEICE Technical Report, Feb. 22, 2010, vol. 109, No. 438, pp. 25-30.
Guo, Yuan-ni et al., “An Embedded Firewall System Design Based on Ptolemy II,” Journal of System Simulation, vol. 16 No. 6, pp. 1361-1363, Jun. 2004.
Huang, Quan et al., “An Embedded Firewall Based on Network Processor,” IEEE, 2nd International Conference on Embedded Software and Systems, 7 pages, Dec. 16-18, 2005.
Ihde, Michael et al., “Barbarians in the Gate: An Experimental Validation of NIC-Based Distributed Firewall Performance and Flood Tolerance,” IEEE, International Conference on Dependable Systems and Networks, Jun. 25-28, 2006, 6 pages.
Susilo, W. et al., “Personal Firewall for Pocket PC 2003: Design & Implementation,” IEEE 19th International Conference on Advanced Information Networking and Applications, vol. 2 pp. 661-666, Mar. 28-30, 2005.
“How to Create a Rule in Outlook 2003” CreateaRule-Outlook2003.doc 031405 mad, 3 pages.
ORACLE Corporation, “Oracle Intelligent Agent User's Guide,” Release 9.2.0, Part No. A96676-01, Mar. 2002.
F5 Networks, Inc., “SOL11243: iRules containing the RULE_INIT iRule event do not re-initialize when a syntax error is corrected,” f5.support.com, May 24, 2010.
Ganesan et al., “YAPPERS: a peer-to-peer lookup service over arbitrary topology,” IEEE, pp. 1250-1260, Mar. 30-Apr. 3, 2003.
Annexstein et al., “Indexing Techniques for File Sharing in Scalable Peer-to-Peer Networks,” IEEE, pp. 10-15, Oct. 14-16, 2002.
Ling et al., “A Content-Based Resource Location Mechanism in PeerlS,” IEEE, pp. 279-288, Dec. 12-14, 2002.
Dainotti, Albert et al., “TIE: A Community-Oriented Traffic Classification Platform,” May 11, 2009, Springer-Verlag, Traffic Monitoring and Analysis: Proceedings First International Workshop, TMA 2009. pp. 64-74. Retrieved from: Inspec. Accession No. 11061142.
Dainotti, Albert et al., “Early Classification of Network Traffic through Multi-Classification,” Apr. 27, 2011, Springer Verlag, Traffic Monitoring and Analysis, Proceedings of the Third International Workshop, TMA 2011. pp. 122-135. Retrieved from INSPEC. Accession No. 12232145.
Related Publications (1)
Number Date Country
20130198385 A1 Aug 2013 US