[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