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
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:
Networks and Operating Systems Essentials 2,
Algorithms and Data Structures 2,
Object Oriented Software Engineering 2,
Java Programming 2
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 2022-2023 academic year.
Any good text on computer networks, e.g.,:
This is a level H course, worth 10 credits.
Assessment is by examination (80%) and assessed coursework (20%).
Past exam papers: