Protocolli di rete

Prima di tentare di descrivere l'architettura a livelli di internet, vediamo un'analogia.

Se si dovesse descrivere il sistema che consente a una persona di viaggiare con una compagnia aerea, si direbbe che c'è un momento in cui si acquista il biglietto, si imbarca il bagaglio, ci si reca al gate, si decolla, l'aereo si instrada verso la destinazione, (giunti a destinazione) si atterra, si esce dal gate, si ritira il bagaglio e si esce dall'aeroporto (biglietto).
Dopodiché i passi si ripetono all'inverso per tornare indietro.

Queste fasi consentono ad un viaggiatore di partire da un'origine verso una destinazione. Si possono suddividere le fasi di questo sistema in livelli:
Pasted image 20230918121535.png
Pasted image 20230918121551.png

Si noti che ogni livello funziona in modo autonomo. E che tutti i livelli insieme rendono possibile il viaggio. I livelli cooperano in un certo modo tra di loro, ma senza ostacolarsi. Se si è muniti di biglietto si può imbarcare il bagaglio, imbarcato il bagaglio si può entrare al gate e se si è entrati al gate si può decollare, una volta decollati ci si può instradare verso la destinazione. Il vantaggio di una suddivisione a livelli di questo tipo permette l'aggiornamento dei livelli in maniera indipendente dagli altri. Per esempio il fatto che variano le modalità con cui si consegna il bagaglio, non vuol dire che varia il modo in cui si fa il biglietto.

Internet è organizzata in livelli. I livelli possono essere implementati per via hardware o software.
Pasted image 20230918120811.png
Per la descrizione dei livelli sarà utilizzato un approccio top-down, ovvero partendo prima dal livello più in alto (applicazione) fino al livello più in basso (fisico).

Introduzione a ciascun livello
...

Livello di applicazione
...

Di questo livello fanno parte tutti quei protocolli di rete (HTTP, SMTP, …) tramite il quale le applicazioni (nei sistemi periferici) comunicano. Anche il protocollo DNS fa parte di questo livello. Chiameremo messaggi i pacchetti di informazioni scambiati a questo livello.

Livello di trasporto
...

Di questo livello fanno parte due protocolli: TCP e UDP. Entrambi trasferiscono i messaggi tra punti periferici del livello di applicazione.

  • TCP: è un protocollo orientato alla connessione. Garantisce la consegna dei messaggi e offre un servizio per il controllo della congestione della rete.
  • UDP: è un protocollo non orientato alla connessione. Non garantisce la consegna dei messaggi e non offre nessun servizio di controllo della congestione delle rete. Ma è più veloce. Chiameremo segmenti i pacchetti di informazioni scambiati a questo livello.
Livello di rete
...

Questo livello si occupa di trasferire (a livello di rete) da un host all'altro i segmenti (ricevuti dal livello sovrastante) in cui è specificato l'indirizzo di destinazione. In questo livello è contenuto anche il protocollo IP e vari protocolli di instradamento per la scelta del percorso più adatto da far intraprendere ai datagrammi.

Livello di collegamento
...

In questo livello si instrada un datagramma attraverso una serie di router tra la sorgente e la destinazione. Ad ogni nodo, il livello di rete, passa il datagramma al livello sottostante, che lo trasporta al nodo successi. In questo nodo, il livello di collegamento passa il datagramma al livello di rete superiore.
I servizi forniti da questo livello dipendono dallo specifico protocollo utilizzato. Alcuni protocolli garantiscono la consegna affidabile (che è diverso da quello omonimo di TCP che fornisce consegna affidabile da un sistema periferico all'altro). Esempi del livello di collegamento sono: ethernet, Wi-Fi. I pacchetti a questo livello sono chiamati frame.

Livello fisico
...

Mentre il compito del livello di collegamento è trasferire interi frame da un elemento della rete a quello adiacente, il ruolo del livello fisico è trasferire i singoli bit del frame da un nodo a quello successivo. In base alla tipologia del mezzo trasmissivo la modalità con cui viaggiano i bit varia. Mezzi trasmissivi (fibra ottica, doppino in rame,…)
Pasted image 20230918122020.png
La figura sopra illustra il concetto di incapsulamento.
Un messaggio a livello di applicazione , viene passato al livello di trasporto. Nel caso più semplice, il livello di trasporto prende il messaggio e gli concatena informazioni aggiuntive (le cosiddette informazioni di intestazione a livello di trasporto, che sta per header, mentre la t per transport) che saranno utilizzate dalla parte ricevente del livello di trasporto. Il messaggio e le informazioni di intestazione (aggiunte dal livello di trasposrto) costituiscono il segmento a livello di trasporto. Il livello di trasporto passa il segmento al livello sottostante, che aggiunge altre informazioni d intestazione (n sta per network) così da creare un datagramma a livello di rete. Poi il datagramma viene passato al livello di collegamento, il quale aggiunge le proprie informazioni, creando un frame a livello di collegamento.
A ciascun livello un pacchetto ha due tipi di campi:

  • intestazione (header)
  • payload (carico utile trasportato), il payload è tipicamente un pacchetto proveniente da livello superiore.