Skip to main navigationSkip to main content
The University of Southampton
Courses

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

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

TypeHours
Completion of assessment task19.5
Wider reading or practice36.5
Tutorial12
Lecture36
Preparation for scheduled sessions18
Revision10
Follow-up work18
Total study time150

Resources & Reading list

LL Peterson and BS Davie (2008). Computer Networks, a Systems Approach. 

Mohr, S, (1999). Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ. 

Coulouris, Dollimore and Kindberg (2011). Distributed Systems - Concepts and Design. 

Emmerich, W (2000). Engineering Distributed Objects Wiley. 

Flanagan, Farley, Crawford, and Magnusson (2002). Java Enterprise in a Nutshell. 

A Tanenbaum, D. J. Wetherall (2010). Computer Networks. 

D. Comer and D. Stevens (1993). Internetworking with TCP/IP Volume III: Client-Server Programming and Applications. 

Lydia Parziale, Dr. Wei Liu, Carolyn Matthews, Nicolas Rosselot, Chuck Davis, Jason Forrester and David T. Britt (2006). TCP/IP Tutorial and Technical Overview. 

Assessment

Summative

MethodPercentage contribution
Coursework 15%
Coursework 20%
Examination  (2 hours) 65%

Repeat

MethodPercentage contribution
Examination 100%

Referral

MethodPercentage contribution
Examination 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisites: COMP1202 AND COMP1206

Share this module Share this on Facebook Share this on Twitter Share this on Weibo
Privacy Settings