Distributed system to determine a server's health

Information

  • Patent Grant
  • 9906422
  • Patent Number
    9,906,422
  • Date Filed
    Friday, May 16, 2014
    10 years ago
  • Date Issued
    Tuesday, February 27, 2018
    6 years ago
Abstract
Exemplary embodiments for a distributed system for determining a server's health are disclosed. The systems and methods provide for a network controller to direct one or more servicing nodes to check the health of one or more servers, and report a health score to the network controller. The network controller may then calculate, update and maintain a health score for each server in the network from the various health scores reported to it from the servicing nodes. This allows a distributed system to be used to facilitate network operations, as a single device is not relied on for periodically determining each server's health.
Description
BACKGROUND OF THE INVENTION

Field of the Invention


The present invention relates generally to data networks, and more particularly to components of a data network to determine a health score of a server.


Description of the Related Art


The tremendous growth of networked clients such as smartphones and tablets has led to a large growth of network services. Many network services require deployment of a substantial number of servers and server load balancers to handle the service load. It is not uncommon to see thousands of servers used for a single popular application such as a mobile messaging application, a mobile photo application, an Internet radio or music streaming services, or a multi-person online game. In such service deployment situations, the load put on the servers is not necessarily even and is often a function of service policies of connected server load balancers (SLB), traffic managers, or application delivery controllers (ADC). When a server becomes busy, it is desirable for an ADC to detect the situation and select a more available server for new service requests. In addition, servers may fail or be taken off the service by a network administrator for maintenance reasons. It is important for an ADC to be aware of such situations and to select other servers to handle the traffic.


Typically, an ADC is connected to all servers and often detects the health of all servers directly. Upon knowing the servers' health after the detection, the SLB or ADC would adjust their service application processing accordingly. Such direct detection mechanism works well when there are few servers. However, when there are thousands of servers, the computing and resource effort to check the servers' health will consume a significant part of available resources of the ADC. Since a typical service network may have another ADC, it would be advantageous to share the load of detecting the servers' health. An ADC can be assigned to check the health of a portion of the servers while it relies on other ADCs to determine the health of other servers.


It should be apparent from the foregoing that there is a need to provide a distributed method to determine the health of a server.


SUMMARY

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.


The present disclosure is related to approaches for a distributed system to determine a server's health. A method for determining, by a network controller, a health score for a server may comprise receiving a request for a service session from a server, directing at least one servicing node to determine a health score of a server, receiving a health score of the server from each of the at least one servicing nodes, calculating an aggregated health score using the received health scores, and sending the aggregated health score to a servicing node designated to process the service session. The servicing node may use the aggregated health score to select or not select the server for a service session. The servicing node that receives the aggregated health score may be a different servicing node than one that reported a health score for the selected server.


A distributed system for determining a health score for a server is also disclosed. The system may comprise a plurality of servicing nodes, and a network controller that is configured to receive a request for a service session from a server, direct at least one servicing node to determine a health score of a server, receive a health score of the server from each of the at least one servicing nodes, calculate an aggregated health score using the received health scores, and send the aggregated health score to a servicing node designated to process the service session.


In further example embodiments of the present disclosure, the method steps are stored on a machine-readable medium comprising instructions, which when implemented by one or more processors, perform the recited steps. In further example embodiments, hardware systems, or devices, can be adapted to perform the recited steps. Other features, examples, and embodiments are described below.





BRIEF DESCRIPTION OF THE DRAWINGS

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.



FIG. 1 illustrates an exemplary embodiment of a data network servicing a service session based on server health.



FIG. 2 illustrates an exemplary embodiment of a network node.



FIG. 3 illustrates an exemplary embodiment of a network controller collecting a server's health scores.



FIG. 4 illustrates an exemplary embodiment of a server health score.



FIG. 5 illustrates an exemplary embodiment of a network controller calculating an aggregated health score for a server.



FIG. 6 illustrates an exemplary embodiment of a servicing node using a health score to process a service session.





