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.
Linked modules
Pre-requisites: COMP1202 AND COMP1206
Aims and Objectives
Learning Outcomes
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Build a distributed objects solution in Java
- Build a client-server solution in Java
- Build and operate simple data networks
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Distributed transactions
- Client-server applications and programming
- Distributed algorithms
- Link, network and transport layer principles and functions
- The Internet architecture and layered TCP/IP networking model
- Principles of communications protocols
- Peer-to-peer systems, their design, the value of decentralisation
- Network services, design, operation and security
- Distributed objects, including use through Java RMI
- Web services, both classic and RESTful
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Understand the use and impact of concurrency on the design of distributed systems
- Assess network systems and technologies
- Choose between alternative paradigms and technologies for solving problems in distributed systems
- Design and analyse simple networks and the protocols they use
- Explain the fundamental concepts underlying networks and distributed systems
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 |
---|---|
Follow-up work | 18 |
Wider reading or practice | 36.5 |
Lecture | 36 |
Revision | 10 |
Completion of assessment task | 19.5 |
Tutorial | 12 |
Preparation for scheduled sessions | 18 |
Total study time | 150 |
Resources & Reading list
Textbooks
Lydia Parziale, Dr. Wei Liu, Carolyn Matthews, Nicolas Rosselot, Chuck Davis, Jason Forrester and David T. Britt (2006). TCP/IP Tutorial and Technical Overview. IBM Redbooks.
A Tanenbaum, D. J. Wetherall (2010). Computer Networks. Pearson.
Flanagan, Farley, Crawford, and Magnusson (2002). Java Enterprise in a Nutshell. O'Reilly.
Coulouris, Dollimore and Kindberg (2011). Distributed Systems - Concepts and Design. Addison Wesley.
Emmerich, W (2000). Engineering Distributed Objects Wiley.
LL Peterson and BS Davie (2008). Computer Networks, a Systems Approach. Morgan Kaufman.
D. Comer and D. Stevens (1993). Internetworking with TCP/IP Volume III: Client-Server Programming and Applications. Prentice Hall.
Mohr, S, (1999). Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ. Wrox Press.
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Continuous Assessment | 35% |
Final Assessment | 65% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Set Task | 100% |
Repeat Information
Repeat type: Internal & External