Stream Control Transmission Protocol Special thanks to Dr. Paul Amer Presented by – Viren Mahajan November 20, 2007.

Slides:



Advertisements
Similar presentations
1 SCTP Tutorial, Ottawa 7/2004 © 2004 Randall Stewart (Cisco Systems), Phill Conrad (University of Delaware). All rights reserved. DATA Chunk Flag Bits.
Advertisements

Camarillo / Schulzrinne / Kantola November 26th, 2001 SIP over SCTP performance analysis
Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 OSI Transport Layer Network Fundamentals – Chapter 4.
Transmission Control Protocol (TCP)
Intermediate TCP/IP TCP Operation.
SCTP Tutorial Randall Stewart
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.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
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.
The Transport Layer How do we ensure that packets get delivered to the process that needs them?
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
Stream Control Transmission Protocol 網路前瞻技術實驗室 陳旻槿.
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.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Process-to-Process Delivery:
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)
1 Transport Layer Computer Networks. 2 Where are we?
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved. © The McGraw-Hill Companies, Inc. Transport Layer Protocols – UDP and TCP Asst.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
TCP : Transmission Control Protocol Computer Network System Sirak Kaewjamnong.
Transport Layer: UDP, TCP
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
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.
CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
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
1 M. Atiquzzaman, SCTP over satellite networks IEEE Computer Communications Workshop, Oct 20, SCTP over Satellite Networks Mohammed Atiquzzaman School.
Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
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
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 16 Stream Control Transmission.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
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
Chapter 16 Stream Control Transmission Protocol (SCTP)
Transport of (Legacy) Signaling over IP
Transport Layer.
Process-to-Process Delivery, TCP and UDP protocols
Long-haul Transport Protocols
PART 5 Transport Layer Computer Networks.
TCP.
NR-SACKs (Non-Renegable Selective Acknowledgments )‏
Stream Control Transmission Protocol (SCTP)
Process-to-Process Delivery:
TRANSMISSION CONTROL PROTOCOL
Course: CISC 856: TCP/IP and Upper Layer Protocols
Transport Protocols: TCP Segments, Flow control and Connection Setup
Introduction to Computer Networks
Transport Protocols: TCP Segments, Flow control and Connection Setup
Process-to-Process Delivery: UDP, TCP
Transport Layer 9/22/2019.
Presentation transcript:

Stream Control Transmission Protocol Special thanks to Dr. Paul Amer Presented by – Viren Mahajan November 20, 2007

What we have discussed ! Motivation PDU and Chunk format The ‘a’ word - ASSOCIATION Association setup & termination Multihoming

Outline of today’s talk ! Multistreaming Framing Chunk Bundling Data Transfer Fragmentation/Reassembly

Multistreaming

file transfer video voice text Shall we talk SCTP? Yahoo! Instant Messenger

TCP multiple connections physical data link IP transport TCP buffers file transfer textvoicevideo file transfer textvoicevideo sender receiver 4 independent connections

SCTP multistreaming physical data link IP transport stream buffers 1 association w/4 streams file transfer textvoicevideo file transfer textvoicevideo sender receiver

Init chunk Type: 1Flag: 0Length Initiation Tag Outbound Streams Maximum inbound streams Optional/Variable length parameters Advertised receiver window credit Initial TSN

Init ack chunk Type: 2Flag: 0Length Initiation Tag Outbound Streams Maximum inbound streams Optional/Variable length parameters Advertised receiver window credit Initial TSN Parameter Type: 7 Parameter Length State Cookie

Multistreaming (cont) TCP: 1 stream of data per connection SCTP: 1 or more streams of data per association # of streams negotiated during association establishment SCTP partial ordering: ordered delivery within each stream

delivered to application Data transfer using TCP retransmission receive buffer Web server Web client loss sent from application objects in send buffer HOL blocking! persistent, pipelined TCP connection

stream 1 stream 2 stream 3 delivered to application The multistreaming advantage retransmission receive buffer Web server Web client SCTP association loss objects in send buffer sent from application

Streams Streams by definition are ordered Unordered data may be sent in a stream (U bit = 1) Sequence number is ignored for U = 1 Unordered messages should be processed first Unordered messages may be used for “out-of-band” signaling, as in telnet.

Application work-around to mitigate HOL blocking How? –Multiple persistent TCP connections to transfer independent web objects Problems –Aggressive (not TCP friendly) –Possible HOL blocking within one TCP connection –No shared sequence space => Less robust to loss detection and recovery –Increased load on web server –Increased connection establishment latency during SYN losses

Message Boundaries

TCP does not preserve message boundaries Web server Web client TCP connection Message 3 Message 2 Message 1 bytes bytes bytes bytes 1 – 75 bytes 176 – 230 bytes 231 – 300 bytes 76 – 175

SCTP preserves message boundaries Web server Web client SCTP association Message 3 Message 2 Message 1 Message 2 Message 3 bytes bytes bytes bytes bytes bytes

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 –Data flags manage message boundaries Simpler coding of applications –no need to do buffering, framing Example - DNS –Response size <= 512, UDP is used –If response size > 512, TCP is used Application must preface the header with message length

Chunk Bundling

