Computer Networks: 2020-2021
The lectures for this course will be pre-recorded and can be found here.
This course covers the core theory of Computer Networks in order for students to understand the science underpinning computer communications, such as basic architectural principles of computer networking, including how the Internet works today and applications of theory in current technology. The course will cover the problems of Computer Networks and the standard ways to approach and resolve these problems, including relevant real-world, state-of-the-art examples. The practicals for the course will allow students to apply theory to real-world examples.
At the end of the course, students should be able to debug everyday networking issues they encounter, construct and debug a small-medium IP network, and understand the problems and common solutions for scaling networking globally.
In the course we cover general networking areas, concepts and common themes, and also work our way up the networking layers, examining the problems and solutions at each layer to allow us to build effective global networks.
The general areas we cover are
- Networking abstracts
- The layered model for networking, and specifically the OSI and TCP/IP models.
- General constraints and trade-offs
- VLANS, VPNS, VMs, Containers
- Trust and Security
- Protecting your network externals / internals
Specifically build up our understanding of networks at each layer of the networking stack, we cover
- OSI Layer 1: the physical layer
- OSI Layer 2: the data link layer
- Key example: Ethernet
- Making Layer 2 networks work – Protocols, MAC Learning
- OSI Layer 3: the network layer
- Key example: IP
- IP network scaling – IP routing Distance Vector and
- Internet scaling – Private address spaces and NATs, IPv6, Border Gateway Protocol
- Label switching
- OSI Layer 4: the transport layer
- Key examples: UDP and TCP
- TCP/IP Layer 4: the application layer
- Basic networked applications – DNS, Telnet, FTP, HTTP
The rough schedule for these across the lectures of the course is as follows:
- 1. Introduction. General models and constraints
- 2. OSI Physical Layer
- 3-4. OSI Data Link Layer and scaling
- 5-8. Network Layer and scaling
- 9-10. Transport Layer and Sockets
- 11. Application Layer
- 12. Virtualisation
- 13-14. Trust and Security
The need for computer networks; layered models; Ethernet; IP; network routing and congestion control; virtualisation; network security
- Peterson and Bruce S. Davie "Computer Networks: A systems approach (4th ed)", Morgan Kaufmann, 2007.
- S. Tanenbaum, Computer Networks (3rd ed), Prentice-Hall International, 1996.