COMP2207 Distributed Systems and Networks
Module Overview
The networking aspect of this module will expose students to the principles of layered communication protocols, the architecture of the Internet, and the principles of how the components of the TCP/IP layered model are designed and operate. The distributed systems aspect will focus on distributed algorithms, but include distributed communication, distributed objects, web interfaces and peer-to-peer systems. Students should gain a clear understanding of the technologies covered in terms of the underlying fundamental principles. Hands-on experience is also gained through the coursework.
Aims and Objectives
Module Aims
The aims of this module are two-fold: to teach the theory and practice of concurrent and distributed systems, and to provide a solid grounding in the fundamentals of all major aspects of computer network technology.
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Principles of communications protocols
- Peer-to-peer systems, their design, the value of decentralisation
- The Internet architecture and layered TCP/IP networking model
- Link, network and transport layer principles and functions
- Network services, design, operation and security
- Client-server applications and programming
- Distributed objects, including use through Java RMI
- Distributed transactions
- Distributed algorithms
- Web services, both classic and RESTful
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Explain the fundamental concepts underlying networks and distributed systems
- Design and analyse simple networks and the protocols they use
- Assess network systems and technologies
- Choose between alternative paradigms and technologies for solving problems in distributed systems
- Understand the use and impact of concurrency on the design of distributed systems
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Build a client-server solution in Java
- Build a distributed objects solution in Java
- Build and operate simple data networks
Syllabus
The topics to be covered will include: Internet architecture - The TCP/IP layered model - Protocols, design principles, standardisation, IETF - Naming and addressing Link-layer - Transmission theory and protocols - Ethernet networks, switches - Wireless networks Network layer - Routing, link state and distance vector algorithms - Subnet, site and ISP routing perspectives - IPv6 Network services - Quality of service (QoS) - IP multicast, reliable multicast - Host configuration, service discovery, zero-configuration networking - DHCP, DNS Transport layer - TCP, UDP Network design and operation - Infrastructures; enterprise/campus, ISP/home networks - Network monitoring and management, SNMP - Virtual network environments Applications - Web/HTTP, Email/SMTP Client-server programming Introduction to distributed systems - Issues, challenges - Distributed system models (architectural, interaction, failure, security) Time in distributed systems - Clock synchronisation, logical clocks Distributed objects Distributed algorithms - Mutual exclusion - Leader election - Application of reliable/ordered multicast - Consensus Indirect communication - Group communication - Publish-subscribe - Message queues Web protocols - The classic web service model; WSDL, SOAP, UDDI, RDF, XML - RESTful web services; HTTP methods, JSON - (Linked) open data Peer to peer systems - Design principles - BitTorrent - Distributed hash tables Network security - Authentication and encryption, PKI - (Distributed) denial of service attacks
Learning and Teaching
Type | Hours |
---|---|
Wider reading or practice | 36.5 |
Tutorial | 12 |
Preparation for scheduled sessions | 18 |
Follow-up work | 18 |
Revision | 10 |
Completion of assessment task | 19.5 |
Lecture | 36 |
Total study time | 150 |
Resources & Reading list
LL Peterson and BS Davie (2008). Computer Networks, a Systems Approach.
Lydia Parziale, Dr. Wei Liu, Carolyn Matthews, Nicolas Rosselot, Chuck Davis, Jason Forrester and David T. Britt (2006). TCP/IP Tutorial and Technical Overview.
D. Comer and D. Stevens (1993). Internetworking with TCP/IP Volume III: Client-Server Programming and Applications.
Mohr, S, (1999). Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ.
A Tanenbaum, D. J. Wetherall (2010). Computer Networks.
Emmerich, W (2000). Engineering Distributed Objects Wiley.
Flanagan, Farley, Crawford, and Magnusson (2002). Java Enterprise in a Nutshell.
Coulouris, Dollimore and Kindberg (2011). Distributed Systems - Concepts and Design.
Assessment
Summative
Method | Percentage contribution |
---|---|
Coursework | 15% |
Coursework | 20% |
Examination (2 hours) | 65% |
Repeat
Method | Percentage contribution |
---|---|
Examination | 100% |
Referral
Method | Percentage contribution |
---|---|
Examination | 100% |
Repeat Information
Repeat type: Internal & External
Linked modules
Pre-requisites: COMP1202 AND COMP1206