This course focuses on the algorithmic design of network protocols and covers a range of sub-specialties including: computer communication network concepts, programming using BSD socket API, and distributed fault-tolerance algorithms with a very strong emphasis on self-stabilization.
The aim of this course is to learn to design and analyse algorithms for network protocols and to gain knowledge in existing communication networks, including supporting systems and protocols, fundamental tasks and methods in data communication networks. Mastery of computer networks involves both theory and practice in the design, implementation and use of network protocols and services. This course offers learning experiences that involve hands-on experimentation and analysis as they reinforce student understanding of concepts and their application to real-world problems. Several laboratory experiments are given and involve API programming for fault-tolerance network systems, and Internet interconnections and services from a practical perspective, and design and analysis of protocols with a strong emphasis on self-stabilizing algorithms.
This course provides the students with the analytical background needed for understanding fundamental issues in the design of distributed fault tolerance algorithms for computer network protocols. The course has a very strong emphasis on transient faults and how self-stabilizing algorithms can allow automatic recovery after their occurrence.