Stream Control Transmission Protocol Partial Reliability Extension (PR-SCTP) - PowerPoint PPT Presentation

About This Presentation
Title:

Stream Control Transmission Protocol Partial Reliability Extension (PR-SCTP)

Description:

A chunk type (FORWARD TSN) indicates the receiver should move its cumulative ACK ... The sender MUST treat the data chunk as ACK'ed and no longer outstanding. ... – PowerPoint PPT presentation

Number of Views:230
Avg rating:3.0/5.0
Slides: 23
Provided by: nek88
Category:

less

Transcript and Presenter's Notes

Title: Stream Control Transmission Protocol Partial Reliability Extension (PR-SCTP)


1
Stream Control Transmission Protocol Partial
Reliability Extension (PR-SCTP)
  • Course CISC 856 TCP/IP and Upper Layer
    Protocols
  • Presented by Nasif Ekiz
  • Computer Information Sciences
  • University of Delaware
  • Thanks to Prof. Paul Amer, Ethan M Giordano

2
Outline
  • Motivation
  • Introduction
  • Partially Reliable Service
  • Negotiation between end-points
  • Sender side implementation
  • Receiver side implementation
  • Examples
  • Questions

3
Motivation
  • TCP (Reliable)
  • UDP (Unreliable)
  • PR-SCTP (Partially Reliable)

4
Motivation
5
Introduction
  • PR-SCTP is an extension to the Stream Control
    Transmission Protocol (SCTP) that allows an SCTP
    endpoint to signal its peer to move the
    cumulative ACK point forward.
  • RFC 3758
  • Implemented Technology
  • FreeBSD
  • Linux
  • Solaris

6
Reliability Comparison of Transport Layer
Protocols
Reliable Partially Reliable Unreliable
TCP, SCTP PR-SCTP UDP
No loss Controlled loss Loss is possible
In order/unordered data delivery In order/unordered data delivery Unordered data delivery
No duplicates No duplicates Duplicates are possible
Data integrity Data integrity Data integrity (optional)
Flow control Flow control No flow control
Congestion control Congestion control No congestion control
7
Partial Reliability Extension
  • is achieved through two new elements
  • A parameter (Forward-TSN-Supported) in the
    INIT/INIT-ACK indicates whether the endpoint
    supports the extension.
  • A chunk type (FORWARD TSN) indicates the receiver
    should move its cumulative ACK point forward.

8
Negotiation of Partial Reliability
INIT with Forward-TSN-Supported parameter
INITACK with Forward-TSN-Supported parameter
COOKIEECHO
COOKIEACK
data
9
Forward-TSN-Supported Parameter
  • in INIT chunk

Common fields of INIT chunk
Chunk Type 0x01 (1) Flags 0 Length 0x18 (24)
Initiation Tag Initiation Tag Initiation Tag
Receiver Window Receiver Window Receiver Window
Outbound Streams Outbound Streams Maximum Inbound Streams
Initial Transmission Sequence Number (TSN) Initial Transmission Sequence Number (TSN) Initial Transmission Sequence Number (TSN)
Parameter type 0xC000 (49152) Parameter Length 0x0004 (4)
Optional Forward-TSN-Supported parameter
10
Definition of abandoned chunk
  • A PR-SCTP data sender MAY determine that a
    particular data chunk SHOULD NOT be transmitted
    or retransmitted further. Such a data chunk is
    referred as abandoned.
  • When a data chunk is abandoned
  • The sender MUST treat the data chunk as ACKed
    and no longer outstanding.
  • The sender MUST NOT advance the cwnd based on the
    abandoned data chunk.

11
Generating a Forward TSN
  • The data sender maintains a variable called
    Advanced Peer Ack Point.
  • Data sender MUST process the SACK
  • When a SACK is received
  • If (adv.peer.ack.point lt SACKCumAckPoint)
  • adv.peer.ack.point SACKCumAckPoint
  • Try to further advance adv.peer.ack.point
  • When a data chunk is marked abandoned
  • Try to advance adv.peer.ack.point
  • If adv.peer.ack.point gt SACKCumAckPoint
  • Data sender MUST send data receiver a Forward TSN
    chunk containing the latest value of
    adv.peer.ack.point.

12
Advancing adv.peer.ack.point with SACK information
  • A SACK with cum. ack. 102 arrives

Senders Out Queue
TSN Status

102
103 abandoned
104 abandoned
105
106 acked

acked
adv.peer.ack.pnt ?
adv.peer.ack.pnt ?
adv.peer.ack.pnt ?
  • A Forward TSN with New Cum. TSN 104 is sent!

