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:
- Distributed algorithms
- Network services, design, operation and security
- Link, network and transport layer principles and functions
- Distributed objects, including use through Java RMI
- Distributed transactions
- Web services, both classic and RESTful
- Client-server applications and programming
- Peer-to-peer systems, their design, the value of decentralisation
- The Internet architecture and layered TCP/IP networking model
- Principles of communications protocols
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Design and analyse simple networks and the protocols they use
- Choose between alternative paradigms and technologies for solving problems in distributed systems
- Assess network systems and technologies
- Explain the fundamental concepts underlying networks and 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 distributed objects solution in Java
- Build and operate simple data networks
- Build a client-server 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
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 |
---|---|
Revision | 10 |
Wider reading or practice | 36.5 |
Preparation for scheduled sessions | 18 |
Completion of assessment task | 19.5 |
Tutorial | 12 |
Follow-up work | 18 |
Lecture | 36 |
Total study time | 150 |
Resources & Reading list
Textbooks
A Tanenbaum, D. J. Wetherall (2010). Computer Networks. Pearson.
D. Comer and D. Stevens (1993). Internetworking with TCP/IP Volume III: Client-Server Programming and Applications. Prentice Hall.
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.
Mohr, S, (1999). Designing Distributed Applications with XML, ASP, IE5, LDAP and MSMQ. Wrox Press.
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.
Emmerich, W (2000). Engineering Distributed Objects Wiley.
Coulouris, Dollimore and Kindberg (2011). Distributed Systems - Concepts and Design. Addison Wesley.
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