Internet Protocol Suite

Internet può essere considerata come l’insieme di tutti gli Autonomous System (AS), i router e le connessioni di rete di proprietà dei gestori o ISP, che, interconnessi tra loro permettono la comunicazione e la condivisione di risorse su scala mondiale a tutti gli host collegati, indipendentemente dalle tecnologie trasmissive utilizzate.

Alla fine degli anni ’70, venne adottata ufficialmente come standard della rete ARPAnet, la nonna di Internet, la Internet Protocol Suite.

Tale suite comprendeva un insieme di protocolli, tra i quali TCP (Trasmission Control Protocol) e IP (Internet Protocol), ancora oggi utilizzati. Da questi, la suite assunse anche il nome comune di standard TCP/IP.

Le motivazioni dello standard TCP/IP

Tre furono le principali necessità che portarono alla implementazione della suite:

  • definire uno standard di comunicazione che permettesse di interconnettere computer di produttori diversi e dai diversi sistemi operativi;
  • poter condividere le risorse disponibili sui computer della DARPA e dei vari centri di ricerca;
  • imporre uno standard de facto in luogo dei numerosi protocolli proprietari che avrebbero impedito la comunicazione tra sistemi di produttori diversi.

Questi protocolli sono di pubblico dominio, gratuitamente a disposizione di tutti, definiti in documenti pubblici chiamati RFC (Requests For Comments). L’RFC 791, ad esempio, definisce il protocollo IP.

Architettura di rete TCP/IP e lo stack ISO-OSI

Il modello ISO-OSI è un modello logico e concettuale che definisce la comunicazione di rete utilizzata dai sistemi aperti all’interconnessione e alla comunicazione con altri sistemi. Non si tratta quindi di una architettura concreta con protocolli propri ma, appunto, di un modello. Possiamo vederlo come un linguaggio universale per le reti di computer. Si basa sul concetto di suddividere un sistema di comunicazione in sette strati astratti, ognuno impilato sull’altro (stack).

Come si vede dalla figura seguente, la Internet Protocol Suite è una architettura semplificata rispetto al modello ISO-OSI. Essa comprende infatti solo 4 strati (layer) e non specifica i primi due livelli (livello Fisico e Data Link).

Per questi due livelli, infatti, possono essere utilizzati standard già esistenti, quali IEEE 802.3 o Ethernet per le LAN, PPP o HDLC per le WAN e così via. La scelta di non proporre nuovi protocolli per questi due strati fu dettata proprio dall’intento di permettere la comunicazione tra i nodi della rete indipendentemente dalle tecnologie di basso livello.

I principali protocolli dello standard TCP/IP

Il principale protocollo della strato Internet, corrispondente al livello di Rete del modello ISO-OSI, è IP, che offre un servizio di recapito dei pacchetti IP del tipo best-effort connectionless. Questo protocollo, cioè, non prevede connessione nè correzione degli errori e non garantisce alcun ordine nella sequenza dei pacchetti recapitati dalla sorgente alla destinazione. Per questi compiti, infatti, esiste il protocollo TCP dello strato superiore. Sorgente e destinazione sono individuate attraverso gli indirizzi IP contenuti nell’intestazione dei pacchetti.

Altri protocolli dello strato Internet

Altri protocolli di servizio vengono utilizzati insieme a IP. ICMP (Internet Control Message Protocol) deve individuare anomalie durante il routing dei pacchetti e prevede uno scambio di messaggi diagnostici; ARP (Address Resolution Protocol) che, nelle LAN, converte gli indirizzi IP negli indirizzi fisici MAC delle schede di rete.

A questo strato appartengono anche i protocolli di routing necessari all’instradamento dei pacchetti: RIP (Routing Information Protocol), IGRP (Internet Gateway Routing Protocol) e OSPF (Open Shortest Path First).

Lo strato di Trasporto

Per questo strato sono previsti due protocolli alternativi: TCP e UDP.

Il protocollo TCP (Transmission Control Protocol) è orientato alla connessione, il che significa che una volta stabilita una connessione, i dati possono essere trasmessi in entrambe le direzioni. TCP dispone di sistemi integrati per verificare la presenza di errori e garantire che i dati vengano consegnati nell’ordine in cui sono stati inviati, rendendolo il protocollo perfetto per il trasferimento di informazioni come immagini fisse, file di dati e pagine Web.

Tuttavia l’affidabilità di TCP ha un prezzo: i suoi meccanismi di controllo si traducono in un sovraccarico maggiore, che si traduce in un maggiore utilizzo della larghezza di banda disponibile sulla rete.

Il protocollo UDP (User Datagram Protocol) è un protocollo Internet più semplice e senza connessione in cui non sono necessari servizi di controllo degli errori e ripristino. Con UDP, non vi è alcun sovraccarico per l’apertura, la gestione di una connessione o la sua terminazione. I dati vengono continuamente inviati al destinatario, indipendentemente dal fatto che li riceva o meno.

UDP è preferito per le comunicazioni in tempo reale come la trasmissione di rete broadcast o multicast. Dobbiamo usare UDP invece di TCP quando abbiamo bisogno di bassa latenza e quando il ritardo dei dati sarebbe un fatto peggiore della loro perdita.

Un confronto riassuntivo tra TCP e UDP

Proprietà TCP UDP
Connessione Richiede una connessione Non richiede una connessione
Garanzia di consegna Garantita consegna Non garantita la consegna
Ritrasmissione dei pacchetti persi Possibile Impossibile
Velocità Inferiore a UDP Maggiore di TCP
Broadcasting Non supportato Supportato
Utilizzo HTTPS, HTTP, SMTP, POP, FTP, etc Video streaming, DNS, VoIP, etc

Strato Applicazione

Lo standard TCP/IP prevede numerosi protocolli a questo livello. Tra tanti, ricordiamo HTTP per il trasferimento di pagine web; SMTP per l’inoltro della posta elettronica; FTP per il trasferimento di file; DNS per la traduzione di nomi host in indirizzi IP.

I processi applicativi possono utilizzare sia TCP che UDP per il trasferimento dati. La scelta di uno o l’altro dipenderà da quale caratteristica tra velocità (UDP) e affidabilità (TCP) venga ritenuta più importante per quella particolare applicazione.

Fotografia di Leon Seibert

servizialleimprese
Avatar photo
Informazioni su Carlo Bazzo 16 Articoli
Sysadmin & network eng. @Epysoft, editor @TheTechGoggler, CTO @HDEMO. Former developer @MSFT @GOOG. Former MOps consultant @XRX @HPQ. LinkedIn: it.linkedin.com/in/carlobazzo