[OpenSIPS-Users] REG::Zero Window in opensips 1.11.5

Liviu Chircu liviu at opensips.org
Fri Jun 9 04:45:54 EDT 2017


Hi Ravi,

The TCP/TLS code is not optimized to dispatch/parallelize the SIP 
messages read by a single worker on a heavily reused TCP connection. 
They will be processed serially, one at a time (possibly not by the same 
TCP worker, but that's irrelevant). However, SIP message processing in 
OpenSIPS is super fast and your TCP read buffers should never get filled 
up, unless maybe your kernel buffer sizes are too low. See this tutorial 
[1] for some tuning tips.

On a different note, the more blocking ops you do in your script, the 
more chances for your box to start advertising TCP zero window to the  
app server. If that's your case, then your best bet is to move to a 2.2+ 
OpenSIPS, and make those statements asynchronous.

[1]: https://www.cyberciti.biz/faq/linux-tcp-tuning/

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 09.06.2017 07:00, Ravitez Ravi wrote:
>
> Hi All,
>
>                 Good Day,
>
>                 I’m using opensips V1.11.5-TLS and facing a problem 
> with Zero Window.
>
>                 Here’s the scenario :
>
>                                                 NOTIFY
>
> Opensips client ---------------------------à App server
>
> 200 OK
>
> Opensips ß---------------------------- App Server
>
> Now lets assume this
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
>               NOTIFY
>
> Opensips client ---------------------------à App server
>
> 200 OK|200 ok | 200 ok | 200 ok
>
> Opensips ß---------------------------- App Server
>
> Assuming the size of response if 5000 bytes.
>
> tcp_main detects data in the buffer and passes on to the child process 
> to read the data from the buffer,
>
> child(buffer size 65535 ) now reads the data from the socket
>
> tcp_read_req()
>
> -tcp_read_headers()
>
> -Loops until all the sip messages are extracted and forwarded/processed
>
> -Releases the connection to tcp_main
>
> Tcp_main attaches  to IO
>
> During the timer interval where  system reads the data from the socket 
> and process  the data there would be new data pipelined in the socket, 
> this gradually  results in Zero window L
>
> Would like to know if there’s a way to process the next available data 
> on the socket once its been read.Thank you for your time J
>
>
>
> Regards,
>
> Ravitez.D
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170609/db94eecf/attachment-0001.html>


More information about the Users mailing list