19
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

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

  • Upload
    crete

  • View
    49

  • Download
    0

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

Page 1: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 2: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 3: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 4: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 5: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 6: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 7: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 8: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 9: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 10: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 11: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 12: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 13: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 14: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 15: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 16: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

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

Page 17: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

64K Send Buffer (RTT=90ms)

17

error rate

Throughput(bits/s)

Page 18: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

16K Send Buffer (RTT=90ms)

18

error rate

Throughput(bits/s)

Page 19: NR-SACKs ( N on- R enegable  S elective Ack nowledgments  )

THANK YOU!!!