{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

Lecture-15 - Lecture#15 Todays Lecture Objectives Review...

Info iconThis preview shows pages 1–11. Sign up to view the full content.

View Full Document Right Arrow Icon
Lecture #15
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Today’s Lecture Objectives • Review Transport Layer – TCP Congestion Control – TCP over satellite links • UDP
Background image of page 2
TCP Congestion Control Too much traffic into the network causes overload, gridlock, and collapse TCP tries to limit traffic sent into the network
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
TCP Congestion Control min(receiver_advertised_window,congestion_window) receiver_advertised_window is sent as part of TCP header recall that there is one window for EACH side of connection congestion_window is locally computed also a congestion_window for EACH side of connection locally computed (and not seen in the header) that’s four windows per TCP connection how is congestion detected? based on loss a timeout or other detection of loss indicates congestion not always true (e.g. when there is a CRC error)
Background image of page 4
TCP Segment Structure source port # dest port # 32 bits sequence number acknowledgement number Receive window Urg data pnter checksum F S R P A U head len not used Options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: # bytes rcvr willing to accept counting by bytes of data (not segments!) application data (variable length) connection estab (setup, teardown commands) Internet checksum (as in UDP)
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Basic TCP Congestion Control Important variables Window Size (WS) = usually set to “1” at start of connection Threshold = often set to “64kB” at start of connection Segment Size = usually set to 536 or 512 (or negotiated at connection start-up) Slow Start 1. send one segment, wait for ACK 2. for each ACK received, send two segments 3. repeat until “threshold” is reached, then “congestion avoidance” Congestion Avoidance 4. for each window-full of data, increase window size by 1 5. repeat until loss, then “congestion backoff” Congestion Backoff 6. New_threshold = current_window_size / 2 7. WS = 1 8. Go back to slow start (step 1)
Background image of page 6
TCP Slow Start Host A RTT Host B time
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
TCP Slow Start More examples as discussed in class
Background image of page 8
TCP CC Variants Tahoe What has been described so far Reno “fast retransmissions” when three duplicate ACKs (four total ACKs for the same “next expected” byte), guess lost segment, re-transmit “requested segment” new_threshold = current_window_size / 2 WS = new_threshold Vegas better “congestion avoidance” observe RTTs, if increases, sign of congestion – WS=WS-1 if loss, do what Reno does
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
More Recent TCP Variants Selective ACKs (SACK) Allows TCP to specify range of missing bytes Provides more information on specifically what is missing New Reno For a duplicate ACK, also send a new packet (to keep making progress) When duplicate ACK is received, immediately send data after what the ACK acknowledges Binary Increase Congestion (BIC) Control Designed for high speed networks with long latencies Also CUBIC Compound Microsoft implementation: runs two different algorithms, one
Background image of page 10
Image of page 11
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}