With increasing of instant messaging and presence traffic, ability to handle in a reliable and fast fashion the TCP processing in SIP networks became mandatory.
Thanks to Andrei Pelinescu-Onciul, the one that wrote the first (and the second, and the third, ...) line of code for SIP Express Router (SER) (of course that extends to Kamailio (OpenSER) or other variants), Kamailio 3.0.0 introduces asynchronous TCP processing, via sip-router.org core framework.
You can control synchronous/asynchronous TCP behaviour via global parameter tcp_async:
Shortly, asynchronous TCP means that Kamailio worker processes will not block in attempt to open a TCP connection or send a SIP message over a TCP connection. The TCP operations are pooled and handled by special processes, the SIP worker processes moving forward to deal with next SIP messages.
This is not the only improvement to TCP, practically TCP has been refurbished if you compare it with Kamailio 1.5.x or older. A lot of new parameters that help you tune TCP processing performances that came along with a better internal architecture:
Next post in this series will be about TLS improvements.