Computer Networks Learning Goals
Application Layer (2.1)
- You know what the role of the application layer is and what its key concepts are: client-server vs. P2P, process communication via messages, API and sockets, IP addresses and ports, the basic idea of TCP (see lecture).
Web & HTTP (2.2)
- You know what HTTP is and what messages it uses.
- You know how HTTP works with persistent and non-persistent connections.
- You know what HTTP cookies and web caching are.
E-mail & DNS (2.3–2.4)
- You know how the internet e-mail system is structured, and what role SMTP plays and how it works.
- You know the RFC5322 mail message format (only from, to and subject) and the two common mail access protocols (HTTP, IMAP).
- You know what service DNS provides and how it works.
- You know what DNS records and DNS message format are.
P2P & Streaming (2.5–2.6)
- You know what the distribution time is and how lower bounds of it can be improved with P2P.
- You know how BitTorrent operates.
- You know what videos and video compressions are.
- You know how streaming of stored videos via HTTP and DASH works.
- You know how CDNs work for video streaming and their benefits.
Transport Layer (3.1–3.2)
- You know what role the transport layer has in network communication.
- You know what services the transport layer offers to network applications, and how it is related to and possibly constrained by the network layer protocols.
- You know the tasks multiplexing and demultiplexing fulfil.
UDP (3.3 + [Tan11, Sec. 6.4])
- You know how UDP works and what it does.
- You know the reasons why UDP is more appropriate than TCP for certain applications.
- You know how UDP is used in client-server RPC and in RTP.
TCP (3.4–3.5)
- You know the principles of reliable data transfer: protocols and their states, packages and how to avoid duplication and preserve their order.
- You know what services TCP provides and how it ensures reliable data transfer.
Congestion Control (3.6–3.7)
- You know why congestion occurs, the costs of congestion, as well as approaches to control it. Two congestion-control approaches are end-to-end congestion control and network-assisted congestion control, for which you know the principles and examples of.
- You know the 3 components of the TCP Congestion Control Algorithm: slow start, congestion avoidance, fast recovery.
- You know different flavours of TCP: Reno, CUBIC, Vegas, and how they differ.
Network Layer (4.1)
- You know what role the network layer has in network communication and what its key concepts are: forwarding and routing.
- You know what services the network layer can offer.
Data Plane (IP) (4.2–4.3)
- You know the tasks and the internal workings of a router (forwarding, switching types, queuing, scheduling).
- You know how IPv4 addresses and datagrams are structured and how they are forwarded.
Control Plane (5.1–5.3)
- You know the control plane functions of the network layer: datagram routing (per-router control).
- You know the distance-vector routing algorithm, why it finds a low-cost path through the network and how it compares to the LS algorithm.
- You know how routing can be better scaled and secured by using AS-routing in general, and OSPF in particular.
Software-defined Networks (4.4, 5.5)
- You know the role of SDN and its separation data and control plane.
- You know what generalised forwarding is and how it is implemented in OpenFlow.
- You know how SDNs are configured, and how these devices and their services are managed.
Link Layer (6.1)
- You know the role of the link layer, where it is implemented, how it relates to the network layer, and what its services and key concepts are.
Error Correction (6.2 + Hamming distance and CRC in depth)
- You know a few simple error detection and correction techniques, and how they are used in practice in the link layer: parity, checksum, CRC.
- You know the relevance of error detection and correction in systems communicating via channels.
- You know what Hamming distance is, and how it can be used to detect and correct errors.
- You know the mathematical principles underlying CRC (polynomials over finite fields).
Possible sources are:
- Introduction to Coding Theory by Ron M. Roth (in particular chapter 1)
- https://en.wikipedia.org/wiki/Mathematics_of_cyclic_redundancy_checks
- https://en.wikipedia.org/wiki/Hamming_distance#cite_note-Robinson2003-2
- And citations therein
Multiple access and Switched LANs (6.3–6.4)
- You know the multiple access protocols slotted ALOHA and CSMA, and what problem they are solving.
- You know what MAC addresses are used for and how the address resolution protocol works.
- You know the role of link-layer switches, how they compare to routers and how they work.
Data Center Networking (6.6)
- You know what a data center consists of.
- You know what is the job of a border router and that of a load balancer.
- You know how the hierarchical design is used to scale a data center to hundreds of thousands of hosts.
Wireless (7.1–7.2)
- You know the elements of a wireless network (host, link, base station, different infrastructures) and what their specific characteristics are.
- You know the differences between wired and wireless links and networks, and how CDMA is used to share a link.
WiFi (7.3, 7.5)
- You know the architecture of WiFi, and its capabilities (7.3.1 – 7.3.3).
- You know how the mobility of hosts can be realised in WiFi networks, including how addresses are managed and how routes are established.
Cellular Networks (7.4)
- You know the elements of the 4G architecture and their functionality.
- You know how a mobile device attaches to the network and its two sleep states.
- You know the similarities and differences between the 4G and 5G core networks.
Bluetooth (7.3.6 + [Gar07, Chap. 19], [Bis01])
- You know what a Bluetooth piconet and scatternet are.
- You know the Bluetooth protocol stack, the transport protocols and the middleware protocols.
- You know the link types supported by Bluetooth.
Security (8.1)
- You know what the properties of a secure communication channel should be and what the capabilities of an intruder can be.
Encryption, Integrity, Signatures (8.2–8.3)
- You know what task encryption has, what symmetric and public key cryptography are, and how block ciphers and RSA realise such cryptography schemes.
- You know what a cryptographic hash function is and how it can be used to ensure message integrity.
- You know what a digital signature is and that one can be designed from hashes and public key encryption.
Securing Communication (8.4–8.6)
- You know what end-point authentication comprises and what the potential attacks are on protocols by studying ap1.0 - ap4.0.
- You know how to secure e-mail communication by employing encryption and signatures.
- You know how a protocol to secure a TCP connection can be designed and how this is realised in SSL.
Operational Security (8.9 + Advanced topics)
- You know what a firewall is, and what kind of operational security it realises and how.
- You know what an intrusion detection system is, and what kind of operational security it realises and how.
- You know how one more advanced topic of operational security like, for example, how VPNs or TOR work.