Without bundling end pt Aend pt B SCTP association SCTP-PDUs Application A-PDUs SCTP Association

With bundling end pt Aend pt B SCTP association SCTP-PDUs Application SCTP Association A-PDUs

Bundling of Chunks in SCTP Control chunks bundled before data chunks Chunk boundary cannot cross SCTP PDU boundary Source PortDestination Port Verification Tag Checksum Chunk 1 … Chunk N Common Header Bundling SCTP PDU

Chunk Bundling Multiple chunks in one SCTP PDU Gain in n/w bandwidth efficiency –reduces ovhd of additional sctp and IP headers Path MTU is the constraint Control Chunks are always placed first Chunk boundaries do not cross SCTP PDU boundaries These chunks cannot be bundled –init, init ack, shutdown complete

Data Transfer

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

Data Chunk Flags = UBE Data User supplied Payload Protocol Identifier Stream Seq Num (SSN) Stream Identifier (SID) Transmission Sequence Number (TSN) Length Type = 0x used for ordering, reassembly and retransmission used for ordering within a stream identifies the stream to which the data chunk belongs used by the application and network monitoring equipment to understand the type of data being transmitted

SACK Chunk Type = 0x03Flags (none)Length (variable) Cumulative TSN ack Advertised receiver window Number of Gap ACK blocks = NNumber of 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 highest cumulative TSN no. of Duplicate TSN reports included number of Gap Ack Blocks included end offset for a range of consecutive TSNs received start offset for a range of consecutive TSNs received TSN received more than once

Data transfer TSN: 1 SID: 1SSN: 1 TSN: 2 SID: 2SSN: 1 TSN: 3 SID: 1SSN: 2 TSN: 4 SID: 2SSN: 2 ACK 4 TSN: 1 SID: 1SSN: 1 ACK 1 end Aend B

Data transfer end Aend B TSN: 12 SID: 1SSN: 2 ACK 12 a_rwnd TSN: 13 SID: 2SSN: 2 TSN: 14 SID: 1SSN: 3 TSN: 15 SID: 2SSN: 3 ACK 12 a_rwnd #Gaps: 1 #Dup: 0 Gap1_start: 2 Gap1_end: 3 TSN: 13 SID: 1SSN: 4 TSN: 16 SID: 2SSN: 4 TSN: 17 SID: 1SSN: 5 ACK 12 a_rwnd #Gaps: 2 #Dup: 0 Gap1_start: 2 Gap1_end: 3 Gap2_start: 5 Gap2_end: 5 TSN: 10 SID: 1SSN: 1 TSN: 11 SID: 2SSN: 1

Fragmentation / Reassembly

SCTP fragmentation/reassembly Web server Web client SCTP association A-PDU SCTP-PDUs A-PDU

Data Chunk Reserved U B E Data User supplied Payload Protocol Identifier Stream Seq Num (SSN) Stream Identifier (SID) Transmission Sequence Number (TSN) Length Type = 0x00 031

Fragmentation/Reassembly Flags UBEDescription *10(Begin) First Piece of fragmented A-PDU *00Middle piece of fragmented A-PDU *01(End) Last piece of fragmented A-PDU *11Non-fragmented A-PDU *U set to 1 specifies unordered message Note: Fragmentation requires sequential TSNs

A fragmentation example A-PDU second fragment E.g. app A-PDU for Stream 2 exceeds Path-MTU last fragment First data fragment SSN=1SID=2TSN=6U=0, B=1, E=0 Part of Data Chunk Header U=0, B=0, E=0TSN=7 SID=2SSN=1 U=0, B=0, E=1 TSN=8 SID=2SSN=1

SCTP - User Data Fragmentation Large A-PDU fragmented into DATA chunks To avoid intermediate routers having to deal with fragmentation Constrained by path MTU Unique TSN assigned to each DATA chunk Same SSN assigned to each DATA chunk B/E (Begin/End) bits identify fragments of user message U flag same as that in the original message

Re-Assembly of Fragments Receiver checks B/E flags of DATA chunk User message reassembled using SSN, SID, B/E bits of DATA chunks. Number of fragments determined by the TSN of the first and the last fragments

TSN 5 TSN 6² TSN 2 TSN 4 TSN 3 TSN 5 TSN 6² TSN 2 TSN 3 TSN 4 TSN 1¹ TSN 1¹ TSN 6² TSN 5 TSN 4 TSN 3 TSN 2 TSN 1¹ A Large Message Transfer A2A2 A1A1 B2B2 B1B1 receive buffer (6) delivered to application TSN 1¹ TSN 3 TSN 2 sent from application TSN 4 TSN 5 TSN 6² data data to be sent 1 - B bit set to E bit set to 1 Path MTU = 512 octets (2760 octets)

Summary Multistreaming –multiple streams avoid HOL blocking Framing –message boundaries are preserved Chunk Bundling –better bandwidth usage Data Transfer –data chunks Fragmentation/Reassembly –B/E bits in data chunk

THANKS !

SCTP Vocabulary Association Chunk PMTU – Path Maximum Transfer Unit SSN – Stream Sequence Number SID – Stream identifier TSN - Transmission Sequence Number TCB – Transmission Control Block