Skip to content


Lo stack TCP/IP. Introduzione

Ringrazio gli amici di oscene.net che mi danno la possibilità di ripubblicare alcuni articoli dal mio blog.

La suite di protocolli TCP/IP nasce verso la fine degli anni ’60 come progetto di ricerca finanziato dal governo americano fino a trasformarsi in quello che è diventato oggi, ovvero, il protocollo più diffuso al mondo per permettere la comunicazione tra computer. La suite è indipendente dalla piattaforma software utilizzata e, pertanto, funziona su tutti i sistemi operativi che ne implementano lo standard (Unix, Linux, OS X, Windows, Symbian, Android, iOS, etc.).

La suite di di protocolli TCP/IP può essere divisa in quattro parti  chiamati livelli. Essi sono:

livello Applicativo –> Telnet, FTP, POP3, HTTP, etc.
livello Trasporto    –> TCP, UDP
livello network       –> IP, ICMP, IGMP
livello data-link     –> Ethernet, Token Ring, FDDI

Ogni livello si occupa di un aspetto specifico della comunicazione tra due postazioni.

Livello Applicativo

Il livello Applicativo si occupa di definire gli standard dei protocolli di comunicazione delle applicazioni (programmi). Come si evince dal nome, questo livello è gestito dal programma che ha necessità di trasmettere dati. E’ a questo livello che troviamo la definizione dei protocolli FTP, HTTP, etc.. Ai dati da trasmettere, preparati nella maniera opportuna, viene aggiunta un’intestazione che li precede. L’intestazione dipende specificamente dall’applicativo che sta inviando i dati. Come esempio possiamo citare la navigazione sui siti web, essa utilizza il protocollo HTTP e, quindi, le informazioni passate al livello successivo della pila (livello Trasporto) si presenteranno in questo modo:

__________________________
!	HTTP header	! dati	 !

I dati vengono passati al livello Trasporto.

Livello Trasporto

Il livello Trasporto riceve i dati dal livello Applicativo e si occupa di gestire il flusso di dati tra due apparati. Per portare a termine il proprio compito si avvale dei protocolli TCP e UDP. La differenza principale tra i due è l’affidabilità della comunicazione. Il protocollo TCP, quando instaura una connessione tra due host (postazioni), si preoccupa che ogni pacchetto  giunga a destinazione. Il protocollo UDP, invece, invia i pacchetti sulla rete senza preoccuparsi che essi arrivino necessariamente a destinazione, lasciando questo compito, se richiesto, al livello applicativo (in pratica se ne deve occupare il programma che trasmette i dati). Anche il livello Trasporto aggiunge un’intestazione ai dati che gli vengono forniti dal livello Applicativo. Riprendendo il nostro esempio sulla navigazione internet avremo:

____________________________________________
! TCP header	!	HTTP header	!	dati !

oppure

____________________________________________
!	UDP header	!	HTTP header	!	dati !

Una volta transitati per questo livello i dati prendono il nome di “pacchetto TCP” o “pacchetto UDP” è vengono trasmessi al livello Network.

Livello Network

Il livello network riceve i dati dal livello Trasporto e si occupa del “viaggio” dei pacchetti sulla rete. Il routing (instradamento) dei pacchetti attraverso i router avviene a questo livello. Il protocollo utilizzato per svolgere tale compito è Internet Protocol (IP). L’IP è un protocollo non affidabile così come visto per il protocollo UDP del livello Trasporto e, pertanto, non garantisce la consegna dei pacchetti. Esso utilizza il protocollo ICMP per notificare alcuni errori occorsi ai pacchetti durante il tragitto ma dell’eventuale ripetizione del invio dei pacchetti andati persi se ne dovrà occupare un livello superiore (normalmente provvede il protocollo TCP). Così come visto per gli altri livelli anche il livello network aggiunge un’intestazione ai pacchetti. Continuando con l’esempio della navigazione internet avremo:

____________________________________________________
!	IP header	!	TCP header	!	HTTP header  ! dati !

Una volta transitati per questo livello i pacchetti prendono il nome di IP Datagram e vengono trasmessi al livello data-link.

Livello data-link

Al livello più basso della pila TCP/IP troviamo il livello data-link che riceve i dati dal livello Network. Questo livello si occupa della comunicazione tra le schede di rete e dell’impiego ottimale delle connessioni fisiche. A questo livello troviamo la definizione dei protocolli Ethernet, Point To Point Protocol (PTPP), etc. Normalmente è implementato come driver del sistema operativo ma ci sono anche dei casi in cui è implementato nel kernel del sistema operativo. Il livello data-link, in alcune versioni, oltre ad aggiungere un’intestazione agli IP Datagram aggiunge anche delle informazioni in coda (trailer). Iltrailer, chiamato Frame Control Sequence, contiene un CRC che serve per verificare l’integrità del frame (questo è il nome che assumono i dati quando transitano per questo livello).  Completando l’esempio della navigazione web e considerando l’utilizzo di una rete Ethernet avremo:

_________________________________________________________________________
!	Ehternet header	 !	IP header	!	TCP header ! HTTP header ! dati ! FCS !

"Incapsulamento"

Lo stack TCP/IP lavora con una tecnica denominata ad “incapsulamento” o “imbustamento”, ovvero come se le informazioni da trasmettere ad ogni livello venissero inserite in una busta sigillata. Pertanto, ogni livello tratta come “dati grezzi” le informazioni ricevuto dal livello superiore non distinguendo tra i dati originari forniti dall’applicativo e gli header (intestazioni) aggiunte dai livelli che essi hanno già attraversato.

Fonte: http://www.thealbatross.it/?p=27

Be Sociable, Share!

Posted in Networking.

Tagged with , , , , , , , , .


6 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Antonio Barba says

    Bellissimo articolo! Complimenti :-)

  2. Tony Di Bernardo says

    Grazie ;-)

    P.S. mi spieghi come hai fatto a mettere l’immagine sul profilo?

    buon inizio settimana :-)

  3. Antonio Barba says

    registrati qui http://it.gravatar.com/
    il tuo avatar sarà associato alla tua email, funziona con tutti i blog che hanno l’integrazione con Gravatar :-)

  4. Tony Di Bernardo says

    Grazie, creato l’account ;-)

  5. italyanker says

    Oddio sarebbe più semplice spiegarlo con affianco il Modello ISO/OSI…Questo è una sorta di modello di come sono fatte le reti e di come avviene l’incapsulamento dei dati dal dato in se fino al segnale che viene inviato attraverso gli apparati ed i computer e vale tanto per la Internet quanto per le intranet aziendali o per altri tipi di reti che non utilizzano ethernet come media di scambio dei dati.
    L’immagine http://www.fis.unipr.it/lca/Corsi/iso_osi/images/osi_comunic.gif
    esplica perfettamente un sistema di comunicazione qualsiasi, dove ci sono due end user ( ad esempio due computer collegati ad internet attraverso un modem o la internet ) e un generico sistema intermediario ( che può essere un ISP ad esempio o l’intera rete globale )…In pratica un sistema di connessione di terminali moderno si ispira a questo modello ( cellulari, modem, router pppoatm o pppoe, computer, tablet, Server e così via )…
    Questo perchè se è vero che due computer possono vedere la stessa pagina internet non è detto che stiano utilizzando entrambi lo stesso mezzo fisico ( uno può usare la rete del GARR ed essere connesso attraverso ethernet, l’altro un modem analogico 64k, un altro ADSL, un altro ancora può usare un protocollo di rete )

  6. Salvatore Barbera says

    @italyanker: grazie mille per il contributo!



Some HTML is OK

or, reply to this post via trackback.