Copyright © 2006 Elsevier B.V. All rights reserved.
Failover, load sharing and server architecture in SIP telephony
Available online 25 September 2006.
Abstract
We apply some of the existing web server redundancy techniques for high service availability and scalability to the relatively new IP telephony context. The paper compares various failover and load sharing methods for registration and call routing servers based on the Session Initiation Protocol (SIP). In particular, we consider SIP server failover techniques based on the clients, DNS (Domain Name Service), database replication and IP address takeover, and load sharing techniques using DNS, SIP identifiers, network address translators, and servers with same IP addresses. We describe our two-stage reliable and scalable SIP server architecture in which the first stage proxies the request to one of the second stage server group based on the destination user identifier. We quantitatively evaluate the performance improvement of the load sharing architecture using our SIP server. We quantitatively compare the effect of SIP server architecture such as event-based and thread pool. Additionally, we present an overview of the failover mechanism we implemented in our test-bed using the open source MySQL database.
Keywords: Availability; Scalability; Failover; Load sharing; SIP
Article Outline
- 1. Introduction
- 2. Related work
- 3. Availability: Failover
- 3.1. Client-based failover
- 3.2. DNS-based failover
- 3.3. Failover based on database replication
- 3.4. Failover using IP address takeover
- 3.5. Reliable server pooling
- 3.6. Implementation
- 3.7. Analysis
- 4. Scalability: Load sharing
- 4.1. DNS-based load sharing
- 4.2. Identifier-based load sharing
- 4.3. Network address translation
- 4.4. Multiple servers with the same IP address
- 4.5. Two-stage reliable and scalable architecture
- 5. Performance evaluation
- 5.1. Test setup
- 5.2. Analysis
- 5.3. Non-uniform call distribution
- 5.4. Stateful proxy
- 5.5. Effect of DNS
- 5.6. Other SIPstone tests
- 6. Server architecture
- 6.1. Processing steps
- 6.2. Stateless proxy
- 6.3. Stateful proxy
- 6.4. The best architecture
- 6.5. Effect on load sharing performance
- 7. Conclusions
- Acknowledgements
- References
- Vitae






E-mail Article
Add to my Quick Links

Cited By in Scopus (0)







