Computer Laboratory

Course pages 2016–17

Principles of Communications

Principal lecturer: Prof Jon Crowcroft
Taken by: Part II
Past exam questions

No. of lectures: 24
Suggested hours of supervisions: 6
Prerequisite course: Computer Networking
This course is a prerequisite for Security II and Mobile & Sensor Systems.
This course may be useful for the Part III course on Network Architectures.
Useful related courses: Computer Systems Modelling, Information Theory, Digital Signal Processing


This course aims to provide a detailed understanding of the underlying principles for how communications systems operate. Practical examples (from wired and wireless communications, the Internet, and other communications systems) are used to illustrate the principles.


  • Introduction. Course overview. Abstraction, layering. Review of structure of real networks, links, end systems and switching systems. [1 lecture]

  • Graphs. Basic Graph Properties, Different Small Worlds. [2 lectures]

  • Routing. Central versus Distributed Routing Policy Routing. Multicast Routing Circuit Routing [6 lectures]

  • Error control. Coding and packet transport [1 lectures]

  • Flow control and resource optimisation. Control theory is a branch of engineering familiar to people building dynamic machines. It can be applied to network traffic. Stemming the flood, at source, sink, or in between? Optimisation as a model of network& user. TCP in the wild. [3 lectures]

  • Packet Scheduling. Design choices for scheduling and queue management algorithms for packet forwarding, and fairness. [1 lectures]

  • Switching. What does a switch have to do, and how? [1 lectures]

  • Data Centers. Topology, Traffic, Control. [1 lectures]

  • Shared media networks, planned and Ad Hoc. We revisit the problem of capacity of a channel in the context of a radio network. [2 lectures]

  • The big picture for managing traffic. Economics and policy are relevant to networks in many ways. Optimisation and game theory are both relevant topics discussed here. [2 lectures]

  • System Structures and Summary. Abstraction, layering. The structure of real networks, links, end systems and switching. [2 lectures]


At the end of the course students should be able to explain the underlying design and behaviour of protocols and networks, including capacity, topology, control and use. Several specific mathematical approaches are covered (control theory, graph theory).

Recommended reading

* Keshav, S. (2012). Mathematical Foundations of Computer Networking. Addison Wesley. ISBN 9780321792105
Background reading:
Keshav, S. (1997). An engineering approach to computer networking. Addison-Wesley (1st ed.). ISBN 0201634422
Stevens, W.R. (1994). TCP/IP illustrated, vol. 1: the protocols. Addison-Wesley (1st ed.). ISBN 0201633469