Suite di protocolli Internet

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da TCP/IP)

Una suite di protocolli Internet, in informatica nelle telecomunicazioni, indica un insieme di protocolli di rete su cui si basa il funzionamento della rete Internet. A volte, per sineddoche, è chiamata suite di protocolli TCP/IP, in funzione dei due più importanti protocolli in essa definiti: il Transmission Control Protocol (TCP) e l'Internet Protocol (IP).[1][2][3]

Il rispettivo modello di architettura di rete a strati rappresenta lo standard de facto nell'ambito delle reti dati in contrapposizione allo standard de iure rappresentato invece dal modello ISO-OSI.[4]

Storia[modifica | modifica wikitesto]

Nei primi anni settanta del XX secolo, la Defence Advanced Research Project Agency (DARPA) finanziò l'Università di Stanford e la BBN (Bolt, Beranek and Newman) per lo sviluppo di un insieme di protocolli di comunicazione da utilizzarsi per lo sviluppo di reti a commutazione di pacchetto, per l'interconnessione di calcolatori eterogenei. Fu così che nacque l'Internet Protocol Suite i cui due protocolli più noti sono il TCP (Transmission Control Protocol) e l'IP (Internet Protocol).

Il protocollo IP provvede a fornire il sistema di indirizzamento dei nodi terminali della rete, assegnando a ciascuno un nome univoco, formato da quattro gruppi di cifre. Al livello immediatamente superiore,il protocollo TCP provvede a gestire il flusso dell'informazione tra i due nodi. Si fa riferimento a questa architettura di rete con la sigla TCP/IP o IP/TCP (quest'ultima non è quasi mai usata). I creatori di tali protocolli di trasmissione, tuttora utilizzati nel web, sono nello specifico Robert Kahn e Vinton Cerf, a cui l'ex Presidente degli Stati Uniti George W. Bush ha consegnato la Presidential Medal of Freedom, ovvero la più alta tra le onorificenze civili a stelle e strisce, il 9 novembre 2005.[5] I due studiosi non sono nuovi a questo genere di premiazioni: all'inizio del 2005 è stato assegnato loro il prestigioso 2004 A.M. Turing Award, equivalente del Premio Nobel nel settore dell'Information Technology. Cerf e Kahn hanno sviluppato lo standard per la trasmissione di pacchetti via rete nel lontano 1973, mentre lavoravano a un progetto di sviluppo dei sistemi di comunicazione voluto dalla DARPA (Defense Advanced Research Projects Agency). Attualmente Vint Cerf, collabora con Google alla creazione degli standard per le future applicazioni e nel frattempo si dedica allo sviluppo di nuovi protocolli di comunicazione interplanetaria per il Jet Propulsion Lab della Nasa. Robert Kahn, invece, dopo 13 anni di servizio presso la DARPA è diventato presidente della Corporation for National Research Initiatives (CNRI).

Questi protocolli, utilizzabili gratuitamente da tutti perché di pubblico dominio fin dall'inizio, ottennero un elevato successo (utilizzati da un gruppo di ricercatori per ARPAnet).

Questo genera alcune ambiguità dovute al fatto che il nome più corretto sarebbe Internet Protocol Suite. Per esempio succede di sentir parlare di servizi basati su TCP/IP anche quando in realtà, invece di TCP, viene usato un protocollo alternativo, UDP, anch'esso appartenente all'Internet Protocol Suite. In genere il TCP viene utilizzato per quelle applicazioni che richiedono un servizio orientato alla connessione, come ad esempio la posta elettronica e il file sharing, mentre l'UDP prende sempre più piede per le applicazioni in tempo reale come l'on-line gaming o lo streaming audio e video; la differenza fra i due protocolli risiede nella maggiore affidabilità nel trasporto dei dati di TCP, che offre una serie di servizi appositamente pensati (gestione del flusso, della congestione...), mentre UDP punta molto sulla velocità di trasmissione a scapito della affidabilità. Si tenga quindi sempre presente che la sigla TCP/IP è di utilizzo talmente comune da essere utilizzata, talvolta, anche quando esistono termini alternativi più corretti.

L'architettura adottata dalla rete Internet è il TCP/IP che si è quindi imposto come standard de facto proprio grazie alla diffusione e ai massicci investimenti legati a internet.

Descrizione[modifica | modifica wikitesto]

Il modello TCP-IP (dx) in confronto al modello ISO-OSI (sx)

Tale suite può essere descritta per analogia con il modello OSI, che descrive i livelli (layer) della pila di protocolli. In una pila di protocolli ogni livello risolve una serie di problemi che riguardano la trasmissione di dati e fornisce un ben definito servizio ai livelli più alti. I livelli più alti sono logicamente più vicini all'utente e funzionano con dati più astratti lasciando ai livelli più bassi il compito di tradurre i dati in forme mediante le quali possono essere fisicamente manipolati e trasmessi infine sul canale di comunicazione.

Il modello Internet è stato prodotto come una soluzione ad un problema ingegneristico pratico in quanto si è trattato di aggiungere via via strati protocollari all'architettura di rete delle reti locali per ottenere un'interconnessione efficiente ed affidabile. Il modello OSI, in un altro senso, invece è stato l'approccio più teorico-deduttivo ed è stato anche prodotto nel più vecchio modello di rete.

Per comprendere la struttura della suite TCP/IP, si utilizza una schematizzazione a livelli. Ogni livello esegue una specifica serie di operazioni; ad ogni livello, ci si avvicina sempre più dall'interfaccia utente (quella con cui interagiamo) all'interfaccia di rete. Il messaggio trasmesso è modificato di conseguenza.

A differenza del modello ISO/OSI sono presenti quattro livelli invece di sette, partendo dall'alto:[6]

Essendo importante la distinzione fra livello di collegamento e livello fisico, è possibile utilizzare un modello ibrido che distingue i due strati e porta il numero di livelli a cinque.[7]

Caratteristiche[modifica | modifica wikitesto]

Livello di applicazione[modifica | modifica wikitesto]

Il primo livello è quello dell'applicazione: esso rappresenta l'interfaccia con l'utente ed abilita, ad esempio, la consultazione di pagine web, stabilendo e gestendo le sessioni di lavoro dei processi client tra il nostro browser ed il server web.[8]

Il protocollo di trasporto TCP mette in coda i messaggi generati da client e server e li trasmette sotto forma di pacchetti su di una connessione full-duplex; il buon fine della spedizione è attestato da una ricevuta di ritorno o riscontro. Anche questo è un collegamento virtuale tra le due applicazioni, i cui dettagli sono demandati al successivo livello, detto di rete.

Livello di trasporto[modifica | modifica wikitesto]

Quindi, il livello di trasporto offre un servizio al livello delle applicazioni avvalendosi dei servizi del sottostante livello di rete (ed in particolare dell'Internet Protocol).[9]

Per gestire molteplici processi attivi nel trasferimento dati sul medesimo nodo (o computer), cioè più sessioni di navigazione attive, il livello di trasporto (TCP o UDP) utilizza più numeri di porta.

TCP nell'invio dei pacchetti usa il meccanismo dello Sliding Window (o finestra scorrevole). Una serie di pacchetti viene inviata da TCP seguendo delle regole ben precise:

  • Ad ogni finestra di pacchetti spedita il trasmettitore fa partire un timeout.
  • Il Ricevitore invia per ogni pacchetto ricevuto un ACK indicando il successivo pacchetto atteso.
  • Il trasmettitore considera quindi spediti tutti i pacchetti precedenti.
  • Se il timeout scade oppure sono ricevuti 3 ACK duplicati, TCP assume si sia verificata la perdita di uno o più pacchetti e provvede ad implementare opportune strategie di ritrasmissione dei dati e di controllo della congestione.

Questa è una tecnica molto importante perché fornisce un canale di comunicazione affidabile. Inoltre TCP contiene meccanismi per gestire la congestione ed il controllo di flusso.

Livello di rete[modifica | modifica wikitesto]

Internet Protocol (IP) è il protocollo di InterNetworking del modello DOD/DARPA (secondo il modello OSI è classificato nel livello rete). Esso si occupa di gestire l'indirizzamento dei nodi e l'instradamento. A ciascun nodo viene infatti assegnato un indirizzo IP che lo identificherà in modo non ambiguo in rete. Le funzionalità di instradamento, invece, consentono di selezionare il percorso migliore per veicolare un messaggio verso un dato nodo destinatario, noto che sia il suo indirizzo IP.[10]

Livello di accesso alla rete[modifica | modifica wikitesto]

Sotto il livello internet, il modello di riferimento TCP/IP specifica solo che ci deve essere un livello di accesso alla rete in grado di spedire i pacchetti IP.[11] Nel modello ISO/OSI questo strato corrisponde ai primi due livelli: il livello di collegamento e il livello fisico.

Al livello di collegamento si decide come fare il trasferimento del messaggio per ogni singolo tratto del percorso: dal computer del web browser al primo router, dal primo router al secondo, dal secondo al terzo e dal terzo al computer del server. Questo è un collegamento virtuale tra due computer (o router) adiacenti. Anche in questo caso le interfacce di comunicazione dei nodi adiacenti saranno individuate per mezzo di un indirizzo univoco, usualmente denominato indirizzo MAC.

Il livello fisico, trasmette il messaggio sul canale di comunicazione usualmente sotto forma di segnali elettrici o elettromagnetici, sebbene sia anche possibile utilizzare onde acustiche (come ad esempio nelle reti di sensori sottomarine).

Note[modifica | modifica wikitesto]

  1. ^ (EN) TCP/IP Definition, linfo.org, 30 ottobre 2005. URL consultato il 22 settembre 2012.
  2. ^ Andrew S. Tanenbaum, p. 41
  3. ^ Kevin R. Fall, W. Richard Stevens, pp. 63-64
  4. ^ La Struttura Gerarchica dei protocolli, cd.unibo.it.
  5. ^ (EN) Presidential Medal of Freedom Recipients, senate.gov. URL consultato il 22 settembre 2012.
  6. ^ Andrew S. Tanenbaum, p. 43
  7. ^ Andrew S. Tanenbaum, p. 49
  8. ^ Andrew S. Tanenbaum, pp. 43-44
  9. ^ Andrew S. Tanenbaum, pp. 42-43
  10. ^ Andrew S. Tanenbaum, p. 42
  11. ^ Andrew S. Tanenbaum, p. 44

Voci correlate[modifica | modifica wikitesto]

Bibliografia[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • (EN) RFC 675 - Specification of Internet Transmission Control Program, dicembre 1974
  • (EN) RFC 1122 - Requirements for Internet Hosts -- Communication Layers
  • (EN) RFC 1180 - A TCP/IP Tutorial