1 / 19

NR-SACKs ( N on- R enegable S elective Ack nowledgments ) ‏

NR-SACKs ( N on- R enegable S elective Ack nowledgments ) ‏. I-D.natarajan-tsvwg-sctp-nrsack-00 (work in progress). CISC 856 TCP/IP & UPPER LAYER PROTOCOLS. Ertuğrul Yılmaz. November 29, 2007. Thanks To: Dr. Paul Amer. Data Acknowledgment.

crete
Download Presentation

NR-SACKs ( N on- R enegable S elective Ack nowledgments ) ‏

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. NR-SACKs(Non-Renegable SelectiveAcknowledgments )‏ I-D.natarajan-tsvwg-sctp-nrsack-00 (work in progress) CISC 856 TCP/IP & UPPER LAYER PROTOCOLS Ertuğrul Yılmaz November 29, 2007 Thanks To: Dr. Paul Amer

  2. Data Acknowledgment • Cumulative Acknowledgment (ACK)Cum-Ackn: -all data up to but not including byte n (TCP) -all TSNs up to and including TSN n (SCTP) • Selective Acknowledgment (SACK)Informs data sender of data received out-of-order • Duplicate SACK (D-SACK)Informs data sender of duplicate data • In SCTP, these three types of acknowledgment information are carried in a SACK chunk • I will refer to these Acks as:cum-acks, gap-acks, dup-TSNs

  3. Reneging Example TSN = 10 10 cum-ack 10 TSN = 11&12 13 10 TSN = 13 cum-ack 10; gap-ack 3-3 receiver sender Window decreases TSN = 14 Window increases TSN = 15 cum-ack 10; gap-ack 5-5 15 :Loss :rwnd -receive buffer

  4. Reneging • reneging - receiver gap-acks data and later discards it • Reneging is discouraged, but permitted (Receiver might run out of buffer space) • Sender’s responsibility to recover from reneging: • keep gap-acked data chunks in retransmission queue until the data chunks are cum-acked • if the receiver reneges on a data chunk, then reconsider that chunk for retransmission • Retransmission queue contains the data chunks that have been transmitted but NOT yet cum-acked

  5. SCTP multistreaming revisited 5 6 7 8 9 sent from application delivered to application objects in send buffer receive buffer cum-ack 1 retransmission loss cum-ack 8 cum-ack 9 cum-ack 1 ; Gap-ack 2-3 cum-ack 1 ; Gap-ack 2-7 cum-ack 1 ; Gap-ack 2-4 cum-ack 1 ; Gap-ack 2-2 cum-ack 1 ; Gap-ack 2-5 cum-ack 1 ; Gap-ack 2-6 stream 1 stream 2 stream 3 SCTP association Web client Web server

  6. NR-SACK • Cumulative Ack– cum-ackCum-Ackn: ACKs all TSNs up to and including TSN n • Selective Ack (SACK) – gap-ackInforms data sender of data received out-of-order • Duplicate Selective Ack (D-SACK) – dup-TSNInforms the data sender of the duplicate data • Non-Renegable Selective Ack (NR-SACK) –nr-gap-ackInforms data sender of out-of-order TSNs that are NOT renegable • cum-ack, gap-ack, dup-TSN, and nr-gap-ack info are carried in NR-SACK chunk

  7. Now with NR-SACKs 5 6 7 8 9 sent from application delivered to application objects in send buffer receive buffer cum-ack 1 retransmission loss cum-ack 1;gap-ack 2-4 nr-gap-ack 4-4 cum-ack 1 ; Gap-ack 2-3 cum-ack 1 ; Gap-ack 2-2 cum-ack 9 cum-ack 8 cum-ack 1;gap-ack 2-5 nr-gap-ack 4-5 cum-ack 1;gap-ack 2-7 nr-gap-ack 4-7 cum-ack 1;gap-ack 2-6 nr-gap-ack 4-6 stream 1 stream 2 stream 3 SCTP association Web client Web server

  8. With NR-SACK • The receiver takes the responsibility for the nr-gap-acked data chunks • The sender isreleased from the responsibility of keeping those data chunks in its RQ • Benefits: send buffer is utilized better • Remove nr-gap-acked data chunks from RQ • New data chunks can be put into the send buffer in place of the removed nr-gap-acked data chunks • More data can be transmitted within the same amount of time, improved throughput RQ : Retransmission Queue

  9. What data can be nr-gap-acked • With multistreamed SCTP • Any out-of-order data that is in-sequence within its stream can be delivered to the application • SCTP allows for unordered data transfer • Any data tagged as unordered –U flag in data chunk, can be delivered to the application • data delivered to the application should be nr-gap-acked –impossible to be reneged • Any other data that the receiver guarantees never to renege can also be nr-gap-acked

  10. Web client never reneges 5 6 7 8 9 sent from application delivered to application objects in send buffer receive buffer cum-ack 1 retransmission loss cum-ack 1 ; nr-gap-ack 2-2 cum-ack 1 nr-gap-ack 2-4 cum-ack 1 ; nr-gap-ack 2-3 cum-ack 9 cum-ack 8 cum-ack 1 nr-gap-ack 2-5 cum-ack 1 nr-gap-ack 2-6 cum-ack 1 nr-gap-ack 2-7 stream 1 stream 2 stream 3 SCTP association Web client Web server

  11. SACK CHUNK cum-ack Chunk Flags Type = 0x03 Chunk Length gap-acks Cumulative TSN Ack Advertised Receiver Window Credit Number of Gap-Ack Blocks = N Number of Duplicate TSNs = X dup-TSNs Gap Ack Block #1 End Gap Ack Block #1 Start ……………………………………… Gap Ack Block #N Start Gap Ack Block #N End Duplicate TSN 1 ……………………………………… Duplicate TSN X

  12. NR-SACK CHUNK cum-ack Chunk Flags Type = 0x10 Chunk Length gap-acks Cumulative TSN Ack Advertised Receiver Window Credit Number of Gap-Ack Blocks = N Number of NR-Gap-Ack Blocks = M dup-TSNs Number of Duplicate TSNs = X U N U S E D Gap Ack Block #1 End Gap Ack Block #1 Start ……………………………………… Gap Ack Block #N Start Gap Ack Block #N End NR-Gap Ack Block #1 End NR-Gap Ack Block #1 Start nr-gap-acks ……………………………………… NR-Gap Ack Block #M Start NR-Gap Ack Block #M End Duplicate TSN 1 ……………………………………… Duplicate TSN X

  13. SCTP With SACKs INIT SCTP Association Startup INIT-ACK SCTP Association Startup COOKIE-ECHO COOKIE-ACK DATA SCTP Data Transfer SACKs(cum-ack,gap-ack,dup-TSNs)

  14. NR-SACK Negotiation INIT – NR-SACKs Supported SCTP Association Startup INIT-ACK – NR-SACKs Supported SCTP Association Startup COOKIE-ECHO COOKIE-ACK DATA SCTP Data Transfer NR-SACKs(cum-ack,gap-ack,dup-TSN,nr-gap-ack)

  15. Send Buffer Blocking • Send window = min (cwnd, rwnd, send buffer) • Assume cwnd is large enough to transmit new data chunks • Assume rwnd is large enough to transmit new data chunks • The send buffer is relatively small Send Buffer Retransmission Queue TSNs sent but not yet cum-acked TSNs not yet transmitted ► Application cannot pass new T-SDUs to the transport sctp ► SCTP transport sender cannot transmit new T-PDUs min (cwnd, rwnd)

  16. RQ Utilization With SACKs cum-ack and gap-acks With NR-SACKs cum-ack and gap-acks and nr-gap-acks Retransmission Queue Retransmission Queue TSNs sent but not yet cum-acked not yet nr-gap-acked or cum-acked RQ : Retransmission Queue, : Freed up buffer space

  17. 64K Send Buffer (RTT=90ms) Throughput(bits/s) error rate

  18. 16K Send Buffer (RTT=90ms) Throughput(bits/s) error rate

  19. THANK YOU!!!

More Related