Outline SCTP Stream Control Transmission Protocol NGN and Motivation for SCTP Protocol Overview Packet format Protection against SYN Flooding Multistreaming Multihoming Research Activities at Kau Summary Seminar Details 2009-0326 Network Convergence Traditionally, telecommunication and data communication networks have been separate entities Trend for voice, video, and data to converge into single IP-based infrastructure (i.e. NGN) VoIP step in this direction Drivers of VoIP: Less costly equipment, less regulated, better efficiency, ease of deployment, enhanced services Inhibitors of VoIP: immature technology, lack of standards, QoS (reliability/availability) Need for seamless interoperation of VoIP with traditional PSTN Switch PSTN/ISDN Gatekeeper/ Proxy Server Application Server H.323/SIP SG IB AAA API RADIUS (PARLAY/LDAP) ISUP SIP Н.323/ IP Network NGN Softswitch SIP/SIP-T H.323/BICC MGCP/Megaco/H.248 Core IP Network MGC SNMP Network Manager Softswitch SG ISUP/MTP Switch PSTN/ISDN Mobile Networks/ IMS 1
The Telephone Network Performance Requirements Signaling System no. 7 () Control Layer Transport Layer A given route set should not be out of service for more than 10 minutes per year (99.9998% uptime) No more than 1x10-7 messages should be lost No more than 1x10-10 messages should be delivered out of sequence Numerous timing requirements must be met How to make sure that IP networks can support the performance requirements of? Circuit Switched Network Switch How do we solve the problem? PSTN/ISDN Gatekeeper/ Proxy Server Application Server H.323/SIP IB AAA API RADIUS (PARLAY/LDAP) ISUP SG SIP Softswitch SIP/SIP-T H.323/BICC MGCP/Megaco/H.248 Core IP Network MGC SNMP Network Manager Softswitch SG ISUP/MTP Switch PSTN/ISDN Mobile Networks/ IMS SCP PSTN Local Exchange TDM MGCP/MEGACO Signaling Controller RTP/IP IP Network RTP/IP Controller Н.323/ IP Network 2
SCTP? IPSEP Signaling SEP Applications (e.g Webbrowsers, mail clients, ) ULP M3UA SCTP IP M3UA SCTP IP NIF MTP-L3 MTP-L2 MTP-L1 ULP MTP-L3 MTP-L2 MTP-L1 TCP UDP SCTP IP Physical IP SCTP: Motivation TCP and UDP unsuitable for signaling Can not be used, considering the previously mentioned requirements SCTP: Like TCP, it provides reliable, full-duplex connections Solves the following TCP issues: Head-of-line blocking can occur Application layer framing is required for messages Singlehomed hosts only Vulnerability to SYN flooding attacks SCTP TCP + A number of features SCTP Standardization Stream Control Transmission Protocol (RFC 2960), October 2000 SCTP Partial Reliability Extension (RFC 3758), May 2004 SCTP Padding Chunk Extension (4820), March 2007 SCTP AUTH Extension (RFC 4895), August 2007 SCTP DAR Extension (RFC 5061), September 2007 Stream Control Transmission Protocol (RFC 4960), September 2007 Sockets API Extensions for SCTP, (internet-draft), latest version from March 2010 3
SCTP: Services and Features Services/Features SCTP TCP UDP Full-duplex data transmission yes yes yes Connection-oriented yes yes no Reliable data transfer yes yes no Partially reliable data transfer yes no no Ordered data delivery yes yes no Flow and Congestion Control yes yes no Selective acks yes yes no PMTUD yes yes no Application data fragmentation yes yes no Preservation of message boundaries yes no yes Protection agains SYN flooding attacks yes no n/a Unordered data delivery yes no yes Multistreaming yes no no Multihoming yes no no Why Messages? TCP applications often transmit large byte streams (bulk transfers) SCTP signaling applications transmit small independent units of data Packet Formats SCTP Chunks TCP Chunk Data Chunk Data Chunk Type Flags Length Value N 2 1 1 Type Used to distinguish data chunks and different types of control chunks Flags Usage depends on Chunk type Length Required because chunks have a variable length Value Payload field SCTP 4
Chunk Type Flags Length Value N 2 1 1 Chunk Types 0 Payload Data 1 Initiation 2 Initiation Acknowledgement 3 Selective Acknowledgement 4 Heartbeat Request 5 Heartbeat Acknowledgement 6 Abort 7 Shutdown 8 Shutdown Acknowledgement 9 Operation Error 10 State Cookie 11 Cookie Acknowledgement 12 Reserved for Explicit Congestion Notification Echo 13 Reserved for Congestion Window Reduced 14 Shutdown Complete SCTP Data Chunk Type = 0 Reserv. U B E Length Transmission Sequence Number (TSN) Stream Identifier S Stream Sequence Number N Payload Protocol Identifier User Data (seq. n of Stream S) 15 Authentication chunk 128 Address Configuration Change Acknowledgement 132 SCTP packet padding 192 Forward Cumulative TSN 193 Address Configuration Change SCTP: Services and Features Services/Features SCTP TCP UDP Full-duplex data transmission yes yes yes Connection-oriented yes yes no Reliable data transfer yes yes no Partially reliable data transfer yes no no Ordered data delivery yes yes no Flow and Congestion Control yes yes no Selective acks yes yes no PMTUD yes yes no Application data fragmentation yes yes no Preservation of message boundaries yes no yes Protection against SYN flooding attack yes no n/a Unordered data delivery yes no yes Multistreaming yes no no Multihoming yes no no SYN Flooding? client server SYN SYN, ACK ACK Resource Allocation 5
SCTP Association Establishment SCTP: Services and Features client INIT INIT-ACK COOKIE-ECHO COOKIE-ACK server Resource Allocation Services/Features SCTP TCP UDP Full-duplex data transmission yes yes yes Connection-oriented yes yes no Reliable data transfer yes yes no Partially reliable data transfer yes no no Ordered data delivery yes yes no Flow and Congestion Control yes yes no Selective acks yes yes no PMTUD yes yes no Application data fragmentation yes yes no Preservation of message boundaries yes no yes Protection agains SYN flooding attack yes no n/a Multistreaming yes no no Unordered data delivery yes no yes Multihoming yes no no Why Streams and Unordered Delivery? Multistreaming Stream: unidirectional data flow within an SCTP association Within streams: Stream Sequence Number (SSN) Between streams no data order preserved Multistreaming 6
Unordered Delivery SCTP: Services and Features Services/Features SCTP TCP UDP Full-duplex data transmission yes yes yes Connection-oriented yes yes no Reliable data transfer yes yes no Partially reliable data transfer yes no no Ordered data delivery yes yes no Flow and Congestion Control yes yes no Selective acks yes yes no PMTUD yes yes no Application data fragmentation yes yes no Preservation of message boundaries yes no yes Protection agains SYN flooding attack yes no n/a Unordered data delivery yes no yes Multistreaming yes no no Multihoming yes no no Why Multihoming? Redundancy through Multihoming Allows use of multiple IP addresses at each endpoint for a single association Originally for redundancy purposes only Sender If 1 If 2 Primary path Internet Alternate/backup path If 1 If 2 Receiver Primary destination address Normally used for the transmission of new packets Secondary destination address considered as a backup destination periodically monitored with the transmission of probe packets (heartbeats) Secondary destination address used to retransmit lost packets transmit new packets if the primary interface fails number of consecutive timeouts exceeds an established threshold 7
Multihoming/Failover Dynamic Address Reconfiguration Sender Timeout!! Internet Receiver Adding or deleting IP addresses from the existing SCTP association Changing primary IP address for SCTP association Intended for hot pluggable interfaces and renumbering Can also be used for transport layer mobility Location Manager Old Access Router Packet Correspondent sent to Node old path New / Retransmitte Internet d packets New Access Router Old BS New BS Mobile Host SCTP Research at KaU SCTP multihoming Failover performance: protocol tuning, vs. Relaxed timer backoff proposed to improve performance Using SCTP for transport layer mobility Improved start-up on alternate path SCTP performance for single-homed associations Impact of head-of-line blocking Timely loss recovery Use of partially reliable service for syslog traffic SCTP as a basis for secure applications Dynamic encryption service Data protection based on physical separation E2E security in SCTP: S²SCTP Summary SCTP is a, relatively new, transport protocol Motivated by the need for IP-based telephony signaling transport It differs from TCP in that it is capable of: Avoiding head-of-line blocking Transfer messages Multihoming Surviving SYN flooding attacks SCTP is quite flexible, partly due to the packet structure, and can therefore be modified for other purposes e.g. load-balancing, mobility 8
Seminar Wednesday 100414, 09:15 (21E 309) Answer a quiz about SCTP Discussion about SCTP Related independent study topics Seminar Mandatory reading SCTP: state of the art in research, products, and technical challenges Shaojian Fu; Atiquzzaman, M.;Communications Magazine, IEEE, Volume: 42, Issue: 4, Apr 2004, Pages: 64-76 Evaluation of transport protocols for the session initiation protocol Camarillo, G.; Kantola, R.; Schulzrinne, H.;Network, IEEE, Volume: 17, Issue: 5, Sept.-Oct. 2003, Pages:40-46 On the use of SCTP in failover-scenarios Jungmaier, A.; Rathgeb, E. P.; Tüxen, M., In Proc. of the 6th World Multiconference on Systemics, Cybernetics and Informatics, Jul. 14-18, 2002, Orlando, Florida Study questions at the course website http://www.cs.kau.se/cs/education/courses/dvad02/p2/ Further Reading SCTP for Beginners (Recommended) http://tdrwww.exp-math.uni-essen.de/inhalt/forschung/sctp_fb/index.html Introduction to SCTP http://tools.ietf.org/html/rfc3286 The SCTP RFC (4960) http://www.ietf.org/rfc/rfc4960.txt SCTP Multihoming Material at the course website 9