Skip to content

Chapter 3 The transport layer

3.1 Introduction and transport-layer services

TCP: transmission control protocol

  • reliable, in-order delivery
  • congestion control
  • flow control
  • connection setup

UDP: User datagram protocol

  • unreliable, unordered delivery
  • no-frills extension of "best-effort" IP
  • service not available:
    • delay guarantees
    • bandwith guarantees

3.2 Multiplexing and Demultiplexing

20231203162315
20231203162344
20231203162413
20231203162444

3.3 Connectionless Transport UDP

3.4 Principles of reliable data transfer

Principles of Reliable Data Transfer

20231203212241
20231203212338

Pipelining increased utilization

  • Go-Back-N
    20231209191836 20231209191922
    20231209191944

  • Selective repeat
    20231209192046
    20231209192116
    20231209192153

3.5 connection-oriented transport: TCP

tcp segment structure

20231209190516 * sequence numbers: byte stream "number" of first byte in segment's data
* acknowledgement number: next byte expected from other side, cumulative ACK

connection management

20231209190258

tcp fast retransmit

20231209191205

flow control

3.6 congestion control

slow start

initial cwnd = 1 then 2 4 8 ... exp

congestion avoidance

  • if timeout then cwnd reset to 1
  • if 3 ACK then cwnd = cwnd/2

quick restart

TCP Reno: cwnd = cwnd/2 + 3, then linear add 1 MSS
TCP AIMD (additive-increase multiplicative-decrease) cwnd = cwnd / 2
TCP CUBIC: cubic function