28024 - Computer Networks T (L-Z)

Academic Year 2019/2020

  • Moduli: Antonio Corradi (Modulo 1) Luca Foschini (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Computer Engineering (cod. 0926)

    Also valid for First cycle degree programme (L) in Computer Engineering (cod. 0926)

Learning outcomes

This course faces most issues related with network and distributed systems, by examining most common solutions: the goal is to acquire a first knowledge of the solution policies, of typical problems, and good exposure to tools and widespread strategies.
The knowledge objective is to understand which are the typical environments on which to apply some basic solutions and the requirements.

The main ability is to be capable of proposing a solution to small typical distributed problems with some time frame with the most common tools.

Students are assumed to have a good starting knowledge of the basics of operating systems and related tools, both for WinXX and UNIX technologies.
In other words, we assume a good knowledge derived from a first course on Operating Systems.

Course contents

The course is based on class lectures and also on laboratory sessiones.
The two activites are strictly entertwined so that the lab hours are devoted to the closely-explaned topics in class.
Both parts are importanto toward the final results.

1. Generalities and Basics Understanding

  • Some basic perspectives and general definitions
  • Decentralized and heterogeneous distributed systems
  • Assessment of standards and their meaning

Some basic models are presented:

  • shared memory and message exchange
  • client/server interaction
  • connection models, interaction models, etc.

2. Standard environments

ISO OSI layered organization

  • network and transport layer
  • application layers: session, presentation, & application

Presentation of some standard applications.

3. TCP/IP protocols

Suite TCP/IP protocols: network and transport layer
Common applications:

  • synchronous services: remote virtual terminal, file transfer,
  • asynchronous services: mail, news, etc.

Some widely spread tools for Unix and WinXX.

4. Some reference tools

Socket and related API for C (UNIX) and Java
Case studies for interactions client/server in Unix systems with TCP/IP protocols
Some client/server application cases
Remote Procedure Call RPC
RMI, remote operations in Java

5. Distributed Operating Systems and tools

Distributed Operating Systems
Resource naming
Process granularity and their interaction
Resource management
File system
DNS and advanced name systems

Readings/Bibliography

G. Coulouris, J. Dollimore, T. Kindberg: 'Distributed Systems: concepts and Design', fourth edition, Addison-Wesley, 2005.

M.L. Liu: 'Distributed Computing', Addison-Wesley, 2003.

J.F. Kurose, K.W. Ross: 'Internet e Reti', McGraw-Hill, 2001 (translated in 2001 from 'Computer Networking: a Top-Down Approach Featuring the Internet', 2001).

A.S. Tanenbaum: 'Computer Networks', Prentice-Hall, 1988 (translated in 'Reti di Calcolatori', Jackson).

D. Reilly, M. Reilly: 'Java Network Programming and Distributed Computing', Addison-Wesley, 2002.

Teaching methods

Several lab proposals are presented in class and students are requested to solve them in groups. The main versfications is done in the lab lately, but in a strict sequence qith the proposals (the schedule is going to be published) and the group results are recorded and taken into account in the final evaluation.

The lab session, highly recommended, tend to put together exactly the same environments of the final test (part in C and part in Java ).
Specifically we ascertain skills suitable for small and medium size project, typically Client/Server and with different goals and objectives:
- socket both in C and Java, with different communication protocols and usage involvment;
- RPC, for client/server high level projects, with SUN solutions;
- RMI, for Java design of client/server interactions.

Attending both forms of teaching is particularly important toward the final results.

Any student is responsible of her/his environment and of its correctness and usability during lab and exam tests.
We require any student to be capable of autonomously design and implement a small project for a typical distributed solution case with the above tools.


Please, be advised that any cheating and any fraud attempt is going to be prosecuted severely.

URL: lia.disi.unibo.it/Courses/RetiT

Assessment methods

The objective of the assessment is to verify the whole capacities of orientation of the student in solving small projects in autonomy.

The final evaluation depends on two main parts:

  • A project to be developed and deployed in the laboratory in a time-constrained session and with no limit to the material students can personally consult. The project must be developed in the lab and by using both the two main environments of the class tools (both C-Based and Java-based).
  • a final oral examination.

The project part gives a vote over 30, that is generated by the correct solutions in both environments.
The oral part can be accessed only after a successful first part and it is used to verify the knowlegdge and the orientation over the whole class material, and complete the final vote - also evaluating other sources (extra projects and additional elements).

Teaching tools

In the classroom we tend to use slides and to stimulate discussion by using small example case studies.
See the web side of the course at the URL: lia.disi.unibo.it/Courses/RetiT

The lab provides some usual and recommended tools and environments for the development and deployment of distributed projects.

Students are advised to become familiar with most of them, and even with other chosen ones, that are going to be used in the final tests.
Also students are advised to go and become expert in the tools of the UNIX (Linux) environment: those abilities are very important toward the success of the evaluation.

Office hours

See the website of Antonio Corradi

See the website of Luca Foschini

SDGs

Quality education Gender equality Industry, innovation and infrastructure Responsible consumption and production

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.