Networking and Distributed Systems

The Internet has become an indispensable part of modern life. Whether we are checking the latest news, communicating with friends, or entertaining ourselves with music and videos, we cannot get away from accessing and interacting with information and applications over the Internet. The Internet has grown explosively into a network interconnection of billions of devices.

The Networking and Distributed Systems focus area focuses on how such a large scale interconnection of computing devices can be achieved and how these computing devices can work together, often in a distributed manner, to perform computations and disseminate information from one device to another.


The journey into the world of internetworking and distributed systems begins with CS2105 Introduction to Computer Networks. In this module, students are introduced to the basic concepts and principles of computer networking. In particular, students learn about how the Internet is logically organized into five layers, and get a taste of the functions and challenges of each layer.

After completing CS2105, students who wish to learn about implementation details of various commonly used protocols as well as getting hands-on experience with network devices may take CS3103 Computer Networks Practice. Students who wish to deepen their knowledge after CS2105 can take CS4222 Wireless Networking and CS4226 Internet Architecture. These two modules extend what students learned in CS2105 by covering advanced concepts and principles in wireless and wired networks respectively. Finally, CS4231 Parallel and Distributed Algorithms introduced students to core algorithmic concepts and problem-solving techniques in the context of parallel and distributed systems, many of which underlies the modern networking and distributed systems (such as how the hosts can agree on something).


  • Students in this focus area who wish to dig even deeper into the design, analysis and modelling of computer networks and protocols, as well as to get a taste of research topics in computer networks, can consider taking CS5223 Distributed Systems and CS5229 Advanced Computer Networks.
  • The delay and bandwidth constraints of the Internet pose challenges on applications with timing constraints, such as multiplayer games and multimedia streaming. Students who wish to learn how these applications deal with the challenges can take CS5248 Systems Support for Continuous Media.
  • Connecting a device to the Internet allows the device to be reached from other connected devices and opens up the device to all kinds of security threats. CS5321 Network Security is an advanced module that explores these threats and various state-of-the-art solutions in dealing with them.
  • Cloud computing is a distributed system that commoditized computing services and resources as utilities, and is backed by a modern data center networking system. CS5224 Cloud Computing introduces students to the principles and practices of cloud computing.