TCP (Transmission Control Protocol) is a transport layer protocol
TCP
Fast Retransmit
- duplicate acknowledgements indicate something is wrong e.g. something needs to be resent
 - Receiving 3 duplicate acks → resend without waiting for timeout
 
TCP Flow Control
Control the rate at which sender sends data, using a receive window field.
- Data in pipeline should not exceed receive buffer size → overflow
 - Tell the sender the receive window (rwnd)
- rwnd is amount of free buffer space
 
 - Ensure 
- this is because in-flight data is stored in the buffer
 
 
TCP Congestion Control
Reduce rate at which sender sends data if high perceived congestion
- want to reduce congestion
 - congestion occurs when
 
WHY do we want to reduce congestion?
- lost packets (buffer overflow)
 - long delays from queueing in router buffers?
 
Go Back N (GBN)
Only accept packets in order.
- Lost packets handled poorly → sending duplicate packets