STREAM CONTROL TRANSMISSION PROTOCOL (SCTP)

Slides:



Advertisements
Similar presentations
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Advertisements

1 SCTP Tutorial, Ottawa 7/2004 © 2004 Randall Stewart (Cisco Systems), Phill Conrad (University of Delaware). All rights reserved. DATA Chunk Flag Bits.
SCTP v/s TCP – A Comparison of Transport Protocols for Web Traffic CS740 Project Presentation by N. Gupta, S. Kumar, R. Rajamani.
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transmission Control Protocol (TCP)
SCTP Tutorial Randall Stewart
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Stream Control Transmission Protocol (SCTP)
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
TCP/IP Protocol Suite 1 Chapter 13 Upon completion you will be able to: Stream Control Transmission Protocol Be able to name and understand the services.
Stream Control Transmission Protocol Special thanks to Dr. Paul Amer Presented by – Viren Mahajan November 20, 2007.
UNIT 07 Process – to – Process Delivery: UDP,TCP and SCTP
The Transport Layer How do we ensure that packets get delivered to the process that needs them?
1 SCTP Tutorial, Ottawa 7/2004 © 2004 Randall Stewart (Cisco Systems), Phill Conrad (University of Delaware). All rights reserved. IP Multi-homing The.
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
CPE 401 / 601 Computer Network Systems
1 SCTP Tutorial, Ottawa 7/2004 © 2004 Randall Stewart (Cisco Systems), Phill Conrad (University of Delaware). All rights reserved. Bits, Bytes, and Chunks.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
TCP. Learning objectives Reliable Transport in TCP TCP flow and Congestion Control.
Process-to-Process Delivery:
Gursharan Singh Tatla Transport Layer 16-May
Chapter 16 Stream Control Transmission Protocol (SCTP)
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
1 Transport Layer Computer Networks. 2 Where are we?
Stream Control Transmission Protocol (SCTP) Janardhan Iyengar Protocol Engineering Lab Computer & Information Sciences, University of Delaware.
Adaptive Failover Mechanism Motivation End-to-end connectivity can suffer during net failures Internet path outage detection and recovery is slow (shown.
6.1. Transport Control Protocol (TCP) It is the most widely used transport protocol in the world. Provides reliable end to end connection between two hosts.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
University of the Western Cape Chapter 12: The Transport Layer.
Transport Layer: UDP, TCP
SCTP: Stream Control Transfer Protocol Naveen Kumar Department of Computer and Information Sciences *Some slides have been taken from Prof. Amer.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
31. Mar INF-3190: Transport Layer Transport Layer Foreleser: Carsten Griwodz
Chapter 2 Applications and Layered Architectures Sockets.
4.1.4 multi-homing.
1.0 SIGTRAN protocol. Objectives SIGTRAN application in R4 network SIGTRAN protocol structure and message introduction SIGTRAN signaling flow Upon completion.
Computer Networks23-1 PART 5 Transport Layer. Computer Networks23-2 Position of Transport Layer Responsible for the delivery of a message from one process.
ECE 4110 – Internetwork Programming
Teacher:Quincy Wu Presented by: Ying-Neng Hseih
Stream Control Transmission Protocol
© Jörg Liebeherr (modified by Malathi Veeraraghavan) 1 Overview Formats, Data Transfer, etc. Connection Management.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 16 Stream Control Transmission.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
SCTP (Stream Control Transmission Protocol) Chanmin Park ( 박 찬 민 ) CARES lab.
Ch23 Ameera Almasoud 1 Based on Data Communications and Networking, 4th Edition. by Behrouz A. Forouzan, McGraw-Hill Companies, Inc., 2007.
Chapter 3 Transport Layer
4.1.5 multi-homing.
Chapter 16 Stream Control Transmission Protocol (SCTP)
Transport of (Legacy) Signaling over IP
TCP.
PART 5 Transport Layer Computer Networks.
SCTP v/s TCP – A Comparison of Transport Protocols for Web Traffic
TCP - Part I Karim El Defrawy
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Stream Control Transmission Protocol (SCTP)
Dr. John P. Abraham Professor UTPA
TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Course: CISC 856: TCP/IP and Upper Layer Protocols
Introduction to Computer Networks
Process-to-Process Delivery: UDP, TCP
Transport Layer 9/22/2019.
Presentation transcript:

STREAM CONTROL TRANSMISSION PROTOCOL (SCTP)

SCTP service model connection oriented reliable data transfer - no loss - no duplicates - data integrity ordered / unordered delivery TCP provides only ordered service. If the application desires unordered service, it has the option of using UDP => unreliable SCTP separates data reliability from ordered delivery SCTP can provide unordered service with reliability SCTP can provide ordered service with reliability

SCTP preserves message boundaries TCP is byte-oriented. Applications must add their own record marking to delineate messages. concept of chunks security against SYN flooding attack multi-homing multi-streaming message fragmentation and bundling congestion control

Comparison between SCTP, TCP and UDP Feature SCTP TCP UDP State required at endpoints Yes No Reliable Data Transfer Multi-homed Host Support Multi-Stream Support Security against SYN attacks Unordered Data Delivery Failure detection (Heartbeat)

SCTP PDU format 1 common header + chunks (control or data)

Motivation Many applications need reliable message delivery – they do so by delineating a TCP stream TCP provides both strict-ordering and reliability – many applications may not need both

Motivation (contd) HTTP is one such application While transferring multiple embedded files we only want Reliable file transfer for each file Partial ordering for the packets of each file but not total ordering amongst all the packets TCP provides more than this (but overhead?) SCTP may help (how? – later)

HTTP Server Architecture Multiple File Transfer (Embedded files) - TCP Client Server Request file 0 Fork child Send file 0 Child process Request file 1..N Send file 1,2,…N

HTTP Server Architecture Multiple Files Transfer (Embedded Files) - SCTP Client Server Request file 0 Fork child Send file 0 – stream 0 Child process Request files 1..N Send file 1 – stream 1 Send file N – stream N

Receive buffer in kernel Reason Server Client 3 2 1 3 2 3 2 1 3 2 1 1 File 3 File 2 TCP Send buffer in kernel TCP Receive buffer in kernel

Reason Server Client 3 3 2 2 3 2 1 3 2 1 1 1 File 3 File 2 SCTP Receive buffer in kernel SCTP Receive buffer in kernel

Multi-homing

multi-homing single-homed SCTP endpoint multi-homed SCTP endpoint Host B Host A application application IP1=160.15.82.20 IP2=161.10.8.221 IP3=10.1.61.11 200 100 SCTP SCTP B1 B2 B3 A1 IP=128.33.6.12 endpoint=[128.33.6.12 : 100] endpoint=[160.15.82.20, 161.10.8.221, 10.1.61.11 : 200] SCTP association Host A Host B application application 100 IP1=160.15.82.20 IP2=161.10.8.221 IP3=10.1.61.11 200 SCTP SCTP A1 B1 B2 B3 IP=128.33.6.12 association={ [128.33.6.12 : 100] : [160.15.82.20, 161.10.8.221, 10.1.61.11 : 200] }

X Network Host A Host B 4 possible TCP connections: (A1,B1) or (A1,B2) or (A2,B1) or (A2,B2) 1 SCTP association: ({A1,A2},{B1,B2}) Primary destinations for A & B (e.g., A1 & B1) Network Host A Host B B1 B2 A1 A2 X What happens if a primary fails? TCP connection is broken whereas SCTP association can continue to transmit to an alternate destination address

failure detection Host A monitors reachability of the primary destination address of Host B Host A Host B application application 100 primary 200 alternates SCTP SCTP A1 B1 B2 B3 SACK DATA error_count is a variable associated with each destination address of a host. It is set to zero initially. Host A starts the retransmission timer If timer expires increment error_count If error_count > threshold state = inactive If Host A receives SACK before timer expires error_count = 0 & state = active

Host A monitors reachability of alternate destination addresses of Host B application application 100 primary 200 alternates SCTP SCTP A1 B1 B2 B3 HEARTBEAT HEARTBEAT-ACK HEARTBEAT is sent periodically to each alternate address When a HEARTBEAT is sent increment error_count If error_count > threshold state = inactive If Host A receives a HEARTBEAT-ACK error_count = 0 & state = active When the primary destination address is detected unreachable => SCTP sender chooses 1 of the REACHABLE, alternate destination addresses as primary

association setup How many way handshake ? V: verification tag I: initiation tag Host A Host B closed mandatory - type chunk flags chunk length initiation tag a_rwnd outbound streams maximum inbound streams initial TSN optional - addresses(IPv4,IPv6, hostname) supported address types ECN capable cookie preservative INIT (V=0) (I=TagA) cookie wait closed

SCTP INIT PDU

association setup V: verification tag I: initiation tag Host A Host B closed INIT (V=0) (I=TagA) cookie wait closed INIT-ACK (V=TagA) (I=TagB) mandatory – All fields present in mandatory INIT + state cookie optional - addresses(IPv4,IPv6, hostname) ECN Capable error reporting for unrecognized parameters NO TCB on server-side at this point

association setup V: verification tag I: initiation tag Host A Host B closed INIT (V=0) (I=TagA) type chunk flags chunk length state cookie DATA chunk can be sent along with COOKIE-ECHO cookie wait INIT-ACK (V=TagA) (I=TagB) closed COOKIE-ECHO (V=TagB) cookie echoed Note that now we can send data to mitigate the cost of the 4-way handshake

TCP SYN flooding attack why COOKIE ??? attackers victim Flooded!! 130.2.4.15 128.3.4.5 SYN SYN buffer holding half-open (pending) connections SYN 228.3.14.5 192.10.2.8 SYN SYN SYN 190.13.4.1 SYN 221.3.5.10 SYN TCP SYN flooding attack There is no ACK in response to the SYN-ACK, hence connection remains half-open Other genuine clients cannot open connections to the victim The victim is unable to provide service

how does COOKIE help ? Host B receives INIT Receiver of INIT does not make the Transmission Control Block (TCB) [i.e no pending connection information kept] Remains in CLOSED state In case of attack, COOKIE-ECHO won’t arrive but receiver is unaffected Send INIT_ACK with COOKIE Prepare COOKIE

how does COOKIE help ? Host B receives INIT Send INIT_ACK Prepare with COOKIE Prepare COOKIE Host B receives COOKIE-ECHO invalid Extract & Validate COOKIE Discard SCTP PDU valid yes COOKIE expired ? Send ERROR chunk Sender can request longer cookie life next time through the Cookie - preservative parameter in the INIT chunk no Unpack COOKIE and build association TCB Discard SCTP PDU

association setup V: verification tag I: initiation tag Host A Host B closed INIT (V=0) (I=TagA) type chunk flags chunk length DATA chunk can be sent along with COOKIE-ACK cookie wait INIT-ACK (V=TagA) (I=TagB) closed COOKIE-ECHO (V=TagB) cookie echoed COOKIE-ACK (V=TagA) Note that now we can send data to mitigate the cost of the 4-way handshake 4 – way handshake ! established established

association shutdown Host A Host B upper layer invokes SHUTDOWN established established DATA DATA shutdown_pending SACK SHUTDOWN shutdown_sent

stop accepting data SHUTDOWN DATA shutdown_sent shutdown_received SHUTDOWN+ SACK SHUTDOWN_ACK shutdown_ack_sent SHUTDOWN_COMPLETE delete TCB closed delete TCB closed

when should a SACK be sent ? Host A Host B DATA (TSN 1) Endpoint sends DATA to its peer, always bundle a SACK chunk to ack any new DATA chunks SACK 1 + DATA DATA (TSN 2) If no DATA to be sent to the peer, then SACK is DELAYED Delay – 200 to 500 ms 200 ms SACK 2 DATA (TSN 2) Duplicate data chunks => immediately send SACK without any delay SACK 2

when should a SACK be sent ? Host A Host B DATA (TSN 3) Must send a SACK for every other SCTP PDU received without any delay DATA (TSN 4) 200 ms SACK 4 DATA (TSN 5) X One or more TSNs missing => immediately send SACK with Gap Ack blocks without any delay DATA (TSN 6) SACK 4

summary SCTP PDU = 1 common header + 1 or more chunks ( control or data) Association setup = 4 way handshake (INIT, INIT-ACK, COOKIE-ECHO, COOKIE_ACK) COOKIE mechanism to prevent SYN flooding attack Graceful shutdown(SHUTDOWN, SHUTDOWN-ACK, SHUTDOWN-COMPLETE) no half-close as in TCP Separates reliability from ordered delivery Preserves message boundaries SACK chunks to ack cumulative TSN + gap ack blocks + duplicate TSNs Achieves link / path redundancy by supporting multi-homed hosts along with reachability check

References Randall R. Stewart, Qiaobing Xie. Stream Control Transmission Protocol (SCTP) A Reference Guide Stewart et. al. Stream Contol Transmission Protocol RFC-2960, October 2000. URL: http://www.ietf.org/rfc/rfc2960.txt SCTP for Beginners URL:http://tdrwww.exp-math.uni essen.de/inhalt/forschung/sctp_fb/index.html SCTP overview http://www.sctp.org/sctpoverview.html SCTP tutorial http://www.iec.org/online/tutorials/sctp/ SCTP applicability statement http://www.ietf.org/rfc/rfc3257.txt

P. Amer, P. Conrad, Sam Baskinger References Slides collected from various sources including Keyur Shah, Sourabh Ladha, P. Amer, P. Conrad, Sam Baskinger