Stream Control Transmission Protocol (SCTP) Janardhan Iyengar Protocol Engineering Lab Computer & Information Sciences, University of Delaware.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno 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.
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
Transmission Control Protocol (TCP)
Guide to TCP/IP, Third Edition
SCTP Tutorial Randall Stewart
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
Transport Layer – TCP (Part1) Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
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
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
CPE 401 / 601 Computer Network Systems
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.
1 Summer Report Reporter : Yi-Cheng Lin Data: 2008/09/02.
Transport Layer TCP and UDP IS250 Spring 2010
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Process-to-Process Delivery:
Chapter 16 Stream Control Transmission Protocol (SCTP)
1 Transport Layer Computer Networks. 2 Where are we?
NS Simulator Studying For Stream Control Transmission Protocol CSCI8211 Project Presentation Ke Zhang Computer Science & Engineering University of Minnesota.
Adaptive Failover Mechanism Motivation End-to-end connectivity can suffer during net failures Internet path outage detection and recovery is slow (shown.
IP and Errors IP Best Effort Datagrams can be: –Lost –Delayed –Duplicated –Delivered out of order –Corrupted.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 2.5 Internetworking Chapter 25 (Transport Protocols, UDP and TCP, Protocol Port Numbers)
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.
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
31. Mar INF-3190: Transport Layer Transport Layer Foreleser: Carsten Griwodz
1 M. Atiquzzaman, SCTP over satellite networks IEEE Computer Communications Workshop, Oct 20, SCTP over Satellite Networks Mohammed Atiquzzaman School.
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.
STREAM CONTROL TRANSMISSION PROTOCOL (SCTP)
SCTP: A new networking protocol for super-computing Mohammed Atiquzzaman Shaojian Fu Department of Computer Science University of Oklahoma.
Teacher:Quincy Wu Presented by: Ying-Neng Hseih
Stream Control Transmission Protocol
Transport Protocols.
UDP & TCP Where would we be without them!. UDP User Datagram Protocol.
Guide to TCP/IP Fourth Edition
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.
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 3: Transport.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
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.
DMET 602: Networks and Media Lab
4.1.5 multi-homing.
Chapter 16 Stream Control Transmission Protocol (SCTP)
5. End-to-end protocols (part 1)
Process-to-Process Delivery, TCP and UDP protocols
PART 5 Transport Layer Computer Networks.
SCTP: Stream Control Transport Protocol
SCTP Team 2: Alexia Allaway Johnson Nguyen Nnamdi Nwajagu Scott Seo
Stream Control Transmission Protocol (SCTP)
Course: CISC 856: TCP/IP and Upper Layer Protocols
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Protocols: TCP Segments, Flow control and Connection Setup
Presentation transcript:

Stream Control Transmission Protocol (SCTP) Janardhan Iyengar Protocol Engineering Lab Computer & Information Sciences, University of Delaware

Where is SCTP in the stack? application IP application SCTPDCCP UDP lite SCTPDCCP UDP lite IP Transport UDPTCPUDPTCP CHAOS !

A Brief History Primary motivation: Transportation of telephony signaling messages over IP networks

RFCs RFC 2960 – Stream Control Transmission Protocol RFC SCTP Applicability Statement RFC An introduction to SCTP RFC 3309 – SCTP Checksum Change RFC 3436 – Transport Layer Security over SCTP RFC 3758 – SCTP Partial Reliability Extension

SCTP – History Origins: Public Telephone Network Signaling SS7 over IP (IETF Sigtran working group) Current home: IETF TSVWG (Transport Services Working Group) –IETF recognizes broader scope –Proposed Standard - RFC2960 Supported by industry: Participation in Bakeoffs: ADAX - Cisco – HP/Compaq - Data Connection - DataKinetics - Ericsson - Hughes Software - IBM - Motorola – Netbricks - Nokia - Open SS7 - Performance Technologies - RadiSys - Siemens – Spider - Sun Microsystems - Telesoft Technologies - Toshiba - Ulticom -Wipro Implementations: AIX, FreeBSD, Linux, QNX, Solaris, True64, IOS (Cisco Routers), Sony PlayStation II, Mac OS, more… Munich 6/0012 Research Triangle Park10/0022 Sophia Antipolis 4/0119 San Jose (Connectathon) 2/026 U. of Essen (Germany) 9/0220 Bakeoffs Date Attend U of Delaware 6/03 Muenster (Germany) 7/04 11

SCTP Feature Summary Start with TCP: reliable (retransmissions) congestion controlled connection oriented Add: 4-way handshake to reduce vulnerability to DOS attacks framing preserve message boundaries multistreaming instead of one ordered stream, up to 64K independent ordered streams multihoming instead of one IP address per endpoint a set of IP addresses per endpoint

1RTT SYN-ACK closed listen t=0 SYN SYN sent ACK data established estab’d A B TCP Connection Setup SYN recd (TCB created)

SYN victim Flooded!! SYN Flooding Attack TCB 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 attackers SYN Unavailable, reserved resources

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 A B SCTP Association Setup

What’s in a cookie? Information from original INIT Information from current INIT-ACK Timestamp Life span of cookie (Time to live) Signature for authentication (SHA-1, MD5, etc.)

Graceful Shutdown SHUTDOWN SHUTDOWN-ACK SHUTDOWN-COMPLETE App signals shutdown Shutdown pending (pending data) Shutdown sent (pending data) Shutdown received Shutdown-Ack sent Closed A B

SCTP Feature Summary Start with TCP: reliable (retransmissions) congestion controlled connection oriented Add: 4-way handshake to reduce vulnerability to DOS attacks framing preserve message boundaries multistreaming instead of one ordered stream, up to 64K independent ordered streams multihoming instead of one IP address per endpoint a set of IP addresses per endpoint

Message Boundaries UDP honors message boundaries –Each app message becomes a datagram TCP does not honor message boundaries –App messages become part of a byte stream SCTP maintains message boundaries –Each app message is maintained as one or more data chunks

Chunks in SCTP Source PortDestination Port Verification Tag Checksum Chunk 1 Chunk N Common Header Building blocks of an SCTP PDU Two kinds – control chunks and data chunks data chunks are smallest atomic data units Chunks SCTP PDU

SCTP Chunk Format TypeFlagsLength Chunk Data Type – e.g. Data, Init, SACK Flags – bit meanings depend on type Length – includes type, flags, length, and data/parameters

Some Chunk Types 0x00DATAUser data 0x01INIT~ SYN 0x02INIT-ACK 0x03SACKSelective ACK 0x04HEARTBEATKeep-alive message 0x05HEARTBEAT-ACK 0x07SHUTDOWN~FIN 0x08SHUTDOWN-ACK

Example INIT Chunk Chunk Type 0x01 Flags = 0Length = 0x14 Initiation Tag Receiver Window Outbound StreamsMaximum Inbound Streams Initial Transmission Sequence Number (TSN) Parameter type 0x05Parameter Length = 0x0008 IPv4 Address Parameter type 0x06Parameter Length = 0x0014 IPv6 Address Permanent parameters for INIT Some possible optional parameters for INIT. Length of options limited only by path MTU size. (0x30) 031

Data Chunk Type = 0x00 Flags = UBELength Transmission Sequence Number (TSN) Stream Identifier (SID)Stream Seq. Num. (SSN) User supplied Payload Protocol Identifier User Data 031

SACK Chunk Type = 0x3Flags = 0Length = variable Cumulative TSN acknowledgement Advertised receiver window Num. Gap ACK blocks = NNum. duplicates = X Gap ACK blk #1 start TSN offsetGap ACK blk #1 end TSN offset Gap ACK blk #N start TSN offsetGap ACK blk #N end TSN offset Duplicate TSN 1 …….. Duplicate TSN X Offset is relative to cumulative TSN. GAP ACK blocks are blocks received after cum TSN. 031

Chunk Bundling in SCTP Multiple chunks in one SCTP PDU Control chunks bundled before data chunks Chunk boundary cannot cross SCTP PDU boundary Optional at sender, but receiver has to support Source PortDestination Port Verification Tag Checksum Chunk 1 Chunk N Common Header Bundling SCTP PDU

SCTP PDU Message 1Message 2 SCTP Common Header SCTP Control Chunks Data Chunk Headers Data Chunks SCTP PDU

Fragmentation/Reassembly in SCTP UBEDescription *10 (Begin) First Piece of fragmented message *00 Middle piece of fragmented message *01 (End) Last piece of fragmented message *11 Non-fragmented message *U set to 1 specifies unordered message Note: Fragmentation req. – sequential TSN’s Large messages are fragmented and encapsulated into several data chunks Reassembled before delivery to receiving app

Fragmentation Example Stream 2 message U=0, B=1, E=0 TSN= 6 SID= 2 SSN=1 First data frag. U=0, B=0, E=0 TSN= 7 SID= 2 SSN=1 Second data frag. E.g. Message for Stream 2 from app exceeds PMTU. U=0, B=0, E=1 TSN= 8 SID= 2 SSN=1 Last data frag. Part of Data Chunk Header Upon completion, Stream Sequence Number increments

Unordered delivery Streams by definition are ordered Unordered data may be sent in a stream (U bit = 1) SSN is ignored for U = 1 Unordered messages should be processed first

SCTP Feature Summary Start with TCP: reliable (retransmissions) congestion controlled connection oriented Add: 4-way handshake to reduce vulnerability to DOS attacks framing preserve message boundaries multistreaming instead of one ordered stream, up to 64K independent ordered streams multihoming instead of one IP address per endpoint a set of IP addresses per endpoint

Head-of-Line Blocking in TCP S R ACK ACK 3 PDU 3 is blocking the head of the line. 1 2 R’s App ACK 3

Head-of-line Blocking TCP provides a single data stream When a segment is lost, subsequent segments must wait to be processed. Problem for some applications (telephony) SCTP provides multiple independent streams per association

SCTP Multistreaming Logical separation of data within an assoc Designed to prevent head-of-line blocking Can be used to deliver multiple objects belonging to the same assoc –Eg: objects on a webpage, multimedia streams (audio/video/text), files in an FTP mget

Head-of-Line Blocking in SCTP S R 1:11:1 NOTE: An SCTP ACK a cum ack based onTSN. App LayerTransport LayerApp Layer SID :SSN 1:1, 3:1 ACK 2 3:2, 1:3, 2:1 1:21:2 1,21,2 4,5,6 TSNs 7,8,9 1:4, 2:2, 3:3 ACK 2 2:2, 3:3 3:2, 2:13:2, 2:1 1:1, 3:1 SID :SSN 3:13:1 1:21:2 3:23:2 1:31:3 2:12:1 2:22:2 3:33:3 1:41:4 3 (all ordered streams) undelivered

Head-of-Line Blocking in SCTP S R 1:a1:a App LayerTransport LayerApp Layer SID :SSN 3:1, 1:a3:1, 1:a ACK 2 3:2, 2:1, 1:c 1:b1:b 1,21,2 4,5,6 TSNs 7,8,9 2:2, 3:4, 1:d ACK 2 2:2, 3:3, 1:d 3:2, 2:1, 1:c3:2, 2:1, 1:c 3:1, 1:a3:1, 1:a SID :SSN 3:13:1 1:b1:b 1:c1:c 3:23:2 2:12:1 2:22:2 3:33:3 1:d1:d 3 (stream 1 unordered) Only blocked message Letters show unordered chunks w/in a stream. U bit is set & SSN is ignored.

SCTP Multi-Homing Multiple src/dest ip addresses Use of different physical paths not guaranteed Peer reachability and path status are monitored (heartbeat) One selectable default destination Parameters per path (cwnd, ssthresh, RTT) IP network IP A2 IP B2IP B1 IP B3 IP A1

SCTP Feature Summary Start with TCP: reliable (retransmissions) congestion controlled connection oriented Add: 4-way handshake to reduce vulnerability to DOS attacks framing preserve message boundaries multistreaming instead of one ordered stream, up to 64K independent ordered streams multihoming instead of one IP address per endpoint a set of IP addresses per endpoint

What is SCTP Multihoming? Host A A1A1 A2A2 Host B B1B1 B2B2 Internet ISP Hosts pick 1 of 4 possible TCP connections: ― {(A 1, B 1 ), (A 1, B 2 ), (A 2, B 1 ), (A 2, B 2 )} Hosts use 1 SCTP association: – ({A 1,A 2 }, {B 1,B 2 }) – Selectable “primary” dest: Host A → B 1 ; Host B → A 1 – New data sent only to primary destination – Path status and reachability monitored (hearbeats)

SCTP Multihoming Why important? multihoming is now happening on wide scale wired + wireless, multiple ISPs, etc. Key Research Problems fault tolerance load sharing (concurrent transfer)

SCTP Research at PEL

ISP 1 ISP 2 ISP 3 ISP 6 ISP 5 ISP 4 Internet Concurrent Multipath Transfer (CMT) Existing Paths With TCP With current SCTP With CMT Path 2 Path 1 Path 3

CMT Protocols CMT naive SCTP (RFC 2960) with 1 modification modified SCTP to send new data to all destinations concurrently significant reordering observed Causes unnecessary fast retransmits Causes incorrect cwnd growth Where should retransmissions be sent ? What should sender do if paths intersect ? CMT smart CMT naive with 3 proposed algorithms * split fast retransmit (“SFR-CACC”) algorithm cwnd update (“CUC”) algorithm delayed ack (“DAC”) algorithm Retransmissions sent to destination with largest ssthresh …

SCTP Retransmission Policy Current retransmission policy –Retransmit to an alternate destination, if exists –Attempts to improve chances of success –No prior research to demonstrate benefits –this policy degrades performance in many cases Alternate solutions Retransmit to same dst Fast retransmit to same dst, Timeouts to alternate dst Multiple Fast Retransmit Algorithm …

SCTP Failover: Parameter Settings Investigate and improve performance during failover How do you decide when to failover to an alternate path? –Default parameter settings and algorithms in SCTP take too long –This work investigates alternate parameter settings and algorithms

Transparent SCTP Shim Migrate existing TCP applications to SCTP transparently Application gains: fault tolerance, SACK support

Other PEL Contribution SCTP module for ns-2 (in ver 2.27 or greater) – most widely used network simulator in research community –downloaded and used by several researchers –part of coursework / course projects (UCLA, TAMU, UF, …) SCTP module for tcpdump (in ver. 3.7 or greater) Available at

Services/FeaturesSCTPTCPUDP Connection-orientedyes no Full duplexyes Reliable data transferyes no Partial-reliable data transfer proposed no Flow controlyes no TCP-friendly congestion controlyes no ECN capableyes no Ordered data deliveryyes no Unordered data deliveryyesnoyes Uses selective ACKsyesoptionalno Path MTU discoveryyes no Application PDU fragmentationyes no Application PDU bundlingyes no Preserves application PDU boundariesyesnoyes Multistreamingyesno Multihomingyesno Protection against SYN flooding attackyesnon/a Allows half-closed connectionsnoyesn/a Reachability checkyes no Pseudo-header for checksumno (uses vtags)yes Time wait statefor vtagsfor 4-tuplen/a

Resources Randall R. Stewart, Qiaobing Xie, 2002, “Stream Control Transmission Protocol (SCTP) A Reference Guide Stewart et. al., Stream Contol Stream Transmission Protocol RFC-2960, October URL: Ong L. and J. Yoakum, May 2002, “An Introduction to the Stream Control Transmission Protocol (SCTP)” URL: Caro Jr. et al, “SCTP: A Proposed Standard for Robust Internet Data Transport”, November 2003, IEEE Computer Protocol Engineering Lab:

Questions ?

Extra slides

Outline those in the audience What are the components of the Internet ? those in computer science What is a transport protocol ? those who have taken networks What is SCTP ? those who know TCP SCTP research brief personal comments

Research Project I: Improving FTP Using SCTP Multistreaming

File Transfer Protocol FTP server control connection data connection FTP client n+1 TCP connections

Classic FTP over TCP PORT 200 SYN NLST SYN-ACK ACK 150 NAME LIST FIN FIN-ACK 226 ACK PORT 200 SIZE 213 RETR SYN SYN-ACK ACK 150 DATA FIN FIN-ACK 226 ACK ClientServer Redundant round trips

Using multistreaming in FTP FTP server FTP client control stream data stream 1 SCTP association

Server Client PORT 200 NLST SYN SYN-ACK ACK 150 DATA FIN 226 FIN-ACK PORT ACK RETR SYN SYN-ACK ACK 150 DATA FIN 226 SIZE FTP over TCP NLST 150 DATA SIZE 150 DATA 226 SIZE Client Server FTP over multistreamed SCTP with command pipelining 213 RETR Server Client NLST 150 DATA RETR 150 DATA 226 SIZE FTP over multistreamed SCTP

NLST 150 Name List 226 SIZE 213 RETR 150 DATA 226 ClientServer NLST 150 Name List 226 SIZE 213 RETR 150 DATA 226 ClientServer SIZE RETR 213 stream 0 stream 1 stream 0 stream 1 stream 0 stream 1 stream 0 stream 1 stream 0 FTP over multistreamed SCTP FTP over multistreamed SCTP with command pipelining stream 0

Experimental Setup FTP server FTP client Traffic shaper bandwidth = BW delay = D Bandwidth-Delay Configurations:  1Mbps-35ms : US end-to-end coast  256Kbps-125ms : Satellite communication  3Mbps-1ms : UAV communication Loss probability: {0,.01,.03,.06,.10} Loss probability distribution: Uniform File sizes: {10K, 50K, 200K, 500K, 1M} Number of files transferred: {10, 100}

configuration: 1Mbps - 35ms

End-to-End configuration: BW = 1Mbps, RTT = 70ms

configuration: 256Kbps - 125ms

End-to-End configuration: BW = 256Kbps, RTT = 250ms

End-to-End configuration: BW = 1Mbps, RTT = 70ms

Results FTP over SCTP with multistreaming/pipelining dramatically reduces end-to-end latency in multiple file transfers, and in a TCP-friendly manner reduces the server load (by decreasing the number of connections) reduces the network load maintains simplicity at the application