DETAILED DESCRIPTION

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. These example embodiments, which are also referred to herein as “examples,” are described in enough detail to enable those skilled in the art to practice the present subject matter. The embodiments can be combined, other embodiments can be utilized, or structural, logical, and electrical changes can be made without departing from the scope of what is claimed. The following detailed description is therefore not to be taken in a limiting sense, and the scope is defined by the appended claims and their equivalents.



FIG. 1 illustrates an exemplary embodiment of a data network handling a service session using a service based on server health. Client 105 conducts a service session 110 with a server, such as server 115, server 120, or server 125. Although three servers are depicted in FIG. 1, there can be any number of servers. In one embodiment, data packets of service session 110 are processed by service network 130 prior to being delivered to server 115. Service network 130 comprises one or more servicing nodes, such as servicing nodes 135, 140, 145, and 150. Additionally, service network 130 connects to one or more servers 115, 120, and 125. In some embodiments, service network 130 connects to a network controller 155. In various embodiments, network controller 155 may also perform functions of a servicing node.


The one or more servicing nodes may examine the health of the servers. In an exemplary embodiment, servicing node 150 is assigned to check the health of server 115 and report a health score for server 115 to network controller 155. In some embodiments, servicing node 150 is not assigned to examine server 115 and does not report the health score of server 115 to network controller 155. Network controller 155 collects reported health scores of server 115 from the one or more servicing nodes, calculates server health score 160 for server 115, and stores server health score 160. Network controller 155 also collects reported health scores of servers 120 and 125, and calculates server health scores for those servers as well.


In various embodiments, network controller 155 sends server health score 160 to a servicing node, such as servicing node 135. Servicing node 135 determines if server 115 is healthy according to server health score 160. Servicing node 135 processes service session 110 and selects server 115 to process service session 110 if server 115 is determined to be healthy. Servicing node 135 then sends service session 110 to server 115 for processing.


Alternatively, network controller 155 may send server health score 160 for server 115 to a different servicing node, such as servicing node 150. Servicing node 150 determines server health score 160 to be poor and thus server 115 not healthy according to server health score 160. Servicing node 150 processes service session 110 and does not select server 115 based on the server health score 160. Instead, servicing node 150 selects a different server, such as server 120, to handle the service session 110.


In various embodiments, service network 130 includes additional network elements such as routers, switches, Ethernet switches, ATM switching, wireless network elements, broadband gateways, top of rack switches, access points, base stations, mobile network elements, data traffic controller, application delivery controllers, firewalls, optical switches, remote access gateways and other data network gateways, or any other network elements. Additionally, service network 130 may utilize network protocols such as IP protocol, TCP/UDP, ATM, Frame Relay, Ethernet, VLAN, WLAN, MPLS, HTTP, and other data communication protocols.



FIG. 2 illustrates an exemplary embodiment of a network node 205 in a service network. In various embodiments, network node 205 is a client device, a server device, a servicing node, or a network controller. Network node 205 may include a processor module 210, a network module 215, and a computer storage module 220. Processor module 210 can include one or more processors, including a micro-processor, an Intel processor, an AMD processor, a MIPS processor, an ARM-based processor, a RISC processor, or any other type of processor. Processor module 210 can also include one or more processor cores embedded in a processor. Additionally, processor module 210 can include one or more embedded processors, or embedded processing elements in a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), or Digital Signal Processor (DSP).


In exemplary embodiments, network module 215 comprises a network interface such as Ethernet, optical network interface, a wireless network interface, T1/T3 interface, or a WAN or LAN interface. Furthermore, network module 215 can include a network processor. Computer storage module 220 comprises RAM, DRAM, SRAM, SDRAM, or any other memory utilized by processor module 210 or network module 215. Computer storage module 220 stores data utilized by processor module 210. Computer storage module 220 can include a hard disk drive, a solid state drive, an external disk, a DVD, a CD, a readable external disk, or any other type of storage. Additionally, computer storage module 220 stores one or more computer programming instructions, which when executed by processor module 210 or network module 215, implements one or more of the functionalities of the present invention. Network node 205 can also include an input/output (I/O) module 225, such as a keyboard, a keypad, a mouse, a gesture-based input sensor, a microphone, a physical or sensory input peripheral, a display, a speaker, a physical or sensory output peripheral, or any other input or output module.


