Architettura TCP-IP
A differenza del modello ISO-OSI l'architettura di rete TCP-IP si basa solo su quattro livelli, come si vede nel disegno sotto.
Nonostante lo sforzo fatto dagli enti preposti alla standardizzazione,
l'implementazione delle reti di comunicazione digitale non è stato realizzato
secondo i dettami riferiti dal modello OSI ma secondo l'insieme dei protocolli
TCP/IP usati in internet. Come si vede dal disegno, TCP/IP non definisce
i due livelli più bassi, perché non pone limiti a riguardo.
L'architettura TCP/IP si basa solo su 4 livelli, perché le applicazioni
si poggiano direttamente sul livello di trasporto.
La preferenza del sistema TCP/IP rispetto alla struttura OSI è avvenuta
per molteplici ragioni; in particolare per:
● Scarsa chiarezza nella standardizzazione
ISO-OSI sui livelli alti, definiti con meno rigore rispetto ai livelli bassi.
● I protocolli TCP/IP sono di uso libero.
● Internet e l'architettura TCP/IP si sono
sviluppati in modo sinergico; cioè la crescita di internet ha diffuso e
fatto conoscere i protocolli TCP/IP e la diffusione di questi ha contribuito
attivamente al rapido sviluppo di internet.
Notiamo che il livello di Rete del modello ISO-OSI ci troviamo in corrispondenza
del livello Rete del protocollo IP dell'architettura TCP-IP, mentre il livello
di trasporto è in corrispondenza coi due protocolli di comunicazione TCP/UDP.
Pur avendo lo stesso nome (Trasporto) i due livelli svolgono funzioni diverse.
Si nota infine che i due livelli più bassi nel modello ISO-OSI vengono accorpati
in un unico livello (Fisico) nell'architettura del TCP-IP.
Nella struttura TCP-IP non sono previsti i livelli di presentazione e di
sessione.
La sostanziale differenza tra i due modelli è che il modello ISO-OSI si limita a specificare cosa dovrebbe fare ciascun livello senza tuttavia indicare con precisione i servizi e i protocolli che devono essere implementati e dunque non può essere considerato una architettura di rete. La sua rilevanza storica e concettuale lo rende, comunque, il fulcro di ogni implementazione di rete.
In base a queste considerazioni, è possibile, dunque, affermare che ISO-OSI è un modello di riferimento e non una architettura di rete, perché descrive livelli e servizi ma non protocolli; mentre il modello TCP-IP è invece un insieme di protocolli denominato impropriamente modello, mentre è effettivamente una architettura di rete.
Livello Applicazione
Il livello Applicazione del TCP-IP comprende tutti i protocolli di alto livello e di dialogo con l'utente. I principali servizi offerti dal livello Application sono i seguenti:
● HTTP : HyperText Transport Protocol; cioè protocollo di a livello applicazione che realizza il sevizio WWW: il sistema ipermediale per l'organizzazione delle informazioni sulla rete internet.
Il protocollo HTTP definisce un metodo di interazione client/server ottimizzato per lo scambio di messaggi brevi e veloci, necessari per la connessione tra client Web e server Web. Il protocollo può essere facilmente esteso per comprendere servizi di vario tipo, non solo transazioni ipertestuali.
Tra una connessione e l'altra, il server non tiene nota dei dati precedenti, quindi tutte le connessioni sono trattate allo stesso modo come se si trattasse ogni volta di un nuovo client: la connessione dura solo il tempo strettamente necessario per trasmettere ed in seguito viene chiusa.
Il WWW o semplicemente web è un servizio per l'accesso ai documenti (file) memorizzati sulle memorie di massa dei server web. I documenti sono in relazione tra loro mediante collegamenti ipertestuali (hyperlink) realizzati mediante indirizzi URL (Uniform resource locator). Il protocollo http è regolato da comandi ASCII del tipo domanda - risposta (request/respone). Il programma client (browser) dopo aver stabilito una connessione con la porta 80 del server web, invia una richiesta di una pagina web individuata mediante il suo URL. Il servizio risponde inviando il file con l pagina web (file di testo codificato in linguaggio HTML).
● SMTP
(Simple Mail Transfer Protocol) è l'applicativo di TCP/IP che permette di
inviare posta elettronica (e-mail) agli utenti della rete. Questo protocollo
è stato studiato per funzionare anche nelle condizioni di maggior traffico
sulla rete e quindi è stato progettato per una trasmissione il più possibile
compatta:solo 7 bit per ogni carattere ed un buffer di dimensioni limitate.
SMTP è un protocollo monodirezionale, cioè, dopo aver stabilito una connessione
solo il client può inviare messaggi di e-mail, al server spetta solo il
compito di riceverle. Ogni utente è identificato da un indirizzo di posta
del tipo
utente@gestoredelservizio
per esempio mario.rossi@tin.it e non è richiesta
alcuna autorizzazione per inviare un messaggio di posta elettronica. SMTP
è dunque il protocollo per la gestione della posta in uscita.
● POP3 (Post Office Protocol, versione 3) è il protocollo di accesso alla posta con il principio della casella postale: la posta rimane in giacenza all'interno di uno spazio riservato (mailbox) finchè l'utente rimuove le mail giacenti ad esso indirizzate. POP3 è il protocollo usato per la posta in ingresso.
● FTP (File Transfer Protocol) è un protocollo che serve per trasmettere files tra due host di una rete. Con FTP client si indica l'host che richiede la sessione FTP, mentre con FTP sever l'altro host a cui ci si connette.
E' possibile suddividere una sessione FTP in tre fasi:
Autenticazione del client.
Trasferimento dei files.
Chiusura della connessione.
Il sever, prima di concedere l'accesso dei suoi files, richiede l'autenticazione
al client che deve fornire un identificativo utente (user ID) e una password.
La fase di trasferimento può essere a sua volta scomposta in tre passaggi.
Spostamento nella cartella che interessa.
Lista dei files già presenti.
Invio o ricezione di files.
La chiusura di una sessione FTP, se non si verificano errori, può avvenire
con un comando inviato dal client oppure al seguito del verificarsi di un
timeout, cioè di un periodo di inattività del client che induce il server
a terminare la sessione autonomamente.
● Telnet è un protocollo di comunicazione del livello Application che permette ad un utente di collegarsi, tramite un computer locale ad un qualsiasi altro computer remoto, connesso alla rete. L'host Telnet diventa un terminale virtuale remoto. Dopo una fase di autenticazione tramite login e password, tutti i caratteri digitati sulla tastiera del computer locale sono inviati al computer remoto e le risposte generate da quest'ultimo sono visualizzate sul monitor del computer locale. I questo modo, l'utente del computer locale è in grado di operare direttamente sull'elaboratore remoto.
● SSL. La sigla SSL vuol dire "Secure Sockets Layer" (Livello di socket sicuri), una tecnologia standard che garantisce la sicurezza di una connessione a Internet e protegge i dati sensibili scambiati fra due sistemi impedendo ai criminali informatici di leggere e modificare le informazioni trasferite, che potrebbero comprendere anche dati personali. La comunicazione fra sistemi può riguardare un server o client (ad es. un sito Web di e-commerce e un browser) o due server (ad es. un'applicazione basata su informazioni personalmente identificabili o dati sul libro paga).
In questo modo è possibile impedire la lettura e l'intercettazione di qualsiasi dato trasferito fra utenti e siti o due sistemi. È possibile utilizzare algoritmi di crittografia per crittografare i dati in transito, impedendone la lettura agli hacker durante il transito su una connessione digitale. Queste informazioni possono essere di natura sensibile o personale, come ad esempio numeri di carta di credi
Livello di Trasporto
Il livello di trasporto crea una connessione logica tra sorgente e destinazione
indipendentemente dalla rete utilizzata, assemblando e segmentando i dati
che riceve dal livello applicazione ed inviando al destinatario un segmento
alla volta. Ad ogni segmento viene assegnato un numero che permette di verificarne
la consegna al destinatario, in modo da garantirne l'affidabilità della
trasmissione. A livello di trasporto si distinguono due tipi di servizi:
● Servizi affidabili orientati alla connessione, denominati di tipo
stream, offerti dal TCP (Transmission Control Protcol).
● Servizi privi di connessione, denominati di tipo datagram offerti
dal protocollo UDP (User Datagram Protocol).
Il protocollo TCP ha il compito di trasmettere
in modo affidabile i dati tra due nodi della rete. TCP crea una sessione
orientata alla connessione tra due host, dando origine ad un collegamento
virtuale. Per stabilire la connessione, TCP crea ed invia un pacchetto per
richiedere una connessione alla macchina di destinazione. In seguito attende
, per vedere se l'host contattato è a sua volta disponibile alla comunicazione.
Nel caso ciò si verifichi, la macchina di destinazione risponde con un proprio
pacchetto di accettazione della connessione (handshaking).
Normalmente il client richiedente invia al server la specifica della porta
che intende utilizzare, se il server è disponibile può dare inizio alla
sessione di collegamento.
UDP è un altro protocollo del livello di trasporto che si occupa della trasmissione dei dati su una rete, ma a differenza del TCP non necessita di connessione (connectionless) nel senso che non viene instaurata alcuna sessione di comunicazione e l'UDP si limita ad inviare pacchetti sulla ret senza richiesta della conferma dell'avvenuta ricezione. Questo protocollo non verifica se l'host di destinazione abbia o meno ricevuto le informazioni che gli sono state inviate. UDP è usato dalle applicazioni che lanciano piccole quantità di dati e che ripetono spesso l'invio nel tempo, per cui non hanno bisogno di una consegna affidabile.
Livello Rete
Il livello Rete, chiamato anche livello IP, ha lo scopo di selezionare
il miglior percorso attraverso la rete per recapitare il messaggio al destinatario.
L'obiettivo di interconnettere più reti in modo da ottenere un alto grado
di robustezza (intesa come capacità di funzionamento anche in caso di guasti
nei nodi intermedi) ha portato alla scelta di un livello di rete gestito
a commutazione di pacchetto di tipo connectionless
(privo di connessione).
Ad ogni scheda di rete di un computer in una rete TCP-IP viene assegnato
un indirizzo IP detto indirizzo logico che rappresenta un identificativo
univoco ed opera al livello 3 (livello di rete) del modello ISO-OSI a differenza
dell'indirizzo MAC che individua fisicamente la scheda di rete (livello
2 di collegamento del modello ISO-OSI). Viene chiamato indirizzo MAC un
numero identificativo univoco che ciascun produttore hardware assegna ad
ogni scheda di rete, sia ethernet che wireless immessa sul mercato.
L'indirizzo MAC è lungo 48 bit (6byte) e i primi tre ottetti identificano
l'organizzazione o comunque l'azienda che ha realizzato il dispositivo.
Il messaggio da trasmettere ad alto livello viene suddiviso in pacchetti
di dimensioni non superiori a 1526 byte, che è la dimensione massima possibile
su una rete Ethernet.
Il livello Rete effettua la spedizione dei pacchetti che formano il messaggio in ogni tipo di rete e in un qualsiasi nodo di destinazione attraverso il protocollo IP (internet Protocol) che li inoltra all'indirizzo IP finale utilizzando meccanismi di instradamento (routing) per mezzo di dispositivi appositi, appunto, i router.
IP è un protocollo di livello Rete (network) non connesso, quindi privo di conferma che riceve i dati dal livello Transport e li incapsula in pacchetti di dimensione massima di 64kByte e successivamente li instrada. Quando i pacchetti arrivano a destinazione la pila OSI viene percorsa dal livello fisico verso i livelli più alti: nel passaggio dei dati dal livello 2 (Data link) al livello 3 (Network) il protocollo IP riassembla i frame in pacchetti e li consegna al livello di trasporto nell'ordine in cui sono arrivati.
Il trasferimento dei dati avviene attraverso i routers: il router è un dispositivo che collega due o più reti locali : quando esso riceve un frame , innanzitutto estrae il pacchetto e risolve l'indirizzo IP cioè , individua l'indirizzo fisico o il nome di host in una rete.
Dopo aver ottenuto l'indirizzo fisico, il router incapsula il pacchetto in un frame e lo inoltra verso quella rete. In alcuni casi il router non è in grado di risolvere l'indirizzo, in tal caso invierà il frame ad un altro router presente tra le reti alle quali è connesso che a sua volta tenterà la risoluzione.
Generalmente i pacchetti nei quali il messaggio è stato segmentato raggiungono la destinazione su percorsi differenti e quindi anche l'ordine di arrivo potrebbe essere diverso dall'ordine di partenza : è compito del protocollo TCP ricomporre correttamente l'intero messaggio.
Livello Fisico
Il livello sottostante al livello Rete non è in realtà specificato rigorosamente dal modello di riferimento TCP/IP in quanto il protocollo che si utilizza varia da un host ad un altro. e da rete a rete, includendo quindi tutti i dettagli dei livello fisico (1) e del livello di collegamento (2) del modello ISO-OSI.