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