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 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 what the popular email access protocols are (POP3, IMAP).
- You know what service DNS provides and how it works.
- You know what DNS records are and what the DNS message format is.
P2P & Streaming (2.5–2.6, 9.1–9.2)
- You know what the distribution time is and how lower bounds of it can be improved with P2P.
- You know what videos and video compressions are.
- You know how streaming of stored videos via HTTP and adaptive HTTP works, and what the role of buffering and prefetching is.
- You know how CDNs work for video streaming and what benefit they offer.
Tansport Layer (3.1)
- 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 and possibly constrained by the network layer protocols are used.
TCP (3.2, 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.
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, and how
- You know what generalised forwarding is and how it is implemented in OpenFlow.
- You know how SDNs are configured, and manage devices and their services.
Link Layer (6.1)
- You know the role of 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 for and how the address resolution protocol works.
- You know what the role of link-layer switches is, how they compare to routers and how they work.
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 achitecture of WiFi, and its capabilities (7.3.1 – 7.3.3).
- You know how mobility of hosts can be realised in WiFi networks, including how addresses are managed and routes are established.
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 know 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 email 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.