Networked Systems H (2019-2020)
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.
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.
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 2019-2020 academic year, starting on 16 January 2020 and concluding on 19 March 2020. The lectures run from 10:00-12:00 on Thursdays, in the Main Building, room 226, East Quad Lecture Theatre. Laboratory sessions are 14:00-16:00 on Thursdays in the Boyd Orr 720 laboratory. Office hours are 13:00-14:00 on Thursdays in S101b Lilybank Gardens.
Any good text on computer networks, e.g.,:
- Peterson and Davie, Computer Networks: A Systems Approach, 5th Edition, Morgan Kaufman, 2011, ISBN 0123851386. The source text for the 5th Edition is available online under a Creative Commons (CC BY 4.0) license.
- Kurose and Ross, Computer Networking: A Top-Down Approach, 6th Edition, Addison-Wesley, 2012, ISBN 0273768964.
- Tanenbaum and Wetherall, Computer Networks, 5th Edition, Prentice Hall, 2010, ISBN 0132553171.
- Bonaventure, Computer Networking: Principles, Protocols and Practice, online textbook.
This is a level H course, worth 10 credits.
Assessment is by examination (80%) and assessed coursework (20%).
Past exam papers:
- 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 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 Inter-domain Routing
- Lecture 10: