Presentation is loading. Please wait.

Presentation is loading. Please wait.

Stream Control Transmission Protocol (SCTP) Acknowledgements Prof. Paul Amer Randall Stewart ~ Philip Conrad ~ Janardhan Iyengar CISC 856: TCP/IP and Upper.

Similar presentations


Presentation on theme: "Stream Control Transmission Protocol (SCTP) Acknowledgements Prof. Paul Amer Randall Stewart ~ Philip Conrad ~ Janardhan Iyengar CISC 856: TCP/IP and Upper."— Presentation transcript:

1 Stream Control Transmission Protocol (SCTP) Acknowledgements Prof. Paul Amer Randall Stewart ~ Philip Conrad ~ Janardhan Iyengar CISC 856: TCP/IP and Upper Layer Protocols Presented By : Nikhil Shirude November 15, 2007

2 Overview Motivation for SCTP SCTP PDU and Chunk Format SCTP 4-Way Association SCTP Association Shutdown SCTP Multi-Homing Summary

3 Primary Motivation – Transportation of telephony signaling messages over IP networks Telephony Signaling – rigid timing & reliability requirements TCP Limitations  head-of-line blocking  does not preserve A-PDU boundaries  no support for multi-homing  vulnerable to SYN Flooding attacks SCTP Features  4 way handshake  multihoming  multistreaming  framing SCTP Motivation

4 SCTP Overview Services/FeaturesSCTPTCPUDP Connection-oriented yes no Full duplex yes Reliable data transfer yes no Partial-reliable data transfer proposed no Flow control yes no TCP-friendly congestion control yes no ECN capable yes no Ordered data delivery yes no Unordered data delivery yesnoyes Uses selective ACKs yesoptionalno Path MTU discovery yes no Application PDU fragmentation yes no Application PDU bundling yes no Preserves application PDU boundaries yesnoyes Multistreaming yesno Multihoming yesno Protection against SYN flooding attack yesnon/a Allows half-closed connections noyesn/a Reachability check yes no Pseudo-header for checksum no (uses vtags)yes Time wait state for vtagsfor 4-tuplen/a

5 SCTP PDU Format Source Port Destination Port Verification Tag Checksum Chunk 1 … Chunk N Common Header Building blocks of an SCTP PDU –Common Header which occupies the first 12 bytes –Header has a CRC-32 checksum. –Chunks are of two types: Control chunks and Data chunks Chunks SCTP PDU

6 SCTP Chunk Format TypeFlagLength Chunk Information (Multiple of 4 bytes)  Type - Data, Init, SACK, Cookie Echo, HeartBeat …  Flag - Bit meanings depend on type  Length - Defines total size of the chunk including type, flags, length and data/parameters

7 Some SCTP Chunk Types 0x00DATAUser data 0x01INIT~ SYN 0x02INIT-ACK 0x03SACKSelective ACK 0x04HEARTBEAT Keep-alive message 0x05HEARTBEAT-ACK 0x07SHUTDOWN~FIN 0x08SHUTDOWN-ACK Type SCTPTCP

8 SCTP Feature Summary What TCP and SCTP both have: reliability (retransmissions) congestion control connection oriented SCTP adds the following : 4-way handshake to reduce vulnerability to Denial of Service attacks multihoming instead of one IP address per endpoint a set of IP addresses per endpoint framing preserve message boundaries multistreaming instead of one ordered stream, up to 64K independent ordered streams

9 closed listen t=0 SYN SYN sent data 1RTT ACK established First - TCP Connection Establishment established SYN-ACK SYN recd (TCB created)

10 Security: TCP Flooding Attack (victim) TCP-based web server flooded!! spoofed SYN’s SYN SYN SYN Internet process SYN TCB = Transport Control Block (attackers) TCB SYN TCB SYN TCB SYN

11 The SCTP Way: 4-way handshake limits attack spoofed INIT’s INIT INIT INIT Internet process INIT (victim) SCTP-based web server (attackers) INIT-ACK INIT-ACK INIT-ACK No reserved resources No flooding!!

12 V: Verification tag I : Initiate tag 1RTT INIT–ACK (V=TagA) (I=TagB)( StateCookie ) closed t=0 INIT (V=0) (I=TagA) cookie wait COOKIE–ECHO (V=TagB) ( StateCookie ) cookie echoed data (V=TagB) established 2RTT COOKIE–ACK (V=TagA) estab’d SCTP: Four-way Association Setup

13  Information from original INIT  Information from current INIT-ACK  Timestamp  Life span of cookie (Time to Live)  Signature for authentication (MD5) What does a Cookie contain?

14 SCTP Association Graceful Shutdown DATA SACK SHUTDOWN Upper layer invokes SHUTDOWN shutdown_pending shutdown_sent estbl’d stop accepting data

15 shutdown_pending shutdown_sent shutdown_received stop accepting data shutdown_ack_sent closed (delete TCB) SHUTDOWN_ACK SHUTDOWN + SACK SHUTDOWN DATA SHUTDOWN_COMPLETE closed (delete TCB)