Network node 205 may also include service application 230. When network node 205 is a client, it performs a client-side function of service application 230. A client-side function of service application 230 comprises file downloading, file uploading, web browsing, video streaming, e-book reading, game playing, gaming, photo applications, messaging, voice calling, music listening, conferencing, document editing, map navigation, online shopping, and other client-networking activities. On the other hand, service application 230 may include server-side functionalities when network node 205 functions as a server. Server-side functions of service application 230 comprise file transfer, HTTP server functions, voice call services, video and audio streaming, online games, collaboration, enterprise work flow, enterprise application, enterprise resource planning (ERP), customer relationship management (CRM), conferencing, e-commerce, transaction processing, business to business (B2B) applications, machine to machine (M2M) application, telemetry, remote access, identity authentication, and other server application functionalities.


In various embodiments, service application 230, when executed in network node 205 as a servicing node, comprise functions such as a network proxy application, security gateway, firewall, protocol gateway application, server load balancing, content caching, network optimization, data de-duplication, network cached storage access, browser optimization, and other network-based service applications. Service application 230 of a servicing node may also include functionalities implementing a part of the present invention.


Service application 230, when executed in network node 205 as a network controller, comprises network management functionalities over service network 130 such as provisioning, network node configuration, event logging, network center operation, network statistics collection and/or analysis, alert handling, and/or other network operation and management applications.



FIG. 3 further illustrates an exemplary embodiment of network controller 155 working in conjunction with one or more servicing nodes to determine a server health score. The one or more servicing nodes may include servicing nodes 135, 140, 145, and 150 and are connected to one or more servers, such as server 115.


In some embodiments, network controller 155 informs servicing nodes 135, 140, and 145 to report the health score of server 115. In other embodiments, network controller 155 informs servicing node 150 to not report the health score of server 115, or servicing node 150 does not receive any instruction from network controller 155 to report the health score of server 115, and therefore servicing node 150 does not report the health score of server 115. In various embodiments, servicing node 135, similarly for servicing node 140 or 145, checks the health of server 115 by querying server 115 and then generates server health score 305 for server 115.


Server health score 305, as illustrated in an exemplary embodiment in FIG. 4, comprises a score for connectivity or reachability, resource utilization such as CPU and memory usage, load of a service application, or various measures for the load of the service application. The various measures for the load of the service application comprise the number of active sessions or connections, pending sessions, or completed sessions; performance of the service application such as page loading time; or average, maximum, or minimum response time. Server health score 305 may also include one or more internal measurements within a servicing node, related to the server. Such internal measurements comprise data traffic sent from the servicing node to the server, data traffic from a client device using the servicing node directed to the server, or data traffic processed by the servicing node for a service application of the server.


In various embodiments, a servicing node uses different means to determine the measures indicated in server health score 305. For example, servicing node 135 may connect to server 115 using a network link. Servicing node 135 checks or measures the health of the network link to determine connectivity indicated in server health score 305. Servicing node 135 may also connect to server 115 over service network 130. Servicing node 135 checks reachability to server 115 by sending a query using a protocol, such as ping packet, echo or a proprietary protocol, to server 115 and examining if server 115 responds to the query. Servicing node 135 measures and records the reachability status into server health score 305.


In some embodiments, servicing node 135 sends a request to server 115 to obtain resource utilization information. Servicing node 135 sends a piece of software or computer programming instructions to server 115 which executes the sent software to collect and report system resource utilization to servicing node 135. In various embodiments, to obtain a load of the service application, servicing node 135 sends a service request, such as a HTTP request, for the service application and calculates the service response from server 115 with a pre-stored response. Servicing node 135 compares the performance of the service request with a pre-stored expectation of the performance. Server 115 sends to servicing node 135 a measure about the working load of the service application in a response to a client service request, separately, or in a HTTP response to servicing node 135.


