[Serusers] reuse of existing tcp connection

Juha Heinanen jh at tutpro.com
Thu Oct 16 16:09:32 CEST 2003


Andrei Pelinescu-Onciul writes:

 > Yes, ser will try first to reuse existing connection, but if for example
 > you connect from foo:33001 to ser and then someone sends a message to
 > foo or to foo:5060 ser will not find any match in its open connection
 > list, so it will be forced to open a new one.

exactly this problem is solved by

http://www.ietf.org/internet-drafts/draft-ietf-sip-connect-reuse-00.txt

the trick is that if foo wants subsequent requests from the other party
to arrive at port foo:33001, it adds parameter 'alias' to via header.
when ser then receives the initial request that include 'alias' in the
via header, ser's 

   transport layer creates an alias, such that any requests going to
   the "advertised address" (foo port 5060) are instead sent over
   the existing connection (to the "target" of the alias) which is
   coming from port 33001. 

how difficult it would be to implement this in ser?  we can very easily
add 'alias' parameter to via sent by kphone.

 > Also all tcp connection will be closed (by ser) after some inactivity
 > period (3 min).

the same i-d says:

   This sharing continues as long as the target
   connection stays up.  The SIP community recommends that servers keep
   connections up unless they need to reclaim resources, and that
   clients keep connections up as long as they are needed. Connection
   reuse works best when the client and the server maintain their
   connections for long periods of time.  SIP entities therefore SHOULD
   NOT drop connections on completion of a transaction or termination of
   a dialog.

i.e., it might make sense to have a configurable max number of tcp
connections and then start closing them based on longest inactivity when
the limit is exceeded.

-- juha




More information about the sr-users mailing list