COMPUTER NETWORKS AND LAB.
The aim of the course COMPUTER NETWORKS AND LABORATORY is to provide the basic knowledge required for proper design, installation, configuration, management and use of Computer Networks. To this end, after a brief introduction to the basic principles of telecommunications, and a broad presentation of the architectural models of computer networks, the course provides a detailed discussion of protocols and services of TCP/IP networks, conducted according to the well-known ISO/OSI model. For a better understanding of the discussed issues, the course also includes laboratory activities aimed at exemplifying, through important case studies, the adopted technological solutions and to provide basic knowledge about the techniques as well as the tools currently used for the development of network applications.
Knowledge and understanding: The student must demonstrate the knowledge and understanding of the theoretical and practical aspects of network infrastructures, the possible limitations that these aspects bring about the services they offer, with particular regard to modern programming paradigms, development environments and SW tools necessary for the development of efficient network applications.
Applying knowledge and understanding: The student must demonstrate to be able to use the acquired knowledge to correctly identify and produce solutions to real-world problems often found in the management/use of computer networks.
Making judgements: In addition to being able to independently design and implement network applications (client/server, peer-to-peer, etc.), the student must also be able to evaluate and validate their effectiveness.
Communication skills: The student must be able to participate actively in workgroups both in design/management activities and in the deployment/testing/documentation of network applications. In particular, with reference to the ability to write an appropriate documentation, it is crucial to know the correct technical terminology used in computer networks.
Learning skills: The student must be able to update and deepen his/her knowledge by accessing sources of information, documentation and software that are also present on the Internet, as well as stay adjourned about HW and SW technology innovations of computer networks.
The student must have adequate knowledge of the topics covered in the courses of Computer Architecture and Laboratory, Programming I and Programming Laboratory 1, Operating Systems and Laboratory.
Networks: General Concepts. Topologies (ring, bus, star and tree) and connectivity. LAN, MAN and WAN networks. Proxy protocols: MAC and LLC protocols. Aloha and Aloha random access protocols with slots. Carrier Detection Protocols. Reservation Protocols: Reservation Aloha, token ring, token bus. Hierarchies of protocols and services. The ISO-OSI model. TCP/IP protocols.
Physical layer: Data transmission. Shannon Bandwidth and Limit Concept. Transmission means: twisted pair, coaxial cable, fiber optic, radio. The telephone system. Modulation Techniques. Switching circuit and packet.
Data link layer: Data link layer functions. Framing Techniques. Error encoding and correction encodings: parity coding, Hamming code, block coding, CRC codes. The generator polynomial. Frame data link format. Data link protocols: ack, stop-and-wait, time-delayed retransmission, sliding window, selective retransmission, negative ack. Point-to-Point Protocol.
The MAC level: Broadcast networks. Aloha protocol. CSMA/CD. Manchester encoding. IEEE 802. Ethernet: wiring (10Base5, 10Base2, 10BaseT), twisted pair and RJ45 connectors. Fast ethernet. Frame format IEEE 802.3. Ethernet addressing. Exponential backoff. Performance Considerations. Bridge and switch: features, connection mode, IEEE 802.3 LAN network topologies.
IEEE 802.5 Token Ring: Mode of Operation.
Wi-Fi networks: physical features and level architecture. Cells, Access Points, and Wireless Terminals. CSMA/CA Protocol and Frames.
Network layer: Internetworking. Virtual Circuits and Datagrams. Internet protocol (IP). IP addressing: address classes, special addresses (broadcast, loopback, network). About IPv6. Address Resolution Protocol (ARP). About DHCP. Routers and Addressing: routing tables, table generation. Remote-carrier routing and RIP protocol routing. Channel-based routing and OSPF protocol. BGP Protocol Statements. LAN Designing and Addressing Plans.
Transport layer: Transport service features. TCP and UDP protocols. TCP/IP: port concept. The TCP Header. Protocols for Opening and Closing a TCP Connection, Transmission Protocol. The UDP protocol: UDP header. Socket TCP and UDP: basic features and examples of use in C and Java.
The application level: The main application programs. Domain Name System (DNS): namespace; Zones and name servers. Email and Web.
Berkeley Socket: The client/server programming model, the socket programming interface, TCP sockets, concurrent servers, UDP sockets, IO/Multiplexing, Name and Address Conversion.
The course provides the necessary basic knowledge for a correct design, installation, configuration and management of computer network. After a short introduction to the fundamentals of telecommunications, the architectural models of computer networks are analysed in depth following the well known ISO/OSI model. Particular attention is devoted to protocols and services of modern TCP/IP networks and to the development of network programming. The course provides the analysis of actual use cases.
Traditional teaching in the presence and teaching in a suitable computing lab to analyze and practice with the architectures and network programming.
ANDREW S. TANENBAUM, “Reti di Calcolatori” (consigliato).
W. RICHARD STEVENS, BILL FENNER, ANDREW M. RUDOFF, “UNIX® Network Programming,
Volume 1, 3rd ed.: The Sockets Networking API”, Addison Wesley Professional, 2003.
RICHARD W. STEVENS, “TCP/IP illustrated, Vol. 1: The protocols”, Addison-Wesley (to consult).
KUROSE, ROSS, “Internet e Reti di Calcolatori”, McGraw Hill, 2001 (to consult).
BEHROUZ FOROUZAN, “Reti di Calcolatori e Internet”, McGraw-Hill (to consult).
The assessment of the knowledge consists in a final exam that quantifies the level of achievement with respect to the goals previously indicated.
The verification procedure, as indicated on the e-learning platform of the Department of Science and Technology, provides two distinct parts. First, the student presents/discusses a self-developed project in which the ability to master the network programming technique is evaluated. In the second part, he/she takes an oral exam with the aim of assessing the competence about network infrastructures both from a HW and SW point of view.
Lectures are in Italian. The professor is fluent in English and is available to interact with students in English, also during the examination.