In some embodiments, a servicing node 135 sends all the information in server health score 305 to network controller 155. Servicing node 135 calculates a summary server health score 305, such as “Good”, “Bad”, “Poor”, “Failed”, “1,” or “0,” and sends server health score 305 to network controller 155.


In an exemplary embodiment illustrated in FIG. 5, network controller 155 maintains server health score 160 which indicates health of server 115. Server health score 160 stores a list of health scores reported by one or more servicing nodes such as servicing nodes 135, 140, 145, or 150.


In an exemplary embodiment, network controller 155 receives server health score 305 reported from servicing node 135 about health of server 115. Network controller 155 stores server health score 305 into the corresponding entry in server health score 160. Entry for servicing node 150 is not applicable when network controller 155 determines servicing node 150 does not need to report health score for server 115.


Network controller 155 determines if there is sufficient information in server health score 160, and network controller 155 calculates aggregated health score 505 for server health score 160. In various embodiments, network controller 155 determines there is sufficient information in server health score 160 when it receives a server health score 305 from at least one servicing node, from a majority of servicing nodes, from at least one servicing node within a specified time frame (e.g. last 30 seconds, last 5 seconds), from at least two servicing nodes within a specified time frame, from all servicing nodes, or any similar variation. Aggregated health score 505 may indicate combined health information about server 115. Network controller 155 sends aggregated health score 505 for server 115 to servicing nodes 135, 140, 145, or 150.


Network controller 155 may calculate aggregated health score 505 by computing an average, weighted average, mean, median, or other arithmetic operation of the received server health scores from the at least one servicing node. As such, the aggregate health score 505 may be different from the server health score 160. In some embodiments, aggregate health score 505 calculated by the network controller 155 is also included in server health score 160. In various embodiments, network controller 155 determines aggregated health score 505 to be good, “1”, or “yes” when a majority of received server health scores indicate good health for server 115. On the other hand, network controller 155 determines aggregated health score 505 to be poor, “0”, or “no” when a majority of received server health scores indicate poor health for server 115. Network controller 155 considers different weighing factors to different reported server health scores depending on the reporting servicing node. In some embodiments, the calculation is based on unanimous agreement of reported server health scores. In other embodiments, network controller 155 discards a reported health score prior to the calculation, or when a reported health score is not trusted.


In an exemplary embodiment, network controller 155 receives server health score 305, replaces an earlier reported health score from servicing node 135, and calculates an updated aggregated health score 505. Network controller 155 calculates an updated aggregated health score 505 when network controller 155 receives a sufficient number of newly received server health scores. Network controller 155 may include a timer (not shown) and discards all current reported health scores. After receiving another collection of reported server health scores from the one or more servicing nodes, network controller 155 may calculate an updated aggregated health score 505.


In some embodiments, network controller 155 stores a history of reported server health scores. Network controller 155 determines from a history of reported server health scores from servicing node 135 whether the reported server health scores are not consistent and whether servicing node 135 is not trusted for further reporting server health score for a particular server, such as server 115. Then, network controller 155 instructs servicing node 135 not to further report server health score, and network controller 155 discards reported health scores from servicing node 135 in calculating aggregated health score 505. Additionally, network controller 155 instructs a different servicing node, such as servicing node 150, to report server health for server 115, so as to replace the role of servicing node 135.


In some embodiments, network controller 155 determines servicing node 135 is no longer needed to report server health for server 115, and network controller 155 instructs servicing node 135 not to report server health for server 115. Servicing node 135 may inform network controller 155 that it no longer will report server health for server 115. Upon determining that servicing node 135 is no longer needed to report server health for server 115, network controller 155 removes an entry in server health score 160 corresponding to servicing node 135.


In an exemplary embodiment illustrated in FIG. 6, servicing node 135 determines a final server health score 605 for server 115. Servicing node 135 determines server health score 305 for server 115, reports server health score 305 to network controller 155, or receives server health score 610 from network controller 155. In various embodiments, server health score 610 is the same as server health score 160, or aggregate health score 505. Servicing node 135 combines received server health score 610 and server health score 305 to get final server health score 605.


