Computer Laboratory

Course pages 2016–17

Computer Networking

Principal lecturer: Dr Andrew Moore
Taken by: Part IB
Past exam questions

No. of lectures: 24 (Continued in Lent Term)
Suggested hours of supervisions: 6
This course is a prerequisite for the Part II courses Principles of Communication and Security II.


The aim of this course is to introduce key concepts and principles of computer networks. The course will use a top-down approach to study the Internet and its protocol stack. Instances of architecture, protocol, application-examples will include email, web and media-streaming. We will cover communications services (e.g., TCP/IP) required to support such network applications. The implementation and deployment of communications services in practical networks: including wired and wireless LAN environments, will be followed by a discussion of issues of network-security and network-management, Throughout the course, the Internet’s architecture and protocols will be used as the primary examples to illustrate the fundamental principles of computer networking.


  • Introduction. Overview of networking using the Internet as an example. LANs and WANs. OSI reference model, Internet TCP/IP Protocol Stack. Client/server paradigm, circuit-switching, packet-switching, Internet structure, networking delays and packet loss. [3 lectures]

  • Link layer and local area networks. Link layer services, error detection and correction, Multiple Access Protocols, link layer addressing, Ethernet, hubs and switches, Point-to-Point Protocol. [3 lectures]

  • Wireless and mobile networks. Wireless links and network characteristics, Wi-Fi: IEEE 802.11 wireless LANs, mobility management and mobile IP. [2 lectures]

  • Network layer addressing. Network layer services, IP, IP addressing, IPv4, DHCP, NAT, ICMP, IPv6. [3 lectures]

  • Network layer routing. Routing and forwarding, routing algorithms, routing in the Internet, RIP, OSPF, BGP, multicast. [3 lectures]

  • Transport layer. Service models, multiplexing/demultiplexing, connection-less transport (UDP), principles of reliable data transfer, connection-oriented transport (TCP), TCP congestion control, securing TCP (SSL), TCP variants. [3 lectures]

  • Application layer. Service requirements, WWW, HTTP, electronic mail, Domain Name System, P2P, socket programming API. [3 lectures]

  • Multimedia networking. Networked multimedia applications, best-effort service and multimedia delivery requirements, multimedia protocols (RTSP, RTP, RTCP, SIP), content distribution networks. [2 lectures]

  • Datacenter Networking Datacenter introductions, architecting a datacenter, datacenter network and workload issues, datacenter transport issues. [2 lectures]


At the end of the course students should

  • be able to analyse a communication system by separating out the different functions provided by the network;

  • understand that there are fundamental limits to any communications system;

  • understand the general principles behind multiplexing, addressing, routing, reliable transmission and other stateful protocols as well as specific examples of each;

  • understand what FEC is and how CRCs work;

  • be able to compare communications systems in how they solve similar problems;

  • have an informed view of both the internal workings of the Internet and of a number of common Internet applications and protocols.

Recommended reading

* Peterson, L.L. & Davie, B.S. (2011). Computer networks: a systems approach. Morgan Kaufmann (5th ed.). ISBN 9780123850591
Kurose, J.F. & Ross, K.W. (2009). Computer networking: a top-down approach. Addison-Wesley (5th ed.).
Comer, D. & Stevens, D. (2005). Internetworking with TCP-IP, vol. 1 and 2. Prentice Hall (5th ed.).
Stevens, W.R., Fenner, B. & Rudoff, A.M. (2003). UNIX network programming, Vol.I: The sockets networking API. Prentice Hall (3rd ed.).