[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