The course covers the organization and basic components of computer networks using Internet's architecture as the reference model. Functional layers of a computer network and its basic protocols such as HTTP, DNS, DHCP, TCP/UDP, IP, ICMP, ARP are examined in projects integrated to lectures on live systems.
Application-network services interface, client-server model, reliability and performance of network services, tracing and analyzing network message traffic, design of multi-segment network topologies, static routing, deployment of name and address resolution services in corporate networks are the primary topics emphasized throughout the course.
Basic metrics used in data communication and packet switching are introduced to illustrate and quantify network engineering concepts and emphasis their impact on network applications.
Projects closely integrated to lecture topics aim to foster students' analysis, synthesis, and design abilities. Students will:
- experiment with the concepts & mechanisms covered in the course, and use them in the applications they develop; and
- work with contemporary network infrastructure & tools to implement the prototype of typical multi-segment corporate network.
Prerequisite(s)
-
Corequisite(s)
-
Special Requisite(s)
Projects are designed to be deployed on Department Laboratory workstations running under Microsoft Windows 10 over ORACLE VM VirtualBox virtualization platform, using Virtual Machines that are customized for the laboratory systems.
Students who own a personal computer equipped with at least INTEL i5 CPU, 16 GB memory, 30 GB disk space per Virtual Machine, running under Microsoft Windows 10 may use the project platform on their system to work at home. Note that the use of the personal computer at the lab requires its connection to the wired network of the laboratory.
Tue. 11:00-12:00 and 15.00-16.00 @ AK 2A-15
Thur. 11:00-12:00 @ AK 2A-15
Teaching Methods and Techniques
Balanced lecture and laboratory hours shift instructor biased teaching model towards a student driven process. Course format provides students with the opportunity not only to acquire knowledge on computer network architecture and technologies, but also to gain professional proficiency through their individual work.
Topics presented in lecture sessions are illustrated with the contemporary examples used in the industry; introduced concepts, architectures, and processes are consolidated with live experiments running on real systems.
Topics studied in lectures integrate closely with the projects developed throughout the term; students find the opportunity to enhance their comprehension by implementing their projects over real platforms built with up-to-date technologies, considering engineering design and development best practices.
Laboratory sessions are dedicated to the discussions of the problems faced in the design, development, and testing phases of current or past projects, and the assessments of the solutions adopted to overcome these issues.
Collaboration is a great way to learn. Students are encouraged to discuss project concepts and confer on implementation procedures with their peers. The key is to use collaboration to enhance learning, not as a way of sharing answers without understanding. Submitted work should be exclusively individual.
Midterm and final examinations are open book assessments. They aim at evaluating your comprehension of the topics covered in lectures and projects, testing your ability in using your knowledge. Topics and processes covered in projects are integral part of course contents and will be assessed in the examinations.
Principle Sources
James Kurose and Keith Ross, “Computer Networking: A Top-Down Approach”, 8/E GlobalEdition, Addison Wesley, 2021
ISBN-13: 9781292405469
Other Sources
Recorded lectures from the textbook
https://gaia.cs.umass.edu/kurose_ross/lectures.php
Textbook end-chapter tests and problem solutions
https://gaia.cs.umass.edu/kurose_ross/knowledgechecks/
https://gaia.cs.umass.edu/kurose_ross/interactive/
Course Schedules
Week
Contents
Learning Methods
1. Week
Evolution of Computer Networks, Layered Internet Architecture
Project #1 Installing and Testing Oraccle VM Virtualization Platform and Wireshark Protocol Analyzer
2. Week
Link Layer: Interconnection Technologies
ARP
Project #1 continued
3. Week
Application Layer: Architecture, Socket API
Project #2 Analyzing Protocol Layers with Wireshark and Ncat Traffic Generator
4. Week
DHCP
Computer Network Performance and Metrics
Project #2 continued
5. Week
DNS Protocol and Service
Project #3 Deploying a Primary DNS Server
6. Week
Transport Layer: UDP, Reliable Protocols
Project #3 continued
7. Week
Transport Layer: TCP, Flow and Congestion Control
Project #4 UDP Socket API
8. Week
Official Holidays
9. Week
Mid Term Examination
10. Week
National Hollyday
Project #4 continued
11. Week
WWW and HTTP
Project #5 WWW and HTTP - Analysing TCP Connections
12. Week
Network Layer: IP, Static Routing
Project #5 continued
13. Week
Network Layer: Subnetting
Project #6 Subnetting, Static Routing, NAT, Port Forwarding,
14. Week
Network Layer: NAT, Port Forwarding
Project #6 continued
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
15
Project(s)
6
45
Final Exam
1
40
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Learn the computer networking concepts, basic terminology, and applications.
LO-2
Understand the Internet architecture, components, services, and measures of performance.
LO-3
Understand the application-layer concepts, protocol principles, transport-layer interfaces, and
network applications such as the WEB and HTTP and the FTP.
LO-4
Understand the transport-layer concepts, relationship with the network- and application layers, and services such as the principles of Reliable Data Transfer.
LO-5
Understand the network-layer concepts and routing principles, algorithms, and protocols.
LO-6
Understand the data link-layer concepts, protocols, and services such as error-detection and
correction, addressing, and multiple-access techniques.