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
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- Link, network and transport layer principles and functions
- Peer-to-peer systems, their design, the value of decentralisation
- Web services, both classic and RESTful
- The Internet architecture and layered TCP/IP networking model
- Distributed objects, including use through Java RMI
- Network services, design, operation and security
- Distributed transactions
- Distributed algorithms
- Client-server applications and programming
- Principles of communications protocols
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
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
- Assess network systems and technologies
- Design and analyse simple networks and the protocols they use
- 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
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 |
---|---|
Tutorial | 12 |
Preparation for scheduled sessions | 18 |
Follow-up work | 18 |
Completion of assessment task | 19.5 |
Revision | 10 |
Lecture | 36 |
Wider reading or practice | 36.5 |
Total study time | 150 |
Resources & Reading list
Textbooks
Mohr, S, (1999). Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ. Wrox Press.
A Tanenbaum, D. J. Wetherall (2010). Computer Networks. Pearson.
Emmerich, W (2000). Engineering Distributed Objects Wiley.
Coulouris, Dollimore and Kindberg (2011). Distributed Systems - Concepts and Design. Addison Wesley.
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.
LL Peterson and BS Davie (2008). Computer Networks, a Systems Approach. Morgan Kaufman.
Flanagan, Farley, Crawford, and Magnusson (2002). Java Enterprise in a Nutshell. O'Reilly.
D. Comer and D. Stevens (1993). Internetworking with TCP/IP Volume III: Client-Server Programming and Applications. Prentice Hall.
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Final Assessment | 65% |
Continuous Assessment | 35% |
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