26
1 Outline History Introduction Packets Association/ Termination Data Transmission concepts Multihoming Streams SCTP- Stream Control Transmission Protocol

SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

1

Outline

History Introduction Packets Association/ Termination Data Transmission concepts Multihoming Streams

SCTP- Stream Control Transmission Protocol

Page 2: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

2

History

Developed by IETF SIGTRAN working group(Internet Engineering Task Force)(SIGnaling TRANsport)

SCTP standard draft paper (RFC2960) released in October 2000(http://www.ietf.org/rfc/rfc2960.txt)

SCTP- Stream Control Transmission Protocol

Page 3: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

3

Introduction

Transport protocol for connectionless packet transmissions

Like TCP or UDP it works on top of connectionless transport services such as IP

SCTP is designed to deal with unreliability of connectionless transport

SCTP- Stream Control Transmission Protocol

Page 4: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

4

Introduction

Checksums and sequence numbers acknowledgements error free transfer non- duplicated transfer

congestion avoidance resistance of several attacks like blind

spoofing

SCTP- Stream Control Transmission Protocol

Page 5: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

5

Introduction

Difference to protocols like TCP multihoming (multible streams in one

connection)

Layer betweenSCTP user applicationand packet service

SCTP- Stream Control Transmission Protocol

[RFC2960]

Page 6: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

6

Packets

SCTP- Stream Control Transmission Protocol

[SCTP]

Page 7: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

7

Packets

Consist of common header and one or more chunks

Packet can be up to the maximum payload length of the transport service protocol (IP: 65515 Bytes)

Chunk can contain control information or user data

Some control packets have to consist of the common header and one chunk

SCTP- Stream Control Transmission Protocol

Page 8: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

8

Packets

Header 2 Bytes source Port 2 Bytes destination Port Verification tag is established at

association startup Checksum is calculated with Adler-32

algorithm

SCTP- Stream Control Transmission Protocol

Page 9: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

9

Packets

Chunks

SCTP- Stream Control Transmission Protocol

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)

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Chunk Type | Chunk Flags | Chunk Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ \ \ / Chunk Value / \ \ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

[RFC2960]

[RFC2960]

Page 10: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

10

Packets

Chunks

SCTP- Stream Control Transmission Protocol

Chunks Chunk flags depend on types. If there are no

flags, they are set to zero and ignored.

Chunk length is the byte- length of the junk including all fields.

Detailed description of each chunk type can be found at [RFC2960]

Page 11: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

11

Association

SCTP- Stream Control Transmission Protocol

A BINIT

Create COOKIEINIT-ACK

COOKIE-ECHO

COOKIE-ACK

Validate COOKIEAllocate ResourcesConnection ESTABLISHED

Send back COOKIE

Allocate Resources

Connection ESTABLISHED

Page 12: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

12

Association

Association is completed after exchanging 4 messages

Upper layer of A initiates association request

A sends INIT- chunk and initialises all necessary data structures

B receives chunk, generates secure HASH and secret key (MD5, SHA1)

SCTP- Stream Control Transmission Protocol

Page 13: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

13

Association

With this values a so called COOKIE is created and sent to A in a INIT-ACK chunk

A receives INIT-ACK, creates a COOKIE-ECHO chunk, puts received COOKIE into chunk and sends it back

B valitates COOKIE. If valid, all necessary data for the association is allocated

SCTP- Stream Control Transmission Protocol

Page 14: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

14

Association

COOKIE-ACK is sent to A and B goes to state ESTABLISHED.

After receiving COOKIE-ACK, A goes to state ESTABLISHED

SCTP- Stream Control Transmission Protocol

Page 15: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

15

Termination

SCTP- Stream Control Transmission Protocol

A BSHUTDOWN

SHUTDOWN-ACK

SHUTDOWN-COMPLETE

All dataacknowledged

All dataacknowledged

removeassociationdata

Graceful termination

