An SCTP-Protocol Data Unit with several chunks

Similar documents
Outline. History Introduction Packets Association/ Termination Data Transmission concepts Multihoming Streams

Computer Network Programming

Stream Control Transmission Protocol

Stream Control Transmission Protocol (SCTP)

TCP/IP Protocol Suite 1

Transport of (Legacy) Signaling over IP. Summary of course scope

TSIN02 - Internetworking

ETSI TS V1.1.1 ( )

Chapter 24. Transport-Layer Protocols

Category: Standards Track Motorola, Inc. M. Tuexen Univ. of Applied Sciences Muenster S. Maruyama M. Kozuka Kyoto University September 2007

TSIN02 - Internetworking

TSIN02 - Internetworking

debug ip rtp header-compression through debug ipv6 icmp, page 1

Reliability and Availability in Stream Control Transport Protocol (SCTP)

Video Streaming with the Stream Control Transmission Protocol (SCTP)

Simulation of the SCTP Failover Mechanism

CC-SCTP: Chunk Checksum of SCTP for Enhancement of Throughput in Wireless Network Environments

Stream Control Transmission Protocol

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

UNIT IV TRANSPORT LAYER

Effect of SCTP Multistreaming over Satellite Links

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP

Programming Assignment 3: Transmission Control Protocol

MULTIROUTING BEHAVIOR IN STREAM CONTROL TRANSMISSION PROTOCOL JAGDISH KUMAR GOPALAKRISHNAN

SCTP STREAM CONTROL TRANSMISSION PROTOCOL INTRODUCTION TO SCTP, A GENERAL PURPOSE TRANSPORT PROTOCOL SUITED FOR HIGH RELIABILITY APPLICATIONS

SCTP performance and security

CS 640 Introduction to Computer Networks Spring 2009

Introduction to Networks and the Internet

Internet and Intranet Protocols and Applications

SCTP over Satellite Networks

Summary of last time " " "

SCTP Administrator's Guide

Transport Layer. Gursharan Singh Tatla. Upendra Sharma. 1

Lecture 3: The Transport Layer: UDP and TCP

ETSI TS V1.1.1 ( )

Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP 23.1

Topics in Computer Networking Switch SS7 PSTN/ISDN. Gatekeeper/ Proxy Server. Topics in Computer Networking Н.

Chapter 5 End-to-End Protocols

T Computer Networks II. Transport Issues Contents. TCP and UDP. Congestion Prevention. Motivation for Congestion Control

Packetization Layer Path Maximum Transmission Unit Discovery (PLPMTU) For IPsec Tunnels

Guide To TCP/IP, Second Edition UDP Header Source Port Number (16 bits) IP HEADER Protocol Field = 17 Destination Port Number (16 bit) 15 16

Transport Protocols. ISO Defined Types of Network Service: rate and acceptable rate of signaled failures.

UNIT IV -- TRANSPORT LAYER

Internet Engineering Task Force (IETF) Category: Standards Track ISSN: January 2011

Networking Technologies and Applications

Unit 2.

Transmission Control Protocol (TCP)

EE 610 Part 2: Encapsulation and network utilities

CS 5520/ECE 5590NA: Network Architecture I Spring Lecture 13: UDP and TCP

Your Name: Your student ID number:

Discussion: Messaging

Linux Implementation Study of Stream Control Transmission Protocol

Transport Layer. Application / Transport Interface. Transport Layer Services. Transport Layer Connections

SCTP. Stream Control Transmission Protocol. François Buntschu. Ecole d Ingénieurs et d Architectes de Fribourg HES-SO

Master Course Computer Networks IN2097

Islamic University of Gaza Faculty of Engineering Department of Computer Engineering ECOM 4021: Networks Discussion. Chapter 5 - Part 2

ITS323: Introduction to Data Communications

TCP/IP. Chapter 5: Transport Layer TCP/IP Protocols

CS 455: INTRODUCTION TO DISTRIBUTED SYSTEMS [NETWORKING] Frequently asked questions from the previous class surveys

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

Shim6 protocol. Erik Nordmark

PRI Backhaul and IUA Support Using SCTP

SCTP Congestion Window Overgrowth During Changeover

Web Real-Time Data Transport

Transmission Control Protocol. ITS 413 Internet Technologies and Applications

ECE 435 Network Engineering Lecture 9

Computer Networks and Data Systems

IS370 Data Communications and Computer Networks. Chapter 5 : Transport Layer

Different Layers Lecture 20

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

UDP: Datagram Transport Service

Network Working Group

TCP /IP Fundamentals Mr. Cantu

TCP = Transmission Control Protocol Connection-oriented protocol Provides a reliable unicast end-to-end byte stream over an unreliable internetwork.

Datagram Congestion Control Protocol (DCCP)

M. Kalla Telcordia Technologies G. Sidebottom Signatus Technologies January 2006

Simulation of TCP Layer

Internet Control Message Protocol (ICMP)

Information Network 1 TCP 1/2

SCTP Congestion Control: Initial Simulation Studies

