Scalability of TCP Servers, Handling Persistent Connections

Network servers often are expected to handle a very large number of simultaneous connections. A claim that "TCP servers scale poorly" was sometimes considered as a reason to use UDP as the transport layer for servers, handling tens of thousands of connections. The article identifies the reason for this statement, and shows that the current Linux kernel has means to handle as many simultaneous TCP connections as it would have been possible with UDP. Test results show drastic performance increase compared to traditional implementations particularly for SIP servers.