School of Computer Science

Module 06-23640 (2013)

Networks and Distributed Systems (Extended)

Level 4/M

Mirco Musolesi Semester 2 20 credits
Co-ordinator: Mirco Musolesi
Reviewer: Michael Mistry

The Module Description is a strict subset of this Syllabus Page.

Outline

This module will explore the basic concepts, technologies and standards in the areas of Computer Networks and Distributed Systems. It will cover topics related to the Internet architecture and protocols, networking technologies, distributed systems and algorithms. It will also introduce the students to the recent trends in network technologies and systems, such as wireless networks, mobile computing, cloud computing and online social network applications. The module will be based on the discussion of real-world case studies, research papers and standardisation documents.


Aims

The aims of this module are to:

  • Provide a sound understanding of the Internet architecture, protocols and technologies
  • Introduce the key concepts at the basis of the design of distributed algorithms and systems
  • Review the state-of-the-art of networked systems and analyse the current trends in research and industry

Learning Outcomes

On successful completion of this module, the student should be able to:

1 demonstrate an understanding of the fundamental concepts and issues involved in computer networking
2 demonstrate an understanding of the engineering principles of network and protocol design 3 demonstrate an understanding of the layered organization and structuring of computer networks, distinguish the problems involved at each layer and understand the techniques and algorithms that have been devised to address these problems 4 recognise and appreciate fundamental characteristics of distributed systems: geographical distribution, concurrency, lack of global time, delay in communication, heterogeneity and existence of failures
5 explain the main types of architectures and mechanisms of communication, such as client-server and communication protocols
6 demonstrate an understanding of fundamental issues in distributed systems design such as timing, coordination and consensus
7 apply the theoretical concepts and abstractions discussed in the module to the analysis of real-world case studies and design of novel and innovative networked systems
8 explain and analyze the design, organization and operation of state of the art technologies and systems such as cloud computing, mobile computing and online social networks
9 apply state-of-the-art techniques and technologies, including those recently presented in research papers and standardisation documents, in the development of networked and distributed systems


Restrictions

-Very good programming skills (including concurrency/multi-threading) in an object-oriented programming language or C in a *nix environment. -Very good knowledge of data structures and algorithms (including algorithm complexity), operating systems fundamentals, computer architecture, and hardware-software interface issues.


Co-requisites

  • 06-23644 - Networks and Distributed Systems

Taught with

  • 06-23644 - Networks and Distributed Systems

Teaching methods

3 hours lectures a week, plus exercise classes

Contact Hours: 55


Assessment

Sessional: 2 hour examination (80%), continuous assessment (20%)

Supplementary (where allowed): 2 hour examination (100%)


Detailed Syllabus

  1. Intro to Distributed Systems and Networking

* Basic Concepts and System Models * Protocols Layers and Service Models * Design Patterns of Networked Systems * The Internet Architecture * Delay Loss and Throughput in Packet-Switched Networks 2. Application Layer * Principles of Network Applications * Web and HTTP * Electronic Mail * DNS * P2P Applications 3. Transport Layer * UDP * Principles of Reliable Data Transfer * TCP 4. Network Layer * Forwarding and Routing * Router Design * IP 5. Routing in the Internet * The Link State Routing Algorithm * The Distance Vector Routing Algorithm * Intra-AS Routing in the Internet: RIP * Inter-AS Routing: BGP 6. Link Layer * Link Layer Services * Examples of Multiple Access Protocols * Link Layer Addressing 7. Wireless and Mobile Networks * WiFi * Cellular Networks * Cellular Internet Access 8. Designing Distributed Applications * Interprocess Communication * Client-server Communication * Distributed Objects * Middleware Systems * Group Communication * Time and Global States * Clocks, Events and Process States 9. Coordination and Agreement * Distributed Mutual Exclusion * Elections * Coordination and Agreement in Group Communication * Consensus * Replication 10. Current Trends in Distributed and Networked Systems * Mobile and Ubiquitous Computing * Cloud Computing * Dealing with Big Data *Online Social Networks


Programmes containing this module