The University of Southampton

COMP2207 Distributed Systems and Networks

Module Overview

The aims of this module are two-fold: to teach the theory and practice of distributed systems, and to provide a solid grounding in the fundamentals of all major aspects of computer network technology.

The networking aspect of the 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 expose students to the principles and practice of distributed systems, from distributed system models and distributed algorithms to different programming paradigms for distributed systems to distributed transactions.

Students should gain a clear understanding of the technologies covered in terms of the underlying fundamental principles.

Aims & Objectives

Aims

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Principles of communications protocols
  • The Internet architecture and layered TCP/IP networking model
  • Link, network and transport layer principles and functions
  • Network services, design, operation and security
  • Principles of distributed systems: models, algorithms
  • Distributed system paradigms: client-server programming, remote invocation, indirect communication
  • Distributed transactions

Subject Specific Intellectual

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

Subject Specific Practical

Having successfully completed this module, you will be able to:

  • Build and operate simple networks
  • Build a client-server solution in Java
  • Build a distributed objects solution in Java

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
    • (Linked) open data
  • Network security
    • Authentication and encryption, PKI
    • (Distributed) denial of service attacks
  • Introduction to distributed systems
    • Issues, challenges
    • Distributed system models
  • Time in distributed systems
    • Clock synchronisation, logical clocks
  • Client-server programming
    • Sockets
  • Distributed objects
    • RPC/RMI
    • Java RMI
  • Indirect communication
    • Group communication
    • Publish-subscribe
    • Message queues
  • Distributed algorithms
    • Mutual exclusion
    • Leader election
    • Reliable/ordered multicast
    • Consensus
  • Distributed transactions

Learning & Teaching

Learning & teaching methods

ActivityDescriptionHours
LectureStandard lecture slots.36
TutorialOptional tutorial slot, for (for example) further examples, assisting students with their self-study exercises or module assessments.12

Assessment

Assessment methods

MethodHoursPercentage contribution
Exercise 1-10%
Exercise 2-10%
Coursework-30%
Exam1.5 hours50%

Referral Method: By examination

Share this module FacebookTwitterWeibo