<aside>
🚚
L3.1 — Transport Layer by Graeme Bragg. This lecture begins with a brief NAT64/DNS64 demo recap from L2.2, then moves into the Transport Layer proper: what the transport layer does, port numbers (well-known, registered, dynamic/private), TCP (connection-oriented, three-way handshake, header fields, sequence/ACK numbers, cumulative ACKs, retransmission timers), UDP (connectionless, 8-byte header, send-and-forget), the socket service model (five-tuple identification), the Berkeley Sockets API, flow control (sliding window protocol with a real packet-capture walkthrough), congestion control (slow start, exponential then linear growth, AIMD sawtooth, TCP Tahoe/Reno/Cubic/QUIC), and application-level protocol choice (TCP vs UDP for video, VoIP, gaming, DNS).
</aside>
📋 At a Glance
- [ ] Know that the transport layer sits above the network layer and maps packets to applications using port numbers
- [ ] Understand port number ranges: well-known (0–1023), registered (1024–49151), dynamic/private (49152–65535)
- [ ] Know key port numbers: 443 (HTTPS), 22 (SSH), 80 (HTTP), 53 (DNS), 21 (FTP), 143 (IMAP)
- [ ] Explain TCP properties: connection-oriented, three-way handshake (SYN → SYN-ACK → ACK), reliable delivery
- [ ] Describe the TCP header: 20-byte minimum, source/dest port, sequence number, ACK number, flags, window size, checksum, options
- [ ] Explain how sequence numbers and ACKs provide reliability and detect lost packets
- [ ] Explain cumulative acknowledgements and retransmission timeouts
- [ ] Describe UDP properties: connectionless, 8-byte header, no reliability, no flow/congestion control
- [ ] Know UDP supports multicast; TCP does not
- [ ] Identify the five-tuple: source IP, dest IP, source port, dest port, protocol (TCP/UDP)
- [ ] Know the Berkeley Sockets API primitives: socket, bind, listen, accept, connect, send, receive, close
- [ ] Distinguish flow control (receiver buffer) from congestion control (network capacity)
- [ ] Explain the sliding window protocol: window size in ACKs, sender blocked at WIN=0, 1-byte probe
- [ ] Walk through the sliding window packet-capture example
- [ ] Explain congestion control: slow start (exponential doubling), threshold, additive increase, packet loss → reset (AIMD sawtooth)
- [ ] Know different congestion algorithms exist: Tahoe, Reno, Cubic, Elastic TCP, QUIC
- [ ] The sender uses the smaller of the congestion window and the receiver's sliding window