28024 - Computer Networks T

Academic Year 2016/2017

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Computer Engineering (cod. 0926)

Learning outcomes

Students are assumed to have a good 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.

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.

Course contents

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 (tradotto in 'Reti di Calcolatori', Jackson).

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

Teaching methods

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.

Any student is responsible of her/his environment and of its correctness and usability during lab and exam tests.
We require any student to make a preliminary delivery of her/his project templates (those are the personal work base to elaborate upon all the final test subprojects).
Please, be advised that any cheating and any attempt is going to be prosecuted severely.

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

Assessment methods

Final evaluation depends on three main parts:

  • An initial general knowledge test on the class topics via some open questions (closed books).
  • 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.
  • a final oral examination.

The delivery of the personal project templates (i.e., the base to start the project coding from) are compulsory before any attendance of the project part. They are a prelimanry requirement to be given in once per Academic Year.

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 veruy important toward the success of the evaluation part.

Office hours

See the website of Antonio Corradi