Radio Fulmini

Per installare RadioFulmini sul tuo sito clicca qui
_________________
Chi siamo
Login
Per gli Iscritti
Ricerca

Ricerca avanzata


Questo sito-rivista è la prosecuzione del blog-rivista fulmini, che in diciotto mesi ha capitalizzato 180.000 visite. Per conoscere il funzionamento di questo sito-rivista si può leggere il "Chi siamo" qui in alto.

il legame : TCP/IP
di venises , Fri 24 May 2013 5:00
English version   Version Française   Versión español   Deutsch version  


Oggi parliamo di estetica, parlando di come funziona il Web.
Sosterremo che il suo successo sia dovuto alla bellezza tecnica della sua costruzione. Siamo certi che questo ci renderà antipatici a coloro che celebrano la prima pagina Web o a quegli altri che insistono nel ritenere che la chiave del suo successo risieda nell'aver "aperto" il protocollo usato.
Mentre siamo d'accordo che liberare il protocollo di scambio su internet da "proprietà intellettuali" e da "brevetti" costituisca una delle ragioni della fortuna di questo, sosterremo che questo sia solo un aspetto secondario della questione, il punto cruciale di cotanto successo sia dovuto alla bellezza tecnica del protocollo: un'opera di genio. Ed il genio è irresistibile.

Un'ultima premessa. Impregnati come siamo dalla cultura del romanticismo, non possiamo far a meno d'identificare l'invenzione del Web con un singolo individuo (al quale spetta il ruolo di "eroe romantico", persino a proposito di un attrezzo collettivo per eccellenza quale il Web, sic!). A tal fine si sceglie spesso Tim Berners-Lee (noi preferiamo invece sottolineare il contributo di Cerf e Kahn). Invece il TCP/IP emerge attraverso gli anni (le grandi idee non spuntano mai d'un botto) come uno sforzo autonomo e spontaneo, non commissionato da alcuno, non soggetto a schedule né a regole, come una libera invenzione dell'ingegno di un grande numero d'ingegneri dell'ARPANET i quali avevano come obiettivo soltanto quello di trovare un sistema per collaborare attraverso un grande numero (400 all'epoca! Tutto è relativo) di computers differenti (H/W e S/W). Quindi questi ingegneri finiscono per concepire un sistema capace di comunicare a prescindere dall'hardware e dal software usato da questa o quella macchina, a prescindere dalla configurazione, estensione, localizzazione del network. A prescindere da qualsiasi assunzione circa il sistema. A prescindere.
Il risultato è un protocollo di comunicazione resistente a tutto, robusto oltre ogni accidente tecnico: un'opera d'arte, un'espressione di pura genialità. È questa caratteristica che ne decreta il travolgente successo. Perché funziona sempre, funziona a prescindere da come il sistema è fatto, a prescindere da tutti gli accidenti di questo mondo.
Se non fosse stato pensato così profondamente, tutte le aperture di questo mondo non gli avrebbero permesso di sopravvivere così a lungo. Ecco perché è sempre lo stesso da sempre.



TCP/IP Protocol Layers


