1 / 27

PR-SCTP ( P artially R eliable)

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. Some quick background…. RFC 3758 May 2004 Implemented technology

mariel
Télécharger la présentation

PR-SCTP ( P artially R eliable)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PR-SCTP (Partially Reliable) 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

  2. Some quick background… • RFC 3758 • May 2004 • Implemented technology • Designed in part by Dr. Philip Conrad of our department

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

  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

  5. The anatomy of a loss event Received & buffered Free buffer Received & delivered Lost 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!

  6. Partial Reliability • Application defined controlled loss • Sender can give up on a message • We will call this “abandonment”

  7. “Undo” or “Expire” Application GPS Not PR-SCTP!! transport transport

  8. 50 10 9 8 7 6 5 4 3 2 1 … 10 9 8 50 5 3 1 acceptable  3 frames/sec … 9 7 1 50 10 5 3 … unacceptable < 3 frames/sec retransmissions Controlled loss / partial reliability 10 second video 5 frames/sec Not PR-SCTP!!

  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 Forward TSN Supported is Param Type 49152 Assigned by ICANN INIT-ACK w/ Fwd TSN Supported

  10. FWD TSN 3 FWD TSN 5 FWD TSN 4 An Example – Actual PR-SCTP Delivery 1 2 1 3 4 2 5 6 7 8 2 9 2 10 2 2 2 Lifetimes 3 4 3 5 3 3 4 6-10 10

  11. 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

  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...

  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

  14. FWD TSN 3 FWD TSN 5 FWD TSN 4 An Example – Actual PR-SCTP Delivery 1 2 1 3 4 2 5 6 7 8 2 9 2 10 2 2 2 Lifetimes 3 4 3 5 3 3 4 6-10 10

  15. An Example Adv.Ack.Pt = new variable for PR that tracks where we want the receiver to be expecting. On arrival of a SACK, if Sack.CumAck < Adv.Ack.Pt then Adv.Ack.Pt = Sack.CumAck 2 acked Adv.Ack.Pt -> 3 abandoned 4 abandoned 5 6 2 acked 3 abandoned Adv.Ack.Pt -> 4 abandoned 5 6

  16. FWD TSN 3 FWD TSN 5 FWD TSN 4 An Example – Actual PR-SCTP Delivery 1 2 1 3 4 2 5 6 7 8 2 9 2 10 2 2 2 Lifetimes 3 4 3 5 3 3 4 6-10 10

  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

  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??

  19. Type Flags Length Chunk Data 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!!

  20. Introducing: Forward Cumulative TSN Type = 192 Flags = 0x00 Length New Cumulative TSN Stream-1 Stream Sequence-1 ... Stream-n Stream Sequence-n • Chunk Type of 192 assigned by ICANN • Sender-only chunk type!

  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

  22. Streams in Detail • TCP Receive Buffer 0 1 2 3 Sequential Sequence (Byte) Numbers • SCTP Receive/Reorder Buffers 0 1 2 11 12 Stream 1 Stream 2 3 6 8 9 4 5 7 Stream 3 10 Sequential Stream Sequence (Chunk) Numbers

  23. TSN Used to ensure reliability Stream Seq. # Used to provide ordering TSN vs Stream Seq. #

  24. FWD TSN 4 FWD TSN 3 FWD TSN 5 FDW-TSN Illustrated Delivery Stream 1 1 3 8 1 2 1 3 4 2 5 6 7 8 7 2 9 2 10 2 9 2 10 2 Lifetimes Stream 2 2 9 7 10 3 4 3,8 5 3 4 3 Stream 3 6 4 5 6 10

  25. Why stream info? Type = 192 Flags = 0x00 Length New Cumulative TSN = z Stream-1 Stream Sequence = x Stream-2 Stream Sequence = y Since each chunk is reviewed at sender to create Fwd-TSN, we pass that work to the receiver!

  26. 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!

  27. Questions/Comments/Flames?

More Related