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.