SCTP Tutorial Randall Stewart

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

Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Laboratório de Teleprocessamento e Redes1 Unix Network Programming Prof. Nelson Fonseca
Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
RivuS Stream Control Transmission Protocol (SCTP) on BSD By- Jayesh Rane Nitin Kumbhar Kedar Sovani PICT. Guides: Prof. Rajesh B. Ingle, PICT. Mr. Adityashankar.
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
1 Chapter 3 TCP and IP. Chapter 3 TCP and IP 2 Introduction Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) User Datagram Protocol.
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.
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Transport Layer.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
1 Summer Report Reporter : Yi-Cheng Lin Data: 2008/09/02.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
Gursharan Singh Tatla Transport Layer 16-May
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Process-to-Process Delivery:
Chapter 16 Stream Control Transmission Protocol (SCTP)
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
IP and Errors IP Best Effort Datagrams can be: –Lost –Delayed –Duplicated –Delivered out of order –Corrupted.
Chapter 5 Transport layer With special emphasis on Transmission Control Protocol (TCP)
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.
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
26-TCP Dr. John P. Abraham Professor UTPA. TCP  Transmission control protocol, another transport layer protocol.  Reliable delivery  Tcp must compensate.
Transport Layer: TCP and UDP. Overview of TCP/IP protocols Comparing TCP and UDP TCP connection: establishment, data transfer, and termination Allocation.
1 Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
SCTP: Stream Control Transfer Protocol Naveen Kumar Department of Computer and Information Sciences *Some slides have been taken from Prof. Amer.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
Chapter 2 Applications and Layered Architectures Sockets.
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)
Teacher:Quincy Wu Presented by: Ying-Neng Hseih
Stream Control Transmission Protocol
Ph.D Unurkhaan Esbold, Computer Science and Management School, Mongolian University of Science and Technology “InfoSec Mongolia 2006” conference, Ulaanbaatar,
1 IPFIX Default Transport IPFIX IETF-58 November 10, 2003 Stewart Bryant Benoit Claise.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 16 Stream Control Transmission.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
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.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
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.
Chapter 3 Transport Layer
Master’s Project Presentation
Chapter 3 outline 3.1 Transport-layer services
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Introduction to Networks
Chapter 16 Stream Control Transmission Protocol (SCTP)
5. End-to-end protocols (part 1)
Long-haul Transport Protocols
PART 5 Transport Layer Computer Networks.
SCTP: Stream Control Transport Protocol
SCTP Team 2: Alexia Allaway Johnson Nguyen Nnamdi Nwajagu Scott Seo
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
Stream Control Transmission Protocol (SCTP)
Process-to-Process Delivery:
Dr. John P. Abraham Professor UTPA
SCTP-based Middleware for MPI
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
Process-to-Process Delivery: UDP, TCP
Presentation transcript:

SCTP Tutorial Randall Stewart (randall@lakerest.net) Michael Tüxen (tuexen@fh-muenster.de)

Outline Overview Services provided by SCTP Deployment considerations Current developments

Timeline of Transport Protocols UDP (RFC 768, August 1980) TCP (RFC 793, September 1981) SCTP (RFC 2960, October 2000) UDP-Lite (RFC 3828, July 2004) DCCP (RFC 4340, March 2006) MP-TCP (RFC 6824, January 2013)

Timeline of SCTP RFCs Core Protocol Protocol Extensions API Initial Base Specification (RFC 2960, October 2000) Checksum Change (RFC 3309, September 2002) Errata and Issues (RFC 4460, April 2006) Updated Base Specification (RFC 4960, September 2007) Protocol Extensions Partial Reliability (RFC 3758, May 2004) Chunk Authentication (RFC 4895, August 2007) Address Reconfiguration (RFC 5061, September 2007) Stream Reconfiguration (RFC 6525, February 2012) API Socket API (RFC 6458, December 2011)

Protocol Overview Connection oriented (SCTP association) Supports unicast Same port number concept as other transport protocols Message oriented Supports arbitrary large messages (fragmentation and reassembly) Supports bundling of multiple small messages in one SCTP packet Flexible ordering and reliability Supports multihoming using IPv4 and IPv6 Packet consists of a common header followed by chunks Extendable

