Anteprima parziale del testo
Scarica Informatica di base (lettere) e più Dispense in PDF di Fondamenti di informatica solo su Docsity!
1. Introduzione Nei precedenti tre capitoli, in questo, e nei successivi affronteremo tutte le tecnologie alla base di Internet e del World Wide Web. Tuttavia, invece di affrontare questi temi in modo tradizionale, ovvero partendo dalla descrizione architetturale di Internet per poi presentare il Web, abbiamo voluto introdurre questi argomenti seguendo la traccia fornita da Tim-Berners Lee (l'inventore del Web) in un noto documento esplicativo a disposizione sul suo sito Web. In particolare, l'obiettivo è quello di rispondere ad una semplice, seppur significativa, domanda: » Cosa succede quando si clicca su un collegamento ipertestuale (o link) di una pagina Web? In Figura 1 sono riassunte le tecnologie che abbiamo introdotto nei tre capitoli precedenti e che ci hanno permesso di iniziare ad introdurre gli elementi principali per rispondere alla domanda appena presentata. In particolare, a seguito di un click su un link di una pagina web visualizzata sul browser di un computer, viene composto un messaggio HTTP di richiesta di una specifica pagina web identificata da un URL. Una volta recuperato l'indirizzo IP dal nome del server web che ha la pagina a disposizione usando il DNS, il messaggio HTTP viene incapsulato da uno o più pacchetti IP che vengono poi inviati dal computer mittente al router più vicino — ad esempio il router di casa. Da lì, i pacchetti IP vengono instradati nella rete finché non raggiungono il server web destinatario, che riceve il messaggio, e impacchetta una copia del documento richiesto in un nuovo messaggio HTTP di risposta. A sua volta, questo messaggio viene incapsulato in uno o più pacchetti IP inviati dal server web al router più vicino, e poi instradati fino al mittente. Una volta ricevuto, il messaggio di risposta viene passato al browser che visualizza a video il contenuto del payload del messaggio HTTP. "76.40-194.199 Figura 1. Riassunto delle tecnologie che abbiamo trattata nei capitoli precedenti - dove i cerchi azzurri con le frecc In questo capitolo introdurremo l'ultimo dei protocolli di base di Internet, il TCP, e riassumeremo nuovamente tutti i passaggi che avvengono dal momento in cui si clicca su un link di una pagina web al momento in cui la pagina richiesta viene visualizzata sul browser. 2. Byte e bit: unità di informazione Nello scorso capitolo abbiamo accennato al fatto che un particolare messaggio debba essere spezzato in uno o più pacchetti IP prima che questi vengano instradati in rete. Questo è dovuto a due diversi fattori. Il primo è il limite dato dalla massima quantità di dati che ogni pacchetto IP può trasportare (che dipende dalla versione considerata del protocollo, IPv4 o IPv6). Tuttavia, in aggiunta a questo limite, c'è anche il limite imposto dalla rete a cui si instradano i pacchetti, ovvero il suo Maximum Transmission Unit (MTU). Quindi, anche se tutto il messaggio HTTP possa, in linea di principio, essere incapsulato dentro un pacchetto IP, è possibile che debba comunque essere spezzato in più pacchetti IP a causa del limite MTU imposto dalla rete. Questa frammentazione più avvenire sia nello strato di rete in alcuni casi e solo se si utilizza il protocollo IPv4 per l'instradamento, o nello strato trasporto, che sarà oggetto di questo capitolo. Questi limiti, sia quello del protocollo IP sia quello dettato dall'MTU, sono espressi in byte. Un byte è una delle più diffuse unità di informazione. Storicamente corrisponde al numero di bit necessari per codificare un carattere sul computer [Bemer, 1959], e per questo è di solito l'unità minima di informazione occupabile su un computer elettronico. In particolare, un byte corrisponde a otto bit, ove con bit (una contrattura di binary digit) si intende l'unità minima di informazione che si può scambiare in una comunicazione. Un bit può assumere soltanto uno di due valori: 0 01 Figura 2. Foto di Claude Shannon. Fotografia scattata da Konrad Jacobs, sorgente: htips://en.wikipedia.org/wiki/File:ClaudeShannon_MF03807,jpg. 3. Che cos'è il Transmission Control Protocol (TCP) Nella scorso capitolo abbiamo visto come l'instradamento basato sul protocollo IP non garantisce che i pacchetti arrivino nell'ordine corretto in cui il loro payload deve essere poi ricomposto per formare il messaggio originale. Come anticipato, sia il riordino dei pacchetti sia, in talune situazioni, lo spezzare il messaggio originale in più pacchetti conformemente con 'MTU della rete, è gestito dallo strato di trasporto. Il principale protocollo di questo strato è il Transmission Control Protocol (TCP) che, insieme al protocollo IP, forma la suite di protocolli Internet, proposti da Vinton Cerf e Robert Kahn (mostrati in Figura 4) nel maggio del 1974 [Cerf & Kahn, 1974] per essere utilizzati in ARPANET. Figura 4. Foto di Vinton Cerf (sinistra) e Robert Kahn (destra). Fotografia di sinistra di Duncan Hull, sorgente: https://en.wikipedia.org/wiki/File:Dr_Vint_Cerf_ForMemRS.jpg. Fotografia di destra di Veni Markovski, sorgente: https.//en.wikipedia.org/wiki/File:Bob_Kahn.jpg. Il TCP permette la consegna affidabile, ordinata, e esente da errori di un flusso di byte tra due computer in comunicazione tra loro attraverso una rete basata sul protocollo IP, e gestisce tutti quei processi che garantiscono la ritrasmissione di un pacchetto nel caso in cui non sia stato recapitato al destinatario entro un certo tempo limite. Come tutti gli altri incapsulamenti visti in precedenza, ogni pacchetto TCP è diviso in due sezioni: l'header, che contiene informazioni relative alla comunicazione a livello trasporto tra i due computer mittente e destinatario, e il payload, ovvero le informazioni che devono essere scambiate tra i partecipanti alla comunicazione. In particolare, tra i campi importanti dell'header, ci sono le porte usate dal mittente e dal destinatario per la comunicazione - quest'ultima può essere specificata nell'URL della risorsa da ottenere - e un numero di sequenza che indica l'ordine tra i vari pacchetti in modo da poter ricostruire correttamente il messaggio originale. Contrariamente al protocollo IP, il protocollo TCP permette di stabilire una comunicazione connessa, in cui il mittente e il destinatario si mettono d'accordo di iniziare una comunicazione in modo esplicito prima di scambiarsi i dati, e dichiarano altrettanto esplicitamente quando questa comunicazione si può ritenere conclusa. Il processo di inizio della comunicazione, per esempio, è regolato dal meccanismo del three-way handshake, mostrato in Figura 5. mittente destinatario SYN=A Figura 5. Un esempio grafico di three-way handshake per iniziare una comunicazione con il protocollo TCP, in cui il mittente e destinatario si scambiano 3 pacchetti TCP prima di iniziare a scambiare dati. 4. Altri protocolli usati su Internet In questo e nei precedenti capitoli abbiamo visto i principali usati su Internet e un particolare protocollo dello strato applicazione, ovvero HTTP, il principale meccanismo di comunicazione usato sul Web. Tuttavia, HTTP non è il solo protocollo dello stato applicazione largamente usato, ma è accompagnato da diversi altri che sono usati quotidianamente da molti utenti del Web. In questa sezione presentiamo alcuni dei più importanti, tutti totalmente basati sul protocollo TCP per lo strato di trasporto. SMTP. Il Simple Mail Transfer Protocol (SMTP) è il principale protocollo di comunicazione dello strato applicativo per spedire email. Ogni volta che si spedisce una mail, in realtà non viene recapitata direttamente al destinatario, ma viene raccolta da un server di posta di competenza del dominio della mail del destinatario — dominio identificato dalla parte dell'indirizzo email che segue il carattere “@”. Questo server è come un server web, ma invece di gestire il protocollo HTTP e di restituire pagine web, è in grado di ricevere email attraverso il protocollo SMTP, per poi inoltrarle ai relativi destinatari quando questi ne fanno richiesta mediante l'uso del protocollo POP o IMAP, introdotti di seguito. POP. Il Post Office Protocol (POP) è uno dei due protocolli utilizzato per ricevere email da un server di posta. In pratica, ogni volta che se ne fa richiesta, ad esempio attraverso un client per email (Apple Mail, Outlook, Mozilla Thunderbird), il server di posta consegna tutti i messaggi precedentemente inviati a quel particolare destinatario e, una volta consegnati, li cancella dal server. IMAP. L'internet Message Access Protocol (IMAP) è l'altro protocollo utilizzato per ricevere email da un server di posta. È un protocollo più moderno rispetto a POP, ed è stato esplicitamente sviluppato per facilitare la gestione di una stessa casella di posta elettronica da parte di più dispositivi. La differenza principale rispetto a POP è che i messaggi di posta elettronica non vengono eliminati automaticamente dal server anche se sono stati già recapitati ai rispettivi destinatari a seguito di una loro richiesta, ma devono essere eliminati esplicitamente dall'utente, se lo desidera. FTP. Il File Transfer Protocol (FTP) è un protocollo che permette il trasferimento di un qualunque file da un computer ad un server e viceversa. È uno dei protocolli più adottati di Internet per permettere lo scaricamento di una grossa mole di dati, mentre è poco adatto per scaricare documenti molti piccoli, come pagine web. 5. Scenario completo di richiesta di una pagina web La spiegazione del protocollo TCP permette di comprendere a pieno cosa succede davvero quando si clicca su un link ipertestuale di una pagina web, la nostra domanda iniziale - che è stata la scusa per poter parlare di tutte le tecnologie principali di Internet e del Web. L'esempio completo è mostrato in Figura 6. | framemanti iel messaggio HTTP originale vengono riorcinati e riassembiati in base alle informazioni contenute nei pacchetti TCP GET /d001 HTTP/1.1.tnroe-way handishoko HOST esit inizio comunicazione | pacchetti TOP vengono risevuti cl servar potenzialmente pon im ordine server web. 130.136.130.1 È " : e] LI pacchetti TCP psp, 79.40.124.122 data riposta ibi cop cla | rammenti el messaggio ‘OK HTTP di risposta vengono > 3 ririnali è nassembiati in Bs nea ie nerazioni Tan contenute nei pacchetti TeP cibi iB de. fouraway handehale “fina comunicazione Figura 6. Il diagramma completo, con tutte le tecnologie finora introdotte, che mostra l'interazione tra un browser e il server web a seguito di un click su un link ipertestuale. A questo punto, il server web, leggendo le informazioni contenute nell'header del messaggio HTTP, cerca localmente il documento (nell'esempio, una pagina web) che corrisponde al percorso richiesto, e specificato nell'URL iniziale. Una volta trovato, prepara un nuovo messaggio HTTP di risposta che include, nel payload, una copia della pagina web richiesta. Il messaggio HTTP di risposta viene passato allo strato di trasporto del server web, che incapsula nuovamente il messaggio HTTP in uno o più pacchetti TCP della dimensione appropriata per essere trasmessi correttamente in rete. A loro volta, come prima, i pacchetti TCP vengono passati allo strato di rete, così da incapsularli in altrettanti pacchetti IP, che vengono poi instradati in Internet, passando dallo strato di accesso alla rete, partendo dal router più vicino. Ovviamente, la connessione TCP è già attiva, avendo fatto in anticipo il three-way handshake, e quindi non è necessario ripeterlo. Inoltre, l'indirizzo IP e la porta su cui effettuare la comunicazione del mittente sono già noti, essendo stati specificati nei pacchetti IP e TCP della richiesta iniziale. Analogamente a quel che ha fatto il server web, il computer mittente ricostruisce il messaggio HTTP di risposta, estraendo le informazioni rilevanti dai vari pacchetti IP e TCP ricevuti. Fatto ciò, il payload del messaggio HTTP di risposta, ovvero la pagina web richiesta, viene estratta e visualizzata sul browser — e, se serve, vengono fatte altre richieste HTTP per recuperare informazioni aggiuntive, come le immagini o i video che di solito non sono contenuti nella pagina web ma sono solo riferiti tramite i loro URL, come vedremo nel prossimo capitolo. Infine, la comunicazione TCP a livello di trasporto viene chiusa utilizzando il four-way handshake.