Upload
crete
View
49
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
NR-SACKs (Non-Renegable Selective Acknowledgments )
Ertuğrul Yılmaz
CISC 856 TCP/IP & UPPER LAYER PROTOCOLS
November 29, 2007
I-D.natarajan-tsvwg-sctp-nrsack-00 (work in progress)
1
Thanks To:
Dr. Paul Amer
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 2
Reneging Example
sender
receiver
TSN = 10
TSN = 15
TSN = 13
cum-ack 10
TSN = 11&12
:Loss
TSN = 14
cum-ack 10; gap-ack 3-3
10
13
15
Window decreases
Window increases
cum-ack 10; gap-ack 5-5
:rwnd -receive buffer
10
3
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
Reneging
4
stream 1
stream 2
stream 3
delivered to application
SCTP multistreaming revisited
retransmission
receive buffer
Web server Web clientSCTP association
loss
objects in send buffer
sent from application
5 67 8 9
cum-ack 1cum-ack 1 ;Gap-ack 2-2cum-ack 1 ;Gap-ack 2-3cum-ack 1 ;Gap-ack 2-4cum-ack 1 ;Gap-ack 2-5cum-ack 1 ;Gap-ack 2-6cum-ack 1 ;Gap-ack 2-7cum-ack 8cum-ack 9
5
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
6
stream 1
stream 2
stream 3
delivered to application
Now with NR-SACKs
retransmission
receive buffer
Web server Web clientSCTP association
loss
objects in send buffer
sent from application
5 67 8 9
cum-ack 1cum-ack 1 ;Gap-ack 2-2cum-ack 1 ;Gap-ack 2-3
cum-ack 1;gap-ack 2-4nr-gap-ack 4-4cum-ack 1;gap-ack 2-5
nr-gap-ack 4-5cum-ack 1;gap-ack 2-6 nr-gap-ack 4-6cum-ack 1;gap-ack 2-7 nr-gap-ack 4-7
cum-ack 8cum-ack 9
7
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
With NR-SACK
RQ : Retransmission Queue8
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
9
stream 1
stream 2
stream 3
delivered to application
Web client never reneges
retransmission
receive buffer
Web server Web clientSCTP association
loss
objects in send buffer
sent from application
5 67 8 9
cum-ack 1cum-ack 1 ;nr-gap-ack 2-2cum-ack 1 ;nr-gap-ack 2-3cum-ack 1nr-gap-ack 2-4cum-ack 1nr-gap-ack 2-5cum-ack 1 nr-gap-ack 2-6cum-ack 1nr-gap-ack 2-7cum-ack 8cum-ack 9
10
SACK CHUNKType = 0x03
Chunk Flags Chunk Length
Cumulative TSN Ack
Advertised Receiver Window Credit
Number of Gap-Ack Blocks = N
Gap Ack Block #1 Start Gap Ack Block #1 End
………………………………………
Duplicate TSN 1
Duplicate TSN X
Gap Ack Block #N Start Gap Ack Block #N End
………………………………………
Number of Duplicate TSNs = X
cum-ack
gap-acks
dup-TSNs
11
NR-SACK CHUNKType = 0x10
Chunk Flags Chunk Length
Cumulative TSN Ack
Advertised Receiver Window Credit
Number of NR-Gap-Ack Blocks = MNumber of Gap-Ack Blocks = N
Gap Ack Block #1 Start Gap Ack Block #1 End
………………………………………
Duplicate TSN 1
Duplicate TSN X
Gap Ack Block #N Start Gap Ack Block #N End
………………………………………
Number of Duplicate TSNs = X U N U S E D
NR-Gap Ack Block #1 Start NR-Gap Ack Block #1 End
………………………………………
NR-Gap Ack Block #M Start NR-Gap Ack Block #M End
cum-ack
gap-acks
dup-TSNs
nr-gap-a
cks
12
SCTP With SACKs
INIT
INIT-ACK
COOKIE-ACK
COOKIE-ECHO
SCTP Data Transfer
SCTP Association Startup
SCTP Association Startup
DATA
SACKs(cum-ack,gap-ack,dup-TSNs)
13
NR-SACK Negotiation
INIT – NR-SACKs Supported
INIT-ACK – NR-SACKs Supported
COOKIE-ACK
COOKIE-ECHO
SCTP Data Transfer
SCTP Association Startup
SCTP Association Startup
DATA
NR-SACKs(cum-ack,gap-ack,dup-TSN,
nr-gap-ack)
14
Send Buffer
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 Blocking
TSNs not yet transmitted
min (cwnd, rwnd)
TSNs sent but not yet cum-acked
Retransmission Queue
► Application cannot pass new T-SDUs to the transport sctp► SCTP transport sender cannot transmit new T-PDUs
15
RQ Utilization
TSNs sent but not yet cum-acked
Retransmission Queue
With SACKs
With NR-SACKs
not yet nr-gap-acked or cum-acked
Retransmission Queue
cum-ack and gap-acks
cum-ack and gap-acks
and nr-gap-acks
: Freed up buffer spaceRQ : Retransmission Queue,
16
64K Send Buffer (RTT=90ms)
17
error rate
Throughput(bits/s)
16K Send Buffer (RTT=90ms)
18
error rate
Throughput(bits/s)
THANK YOU!!!