Association Setup Four way handshake Resistance against “SYN flooding” Negotiates Initial number of streams Initial set of IP addresses Supported extensions User messages can already be transmitted on the third leg (after one RTT i.e. same as TCP) Handles the case of both sides initiating the association.

Data Transfer TCP friendly congestion control User messages are put into DATA chunks (possibly multiple in case of fragmentation) Each DATA chunk is identified by a Transmission Sequence Number (TSN) Acknowledgements (SACKs) reporting Cumulative TSN Gaps (up to approximately 300 in a sack) Duplicate TSNs Retransmissions Based on timer Based on gaps

Association Teardown Graceful shutdown Non-graceful shutdown Teardown without message loss. Based on an exchange of three messages. Supervised by timer No half close state is allowed Non-graceful shutdown Possibly message loss Uses a single message

Service: Preservation of Message Boundaries Most application protocols are message based Simplifies application protocols and its implementation Awareness of message boundaries makes optimal handling at the transport layer / application layer boundary possible Special attention needed for supporting arbitrary large messages

Service: Partial Reliability Allows to avoid spending resources on user messages not being relevant anymore for the receiver. The sender can abandon user messages base on criteria called PR-SCTP policy PR-SCTP policies are implemented on the sender side and does not require negotiation. Examples of PR-SCTP policies: Lifetime Number of retransmissions Priority with respect to buffering

Service: Partial Ordering An SCTP association provides up to 2^16 uni-directional streams in each direction. Each message is sent on a stream. Message ordering is only preserved within each stream. In addition, messages can be marked for unordered delivery. This minimizes head of line blocking The stream reconfiguration extension (RFC 6525) allows to Add streams during the lifetime of an association Reset streams (i.e. start over at stream sequence 0)

Service: Network Fault Tolerance Each end-point can have multiple IP-addresses Each path is continuously supervised Primary path is used for initial transmission of user data In case of a failure, another (working) address is used The Address Reconfiguration extension (RFC 5061) allows Add and delete IP-addresses during the lifetime of an association Select the local and remote primary path Currently being specified: loadsharing

Security SCTP over IPSec TLS over SCTP DTLS over SCTP Specified in RFC 3554, July 2003 Multihoming improvements for IPSec Not implemented (as far as the authors know) TLS over SCTP Specified in RFC 3436, December 2002 Doesn’t provide all services (no PR-SCTP, only ordered delivery) Doesn’t scale well and can’t be implemented directly in OpenSSL, however can be build as part of the application DTLS over SCTP Specified in RFC 6083, September 2010 Provides almost all services provided by SCTP and its extensions Implemented in OpenSSL 1.0.1

Usage SIGTRAN: Telephony signaling networks RSerPool Diameter IPFIX Forces RTCWeb

RTCWeb Transport layer for data channels Encapsulated in DTLS running on top of UDP using ICE/STUN/TURN for NAT traversal Usage of multiple streams ordered / unordered delivery partial reliability stream reconfiguration

Implementations Provided by OS vendor for FreeBSD Linux Solaris The FreeBSD has been ported to support Mac OS X as a network kernel extension (NKE) Windows as a kernel driver Windows, Linux, FreeBSD, MacOS X as a userland stack (included in Firefox) Commercial implementations for various operating systems Implementations are interoperable as shown in nine interoperability tests.

Socket API Two programming models: One to one Style API One to many Style API Several socket options allowing fine-tuning of parameters Notifications (events that happen on the transport connection) Additional cmsgs for sendmsg()/recvmsg() Additional functions for supporting multiple IP addresses per end-point sending and receiving user messages Transition of sockets between programming models Mostly supported by FreeBSD, Linux and Solaris allowing users to write portable programs

NAT Traversal Legacy NATs: SCTP aware NATs: UDP encapsulation, allows UDP port numbers to be modified by middle-boxes Requires support in the SCTP end-hosts Doesn’t require special support in the middle-boxes SCTP aware NATs: SCTP port numbers are not modified by middle-boxes Requires support from the middle-boxes and the end-hosts, however no communication between middle-boxes is required

Ongoing SCTP-related Work in TSVWG UDP tunneling (in IESG discussion) SCTP aware NATs ECN support Interleaving of user messages Loadsharing Optimizations (sack immediately and others)

Conclusion SCTP provides a variety of flexible services Network fault tolerance Partial reliability Partial ordering Interoperable implementations are available Middleboxes need to be taken into account