[Serdev] TCP problems

Katty Xiong cyyxiong at yahoo.com
Fri Jan 12 20:23:59 UTC 2007


Hi Andrei,

I found the cause for this issue. SIPp gets blocked
because Solaris does not supports non-blocking send()
using MSG_DONTWAIT option. 

Thanks,
Joy

--- Andrei Pelinescu-Onciul <andrei at iptel.org> wrote:

> On Jan 09, 2007 at 17:13, Katty Xiong
> <cyyxiong at yahoo.com> wrote:
> > 
> > SIPp UAC ---------------SER--------------SIPp UAS
> > 199.199.2.31	 199.199.2.50   	199.199.2.30
> > 
> > I abstract more info from the packet trace. It
> would
> > be great if someone already has a solution or
> > workaround for this.
> > 
> > Problem: when SIPp UAC generates high load (800
> CPS),
> > SIPp UAC works for a while and then SIPp at UAC
> > reports the following error: 
> > Broken pipe on TCP connection, remote probably
> closed
> > the socket.
> > 
> > The problem is related with TCP zero window:
> > 
> > In the beginning, SIPp at UAC creates a new TCP
> > connection with SER to exchange SIP messages
> between
> > them (connection pair: 199.199.2.31:51402 and
> > 199.199.2.50.5060). But with high load (800CPS),
> TCP
> > at both SIPp and SER publicizes zero window after
> some
> > time, and then no SIP message can be sent through
> this
> > connection. 
> 
> Could you send me (privately) an email with the
> network dump (starting a few
> packets before the windows become 0)?
> Could you also send me the sipp command lines that
> you used? Do you use
> only one tcp connection?
> 
> > 
> > When timeout, SER creates another connection with
> SIPp
> > UAC (connection pair: 199.199.2.31:5060 and
> > 199.199.2.50:59094).  And SER uses this new
> connection
> > to send SIP messages to SIPp UAC. SIPp UAC does
> not
> > use the new connection to send any packets. 
> > 
> > After some time, the first connection is reset
> (TCP
> > RST) by SER and the second connection is reset by
> > SIPp. And then SIPp at UAC reports error.
> > 
> > My question is: Is it possible to prevent SER from
> > creating a new connection?
> 
> No, ser creates a new connection when it cannot find
> an already existing
> one. In your case the problem is that the original
> connection timeouts
>  (default is 2 min of idle time). You can change the
> timeout by setting 
>  tcp_connection_lifetime in ser.cfg, but the real
> problem in your case seems 
>  to be why both windows become 0.
> 
> > How often does SER resets
> > idle TCP connection? Is it tunable?
> 
> ser closes connection that have been idle for more
> then
> tcp_connection_lifetime. You will get a reset if the
> receive queue was
> not empty, but this should only happen in case of
> some unrecoverable
> error on the connection (bad packet, forced error
> from the script
> a.s.o).
> 
> 
> Andrei
> 



 
____________________________________________________________________________________
Be a PS3 game guru.
Get your game face on with the latest PS3 news and previews at Yahoo! Games.
http://videogames.yahoo.com/platform?platform=120121


More information about the Serdev mailing list