In some embodiments, servicing node 135 may receive server health score 610 from network controller 155, and detect server health score 305 directly from the server. The servicing node makes its own determination as to which server health score to use as final server health score 605. In an exemplary embodiment, network controller 155 receives a “good” server health score from servicing nodes 135 and 140, and a “bad” server health score from servicing node 145. Network controller 155 determines aggregate health score 505 to be “good”, since the majority of the received server health score are good. Servicing node 145 receives aggregate health score 505 of “good”, which conflicts with its own detected value of “bad”, and then makes its own determination of which value to use as final server health score 605. Conflicting server health scores for server 115 may be due to the servicing nodes checking the health of server 115 at different times, using different means. Network controller 155 also calculates and updates aggregated health score 505 using scores received at different times from different servicing nodes.


In some embodiments, servicing node 135 does not use server health score 610 received from network controller 155 and considers only server health score 305 to determine final server health score 605. In other embodiments, server health score 610 is more accurate, and servicing node 135 considers only server health score 610. If server health score 610 is much worse than server health score 305, conflicts with server health score 305, or indicates that server 115 is not available or failed, servicing node 135 may use only server health score 610. In various embodiments, servicing node 135 is not assigned to report health score for server 115, and servicing node 135 uses only server health score 610 to determine final server health score 605.


In some embodiments, servicing node 135 processes service session 110 using final server health score 605 and a service policy 615. According to service policy 615, servicing node 135 selects server 115 to process service session 110. Servicing node 135 checks final server health score 605 of server 115. If final server health score 605 indicates server 115 is available, servicing node 135 selects server 115 to process service session 110. If final server health score 605 indicates server 115 is not available, busy, congested, or failed, servicing node 135 does not select server 115. In various embodiments, health server score 305 may indicate that server 115 is available such that servicing node 135 would have selected server 115, while final server health score 605 indicates server 115 is not available. In those embodiments, servicing node 135 does not select server 115 to process service session 110. In other embodiments, servicing node 135 does not detect a health score for server 115 such that servicing node 135 would have selected server 115 while final server health score 605 indicates server 115 is not available. In those embodiments, servicing node 135 does not select server 115 to process service session 110.


Servicing node 135 examines service policy 615 and select another server such as server 120 to process service session 110. In some embodiments, servicing node 135 removes server 115 from service policy 615 based on final server health score 605 so that servicing node 135 would not consider server 115 when processing service session 110. Alternatively, servicing node 135 may add server 115 to service policy 615 based on final server health score 605 so that servicing node 135 would consider server 115 when processing service session 110.


In various embodiments, servicing node 135 receives an updated server health score 610 from network controller 155 and calculates an updated final server health score 605. In other embodiments, servicing node 135 determines server health score 305 and calculate an updated final server health score 605. Servicing node 135 updates service policy 615 based on an updated final server health score 605.


In some embodiments, network controller 155 assigns different servicing nodes to collect server health scores for different servers. Network controller 155 determines that server 115 is more important than server 120 and assigns more servicing nodes for server 115 than for server 120. If network controller 155 observes that aggregated health scores of server 115 are inconsistent over a period of time, network controller 155 may assign additional servicing nodes to collect health scores of server 115, so as to better determine the aggregated health of server 115. However, if network controller 155 observes that aggregated health scores of server 115 are stable over a period of time, network controller 155 may reduce a number of servicing nodes to monitor server 115, so as to reduce the processing load of the servicing nodes, the server, and the network. In various embodiments, network controller 155 increases the frequency of health data collection by the servicing node. Alternatively, network controller 155 may decrease the frequency of health data collection, depending on the trend of aggregated health of server 115 over a period of time.


In some embodiments, network controller 155 connects to a display and displays the aggregated health score of server 115 and the trend of aggregated health of server 115. Network controller 155 generates a report of the history of aggregated health scores of one or more servers. Network controller 155 applies one or more rules to analyze the history of aggregated health scores to determine a trend of server loads, a trend of service application load, or a trend of client traffic.

