System and method for load balancing a communications network
First Claim
1. A method for load-balancing a Session Initiation Protocol (SIP) network, comprising:
- receiving a SIP request from a source device;
selecting one of a plurality of SIP servers based on a plurality of performance scores, each of the plurality of performance scores associated with a corresponding one of the plurality of SIP servers; and
forwarding the SIP request to the selected SIP server.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention relates to a system and method for load-balancing multiple servers in a communications network. Instead of using round robin or other predetermined scheme, SIP messages are forwarded to one of multiple SIP servers according to a performance score that is calculated from measured performance data. Advantageously, the disclosed system and method decreases signaling latency, improving overall communications speed. Moreover, where performance data indicates that a SIP server has failed, the performance score for the failed SIP server is zero, and the load balancer will not forward SIP messages to the failed SIP server. System uptime is also improved.
-
Citations
26 Claims
-
1. A method for load-balancing a Session Initiation Protocol (SIP) network, comprising:
-
receiving a SIP request from a source device;
selecting one of a plurality of SIP servers based on a plurality of performance scores, each of the plurality of performance scores associated with a corresponding one of the plurality of SIP servers; and
forwarding the SIP request to the selected SIP server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for polling a SIP server for performance data, comprising:
-
receiving a data request for the performance data in a performance server;
creating a persistent performance client in the performance server;
opening a connection to an agent running on the SIP server; and
issuing a request from the persistent performance client to the agent. - View Dependent Claims (15)
-
-
16. A method responsive to a data request, comprising:
-
creating a first controller, the first controller being configured to gather and cache performance data; and
creating a server socket, the server socket being configured to determine whether a connection request has been received, the server socket being further configured to transmit the performance data. - View Dependent Claims (17)
-
-
18. A method for load-balancing a Session Initiation Protocol (SIP) network, comprising:
-
receiving a SIP request;
generating a routing request based on the SIP request;
generating a performance score request for each of a plurality of SIP servers based on the routing request;
generating a performance data query to each of the plurality of SIP servers based on the performance score request; and
receiving the performance data query in an agent in each of the plurality of SIP servers. - View Dependent Claims (19)
-
-
20. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method comprising:
-
receiving a SIP request from a source device;
selecting one of a plurality of SIP servers based on a plurality of performance scores, each of the plurality of performance scores associated with a corresponding one of the plurality of SIP servers; and
forwarding the SIP request to the selected SIP server.
-
-
21. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method comprising:
-
receiving a data request for the performance data in a performance server;
creating a persistent performance client in the performance server;
opening a connection to an agent running on the SIP server; and
issuing a request from the persistent performance client to the agent.
-
-
22. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method comprising:
-
creating a first controller, the first controller being configured to gather and cache performance data; and
creating a server socket, the server socket being configured to determine whether a connection request has been received, the server socket being further configured to transmit the performance data.
-
-
23. A machine-readable medium having instructions stored thereon for execution by a processor to perform a method comprising:
-
receiving a SIP request;
generating a routing request based on the SIP request;
generating a performance score request for each of a plurality of SIP servers based on the routing request;
generating a performance data query to each of the plurality of SIP servers based on the performance score request; and
receiving the performance data query in an agent in each of the plurality of SIP servers.
-
-
24. A communication system, comprising:
-
an interface to a source device;
a load balancer coupled to the interface;
a plurality of Session Initiation Server (SIP) servers coupled to the load balancer; and
a performance server coupled to the load balancer and the plurality of SIP servers, the performance server configured to collect performance data from the plurality of SIP servers, the load balancer configured to calculate a plurality of performance scores, each of the plurality of performance scores associated with one of the plurality of SIP servers, the plurality of performance scores based on the performance data, the load balancer further configured to direct a SIP request received from the first interface to a selected one of the plurality of SIP servers based on the plurality of performance scores. - View Dependent Claims (25, 26)
-
Specification