13
tsn 1
a.p.a.p. 0
Receiver Buffer
tsn 2
tsn 3
c.a. 1
tsn 4
c.a. 2
tsn 5
tsn 6
tsn 7
c.a. 2
a.p.a.p. 1
c.a. 2
a.p.a.p. 2
a.p.a.p. 2
a.p.a.p. 2
tsn 3
tsn 4
tsn 5
c.a. 3
a.p.a.p. 3
fwd tsn 3
a.p.a.p. 4
fwd tsn 4
c.a. 3
a.p.a.p. 5
fwd tsn 5
c.a. 4
c.a. 7
a.p.a.p. Advanced Peer Ack Point c.a.
Cumulative ACK
14
Forward Cumulative TSN chunk format
  • Generated only by data sender

Chunk Type 0xC0 (192) Flags 0x00 (0) Length Variable
New Cumulative TSN New Cumulative TSN New Cumulative TSN
Stream-1 Stream-1 Streams Sequence-1

Stream-N Stream-N Streams Sequence-N
15
Forward Cumulative TSN chunk construction
  • For each abandoned TSN, if chunk has valid
    stream and sequence number (ordered delivery),
    the data sender MUST include those numbers.
  • Each stream SHOULD be reported once.
  • If a Forward TSN is sent, the data sender MUST
    assure that at least one T3-rtx timer is running.

16
Generating a FORWARD TSN Example
  • A SACK with cum. ack. 102 arrives

Senders Out Queue
TSN STR SSN Status

102 1 54
103 1 55 abandoned
104 2 32 abandoned
105 1 56 abandoned
106 2 33

Chunk Type 0xC0 (192) Flags 0x00 (0) Length Variable
New Cumulative TSN 105 New Cumulative TSN 105 New Cumulative TSN 105
1 1 56
2 2 32
acked
adv.peer.ack.pnt ?
adv.peer.ack.pnt ?
adv.peer.ack.pnt ?
adv.peer.ack.pnt ?
17
Receiver Side Implementation of PR-SCTP
  • When a FORWARD TSN chunk arrives, receiver MUST
    update its cumulative TSN point
  • Try to further advance cumulative TSN point
  • Process FORWARD TSN chunk using stream and stream
    sequence numbers

18
Advancing Cumulative TSN Point
  • A FORWARD TSN with new cum. tsn 103 arrives

Receivers In Queue
TSN Status

102 received
103 missing
104 received
105 received
106 missing
107 received

cum.TSN.pnt ?
cum.TSN.pnt ?
cum.TSN.pnt ?
cum.TSN.pnt ?
  • The new Cum. TSN point 105!

19
a.p.a.p. 0
tsn 1 str 1 seq 1
tsn 2 str 2 seq 1
c.a. 1
tsn 3 str 1 seq 2
tsn 4 str 3 seq 1
c.a. 2
tsn 5 str 3 seq 2
tsn 6 str 3 seq 3
Stream Reorder Queues
tsn 7 str 2 seq 2
c.a. 2
a.p.a.p. 1
c.a. 2
Stream 1
a.p.a.p. 2
Stream 2
a.p.a.p. 2
a.p.a.p. 2
tsn 3 str 1 seq 2
Stream 3
tsn 4 str 3 seq 1
c.a. 3
tsn 5 str 3 seq 2
a.p.a.p. 3
fwd tsn 3 str 1 seq 2
a.p.a.p. 4
c.a. 3
fwd tsn 4 str 3 seq 1, str 1 seq 2
a.p.a.p. 5
c.a. 4
fwd tsn 5 str 3 seq 2, str 1 seq 2
c.a. 7
20
Special Cases
  • A FORWARD TSN is lost!
  • SACKs from the receiver will generate
    FORWARD-TSNs
  • If T3-rtx timer expires, a new FORWARD TSN will
    be generated
  • A SACK for a FORWARD TSN is lost!
  • New SACKs from the receiver can inform data
    sender that the FORWARD TSN is received
  • If T3-rtx timer expires, a new FORWARD TSN will
    be generated

21
Special Cases
  • A FORWARD TSN with new cum ack lt cum TSN pnt
    arrives at data receiver
  • Out of date
  • Send a SACK ( may indicate prev. SACK is lost!)
  • A FORWARD TSN updates the cum TSN point and a TSN
    that was skipped (abandoned) arrives
  • Drop the data chunk
  • Report the data chunk in SACK as duplicate

22
QUESTIONS?
THANK YOU!
Write a Comment
User Comments (0)
About PowerShow.com