Allora, come funziona il Web1?
Che adoperiate un browser (internet explorer, safari, firefox, google chrome, etc), che spediate una e-mail, che trasferiate un file (tramite un protocollo chiamato File Transfer Protocol, FTP), che guardiate contenuti in streaming, il meccanismo di trasmissione usato è sempre il medesimo. Si chiama protocollo TCP/IP, che è il nome di due protocolli, distinti e correlati, rispettivamente Transmission Control Protocol e Internet Protocol.
Quando, per esempio, visualizzate una pagina web su internet quello che succede è che un 'client' (il vostro internet browser) invia una richiesta ad un 'server' (per esempio corrispondente all'indirizzo www.fulminiesaette.it). Il 'server' risponde trasferendo i bit che costituiscono la pagina web richiesta (inclusi i bit che ne stabiliscono il formato, il "look", e non solo quelli che ne descrivono il contenuto).

Come viene trasferita la pagina? Questa viene spezzata in una serie di unità di trasmissione unitarie. È il TCP ad occuparsi di questo. Prende la pagina, la suddivide in spezzoni ciascuno di lunghezza fissa, aggiunge un'intestazione con le informazioni del punto di partenza e della destinazione del messaggio più altre informazioni ausiliarie quali un codice di controllo dell'integrità del messaggio.
TCP non fa altro. Non si occupa della trasmissione vera e propria. Come in un trasloco, impacchetta la casa, stanza per stanza, riempie gli scatoloni, appiccica l'etichetta su ciascuno d'essi ma non spetta a lui trasferire i pacchetti-scatoloni, uno ad uno.

Di questo s'occupa IP, il quale trasferisce i pacchetti uno ad uno.
Uno ad uno: questo è un punto cruciale. Non trasferisce la pagina, ma i singoli pacchetti come tante trasmissioni separate.
Per ogni atto elementare di questa trasmissione, ripetuta sempre uguale per ogni pacchetto individuale, s'occupa solamente che giunga a buon fine. Non lo trasferisce alla destinazione ma ad un nodo "più vicino" alla destinazione finale. Quale? Uno disponibile, in base al traffico sulla rete in quel momento. Questo significa che i singoli pacchetti (che costituiscono la nostra pagina web) seguono strade diverse per arrivare a destinazione (per esempio, il server di www.fulminiesaette.it è fisicamente collocato in Germania; se vi collegate da Roma, alcuni pacchetti passeranno da Firenze, altri da New York, alcuni da Amsterdam, altri da Parigi). Una volta arrivati tutti a destinazione (non arrivano tutti insieme, non arrivano in ordine, la loro trasmissione essendo completamente scorrelata ed indipendente), la pagina viene assemblata dal client (il vostro browser). Se vi ricollegate, iniziate una nuova richiesta e i vari pacchetti seguiranno stavolta strade diverse (chi passava per New York forse stavolta passa per Francoforte o magari Miami, eccetera). Il che implica che non si può dire quanto tempo ci vuole per trasferire una pagina2. Dipende da quanto ci mette ogni singolo pacchetto, dal traffico che incontra e dagli errori subìti nella trasmissione. Bisogna aspettare l'arrivo dell'ultimo pacchetto per vedere la pagina. Se tutto va bene, ci vuole meno d'un secondo per completare tutta l'operazione. Se va male, perché c'è traffico (o sul server o durante il percorso di trasferimento) la pagina non si carica e noi aspettiamo innervosendoci davanti allo schermo. Fare refresh a volte magicamente risolve il problema: si vede che il traffico è migliorato, magari semplicemente perché stavolta il nostro IP ha scelto un'altra strada per i pacchetti3.

Torniamo al nostro IP e all'operazione elementare di trasferimento del singolo pacchetto. Funziona dalla sorgente momentanea (non quella iniziale dalla quale è partito il messaggio) alla destinazione momentanea (non quella finale). Cosa succede fra questi due punti (si dice che IP è un protocollo di scambio da punto a punto)? IP invia il pacchetto, contenuto ed intestazioni, e chiede alla destinazione di confermare sia la ricezione avvenuta che l'integrità del messaggio (grazie ai codici di controllo aggiunti all'uopo). Che succede se la destinazione dice che c'è stato un errore? Il pacchetto (che non è stato cancellato alla sorgente momentanea) viene ritrasmesso, esattamente con le stesse identiche modalità della prima volta (non c'è "memoria"). E così via, finché la sorgente non riceve conferma positiva di ricezione priva d'errore. Allora il messaggio alla sorgente viene distrutto e le risorse (canale) associato alla trasmissione del pacchetto elementare vengono rilasciate e sono perciò disponibili per la trasmissione di un nuovo pacchetto (probabilmente tutt'altra pagina web richiesta da tutt'altro computer). Cosa succede se il nodo-destinazione tarda a dare riscontro di ricezione avvenuta? Il nodo-sorgente aspetta un tempo massimo, scaduto il quale rispedisce comunque il messaggio - come se fosse la prima volta - e riprende l'attesa d'un riscontro positivo. E così via, all'infinito, pacchetto dopo pacchetto.
Ogni pacchetto è trasferito senza preoccuparsi della destinazione finale (ma solo di quella immediatamente successiva), senza preoccuparsi degli altri pacchetti che costituiscono la stessa pagina e che sono associati alla medesima richiesta iniziale. Come in una catena umana, ogni nodo si preoccupa di passare il secchio con l'acqua al nodo successivo della catena e che questo arrivi in buono stato. E di niente altro.

Quest'organizzazione della messaggistica in strati indipendenti, ciascuno dei quali si preoccupa d'un solo aspetto della comunicazione, senza fare ipotesi alcuna circa la configurazione della rete, né circa la natura dell'hardware presente sulla rete né circa i software che vi girano, né circa le condizioni del traffico né circa il contenuto di ciò che viene trasmesso è ciò che rende il protocollo TCP/IP affascinante ed imbattibile, come un cavaliere dal cavallo bianco della nostra infanzia4.
Imbattibile, perché d'una bellezza affascinante. Come quella che solo molti ingegneri che cooperano liberamente per i propri fini, e non al servizio di qualche padrone, sanno creare. È gente, questa, capace di rivoluzionare il mondo, quello reale: per davvero. Nello spazio di pochi decenni5.





_____________________________________
1 Non saremo accurati. Non ce ne scusiamo. Non scriviamo per gli esperti ma per la maggior parte dei nostri lettori, che usano internet quotidianamente e non hanno idea di come funzioni - e che spesso purtroppo, senza rendersene conto, ripetono le cialtronate che sentono ripetere in giro. Per questo non ci sentirete parlare di protocollo a commutazione di pacchetto, né di robustezza. I testi per approfondire gli aspetti tecnici non mancano (speriamo che qualcuno sarà stimolato ed incuriosito a documentarsi).

2 Per questo motivo il protocollo TCP/IP non è adatto a trasferimento di contenuti quando il 'timing' del trasferimento è critico, per esempio nei casi di streaming, on line games, VoIP (telefono via internet), etc. In questi casi si usa un protocollo diverso che privilegia la velocità del trasferimento a scapito dell'affidabilità. Noi non ci occupiamo di tali questioni tecniche, tutti presi, come siamo, dall'estetica di tali trasferimenti.

3 Il modo in cui viene gestito il traffico dei pacchetti in rete e le tecniche utilizzate per "aggirare" il traffico sono d'una astuzia da far impallidire il tassista più navigato e d'una bellezza da far arrossire qualunque cantastorie. Noi - che tanta bellezza, tutta insieme, non sopportiamo - non ce ne occupiamo.

4 La superiorità dei protocolli a commutazione di pacchetto s'apprezza comparandoli ai protocolli che questi hanno soppiantato (quelli usati per fare una telefonata), ovvero ai protocolli a commutazione di circuito, nei quali l'intera linea fisica dalla sorgente prima alla destinazione finale è bloccata per l'intero tempo della comunicazione (pensate all'immagine della centralinista degli anni cinquanta che connette i vari cavi di volta in volta per stabilire il circuito dedicato alla singola comunicazione). Un tale protocollo di comunicazione non funziona se non si conosce la struttura fisica della rete, è affetto da un sottoutilizzo cronico delle risorse (durante le pause della conversazione il canale rimane bloccato - è dedicato in tempo, non per quantità d'informazione trasportata), non è flessibile, eccetera.

5 TCP/IP è stato creato nel 1973, ovvero 40 anni fa.

Formato stampa Invia questa news ad un amico Crea un file PDF dalla news
 
Si raccomanda di abilitare i cookies nel proprio browser prima di inviare un commento.
I commenti sono proprietà dei rispettivi autori. Non siamo in alcun modo responsabili del loro contenuto.
Commenti
Inviato: 24/5/2013 11:25  Aggiornato: 24/5/2013 11:25
Autore: fulmini

Settanta volte sette pacchetti di grazie.
Inviato: 24/5/2013 14:31  Aggiornato: 24/5/2013 22:06
Che bel pezzo! Ora ho capito molte cose... E condivido il tuo punto di vista.
Grazie Guido!
Nefeli
Inviato: 24/5/2013 22:23  Aggiornato: 25/5/2013 23:22
Autore: venises

Ovviamente il funzionamento del Web è un po' più complicato di come noi l'abbiamo descritto, in modo semplificato e romanzato.
Aspetti altrettanto cruciali (da noi trascurati) sono:
- almeno l'altro protocollo cardine, lo http, andrebbe menzionato;
- il modo in cui il traffico sulla rete viene effettivamente gestito;
- la democraticità o meno di un sistema di comunicazione globale dove 1) tutte le tecnologie chiave sono nelle mani di pochissime aziende private statunitensi (e.g. circa due terzi di tutti i router su internet sono costruiti da un'unica azienda); 2) non è tecnicamente possibile "nascondersi" e ogni singolo aspetto di ogni singola comunicazione è tracciato ed in possesso di chi controlla l'hardware/software sulla rete (aziende private statunitensi).

Ciò che abbiamo cercato di sottolineare è da un lato la longevità del protocollo TCP/IP, in un'epoca dove le tecnologie durano sempre meno e vengono soppiantate continuamente. Lui invece sta lì, in ottima salute - non se ne parla di scalzarlo.
Ma ciò che è ancora più notevole è la sua scalabilità. Pensato negli anni settanta per connettere un qualche centinaio di computer (dell'epoca) fra loro, è colui che oggi gestisce tutte le comunicazioni su un network globale di molte reti che interconnettono oltre due miliardi di macchine (diversissime fra loro ed in continua evoluzione): no problem.

Inviato: 2/10/2015 20:25  Aggiornato: 2/10/2015 20:25
Autore: venises




Un eccellente video didattico sul funzionamento del protocollo di comunicazione TCP/IP.
Inviato: 5/12/2015 20:43  Aggiornato: 5/12/2015 20:47
Autore: venises

Una serie di video didattici in inglese (semplicissimi, forse troppo) su come funziona internet, strato dopo strato: fisico (cavi e routers), indirizzi e dominii (IP), protocolli (TCP, IP), linguaggi (HTML e HTTP).
Da Khan Academy


1 - Strato fisico: cavi

2 - Indirizzi IP e dominii

3 - Protocolli: TCP / IP

4 - Linguaggi: HTTP e HTML