This paper characterizes the impact that the use of UDP versus TCP has on the performance and scalability of the OpenSER SIP proxy server. The Session Initiation Protocol (SIP) is an application-layer signaling protocol that is widely used for establishing Voice-over-IP (VoIP) phone calls. SIP can utilize a variety of transport protocols, including UDP and TCP. Despite the advantages of TCP, such as reliable delivery and congestion control, the common practice is to use UDP. This is a result of the belief that UDP’s lower processor and network overhead results in improved performance and scalability of SIP services. This paper argues against this conventional wisdom. This paper shows that the principal reasons for OpenSER’s poor performance using TCP are caused by the server’s design, and not the low-level performance of UDP versus TCP. Specifically, OpenSER’s architecture for handling concurrent calls is responsible for most of the difference. Moreover, once these issues are...
Kaushik Kumar Ram, Ian C. Fedeli, Alan L. Cox, Sco