Home ApplicazioneProtocolli Rete Socket Client-Server Makefile Segnali Web LaTeX Bibliografia
Protocolli di Rete

Protocolli di rete


I protocolli sono un insieme di regole utilizzate dalle due macchine per scambiarsi informazioni e specifica cosa deve essere comunicato, in che modo e quando. Se le due macchine sono remote, si parla di protocollo di rete. Una caratteristica comune dei protocolli di rete è il loro essere strutturati in livelli sovrapposti. Il livello superiore esegue richieste al livello sottostante e i livelli uguali su macchine diverse conversano tramite lo stesso protocollo. Uno dei vantaggi dei protocolli di rete è la progettazione di uno strato che deve esaminare solo alcuni aspetti del problema. Ogni strato non dipende dall'implementazione degli altri strati. Ogni strato fornisce servizi comuni a tutte le funzioni dello strato superiore.

1.1 Modello OSI


Il modello OSI è uno standard per le reti di calcolatori che stabilisce per l'architettura logica di rete una struttura composta da una pila di protocolli di comunicazione di rete suddivisa in 7 livelli, i quali insieme eseguono le funzionalità di rete. I livelli del modello OSI sono i seguenti:

Livello Vecchio Modello Nuovo Modello
Livello 7 Stato Applicazione Livello Applicazione
Livello 6 Strato Presentazione Livello Presentazione
Livello 5 Strato Sessione Livello Sessione
Livello 4 Strato Trasporto Livello Messaggio
Livello 3 Strato Rete Livello Pacchetto
Livello 2 Strato Collegamento Dati Livello Frame
Livello 1 Strato Fisico Livello FIsico

  • Livello Fisico: definisce il modo in cui di dati sono fisicamente convertiti in segnali digitali sui media di comunicazione (impulsi elettrici, modulazioni della luce, ecc.)

  • Livello Collegamento Dati: definisce l'interfaccia con la scheda di rete e la condivisione del media di trasmissione.

  • Livello rete: permette di gestire l'indirizzamento e il routing dei dati, cioè il loro invio tramite la rete.

  • Livello trasporto: è incaricato del trasporto dei dati, della loro divisione in pacchetti e delle gestione degli eventuali errori di trasmissione.

  • Livello sessione: definisce l'apertura e la distruzione delle sessioni di comunicazione tra i terminali di rete.

  • Livello presentazione: definisce il formato dei dati manipolato dal livello applicativo (loro rappresentazione, eventualmente loro compressione e loro codifica) indipendentemente dal sistema.

  • Livello applicazione: assicura l'interfaccia con le applicazioni. Si tratta quindi del livello più vicino agli utenti, gestito direttamente da alcuni software.

1.2 TCP/IP


I due protocolli TCP e IP furono concepiti da Bob Kahn e Vinton Cerf nel 1974, lo scopo era permettere l'interconnessione delle reti di calcolatori allora esistenti, come quella militare ARPANET, SATNET e altre network tecnologicamente diverse e indipendenti.
Rappresenta in un certo modo l'insieme delle regole di comunicazione su internet e si basa sulla nozione d'indirizzamento IP, cioè il fatto di fornire un indirizzo IP ad ogni terminale di rete per poter inviare dei pacchetti di dati.
Il modello TCP/IP, ispirato al modello OSI, riprende l'approccio modulare, ma ne contiene solo quattro:

Modello TCP/IP Modello OSI
Livello Applicazione
Livello Applicazione
Livello Presentazione
Livello Sessione
Livello Trasporto (TCP) Livello Trasporto
Livello Internet (IP) Livello Rete
Livello Accesso Rete
Livello Collegamento dati
Livello Fisico

Il livello Accesso di rete è il primo livello della pila TCP/IP,rappresenta i mezzi per realizzare una trasmissione di dati attraverso una rete. Il livello di accesso di rete contiene tutte le specifiche riguardo la trasmissione di dati su una rete fisica.
Si incarica delle seguenti nozioni:
  • Invio dei dati sul collegamento.

  • Coordinamento della trasmissione dei dati.

  • Formato dei dati.

  • Conversione dei segnali (analogico/digitale).

  • Controllo degli errori all'arrivo.
Definisce il formato dei pacchetti, sistema di indirizzamento globale e il meccanismo di instradamento dei pacchetti.
Il livello internet è il livello più importante dato che è quello che definisce i pacchetti di dati, e che gestisce le nozioni d'indirizzamento IP. Esso permette l'invio dei pacchetti di dati verso dei terminali remoti. Comprende 5 protocolli, i più importanti sono i protocolli IP, ARP e ICMP.
Il livello trasporto permette a delle applicazioni che girano su terminali remoti di comunicare. Contiene due protocolli che permettono alle due applicazioni di scambiare dei dati indipendentemente dai livelli inferiori.
Questi protocolli sono:
-TCP: Tcp fornisce un livello di trasporto affidabile e orientato alla connessione. Per affidabile s'intende che prima di inviare i dati il server esegue l'handshaking, cioè chiede al client se è pronto a riceverli. Per orientato alla connessione s'intende la numerazione dei pacchetti in modo che il client li riceva in modo ordinato. Viene utilizzato per la sua sicurezza.
-UDP: Udp fornisce un servizio di trasporto datagram-oriented (non affidabile) e non orientato alla connessione. I pacchetti quindi vengono inviati senza chiedere al client se è pronto e inviandoli in modo disordinato. Viene utilizzato per la sua velocità.
Il livello applicazione contiene le applicazioni di rete che permettono di comunicare grazie ai livelli inferiori.
I software di questo livello comunicano quindi grazie a TCP o UDP.
Le applicazioni di questo livello sono di differenti tipi, ma la maggior parte sono dei servizi di rete, cioè delle applicazioni fornite all'utente per assicurare l'interfaccia con il sistema operativo.

1.2 APPLICAZIONI DI RETE


Le applicazioni di rete sono composto da diversi elementi , in esecuzione su macchine differenti, che operano in modo indipendente e che possono scambiare informazioni. Le applicazioni sono processi comunicanti e distribuiti. La comunicazione avviene utilizzando i servizi offerti dal sottosistema di comunicazione. La cooperazione può essere implementata secondo vari modelli. Il modello più diffuso è quello client/server.
Gruppi
Applicazione
- Alessandro Angelone
- Mattia Vinante
- Patrick Coviello
- Daniel Amadori
Documentazione
- Daniele Balzamà
- Matteo Forti
- Lorenzo Monorchio
- Giovanni Pani
- Dyllan Ruales
- Nicole De Min
- Usama Chaudhry
Sviluppo Web
- Mateo Myftaraj
- Fabio Travagli
- Nicola Imperiale
- Andrea Pigozzo
LaTeX
- Michele Candioli
- Patrick Coviello
- Michael Barba
- Marco Filippi
Traduzione
- Samuele Aldi
- Emil Kob
- Luca Viola
- Stanislav Nacu
Project Leader
- Simone Tagliapietra

Coordinatori
- Prof. Iaccarino
- Prof. Minichiello