SCTP Stream Control Transmission Protocol François Buntschu Ecole d Ingénieurs et d Architectes de Fribourg HES-SO SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 1 / 32
Agenda Introduction Protocol specifications Measurements Use of SCTP Conclusions SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 2 / 32
Introduction TCP is the main transport protocol in the Internet protocol suite Original TCP performed poorly in the following topics: Redondancy Security Transport of small messages IETF developing SCTP for PSTN signaling over IP SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 3 / 32
Introduction (con t) SCTP = Stream Control Transmission Protocol Transport Protocol (Layer 4 of the OSI Model), transparent to IPv4 or IPv6 SIGTRAN Working Group (IETF) Since October 2000: RFC 2960 Actors : Cisco, IBM, Motorola, UNI Essen, Siemens, Sun Microsystems, Layer 5-7 FTP, Telnet, Layer 4 TCP, UDP, SCTP Layer 3 IP Layer 2 Ethernet, IEE802.2/802.3 Layer 1 SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 4 / 32
Protocol Specifications SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 5 / 32
Key features Works in client / server mode, creation of so called «associations» Reliable: Retransmission of lost packets, acknowledgment of packets Non-duplicated service: uses sequence numbers Data transmission in ordered and non-ordered mode Multistreaming : multiple data stream per association Multihoming : multiple addresses per host Grouping of Data Chunks within the same datagram Selective Acknowledgment Increased security IP Network SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 6 / 32
SCTP Association SCTP Node A SCTP Node B Appl. 1 Appl. 2 Appl. 1 SCTP Transport Service Port 1 Port 2 IP Network Service @IP1 @IP2 @IP3 NIC1 NIC2 NIC3 Port 1 SCTP Transport Service @IP1 NIC1 IP Network Service @IP2 NIC2 IP Network SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 7 / 32
Frame format 0 Payload Data (DATA) 1 Initiation (INIT) 2 Initiation Acknowledgement (INIT ACK) 3 Selective Acknowledgement (SACK) 7 Shutdown (SHUTDOWN) 8 Shutdown Acknowledgement (SHUTDOWN ACK) 10 State Cookie (COOKIE ECHO) 11 Cookie Acknowledgement (COOKIE ACK)... Chunk type Chunk type 32 bits Chunk flags Chunk Data Chunk flags Chunk Data Chunk length Chunk length Chunk 1 Chunk 2 Chunk type Chunk flags Chunk Data Chunk length Chunk n 32 bits Source port number Destination port number Verification Tag CRC-32c checksum SCTP Packet Header Data >= 20 octets IPv4 or IPv6 Packet Header Data SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 8 / 32
Streams One association could transport multiple streams Data are transported within Data Chunk Data Chunks could be ordered or non-ordered Advantages : Only one SCTP port number used per association Multiple stream per association of different kind of data Grouping of small messages into one packet (multistreaming) IP Network SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 9 / 32
Multistreaming Data Chunks are grouped within a datagram in order to reach the Maximum Transmission Unit (MTU) Advantage : better use of the bandwith Data to transmit DATA Chunk 16 bytes SCTP 12 bytes TCP 20 bytes max ~ 1500 bytes IP 20 bytes TCP Ethernet 26 bytes SCTP SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 10 / 32
Multihoming Multiple IP addresses per host per association One application could use at the same time more than one network connection Advantage : reliability, redundancy, performance IP Network 1 IP Network 2 SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 11 / 32
Selective Acknowledgment Acknowledgment of Data Chunks received out of order Data transmitted in non-ordered mode are also acknowledged Duplicated Data chunks are also announced Advantage : avoid head-of-line blocking (HOL), only corrupted data are retransmitted IP Network SACK...... SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 12 / 32
Increased security Establishment phase in 4 steps Concept of cookie Advantage : avoid SYN attack (Denial of Service) by delegating the saving of the resources to the network Cookie Parameters INIT INIT-ACK............. COOKIE-ECHO COOKIE-ACK ESTABLISHED ESTABLISHED DATA SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 13 / 32
Congestion Control Similar to TCP congestion control Enables seamless introduction of SCTP into IP networks SCTP is rate adaptive similar to TCP Slow start, Congestion Avoidance, Fast Retransmit SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 14 / 32
Measurements SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 15 / 32
Test platform at EIA-FR Functionalities measurements Performance measurements Real network simulation delay loss/duplication of packets 2 Linux terminals 2 FreeBSD terminals 2 network emulator: NISTNet 2 LAN switches: Cisco 2950 4 Network analyzer: Agilent Analyzer (time synchronized) Agilent Advisor SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 16 / 32
Developped software Allows SCTP transmission between client and server Most parameters are configurable (data size, amount of streams, ordered and non-ordered mode, ) Automatic bandwidth measurement Deliver a transmission report Use a SCTP Daemon to access the IP layer Daemon SCTP Application UDP IP SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 17 / 32
Measurement results 4 steps, 3 steps Parameters exchange Measure Establishment closing Data exchange Selective Acknowledgment Multihoming Results Performance increase due to the data concatenation of DATA Chunks Performance increase due to the retransmission of the corrupted Redondancy Data when Chunks the only primary path is out of order Performance comparison with TCP/UDP Daemon version SCTP : 9-12 Mbps TCP : 25 Mbps SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 18 / 32
Theoretical throughput 100.0 90.0 80.0 70.0 Débit [Mb/s] 60.0 50.0 40.0 30.0 20.0 10.0 0.0 50 100 150 200 250 300 350 400 450 500 550 600 Taille des données (D) [bytes] 650 700 750 800 850 900 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 V D (1) = 2.8 MB V D (2) = 28 KB SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 19 / 32 TCP (1) UDP (1) SCTP (1) TCP (2) UDP (2) SCTP (2)
Theoretical efficiency 100.0 90.0 80.0 70.0 Rendement [%] 60.0 50.0 40.0 30.0 20.0 10.0 0.0 50 100 150 200 250 300 350 400 450 500 550 600 Taille des données (D) [bytes] 650 700 750 800 850 900 950 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 20 / 32 SCTP TCP UDP
Measured throughput 100000 100.00% 90000 90.00% 80000 80.00% 70000 70.00% Débit [kb/s] 60000 50000 40000 merlin AN-1 AN-2 L 1 L 2 NI-1 morgan 60.00% 50.00% 40.00% Rendement [%] 30000 perceval NI-2 camelot 20000 10000 0 100 200 500 800 1000 1400 1470 30.00% L 3 L 4 AD-1 AD-2 20.00% 10.00% 0.00% Débit SCTP Débit TCP Débit UDP Rendement SCTP Rendement TCP Rendement UDP Data Size [bytes] SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 21 / 32
Multihoming and errors 14 12 Chunk type on L3 Chunk type on L1 AN-1 AN-2 L 1 L 2 merlin NI-1 morgan perceval NI-2 camelot 10 L 3 L 4 AD-1 AD-2 8 6 A 4 2 C C 0 23.852 24.153 24.554 24.955 25.356 26.257 28.358 30.005 30.810 32.563 32.865 33.266 33.667 34.969 35.270 35.671 36.972 37.274 37.678 38.080 38.481 38.882 39.283 39.684 40.585 42.686 42.987 43.389 43.790 44.191 44.596 44.997 45.398 46.699 47.000 47.402 47.803 48.204 49.104 49.305 49.706 50.107 50.512 51.413 51.614 53.514 57.615 57.917 58.318 58.719 59.120 Chunk Type # B D C C C C C C C Relative Time [s] SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 22 / 32
Use of SCTP SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 23 / 32
Existing commercial platform Cisco: ITP (IP Transfer Point) http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t8/ft_sctp2.pdf Adax: APS-SCTP/T http://www.adax.com/aps_sctp.html Compaq: Compaq Tru63 UNIX Alpha http://www.compaq.com/products/software/in7/spd_sctp.pdf Siemens: SURPASS his (Signaling Transfer Point and Signaling Gateway) SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 24 / 32
Existing free implementation Essen University Siemens http://www.sctp.de/sctp.html Linux Kernel SCTP (lksctp project) http://sourceforge.net/projects/lksctp KAME Project http://www.kame.net/ OpenSS7 http://www.openss7.org/ SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 25 / 32
Use of SCTP example 1 SG SS7 SG SCTP MG + MGC IP network MG + MGC MGCP Media Gateway Control Protocol MG Media Gateway MGC Media gateway controller SG Signalling Gateway SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 26 / 32
Use of SCTP example 2 Latest changes to SCTP new RFCs: draft-ahmed-lssctp-00.txt (load sharing), RFC 3436 (TLS over SCTP), draft-sjkoh-sctp-mobility-02.txt (IP Mobility support for SCTP), web server (Apache) + web browser (Mozilla) using SCTP IP network Apache SCTP+TCP Mozilla + FTPClient SCTP WU-FTP SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 27 / 32
Conclusions SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 28 / 32
Conclusions Positive characteristics of TCP are included in SCTP and negative characteristics (or weakness) of TCP have been removed or redesigned Future for this protocol SS7 migration to IP network Use of SCTP for streaming applications (audio and video) Use of SCTP for web applications (HTTP, FTP, RealPlayer, ) Will be a major actor in the Internet in the future!! SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 29 / 32
Conclusions (con t) F.Buntschu wrote: And my latest question is concerning the future of SCTP, do you think this protocol will be a major actor on internet with TCP and UDP? Some constructor like Cisco use this protocol for ITP, but do you know if there is emerging software/application using SCTP? Randall Stewart s answer (Author of the RFC 2960): Yes, but like anything it takes time to migrate. The UNIX Network Programming 3rd edition will have a lot of coverage of SCTP. This will help.. also I think as slowly apps are pushed out (such as netflow, IUA and others) and SCTP gets more support.. so will follow applications that use it.. But it will be some time yet I am afraid.. SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 30 / 32
Thanks for your attention! francois.buntschu@eif.ch HES-SO / EIA-FR SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 31 / 32
Further informations Further information François Buntschu (+41 26 429 65 79) francois.buntschu@eif.ch These slidea are available at www.eif.ch/~buntschu SCTP Stream Control Transmission Protocol EIA-FR, F.Buntschu August 2003 32 / 32