16 SCTP Feature Summary What TCP and SCTP both have: reliability (retransmissions) congestion control connection oriented SCTP adds the following : 4-way handshake to reduce vulnerability to Denial of Service attacks multihoming instead of one IP address per endpoint a set of IP addresses per endpoint framing preserve message boundaries multistreaming instead of one ordered stream, up to 64K independent ordered streams

17 ... Application SCTP IP... port IP addresses Link Physical 132 (IANA) Multi-Homing Multi-Homing: Technique to improve reachability of hosts which are reachable on more than 1 destinations (interfaces)

18 18 Traditional “Uni” homing Web server client Internet B transport connection A points of failure

19 19 Traditional “Multi” homing (TCP) Web server client Internet B2B2 A2A2 B1B1 transport connection points of failure A1A1 In TCP, host choose 1 of 4 possible combinations: (A1,B1) or (A1,B2) or (A2,B1) or (A2, B2)

20 20 Innovative “Multi” homing in SCTP Web server client Internet transport “association” B2B2 A2A2 A1A1 SCTP Multihoming Hosts use one association ({A 1,A 2 }, {B 1,B 2 }) New data sent to one primary destination - Let B1 be the web server’s primary destination - Let A1 be the client’s primary destination Path status and destination reachability constantly monitored. B1B1

21 single-homed SCTP endpoint A1 Host A IP= endpoint=[ : 100] B2 multi-homed SCTP endpoint B3B1 Host B IP1= IP2= IP3= endpoint=[ , , : 200] B2B3B1 Host B association={ [ : 100] : [ , , : 200] } SCTP association application SCTP 100 application SCTP 200 A1 Host A IP= application SCTP 100 SCTP 200 application IP1= IP2= IP3= Multi-homing Association

22 TCP data transfer without loss A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application sent by application data data to be sent

23 TCP data transfer with loss A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application data to be sent data retransmission loss data sent from application

24 TCP data transfer with single path failure A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application data to be sent sent by application data connection fails! data

25 SCTP data transfer without loss A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application data to be sent sent by application data

26 SCTP data transfer with loss A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application data to be sent data retransmission 2 loss data sent from application

27 231 SCTP data transfer with single path failure A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application data to be sent sent by application data retransmission data

28 Multihoming Example 1.Laptop connected via Ethernet and Wireless. 2.Both the interfaces are reachable by the peer. 3.Ethernet gets disconnected, transmission of data fails. 4.Failure detected, SCTP uses the wireless interface to transmit. 5.HEARTBEAT is received. 6.Ethernet link is restored. Client Host (SCTP) Server Host (SCTP) A1 A2 B1 B2 Internet Ethernet New Transmission Path Heartbeat received

29 primary alternates DATA Host A monitors reachability of primary dest address of Host B SCTP Failure Detection Host A starts the retransmission timer If timer expires increment error_count If error_count > threshold path = inactive If Host A receives SACK before timer expires error_count = 0 & path = active SACK A1 Host A application SCTP 100 B2B3B1 Host B application SCTP 200 error_count --> variable associated with each destination address of a host. (initially zero)

30 Host A monitors reachability of idle destination addresses of Host B HEARTBEAT is sent periodically to each idle address When a HEARTBEAT is sent increment error_count If error_count > threshold path = inactive If Host A receives a HEARTBEAT-ACK error_count = 0 & path = active When primary dest. address is detected unreachable => SCTP sender chooses REACHABLE, alternate dest. address as primary primary alternates HEARTBEAT HEARTBEAT-ACK A1 Host A application SCTP 100 B2B3B1 Host B application SCTP 200

31 HEARTBEAT? HEARTBEAT is a chunk that an endpoint sends to its peer endpoints to probe the reachability of a particular destination transport address. In our case, the HEARTBEAT is sent to a destination address which has been idle for a long time to check for its reachability. HEARTBEAT ACK is a chunk which an endpoint sends to its peer endpoints as a response to a HEARBEAT chunk.

32 32 Summary of SCTP SCTP used for applications which require data reliability and rigid timing. SCTP provides security against DOS attacks by using cookies during association SCTP association can bind multiple IP addresses at each endpoint SCTP provides multi-homing for applications that require high degree of fault tolerance.

33 33 Reference Material Textbooks Stream Control Transmission Protocol (SCTP) Randall Stewart, Qiaobing Xie, Addison Wesley, 2002 TCP/IP Protocol Suite – Chapter 13 Behrouz Forouzan RFC’s RFC Stream Control Transmission Protocol RFC An Introduction to SCTP RFC SCTP Specification Errata and Issues

34 Thank You!!!!


Download ppt "Stream Control Transmission Protocol (SCTP) Acknowledgements Prof. Paul Amer Randall Stewart ~ Philip Conrad ~ Janardhan Iyengar CISC 856: TCP/IP and Upper."

Similar presentations


Ads by Google