Claims
  • 1. A method for determining, at a network controller, a health score of a server, the method comprising: receiving, from a client, a request for a service session with a server of a plurality of servers, each of the plurality of servers being in communication with one or more servicing nodes of a plurality of servicing nodes;directing the plurality of servicing nodes in communication with the network controller to determine a health score of at least one of the plurality of servers, each of the plurality of servicing nodes being configured to determine the health score of the one or more of the plurality of servers, the determining of the health score by each of the plurality of servicing nodes including determining a server health score of the one or more of the plurality of servers based at least on reachability of the one or more of the plurality of servers, the reachability being determined by sending a query to the one or more of the plurality of servers and examining whether the one or more of the plurality of servers respond to the query;receiving the health score of the at least one server from each of the plurality of servicing nodes;calculating an aggregated health score for each server of the plurality of servers using the received health scores from the plurality of servicing nodes; andsending the aggregated health score to a servicing node of the plurality of servicing nodes, the servicing node being designated to process the service session by selecting, based at least on the aggregated health score, one of the plurality of servers for providing the service associated with the service session and directing the request for the service session to the selected one of the plurality of servers, wherein the servicing node designated to process the service session is not one of the plurality of servicing nodes that reported the health score of the one of the plurality of servers to the network controller.
  • 2. The method of claim 1, wherein the sending the aggregated health score to the servicing node designated to process the service session enables the servicing node to use the aggregated health score to select the server or not to select the server for the service session.
  • 3. The method of claim 2, wherein the servicing node designated to process the service session is one of the plurality of servicing nodes directed to determine a health score of at least one of the plurality of servers, and the aggregated health score conflicts with the health score determined by the servicing node.
  • 4. The method of claim 3, wherein the servicing node designated to process the service session does not select the server based on the aggregated health score when the servicing node designated to process the service session would have selected the server if using the health score determined by the servicing node.
  • 5. The method of claim 1, wherein, based on the aggregated health score, the servicing node designated to process the service session does not select the server, when the servicing node would have selected the server without using the aggregated health score.
  • 6. The method of claim 1, wherein the aggregated health score is based on a majority of health scores received by the network controller.
  • 7. The method of claim 6, wherein the majority of received health scores indicate that the server is in good health, or the majority of received health scores indicate that the server is in poor health.
  • 8. The method of claim 1, wherein the calculating is based on an average of the received health scores, or a weighted average of the received health scores.
  • 9. The method of claim 1, further comprising: receiving one or more updated health scores from at least one of the plurality of servicing nodes;calculating an updated aggregated health score based on the one or more updated health scores; andsending the updated aggregated health score to the servicing node designated to process the service session.
  • 10. The method of claim 1, wherein at least one of the received health scores comprises one or more scores related to connectivity, system resource utilization, number of connections, and load of a service application.
  • 11. A non-transitory computer-readable storage medium comprising instructions, which when executed by one or more processors of a network controller, perform a method for determining a health score of a server, the method comprising: receiving, from a client, a request for a service session with a server of a plurality of servers, each of the plurality of servers being in communication with one or more servicing nodes of a plurality of servicing nodes;directing the plurality of servicing nodes in communication with the network controller to determine a health score of at least one of the plurality of servers, each of the plurality of servicing nodes being configured to determine the health score of the one or more of the plurality of servers, the determining of the health score by each of the plurality of servicing nodes including determining a server health score of the one or more of the plurality of servers based at least on reachability of the one or more of the plurality of servers, the reachability being determined by sending a query to the one or more of the plurality of servers and examining whether the one or more of the plurality of servers respond to the query;receiving the health score of the at least one server from each of the plurality of servicing nodes;calculating an aggregated health score for each server of the plurality of servers using the received health scores from the plurality of servicing nodes; andsending the aggregated health score to a servicing node of the plurality of servicing nodes, the servicing node being designated to process the service session by selecting, based at least on the aggregated health score, one of the plurality of servers for providing the service associated with the service session and directing the request for the service session to the selected one of the plurality of servers, wherein the servicing node designated to process the service session is not one of the plurality of servicing nodes that reported the health score of the one of the plurality of servers to the network controller.
  • 12. A system for determining a health score of a server, the system comprising: a plurality of servicing nodes in communication with a plurality of servers that provide a service; anda network controller comprising a processor and a memory, the network controller in communication with the plurality of servicing nodes, the network controller configured to:receive, from a client a request for a service session from a client with a server of a plurality of servers, each of the plurality of servers being in communication with one or more servicing nodes of the plurality of servicing nodes:direct at least one the plurality of servicing nodes to determine a health score of at least one of the plurality of servers, each of the plurality of servicing nodes being configured to determine the health score of the one or more of the plurality of servers, the determining of the health score by each of the plurality of servicing nodes including determining a server health score of the oneor more of the plurality of servers based at least on reachability of the one or more of the plurality of servers, the reachability being determined by sending a query to the one or more of the plurality of servers and examining whether the one or more of the plurality of servers respond to the query;receive the health score of the at least one server from each of the at least one plurality of servicing nodes;calculate an aggregated health score for each server of the plurality of servers using the received health scores; andsend the aggregated health score to a servicing node of the plurality of servicing nodes, the servicing node being designated the process the service session by selecting, based at least on the aggregated health score, one of the plurality of servers for providing the service associated with the service session and directing the request for the service session to the selected one of the plurality of servers, wherein the servicing node designated to process the service session is not one of the plurality of servicing nodes that reported the health score of the one of the plurality of servers to the network controller.
  • 13. The system of claim 12, wherein the network controller configured to send the aggregated health score to the servicing node designated to process the service session enables the servicing node to use the aggregated health score to select the server or not select the server for the service session.
  • 14. The system of claim 12, wherein the servicing node designated to process the service session is one of the at least one servicing nodes, and the aggregated health score conflicts with the health score determined by the servicing node.
  • 15. The system of claim 12, wherein the aggregated health score is based on a majority of health scores received by the network controller.
  • 16. The system of claim 12, wherein the aggregated health score is based on an average of the received health scores, or a weighted average of the received health scores.
  • 17. The system of claim 12, wherein the network controller is further configured to: receive one or more updated health scores from the at least one servicing nodes;calculate an updated aggregated health score based on the one or more updated health scores; andsend the updated aggregated health score to the servicing node designated to process the service session.
  • 18. The system of claim 12, wherein at least one of the received health scores comprises one or more scores related to connectivity, system resource utilization, number of connections, and load of a service application.
