Computer Networks: 2018-2019
Lecturer | |
Degrees | Schedule S1(CS&P)(3rd years) — Computer Science and Philosophy Schedule S1(3rd years) — Computer Science Schedule S1(M&CS)(3rd years) — Mathematics and Computer Science |
Term | Trinity Term 2019 (16 lectures) |
Overview
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.
Learning outcomes
At the end of the course, the students should be able to construct and debug a small-medium IP network, and be able to understand wider networking issues.
Synopsis
1. Networking abstracts, problems and common themes
- Communication
- Asynchronous knowledge (e.g. 2 generals problem)
- Constraints and Trade-offs (Bandwidth/Latency/Reliability/Jitter/Money/Politics)
- Scaling
- OSI Model
2. Physical Layer
- Getting a bit from a->b (probably).
- Lasers, phones and copper loops
- Physical limitations (see 1 c).
3. Link Layer
- What use?
- Point to point.
- Ethernet, hubs and Switches
4. Scaling the Link Layer – Ethernet networking
- Mac learning
- Redundancy / loops / Protocols (Why are these as they are? E.g. 1 c).
5. Network Layer
- What use?
- IP (side note on arp)
- IP Routing.
- Unicast/Broadcast/Multicast
6. Scaling the network layer
- Routing protocols
- Distance Vector vs Link state
7. Making use of your network
- Label-switched networks and source-routing
8. Internet scale
- It’s BIG!
- BGP, GSRs, separate data plane.
- Private addresses, NATs, Ipv6… (The common classes of things that we do that lead to these solutions)
9. Transport layer
- What use?
- UDP (multiple pipes)
- TCP (reliability, some flow control)
10. Application layer
- What use?
- Simple applications, DNS, SIP, RTP
- telnet/Ssh
11 and 12. Virtualization
- What use?
- VLANs
- VPNs
- Pseudowires and how you use virtualisation for scaling
- VMs / Containers (“faking networking”)
13 and 14. Trust and Security
- Authentication/Confidentiality/Integrity/Signature/Availability
- Basics: protecting your network from the outside (what people do)
- Basics: protecting your network internally (what people should do)
- Virtualisation and how we need to blend “node security” and “network security” (e.g. Meltdown/Spectre)
15 and 16. Contingency
- Cross-lecture themes (mentioned in 1 and flagged throughout)
- “OSI Model” The conceptual stack here – going up and down it.
- The problems we’re trying to solve.
- Scaling (typically scaling beyond the capacity of the fix to the previous scaling problem).
Syllabus
The need for computer networks; layered models; Ethernet; IP; network routing and congestion control; network security.
Reading list
- 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.
Taking our courses
This form is not to be used by students studying for a degree in the Department of Computer Science, or for Visiting Students who are registered for Computer Science courses
Other matriculated University of Oxford students who are interested in taking this, or other, courses in the Department of Computer Science, must complete this online form by 17.00 on Friday of 0th week of term in which the course is taught. Late requests, and requests sent by email, will not be considered. All requests must be approved by the relevant Computer Science departmental committee and can only be submitted using this form.