200 likes | 300 Views
SIP over SCTP performance analysis. Gonzalo.Camarillo@ericsson.com Schulzrinne@cs.columbia.edu Raimo.Kantola@hut.fi. Outline. Problem statement: signalling transport Introduction to SCTP SCTP performance analysis SCTP vs UDP SCTP vs TCP. Signalling Transport (SIGTRAN).
E N D
SIP over SCTP performance analysis Gonzalo.Camarillo@ericsson.com Schulzrinne@cs.columbia.edu Raimo.Kantola@hut.fi
Outline • Problem statement: signalling transport • Introduction to SCTP • SCTP performance analysis • SCTP vs UDP • SCTP vs TCP
Signalling Transport (SIGTRAN) • Providers want to transport telephony signalling over IP • IP trunking • Let us try to use existing transport protocols PSTN IP PSTN SG SG SG: Signalling Gateway
Traditional transports: UDP and TCP • UDP (User Datagram Protocol) • Unreliable transfer of datagrams • Demultiplexing based on port numbers • Checksum • Example: RTP • TCP (Transmission Control Protocol) • Reliable transfer of streams of bytes • Congestion control: network friendly • Example: HTTP, FTP, Telnet
TCP limitations • Carry every SS7 call on top of a TCP session • Every SS7 call is affected by the TCP three-way handshake • Multiple SS7 calls on top of a single TCP session • TCP provides a stream service: Head of the line blocking problem
UDP limitations • Use UDP and application level retransmissions • No flow control: Congestion • Large amount of state information in the application • In a slightly different context, this solution was adopted by SIP
Stream Control Transmission Protocol (SCTP) • SIGTRAN is chartered to develop a transport protocol that fulfils signalling transport requirements • October 2000; RFC 2960: Stream Control Transmission Protocol • A connection in SCTP terminology is an “association” • Four-way handshake (avoids DoS attacks) SCTP TCP
Stream Control Transmission Protocol (SCTP) • SCTP allows multihoming • A receiver can be reachable at multiple IP addresses • Robustness rather than load balancing • SCTP is a message-based protocol • Easier parsing • No need of application specific boundaries
Stream Control Transmission Protocol (SCTP) • SCTP allows multiple streams within an association • Flow control performed on association basis (TSN) • Delivery performed on stream basis (no head of the line blocking) STREAM 0 TSN:Transmission Sequence Number
Stream Control Transmission Protocol (SCTP) • SCTP uses TCP SACK congestion and flow control mechanisms (per association) • Slow start, congestion avoidance, fast retransmit, fast recovery • SCTP provides two services (per stream) • Ordered message delivery • Unordered message delivery • It also provides unordered messages within an ordered stream
SIP over SCTP • Two ways of transporting SIP over SCTP • Send all SIP requests and responses over a single unordered SCTP stream. • Send requests and responses belonging to the same SIP transaction over the same SCTP stream. • Stream ID can be used as a lightweight transaction identifier instead of the Call-ID, From, To, Via and Cseq header fields • Server side: Incoming ACKs (non-2xx) and CANCELs • Client side: Incoming responses
Simulations: SCTP performance analysis We implemented SCTP in the network simulator (ns) We only analyzed the SIP hop-by-hop handshake (INVITE-100 Trying) 15 ms 15 ms 15 ms
SCTP vs. UDP Fast retransmit detects losses much faster than UDP-based timeouts UDP lacks congestion control Delay (ms) Time a packet is generated (ms)
SCTP transport layer fragmentation • Every fragment a different TSN • Begin and End bits are used for reassembling • Once an SCTP packet is sent it cannot be re-fragmented again • Sudden changes in the path MTU trigger IP fragmentation • Problems with NATs and firewalls SCTP DATA chunk TSN = 1 10 TSN = 2 00 TSN = 3 01
SCTP and TCP window-based congestion control • Congestion window (cwnd) limits the data rate at the sender • Slow start: exponential growth of cwnd • Congestion avoidance: linear growth of cwnd • When the data rate at the sender is limited by the application rather than by cwnd, the congestion window grows dramatically • Bursts of traffic produce heavy congestion
Head Of the Line (HOL) blocking Comparison between ordered SCTP (which behaves like TCP SACK) and unordered SCTP Time a packet is received (ms) Time a packet is generated (ms)
15 ms 15 ms 15 ms Measuring HOL: buffer limited router
15 ms 15 ms 15 ms Measuring HOL: induced packet loss
15 ms 15 ms 15 ms Measuring HOL: competing traffic
Conclusions • UDP is not a suitable protocol for proxy to proxy communications • SCTP offers some advantages over TCP • Protection against DoS attacks • Multihoming • Message based • Lightweight transaction identifiers • HOL avoidance • Supposedly the biggest advantage of SCTP • Only significant gain when anyway the delay is unacceptable • SCTP has some limitations • Transport layer fragmentation • Window-based congestion control