Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course: CISC 856: TCP/IP and Upper Layer Protocols

Similar presentations


Presentation on theme: "Course: CISC 856: TCP/IP and Upper Layer Protocols"— Presentation transcript:

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 Duplicates are possible Data integrity Data integrity (optional) Flow control No flow 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 INIT–ACK with Forward-TSN-Supported parameter COOKIE–ECHO COOKIE–ACK 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 Receiver Window Outbound Streams Maximum Inbound Streams 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 ACK’ed 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 < 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 > 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 Sender’s Out Queue TSN Status 102 103 abandoned 104 105 106 acked adv.peer.ack.pnt  acked adv.peer.ack.pnt  adv.peer.ack.pnt  A Forward TSN with New Cum. TSN = 104 is sent!

13 a.p.a.p. = 0 tsn = 1 Receiver Buffer tsn = 2 tsn = 3 c.a. = 1 1 1 tsn = 4 tsn = 5 c.a. = 2 1 2 1 2 tsn = 6 tsn = 7 c.a. = 2 6 1 2 a.p.a.p. = 1 c.a. = 2 6 1 2 7 a.p.a.p. = 2 a.p.a.p. = 2 a.p.a.p. = 2 tsn = 3 tsn = 4 tsn = 5 c.a. = 3 6 1 2 3 7 6 1 2 3 7 a.p.a.p. = 3 fwd tsn = 3 a.p.a.p. = 4 fwd tsn = 4 c.a. = 3 6 1 2 3 7 a.p.a.p. = 5 fwd tsn = 5 c.a. = 4 4 6 1 2 3 7 c.a. = 7 4 5 6 1 2 3 7 4 5 6 1 2 3 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 Stream-1 Streams Sequence-1 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 Sender’s Out Queue TSN STR SSN Status 102 1 54 103 55 abandoned 104 2 32 105 56 106 33 Chunk Type 0xC0 (192) Flags 0x00 (0) Length = Variable New Cumulative TSN = 105 1 56 2 32 adv.peer.ack.pnt  acked 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 Receiver’s In Queue TSN Status 102 received 103 missing 104 105 106 107 cum.TSN.pnt  cum.TSN.pnt  cum.TSN.pnt  cum.TSN.pnt  The new Cum. TSN point = 105!

19 Stream Reorder Queues Stream 1 1 3 1 1 1 3 Stream 2 2 7 2 7 2 2
a.p.a.p. = 0 tsn = 1 str = 1 seq = 1 tsn = 2 str = 2 seq = 1 tsn = 3 str = 1 seq = 2 c.a. = 1 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 1 3 1 1 1 3 Stream 2 a.p.a.p. = 2 a.p.a.p. = 2 2 7 2 7 2 2 tsn = 3 str = 1 seq = 2 Stream 3 tsn = 4 str = 3 seq = 1 tsn = 5 str = 3 seq = 2 c.a. = 3 4 6 4 5 6 6 4 5 6 a.p.a.p. = 3 fwd tsn = 3 str = 1 seq = 2 a.p.a.p. = 4 fwd tsn = 4 str = 3 seq = 1, str = 1 seq = 2 c.a. = 3 a.p.a.p. = 5 fwd tsn = 5 str = 3 seq = 2, str = 1 seq = 2 c.a. = 4 c.a. = 7

20 Special Cases A FORWARD TSN is lost! A SACK for a FORWARD TSN is lost!
SACK’s from the receiver will generate FORWARD-TSN’s 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

21 Special Cases A FORWARD TSN with new cum ack <= 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!


Download ppt "Course: CISC 856: TCP/IP and Upper Layer Protocols"

Similar presentations


Ads by Google