Top Banner
PR-SCTP (P artially R eliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy of: Dr. Paul Amer, Jana Iyengar
27

PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

Mar 31, 2015

Download

Documents

Luisa Edes
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

PR-SCTP (Partially Reliable)

Ethan M GiordanoCISC865TCP/IP & Upper Layer ProtocolsUniversity of DelawareNovember 22, 2005

Some slides/graphics courtesy of:Dr. Paul Amer, Jana Iyengar

Page 2: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

Some quick background…

• RFC 3758

• May 2004

• Implemented technology

• Designed in part by Dr. Philip Conrad of our department

Page 3: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

3

Overview

• Motivation for PR Service• SCTP Extensions – How?• PR-SCTP Extension• Some Examples• Summary

Page 4: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

4

Shades of Reliability

• Reliable (TCP/SCTP)– No-loss– In-order– No duplicates– Data integrity

• “Unreliable” (UDP)– Maybe loss– Maybe unordered– Maybe duplicates– Data integrity

(optional)

• Partial Reliability (PR-SCTP)

– Controlled-loss– In-order– No duplicates– Data integrity

Page 5: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

5

The anatomy of a loss event

Received & delivered

Received & buffered

Free bufferLost Chunk!!

• What happens to blue chunks while red one is missing?– Waiting!

• What if blue chunks are time sensitive?– Application is waiting on information that is

already available!

Page 6: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

6

Partial Reliability

• Application defined controlled loss– Sender can give up on a message– We will call this “abandonment”

Page 7: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

“Undo” or “Expire”

ApplicationGPS

transport

transport

Not PR-SCTP!!

Page 8: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

Controlled loss / partial reliability

acceptable 3 frames/sec

unacceptable < 3 frames/sec

10 second video 5 frames/sec

…12310 8 7 6 45950

35…

50 10

…1350 10 89 5

179

retransmissions

Not PR-SCTP!!

Page 9: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

9

Association Setup• First part of using an extension is to

negotiate it during association setup (similar to TCP SACK)

INIT w/ Fwd TSN Supported

INIT-ACK w/ Fwd TSN Supported

Forward TSN Supportedis Param Type 49152

Assigned by ICANN

Page 10: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

10

An Example – Actual PR-SCTP

FWD TSN 3

Delivery12

3

6-10

Lif

etim

es1234

1098

4

5

7

3

6

5

2

22

2

2

3

3

FWD TSN 4FWD TSN 5 4

10

Page 11: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

PR-SCTP

• Sender can artificially advance the expected TSN value of the receiver– Accomplished by sending a Forward-TSN

• Receiver then makes available all received data up to this new point and then continues on

Page 12: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

12

Message Abandonment

• An “abandoned” chunk is one which the sender has marked as such for various possible reasons– Expired lifetime without being ACK'd– Explicit decision from upper layer

• Once abandoned:– Treated as ACK'd and not outstanding– Does not count toward expanding cwnd!– Need to notify the receiver...

Page 13: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

13

Notifying the Receiver

• The heart of the PR extension

• Send a Forward Cumulative TSN– Otherwise receiver would forever be expecting

this chunk which is not coming!

• But a Fwd-TSN could be lost!!– SACK's from the receiver generate Fwd-TSN's

Page 14: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

14

An Example – Actual PR-SCTP

FWD TSN 3

Delivery12

3

6-10

Lif

etim

es1234

1098

4

5

7

3

6

5

2

22

2

2

3

3

FWD TSN 4FWD TSN 5 4

10

Page 15: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

15

An ExampleAdv.Ack.Pt = new variable for PR that tracks where we want the receiver to be expecting. On arrival of a SACK, ifSack.CumAck < Adv.Ack.Pt then Adv.Ack.Pt = Sack.CumAck

2 ackedAdv.Ack.Pt -> 3 abandoned 4 abandoned 5 6

2 acked 3 abandoned

Adv.Ack.Pt -> 4 abandoned 5 6

Page 16: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

16

An Example – Actual PR-SCTP

FWD TSN 3

Delivery12

3

6-10

Lif

etim

es1234

1098

4

5

7

3

6

5

2

22

2

2

3

3

FWD TSN 4FWD TSN 5 4

10

Page 17: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

17

An Example

2 acked 3 abandoned

Adv.Ack.Pt -> 4 abandoned 5 abandoned 6

2 acked 3 abandoned 4 abandoned

Adv.Ack.Pt -> 5 abandoned 6

Page 18: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

18

RULE• If after moving Adv.Ack.Pt it is greater

than the SACK.CumAck the sender must send a Fwd-TSN

How is the Fwd-TSN constructed??

Page 19: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

19

How does one extend a protocol?

• Designers allowed 8 bits for the chunk type

— 256 chunk types!!— Base protocol uses 13 types— That's 243 types for extensions!!

Flags Length

Chunk Data

Type

Page 20: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

20

Introducing: Forward Cumulative TSN

Type = 192 LengthFlags = 0x00

New Cumulative TSN

Stream-1

Stream-n

Stream Sequence-1

Stream Sequence-n

...

•Chunk Type of 192 assigned by ICANN

•Sender-only chunk type!

Page 21: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

21

FWD-TSN Construction

• The basic piece of information is the new CUMULATIVE TSN for the receiver to use• Plus an entry for each affected stream

• Stream data waits in a reorder buffer at the receiver• This information in the Fwd-TSN makes it simple for the receiver to know which chunks to now deliver

Page 22: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

22

Streams in Detail•TCP Receive Buffer

0 1 2 3

Sequential Sequence (Byte) Numbers

•SCTP Receive/Reorder Buffers

0 1 2

3 6 8 9

4 5 107

1112Stream 1

Stream 2

Stream 3

Sequential Stream Sequence (Chunk) Numbers

Page 23: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

TSN vs Stream Seq. #

• TSN– Used to ensure

reliability

• Stream Seq. #– Used to provide

ordering

Page 24: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

24

FDW-TSN Illustrated

Stream 2

Stream 1

Stream 3

FWD TSN 3

Delivery12

3,8

6L

ifet

imes

1234

1098

4

5

7

3

6

5

2

22

22

3

3

FWD TSN 4FWD TSN 54

10

1 3

2

4

7

5

8

9

6

10

7910

Page 25: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

25

Why stream info?

Type = 192 LengthFlags = 0x00

New Cumulative TSN = z

Stream-1

Stream-2

Stream Sequence = x

Stream Sequence = y

Since each chunk is reviewed at sender to create Fwd-TSN, we pass that work to the receiver!

Page 26: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

RFC – What it defines…

• “Timed reliability”– All of the examples with lifetime used this

• Can we think of others??– Of course….– RFC gives guidelines for their creation!

Page 27: PR-SCTP (Partially Reliable) Ethan M Giordano CISC865 TCP/IP & Upper Layer Protocols University of Delaware November 22, 2005 Some slides/graphics courtesy.

Questions/Comments/Flames?