US Referenced Citations (496)
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
7296283 Hrastar et al. Nov 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
8806011 Graham-Cumming Aug 2014 B1
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
9621575 Jalan et al. Apr 2017 B1
20010042204 Blaker et al. Nov 2001 A1
20010049741 Skene et al. Dec 2001 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
20050210243 Archard 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
20060212522 Walter 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
20070019543 Wei et al. Jan 2007 A1
20070056038 Lok Mar 2007 A1
20070073660 Quinlan 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 et al. 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
20090287941 Shouno Nov 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 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 et al. 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 Reinart 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
20120117646 Yoon 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
20120307631 Yang et al. Dec 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 May 2013 A1
20130128885 Kardashov 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
20130198385 Han et al. Aug 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
20140258489 Muppala et al. 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 Oct 2014 A1
20140310396 Christodorescu 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 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
20170085440 Dosovitsky Mar 2017 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
101261644 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
JOURNAL392015 Sep 2015 IN
H09-097233 Apr 1997 JP
1999096128 Apr 1999 JP
H11-338836 Oct 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
20130096624 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
2011049770 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
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.
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.
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.
“How to Create a Rule in Outlook 2003” CreateaRule-Outlook2003.doc 031405 mad, 3 pages.
“Oracle Intelligent Agent User's Guide,” Oracle Corporation, Release 9.2.0, Part No. A96676-01, Mar. 2002, 36 pages.
“SOL11243: iRules containing the RULE_INIT iRule event do not re-initialize when a syntax error is corrected,” F5 Networks, Inc., f5.support.com, May 24, 2010, 1 page.
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.
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.
Related Publications (1)
Number Date Country
20150333988 A1 Nov 2015 US