Protocol Layers & Wireshark TDTS11:COMPUTER NETWORKS AND INTERNET PROTOCOLS

Congestion / Flow Control in TCP

Review problems (for no credit): Transport and Network Layer

IK1550 & IK1552 Internetworking/Internetteknik

User Datagram Protocol

CMPE 80N: Introduction to Networking and the Internet

Transport Protocols and TCP

Designing a Resource Pooling Transport Protocol

Does current Internet Transport work over Wireless? Reviewing the status of IETF work in this area

IPSec implementation for SCTP

Transport Layer Marcos Vieira

NWEN 243. Networked Applications. Layer 4 TCP and UDP

IPv6 Protocols and Networks Hadassah College Spring 2018 Wireless Dr. Martin Land

IPv6. IPv4 & IPv6 Header Comparison. Types of IPv6 Addresses. IPv6 Address Scope. IPv6 Header. IPv4 Header. Link-Local

CPSC 441 COMPUTER COMMUNICATIONS MIDTERM EXAM SOLUTION

Reliable Transport I: Concepts and TCP Protocol

NICC ND 1028 V1.1.1 ( )

Introduction to Networking. Operating Systems In Depth XXVII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

SCTP s Reliability and Fault Tolerance

ECE 435 Network Engineering Lecture 10

Transcription:

SCTP for Beginners Section 2 SCTP Packets he protocol data units (PDU) of SCTP are called SCTP packets. If SCTP runs over IP (as described in RFC2960 ), an SCTP packet forms the payload of an IP packet. An SCTP packet is composed of a common header and chunks. Multiple chunks may be multiplexed into one packet up to the Path-MTU size. A chunk may contain either control information or user data. An SCTP-Protocol Data Unit with several chunks The Common Header The common header consists of 12 bytes. For the identification of an association, SCTP uses the same port concept as TCP and UDP. For the detection of transmission errors, each SCTP packet is protected by a 32 bit checksum (Adler-32 algorithm), which is more robust than the 16 bit checksum of TCP and UDP. SCTP packets with an invalid checksum are silently discarded. The common header also contains a 32 bit value called verification tag. The verification tag is association specific, and exchanged between the endpoints at association startup. So there are two tag values used in one association. See section SCTP states for detailed information on tags. Chunks Each chunk begins with a chunk type field, which is used to distinguish data chunks and different types of control chunks, followed by chunk specific flags and a chunk length field needed because chunks have a variable length. The value field contains the actual payload of the chunk.

So far there are 13 chunk types defined for standard use. They are listed here. For the sake of simplicity, their definitions have been copied here from RFC2960 : ID Value Chunk Type ----- ---------- 0 - Payload Data (DATA) 1 - Initiation (INIT) 2 - Initiation Acknowledgement (INIT ACK) 3 - Selective Acknowledgement (SACK) 4 - Heartbeat Request (HEARTBEAT) 5 - Heartbeat Acknowledgement (HEARTBEAT ACK) 6 - Abort (ABORT) 7 - Shutdown (SHUTDOWN) 8 - Shutdown Acknowledgement (SHUTDOWN ACK) 9 - Operation Error (ERROR) 10 - State Cookie (COOKIE ECHO) 11 - Cookie Acknowledgement (COOKIE ACK) 12 - Reserved for Explicit Congestion Notification Echo (ECNE) 13 - Reserved for Congestion Window Reduced (CWR) 14 - Shutdown Complete (SHUTDOWN COMPLETE) 15 to 62 - reserved by IETF 63 - IETF-defined Chunk Extensions 64 to 126 - reserved by IETF 127 - IETF-defined Chunk Extensions 128 to 190 - reserved by IETF 191 - IETF-defined Chunk Extensions 192 to 254 - reserved by IETF 255 - IETF-defined Chunk Extensions Payload Data The following format MUST be used for the DATA chunk: 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 0 Reserved U B E Length TSN Stream Identifier S Stream Sequence Number n Payload Protocol Identifier / User Data (seq n of Stream S) / Initiation (INIT) This chunk is used to initiate a SCTP association between two endpoints. The format of the INIT chunk is shown below: 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 1 Chunk Flags Chunk Length

