Networked Systems H (2021-2022)
The Internet is ubiquitous yet problematic, and the design of the network is showing its age. It struggles to effectively support mobile networks and devices, to deliver low-latency and interactive services, to protect security, and to maintain user privacy. This course considers the challenges facing the modern-day Internet, and reviews solutions being developed by the Internet standards community to address these challenges, and make a network fit for the 21st century. It builds on the material covered in the Networks and Operating Systems Essentials course in Level 2, to discuss how the traditional network protocols are being extended, improved, and replaced to support the modern Internet and its applications.
Aims and Objectives
The aims of the course are: to introduce the fundamental concepts and theory of communications; to provide a solid understanding of the technologies that support modern networked computer systems; to introduce low-level network programming concepts, and give students practice with systems programming in C; and to give students the ability to evaluate and advise industry on the use and deployment of networked systems.
By the end of the course, students should be able to:
- describe and compare capabilities of various communication technologies and techniques;
- know the differences between networks of different scale, and how these affect their design;
- describe the issues in connecting heterogeneous networks;
- describe the important of layering, and the OSI reference model;
- details demands of different applications on quality of service requirements for the underlying communication network;
- demonstrate an understanding of the design and operation of an IP network, such as the Internet, and explain the purpose and function of its various components; and
- write simple communication software, showing awareness of good practice for correct and secure programming.
Prerequisites
Networks and Operating Systems Essentials 2, Algorithms and Data Structures 2, Object Oriented Software Engineering 2, and Java Programming 2 are pre-requisites. Systems Programming (H) is a required co-requisite and Operating Systems (H) is a recommended co-requisite. This course is only available to Honours students.
Timetable
The course consists of a series of lectures delivered over 10 weeks, supported by weekly 2-hour laboratory sessions.
The course runs during Semester 2 in the 2021-2022 academic year.
Recommended Reading
Any good text on computer networks, e.g.,:
- Peterson and Davie, Computer Networks: A Systems Approach, 5th Edition, Morgan Kaufman, 2011, ISBN 0123851386. An updated version of this book is available free online under a Creative Commons (CC BY 4.0) license.
- Bonaventure, Computer Networking: Principles, Protocols and Practice, 3rd Edition, 2021. Free online textbook.
- Kurose and Ross, Computer Networking: A Top-Down Approach, 8th Edition, Addison-Wesley, 2021, ISBN 978-1292405469.
- Tanenbaum and Wetherall, Computer Networks, 5th Edition, Prentice Hall, 2013, ISBN 978-1292024226
Credits
This is a level H course, worth 10 credits.
Assessment
Assessment is by examination (80%) and assessed coursework (20%).
Coursework:
Past exam papers:
- Exam paper (2021)
- Exam paper (2020)
- Exam paper (2019)
- Exam paper (2018)
- Exam paper (2017)
- Exam paper (2016)
- Exam paper (2015)
- Exam paper (2014)
- Exam paper (2013)
- Exam paper (2012)
- Exam paper (2011)
- Exam paper (2010)
- Exam paper (2009)
- Exam paper (2008)
- Exam paper (2007)
Lecture Recordings
- Lecture 1: The Changing Internet
- Lecture 2: Connection Establishment in a Fragmented Network
- Lecture 3: Secure Communications
- Lecture 4: Improving Secure Connection Establishment
- Lecture 5: Reliability and Data Transfer
- Lecture 6: Lowering Latency
- Lecture 7: Real-time and Interactive Applications
- Lecture 8: Naming and the Tussle for Control
- Lecture 9: Networks and Internet Routing
- Lecture 10: Future Directions