[asterisk-users] Microsoft Office Communications Server
Philipp von Klitzing
klitzing at pool.informatik.rwth-aachen.de
Mon Mar 10 20:29:38 CDT 2008
Hi!
> What is the logic of them using SIP over TCP? Is this a broad industry
> trend? Or just the latest attempt to get around SIP/NAT issues?
I remember a quote of Henning Schulzrinne where he states that having
designed SIP with UDP in mind was the biggest mistake he (and Mark
Handle?) were to be found guilty of. I am not sure if this is what's
driving Microsoft's decisions, my guess is that this is/was mostly driven
by security reasons (and the new focus of Microsoft on security aspects).
Cheers, Philipp
* Taken from http://www.faqs.org/rfcs/rfc4168.html:
3.1. Advantages over UDP
All the advantages that SCTP has over UDP regarding SIP transport are
also shared by TCP. Below, there is a list of the general advantages
that a connection-oriented transport protocol such as TCP or SCTP has
over a connection-less transport protocol such as UDP.
Fast Retransmit: SCTP can quickly determine the loss of a packet,
because of its usage of SACK and a mechanism that sends SACK
messages faster than normal when losses are detected. The result
is that losses of SIP messages can be detected much faster than
when SIP is run over UDP (detection will take at least 500 ms, if
not more). Note that TCP SACK exists as well, and TCP also has a
fast retransmit option. Over an existing connection, this results
in faster call setup times under conditions of packet loss, which
is very desirable. This is probably the most significant
advantage of SCTP for SIP transport.
Congestion Control: SCTP maintains congestion control over the entire
association. For SIP, this means that the aggregate rate of
messages between two entities can be controlled. When SIP is run
over TCP, the same advantages are afforded. However, when run
over UDP, SIP provides less effective congestion control. This is
because congestion state (measured in terms of the UDP retransmit
interval) is computed on a transaction-by-transaction basis,
rather than across all transactions. Thus, congestion control
performance is similar to opening N parallel TCP connections, as
opposed to sending N messages over one TCP connection.
Transport-Layer Fragmentation: SCTP and TCP provide transport-layer
fragmentation. If a SIP message is larger than the MTU size, it
is fragmented at the transport layer. When UDP is used,
fragmentation occurs at the IP layer. IP fragmentation increases
the likelihood of having packet losses and makes NAT and firewall
traversal difficult, if not impossible. This feature will become
important if the size of SIP messages grows dramatically.
* Quote from http://tools.ietf.org/html/draft-jennings-sip-dtls-01:
There has been considerable discussion of why SIP needs DTLS when we
have TLS. This is the wrong question. The right question is why SIP
has UDP and TCP (not to mention SCTP). There are two reasons for
believing that UDP is likely to be an important protocol in SIP for
the foreseeable future.
o In theory, there is no problem building systems that terminate a
million TCP connections on a single host. In practice, the common
operating systems used for building SIP aggregation devices make
this impossible. To date, no one has demonstrated terminating
over 100k SIP TCP connections to a single host. Doing that many
connections with UDP has not been difficult.
o If we want to talk about "running code" for SIP, it's UDP. Unless
UDP is deprecated for SIP, it is important to provide a reasonable
level of security for it.
More information about the asterisk-users
mailing list