Page 16: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

16

Termination

Graceful termination no data loss SHUTDOWN chunk is sent by A after all his

data is acknowledged B responds by sending SHUTDOWN-ACK chunk

after his data is acknowledged A sends SHUTDOWN-COMPLETE chunk and

removes association data After receiving this chunk B removes

association data.

SCTP- Stream Control Transmission Protocol

Page 17: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

17

Termination

Abort the association A sends ABORT chunk, taking into account,

that some data meight not be acknowledged. B validates this chunk, but does not respond Both delete association data immediately.

SCTP- Stream Control Transmission Protocol

Page 18: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

18

Data transmission concepts

Multihoming only data of stream, not of connection needs

to be maintained reduces waiting time by sending independend

data on different streams.

Data loss and duplication detection numbering each Data chunk with TSN

(Transport Sequence Number) ACKs are based on these numbers

SCTP- Stream Control Transmission Protocol

Page 19: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

19

Data transmission concepts

Selective ACKs (SACK) not packets, but chunks are acknowledged SACK is used to

acknowledge chunks inform sender about

gaps in TSNs about duplicated TSNs

SCTP- Stream Control Transmission Protocol

[RFC2960]

Page 20: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

20

Data transmission concepts

Congestion control Congestion control is based on TCP-

congestion control Variables kept for congestion control:

adertised window size (rwnd) (receiver buffer size)- kept once per association

congestion control window (cwnd) (network conditions)- kept for every path in association

slow start threshold (ssthresh)- kept for every path in association

partial_bytes_acked (difference to TCP) because also chunks are acknowledged.

SCTP- Stream Control Transmission Protocol

Page 21: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

21

Data transmission concepts

Congestion control modes of operation Slow start: for every correct received and

acknowledged packet cwnd is increased (sender can send faster)

Congestion avoidance: After cwnd reaches ssthresh value. cwnd is still increased, but slower.

SCTP- Stream Control Transmission Protocol

Page 22: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

22

Multihoming

use of multihomed nodes reachable under several addresses possibly physically different connection paths

(network failure tolerance)

Addresses are exchanged in the INIT and INIT-ACK chunks

Inactive paths are monitored by sending HEARTBEAT chunks (answered by HEARTBEAT-ACK chunks)

SCTP- Stream Control Transmission Protocol

Page 23: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

23

Streams

Transfer and delivery are seperated Two levels of operation

Data transfer level (checksum, sequence number, SACK)

Data delivery level: delivering of data in correct order

Enables specific adoption of protocol If strict order is not necessary, there is option

of „order-of-arrival“ delivery

SCTP- Stream Control Transmission Protocol

Page 24: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

24

Questions

How many messages are exchanged during SCTP association and what is the advantage of this method?

4 messages are exchanged: INIT, INIT-ACK, COOKIE-ECHO, COOKIE-ACK

The advantage is, that the receiver has to allocate all resources not until the third message was exchanged. That is a security mechanism against attacks like blind spoofing.

SCTP- Stream Control Transmission Protocol

Page 25: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

25

Questions

What is the main difference in the SCTP protocol compared to TCP and what is the advantage?

The concept of multihoming. More than one connection (stream) can be established during one association.

If this streams use different physical paths, network failure can be compensated.

SCTP- Stream Control Transmission Protocol

Page 26: SCTP- Stream Control Transmission Protocolledvina/DHT/tugraz/SCTP.pdf · 3 Introduction Transport protocol for connectionless packet transmissions Like TCP or UDP it works on top

26

References

[RFC2960] Network Working Group; Stream Control Transmission Protocol; 2000;http://www.ietf.org/rfc/rfc2960.txt

[SCTP] A. Jungmaier; SCTP for beginners; 2001- 2003http://tdrwww.exp-math.uni-essen.de/inhalt/forschung/sctp_fb/index.html

SCTP- Stream Control Transmission Protocol