Download presentation
Presentation is loading. Please wait.
1
Transmission Control Protocol (TCP)
2
Puzzle How can a toss be called over the phone (without requiring trust)?
3
Correction Supernetting
510 stations, not 126 stations after supernetting in the example
4
Congestion Control Alternative: Fall to W/2 and start
Slow Start Start with W=1 For every ACK, W=W+1 Congestion Avoidance (linear increase) For every ACK, W = W+1/W Congestion Control (multiplicative decrease) ssthresh = W/2 W = 1 Alternative: Fall to W/2 and start congestion avoidance directly
5
Why LIMD? (fairness) W=1 W=W/2 100 10 diff = 90 1 1 diff = 0
Problem? – inefficient W=W/2 diff = 45 51 6 diff = 45 52 7 diff = 45 .. diff = 45 diff = 23.5 diff = 23.5 diff = 11.2
6
Flow Control Prevent sender from overwhelming the receiver
Receiver in every ACK advertises the available buffer space at its end Window calculation MIN(congestion control window, flow control window)
7
Sequencing Starting sequence number randomly chosen during connection
3 1 2 4 Byte sequence numbers TCP receiver buffers out of order segments and reassembles them later Starting sequence number randomly chosen during connection establishment Why? 1 given to app 2 given to app Loss 4 buffered (not given to app) 3 & 4 given to app 4 discarded
8
TCP Segment Format 16 bit SRC Port 16 bit DST Port
32 bit sequence number 32 bit ACK number HL resvd flags 16 bit window size Flags: URG, ACK, PSH, RST, SYN, FIN 16 bit TCP checksum 16 bit urgent pointer Options (if any) Data
9
TCP Flavors TCP-Tahoe TCP-Reno TCP-newReno TCP-Vegas, TCP-SACK
W=1 adaptation on congestion TCP-Reno W=W/2 adaptation on fast retransmit, W=1 on timeout TCP-newReno TCP-Reno + intelligent fast recovery TCP-Vegas, TCP-SACK
10
TCP Tahoe Slow-start Congestion control upon time-out or DUP-ACKs
When the sender receives 3 duplicate ACKs for the same sequence number, sender infers a loss Congestion window reduced to 1 and slow-start performed again Simple Congestion control too aggressive
11
TCP Reno Tahoe + Fast re-transmit
Packet loss detected both through timeouts, and through DUP-ACKs Sender reduces window by half, the ssthresh is set to half of current window, and congestion avoidance is performed (window increases only by 1 every round-trip time) Fast recovery ensures that pipe does not become empty Window cut-down to 1 (and subsequent slow-start) performed only on time-out
12
TCP New-Reno TCP-Reno with more intelligence during fast recovery
In TCP-Reno, the first partial ACK will bring the sender out of the fast recovery phase Results in timeouts when there are multiple losses In TCP New-Reno, partial ACK is taken as an indication of another lost packet (which is immediately retransmitted). Sender comes out of fast recovery only after all outstanding packets (at the time of first loss) are ACKed
13
TCP SACK TCP (Tahoe, Reno, and New-Reno) uses cumulative acknowledgements When there are multiple losses, TCP Reno and New-Reno can retransmit only one lost packet per round-trip time What about TCP-Tahoe? SACK enables receiver to give more information to sender about received packets allowing sender to recover from multiple-packet losses faster
14
TCP SACK (Example) Assume packets 5-25 are transmitted
Let packets 5, 12, and 18 be lost Receiver sends back a CACK=5, and SACK=(6-11,13-17,19-25) Sender knows that packets 5, 12, and 18 are lost and retransmits them immediately
15
Other TCP flavors TCP Vegas TCP FACK
Uses round-trip time as an early-congestion-feedback mechanism Reduces losses TCP FACK Intelligently uses TCP SACK information to optimize the fast recovery mechanism further
16
User Datagram Protocol (UDP)
Simpler cousin of TCP No reliability, sequencing, congestion control, flow control, or connection management! Serves solely as a labeling mechanism for demultiplexing at the receiver end Use predominantly by protocols that do no require the strict service guarantees offered by TCP (e.g. real-time multimedia protocols) Additional intelligence built at the application layer if needed
17
UDP Header Src Port Dst Port Length: length of header + data (min = 8)
Checksum
18
Recap TCP Connection management Reliability Flow control
Congestion control TCP flavors UDP
19
Puzzle You have a chain consisting of 63 inter-linked gold links
You have to stay at a motel where the charge per day is 1 gold link You do not trust the motel manager and neither does he trust you What is the minimum number of links you need to break in order to stay for 63 days? Clue: The manager will not sell the links till you check out
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.