Download presentation
Presentation is loading. Please wait.
1
NR-SACKs (Non-Renegable Selective Acknowledgments )
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-Ack n: -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 receiver sender TSN = 10 10 cum-ack 10 TSN = 11&12 10
13 cum-ack 10; gap-ack 3-3 sender receiver Window decreases TSN = 14 Window increases TSN = 15 15 cum-ack 10; gap-ack 5-5 :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 cum-ack 8 cum-ack 1 ; Gap-ack 2-3 cum-ack 1 ; Gap-ack 2-2 cum-ack 9 cum-ack 1 ; Gap-ack 2-6 cum-ack 1 ; Gap-ack 2-7 cum-ack 1 ; Gap-ack 2-5 cum-ack 1 cum-ack 1 ; Gap-ack 2-4 receive buffer retransmission loss stream 1 stream 2 stream 3 SCTP association Web client Web server
6
NR-SACK Cumulative Ack– cum-ack Cum-Ack n: ACKs all TSNs up to and including TSN n Selective Ack (SACK) – gap-ack Informs data sender of data received out-of-order Duplicate Selective Ack (D-SACK) – dup-TSN Informs the data sender of the duplicate data Non-Renegable Selective Ack (NR-SACK) –nr-gap-ack Informs 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
5 6 7 8 9 Now with NR-SACKs sent from application
delivered to application objects in send buffer cum-ack 8 cum-ack 1 ; Gap-ack 2-3 cum-ack 1 ; Gap-ack 2-2 cum-ack 9 cum-ack 1;gap-ack 2-6 nr-gap-ack 4-6 cum-ack 1;gap-ack 2-7 nr-gap-ack 4-7 cum-ack 1;gap-ack 2-5 nr-gap-ack 4-5 cum-ack 1 cum-ack 1;gap-ack 2-4 nr-gap-ack 4-4 receive buffer retransmission loss 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 is released 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 cum-ack 8 cum-ack 1 ; nr-gap-ack 2-3 cum-ack 1 ; nr-gap-ack 2-2 cum-ack 9 cum-ack 1 nr-gap-ack 2-6 cum-ack 1 nr-gap-ack 2-7 cum-ack 1 nr-gap-ack 2-5 cum-ack 1 cum-ack 1 nr-gap-ack 2-4 receive buffer retransmission loss stream 1 stream 2 stream 3 SCTP association Web client Web server
11
SACK CHUNK cum-ack ……………………………………… ……………………………………… gap-acks dup-TSNs
Type = 0x03 Chunk Flags 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 Start Gap Ack Block #1 End ……………………………………… Gap Ack Block #N Start Gap Ack Block #N End Duplicate TSN 1 ……………………………………… Duplicate TSN X
12
NR-SACK CHUNK nr-gap-acks cum-ack ……………………………………… ………………………………………
Type = 0x10 Chunk Flags Chunk Length Cumulative TSN Ack gap-acks Advertised Receiver Window Credit Number of Gap-Ack Blocks = N Number of NR-Gap-Ack Blocks = M Number of Duplicate TSNs = X U N U S E D Gap Ack Block #1 Start Gap Ack Block #1 End ……………………………………… Gap Ack Block #N Start Gap Ack Block #N End dup-TSNs NR-Gap Ack Block #1 Start nr-gap-acks NR-Gap Ack Block #1 End ……………………………………… NR-Gap Ack Block #M Start NR-Gap Ack Block #M End Duplicate TSN 1 ……………………………………… Duplicate TSN X
13
SCTP With SACKs DATA SACKs(cum-ack,gap-ack,dup-TSNs) INIT INIT-ACK
SCTP Association Startup INIT INIT-ACK COOKIE-ECHO COOKIE-ACK SCTP Data Transfer DATA SACKs(cum-ack,gap-ack,dup-TSNs)
14
NR-SACK Negotiation DATA NR-SACKs(cum-ack,gap-ack,dup-TSN,nr-gap-ack)
SCTP Association Startup INIT – NR-SACKs Supported INIT-ACK – NR-SACKs Supported COOKIE-ECHO COOKIE-ACK SCTP Data Transfer DATA 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 TSNs sent but not yet cum-acked Retransmission Queue TSNs not yet transmitted min (cwnd, rwnd) ► Application cannot pass new T-SDUs to the transport sctp ► SCTP transport sender cannot transmit new T-PDUs
16
RQ Utilization With SACKs cum-ack and gap-acks With NR-SACKs
cum-ack and gap-acks and nr-gap-acks TSNs sent but not yet cum-acked Retransmission Queue With NR-SACKs not yet nr-gap-acked or cum-acked Retransmission Queue : Freed up buffer space RQ : Retransmission Queue,
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!!!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.