Initiate Tag Advertised Receiver Window Credit (a_rwnd) Number of Outbound Streams Number of Inbound Streams Initial TSN / Optional/Variable-Length Parameters / Initiation Acknowledgement (INIT ACK) The INIT ACK chunk is used to acknowledge the initiation of an SCTP association. The parameter part of INIT ACK is formatted similarly to the INIT chunk. It uses two extra variable parameters: The State Cookie and the Unrecognized Parameter: 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 2 Chunk Flags Chunk Length Initiate Tag Advertised Receiver Window Credit Number of Outbound Streams Number of Inbound Streams Initial TSN / Optional/Variable-Length Parameters / Selective Acknowledgement (SACK) This chunk is sent to the peer endpoint to acknowledge received DATA chunks and to inform the peer endpoint of gaps in the received subsequences of DATA chunks as represented by their TSNs. The SACK MUST contain the Cumulative TSN Ack and Advertised Receiver Window Credit (a_rwnd) parameters. By definition, the value of the Cumulative TSN Ack parameter is the last TSN received before a break in the sequence of received TSNs occurs; the next TSN value following this one has not yet been received at the endpoint sending the SACK. This parameter therefore acknowledges receipt of all TSNs less than or equal to its value. The SACK also contains zero or more Gap Ack Blocks. Each Gap Ack Block acknowledges a subsequence of TSNs received following a break in the sequence of received TSNs. By definition, all TSNs acknowledged by Gap Ack Blocks are greater than the value of the Cumulative TSN Ack. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 3 Chunk Flags Chunk Length Cumulative TSN Ack Advertised Receiver Window Credit (a_rwnd) Number of Gap Ack Blocks = N Number of Duplicate TSNs = X

Gap Ack Block #1 Start Gap Ack Block #1 End /... / Gap Ack Block #N Start Gap Ack Block #N End Duplicate TSN 1 /... / Duplicate TSN X Heartbeat Request (HEARTBEAT) An endpoint should send this chunk to its peer endpoint to probe the reachability of a particular destination transport address defined in the present association. The parameter field contains the Heartbeat Information which is a variable length opaque data structure understood only by the sender. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 4 Chunk Flags Heartbeat Length / Heartbeat Information TLV (Variable-Length) / Heartbeat Acknowledgement (HEARTBEAT ACK) An endpoint should send this chunk to its peer endpoint as a response to a HEARTBEAT chunk (see Section 8.3). A HEARTBEAT ACK is always sent to the source IP address of the IP datagram containing the HEARTBEAT chunk to which this ack is responding. The parameter field contains a variable length opaque data structure. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 5 Chunk Flags Heartbeat Ack Length / Heartbeat Information TLV (Variable-Length) / Abort Association (ABORT) The ABORT chunk is sent to the peer of an association to close the association. The ABORT chunk may contain Cause Parameters to inform the receiver the reason of the abort. DATA chunks MUST NOT be bundled with ABORT. Control chunks (except for INIT, INIT ACK and SHUTDOWN COMPLETE) MAY be bundled with an ABORT but they MUST be placed before the ABORT in the SCTP packet, or they will be ignored by the receiver. If an endpoint receives an ABORT with a format error or for an association that doesn't

exist, it MUST silently discard it. Moreover, under any circumstances, an endpoint that receives an ABORT MUST NOT respond to that ABORT by sending an ABORT of its own. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 6 Reserved T Length / zero or more Error Causes / Shutdown Association (SHUTDOWN) An endpoint in an association MUST use this chunk to initiate a graceful close of the association with its peer. This chunk has the following format. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 7 Chunk Flags Length = 8 Cumulative TSN Ack Shutdown Acknowledgement (SHUTDOWN ACK) This chunk MUST be used to acknowledge the receipt of the SHUTDOWN chunk at the completion of the shutdown process, see Section 9.2 for details. The SHUTDOWN ACK chunk has no parameters. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 8 Chunk Flags Length = 4 Operation Error (ERROR) An endpoint sends this chunk to its peer endpoint to notify it of certain error conditions. It contains one or more error causes. An Operation Error is not considered fatal in and of itself, but may be used with an ABORT chunk to report a fatal condition. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 9 Chunk Flags Length / one or more Error Causes / It contains as parameters a variable length field containing the type of error that has occurred: 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Cause Code Cause Length / Cause-specific Information / Each error cause may carry its own set of parameters. The error causes that have been defined are:

Cause Code Value Cause Code --------- ---------------- 1 Invalid Stream Identifier 2 Missing Mandatory Parameter 3 Stale Cookie Error 4 Out of Resource 5 Unresolvable Address 6 Unrecognized Chunk Type 7 Invalid Mandatory Parameter 8 Unrecognized Parameters 9 No User Data 10 Cookie Received While Shutting Down Cookie Echo (COOKIE ECHO) This chunk is used only during the initialization of an association. It is sent by the initiator of an association to its peer to complete the initialization process. This chunk MUST precede any DATA chunk sent within the association, but MAY be bundled with one or more DATA chunks in the same packet. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 10 Chunk Flags Length / Cookie / Cookie Acknowledgement (COOKIE ACK) This chunk is used only during the initialization of an association. It is used to acknowledge the receipt of a COOKIE ECHO chunk. This chunk MUST precede any DATA or SACK chunk sent within the association, but MAY be bundled with one or more DATA chunks or SACK chunk in the same SCTP packet. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 11 Chunk Flags Length = 4 Shutdown Complete (SHUTDOWN COMPLETE) This chunk MUST be used to acknowledge the receipt of the SHUTDOWN ACK chunk at the completion of the shutdown process. The SHUTDOWN COMPLETE chunk has no parameters. 4 5 6 7 8 9 4 5 6 7 8 9 4 5 6 7 8 9 0 1 Type = 14 Reserved T Length = 4