Shyamlal college evening;srishti saraswat;Modern art gallery; manish karmwar
Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz...
-
Upload
marsha-hodges -
Category
Documents
-
view
219 -
download
0
Transcript of Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz...
![Page 1: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/1.jpg)
Selective ACKs Renegable & Non-renegable
Madhusudhan ShyamlalCISC 856
Computer & Information Sciences
Thanks to
Dr.Paul AmerNasif Ekiz
Ertugrul Yilmaz
![Page 2: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/2.jpg)
OutlineWhat is a Selective ACK (SACK)?Why is SACK needed?What is reneging?How is reneging detected?What are the disadvantages of reneging?What is a Non Renegable SACK (NR-SACK)?How is NR-SACK more efficient than renegable SACK?
![Page 3: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/3.jpg)
TCP FeaturesByte number
TCP numbers all data bytes that are stored in the sending buffer before transmission
TCP chooses an arbitrary number between 0 to 232-1
Sequence number TCP assigns a sequence number to each byte in TCP-PDU The sequence number in a TCP-PDU is the number of the first byte of
data carried in that TCP-PDU.
Acknowledgement number TCP uses acknowledgement number which defines the number of
the next byte expected to receive. The acknowldegement number is cumulative
![Page 4: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/4.jpg)
TCP without SACK• TCP uses cumulative ACKs
• Receiver cum-ACKs the data received by sending the number of the next byte expected
• Data sender is not aware of out of order TCP-PDUs• Receiver can send duplicate ACKs as a result of data loss/delay
• TCP without SACK• TCP does not report the bytes that have arrived out of order. • If some TCP-PDUs are lost/dropped, the sender waits until a time-out
and then send all TCP-PDUs that are not cum-ACKed.• The TCP sender unnecessarily retransmits data that has already
been received without any data loss at the receiver end• Can result in reduced overall throughput
![Page 5: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/5.jpg)
Example - TCP without SACK after fast retransmit Timer TCP Sender TCP Receiver
sender
receiver
100-199100-199
100-199
200-299
200-299
ACK 300
300-399400-499
500-599
loss100-199
200-299
400-499ACK 300
100-199
200-299
400-499
500-599ACK 300
start
startstop
restart300-699 resent
100-199
200-299
400-499
500-599
600-699
ACK 700stop
600-699ACK 300
100-199
200-299
300-399
400-499
500-599
600-699
fast retransmit
![Page 6: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/6.jpg)
Example - TCP with SACK after fast retransmit Timer TCP Sender TCP Receiver
sender
receiver
100-199100-199
100-199
200-299
200-299
ACK 300
300-399400-499
500-599
loss100-199
200-299
400-499ACK 300 SACK 400-500
100-199
200-299
400-499
500-599
ACK 300 SACK 400-600
start
startstop
restart300-399 resent
100-199
200-299
400-499
500-599
600-699
ACK 700stop
600-699
ACK 300 SACK 400-700
100-199
200-299
300-399
400-499
500-599
600-699
fast retransmit
![Page 7: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/7.jpg)
TCP without SACK after timeout Timer TCP Sender TCP Receiver
sender
receiver
100-199100-199
100-199
200-299
200-299
ACK 300
300-399400-499
500-599
loss100-199
200-299
400-499ACK 300
100-199
200-299
400-499
500-599ACK 300
start
startstop
timeout300-599 resent
ACK 600stop
100-199
200-299
300-399
400-499
500-599
timer expires
![Page 8: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/8.jpg)
TCP with SACK after timeout Timer TCP Sender TCP Receiver
sender
receiver
100-199100-199
100-199
200-299
200-299
ACK 300
300-399400-499
500-599
loss100-199
200-299
400-499ACK 300 SACK 400-500
100-199
200-299
400-499
500-599
ACK 300 SACK 400-600
start
startstop
timeout300-599 resent
ACK 600stop
100-199
200-299
300-399
400-499
500-599
timer expires
![Page 9: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/9.jpg)
TCP with SACK TCP uses Selective ACK(SACK) to indicate that the data has been received out of order. SACK allows the TCP sender to know which TCP-PDUs are actually lost and which have
arrived out of order. The sender can then retransmit only those TCP-PDUs which are actually lost. TCP defines SACK using the OPTION bits with two new options:
SACK-permitted option SACK option
Kind: 4 Length: 2 Kind: 5 Length
Left edge of 1st block
Right edge of 1st block
.
.
Left edge of Nth block
Right edge of Nth block
![Page 10: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/10.jpg)
SACK-permitted and SACK optionTCP Connection establishment with SACK-permitted option
TCP sender TCP receiver
sender
receiver
SYNSACK-permitted
SACK-permittedSYN+ACK
ACK
For any TCP connection, the data receiver can generate SACK options only if the data receiver receives a SACK-permitted option on the SYN for the connection.
![Page 11: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/11.jpg)
Generating SACK options
Using SACKs does not affect the cumulative ACK of data received. The cum-ACK is maintained.
If SACK options are permitted, then the receiver should include SACK option in all ACKs which do not ACK the highest sequence number of the TCP-PDU that has arrived out of order.
The receiver SHOULD include as many distinct SACK blocks as possible in SACK option with the highest sequence number SACK block comes first.
![Page 12: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/12.jpg)
Interpreting SACK option and Retransmission Strategy
The sender purges only those data in the send buffer which are cumulatively ACKed.
The sender uses SACK only for retransmission strategy as the sender implements SACK option to retransmit only those TCP-PDUs which are actually lost.
The sender uses a flag bit “SACKed” for each TCP-PDU in the retransmission queue to indicate that the particular TCP-PDU has been reported in a SACK option.
![Page 13: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/13.jpg)
Workout examples - SACKAssume the receiver’s left window edge is 5000 and that the data
transmitter sends a burst of 4 TCP-PDUs, each containing 500 data bytes with the sequence number starting from 5000.Case 1: The first 2 TCP-PDUs are received but the last 2 are lost.
Case2: The first TCP-PDU is lost and the remaining 3 TCP-PDUs are received
Case 3: 2nd and 4th TCP-PDUs are lost
![Page 14: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/14.jpg)
SACK Extension (D-SACK) TCP sender TCP receiver TCP sender TCP receiver
sender
receiver
ACK 200
ACK 300 SACK 100-200
200-299
100-199
ACK 300
sender
receiver
100-199
ACK 200
200-299300-399
ACK 300 SACK 300-400
ACK 300 SACK 100-200 300-400
![Page 15: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/15.jpg)
RenegingReneging – discarding data that has previously been SACKed[RFC 2018]: “The SACK option is advisory, in that, while it
notifies the data sender that the data receiver has received the indicated segments, the data receiver is permitted to later discard data which have been reported in a SACK option.”
This means the receiver can discard the SACKed out of order TCP-PDUs received before they are being delivered to the application.
TCP allow reneging and because of this reason the sender is forced to keep the copies of all SACKed PDUs in the send buffer unless they are cum-ACKed.
![Page 16: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/16.jpg)
Reneging Example - TCP TCP Sender TCP Receiver
sender
receiver
100-199 100-199
100-199
200-299
200-299
ACK 300
300-399
400-499
500-599
loss100-199
200-299
400-499
ACK 300 SACK 400-500
100-199
200-299
400-499
500-599
ACK 300 SACK 400-600
100-199
200-299
OS needs memory and renegesWindow decreases
600-699 100-199
200-299
400-499
500-599
600-699
ACK 300 SACK 400-700
![Page 17: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/17.jpg)
Reneging Example – TCP cont’d TCP Sender TCP Receiver
sender
receiver
100-199
200-299
100-199
200-299
300-399
100-199
200-299
300-399
700-799
ACK 400 SACK 700-800
300-399 Resent OS releases memoryWindow increases back
ACK 400
700 - 799
Reneging detected
Reneging detected
![Page 18: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/18.jpg)
TCP Send BufferTCP Send Buffer consists of two kinds of data:
new application data waiting to be transmitted for the first time
data that has been transmitted atleast once and need to be cum-acked, a.k.a. the retransmission queue(RtxQ)
new data + retransmission queue
Send Buffer
![Page 19: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/19.jpg)
Send buffer utilization
Send buffer consists of two types of data:Necessary (renegable) - NUnnecessary (non-renegable) - U
Send buffer utilization = N / (N+U)
![Page 20: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/20.jpg)
Send buffer utilization - SACK Send buffer TCP Sender TCP Receiver Receive buffer
sender
receiver
11
1 3
2ACK 2
3
4ACK 2 SACK 3-3
1
1 2 1
1 2 3
2 3 4ACK 2 SACK 3-4 3 4
2 3 4 5 53 4 5ACK 2 SACK 3-5
2 3 4 5
2 3 4 5
2 3 4 5 22 3 4 5ACK 6
6 6
100%
100%
100%
100%
100%
75%
50%
25%
100%
Send buffer blocking
![Page 21: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/21.jpg)
NR-SACKBy defintion, data that has been delivered to the application is non-
renegable The current SACK mechanism does not differentiate between out of
order data that “has been delivered to the application(non-renegable)” vs. data that “has not yet been delivered to the application(renegable)”
We know TCP does not deliver out of order data to the application.However, TCP can be configured in such a way that the receiving
system (OS and/or transport layer implementation) guarantees not to renege the allocated memory until after the data is delivered to the application.
This mechanism(NR-SACK) enable a transport data receiver to explicitly convey non-renegable information to the sender on some or all out of order TCP-PDUs.
![Page 22: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/22.jpg)
OS configured not to renege - ExampleOperating systems allow configuration of transport
layer implementations such that out-of-order data is never reneged.
For example, in FreeBSD, the net.inet.tcp.do_tcpdrain or net.inet.sctp.do_sctp_drain sysctl parameters can be configured to never renege kernel memory allocated to TCP or SCTP out-of-order data [9]. Thus, out-of-order data can also be rendered non-renegable through simple user configuration.
![Page 23: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/23.jpg)
Send buffer utilization (NR-SACK) Send buffer TCP Sender TCP Receiver Receive buffer
sender
receiver
11
3
2 ACK 2
3
4ACK 2 NR-SACK 3-3
1
1 21
1 2 3
1 2 3 4ACK 2 NR-SACK 3-4 3 4
2 3 4 5 53 4 5ACK 2 NR-SACK 3-5
2 4 5 6
2 5 6 7
2 6 7
7
2 3 4 5 6 7ACK 82 7 8 8
100%
100%
100%
100%
100%
100%
100%
100%
100%8
No Send buffer blocking
3 4 5 6ACK 2 NR-SACK 3-66
3 4 5 6 7ACK 2 NR-SACK 3-72
2 8 9
9 10
ACK 99
100%
100% 10
![Page 24: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/24.jpg)
Send buffer utilization
RtxQ
_Util
val
ue
Traffic load (%)
NR-SACKSACK
![Page 25: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/25.jpg)
How often reneging happens?Hypothesis: “data reneging rarely if ever occurs in practice”Suppose reneging occurs 1 in 100,000 TCP flowsCase A (current practice): reneging allowed99,999 non-reneging connections underutilize send buffer
and may achieve lower throughput1 reneging connection continues (maybe...)Case B (proposed change): reneging forbidden99,999 connections have equal or better send buffer
utilization and for SCTP potential greater throughput1 reneging connection is RESET
![Page 26: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/26.jpg)
NR-SACK Advantages
All SACKs are non-renegable (NR-SACKs)Data receiver takes responsibility for all selectively
acked dataData sender can remove NR-SACKed data from
send buffer always improved send buffer utilization
![Page 27: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/27.jpg)
SummarySACKSACK Extension (D-SACK)SACKs vs. NR-SACKsSACKs waste RtxQ (kernel memory) when out-of-
order data is non-renegableNR-SACKs utilize RtxQ more efficientlyNR-SACKs reduce send buffer blocking
![Page 28: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/28.jpg)
ReferencesNasif Ekiz, PEL, University of DelawareRFC 2018 – TCP SACK Options
http://www.ietf.org/rfc/rfc2018.txtNRSACK, CIS, Udel
http://www.eecis.udel.edu/~nataraja/papers/nr-sacks-TR.pdf
![Page 29: Madhusudhan Shyamlal CISC 856 Computer & Information Sciences Thanks to Dr.Paul Amer Nasif Ekiz Ertugrul Yilmaz.](https://reader038.fdocuments.net/reader038/viewer/2022110321/56649cf45503460f949c28ac/html5/thumbnails/29.jpg)
Thank You!!!