Il
dizionario De Agostini definisce così la voce protocollo:
linsieme delle regole da osservare durante cerimonie
o visite ufficiali di personalità politiche.
In campo informatico, per protocollo si intende una serie
di regole per comporre dei messaggi e far sì che essi
possano essere scambiati tra due macchine.
Noterete che in questa definizione potrebbe ricadere anche
una semplice centrale telefonica, tuttavia vedremo come in
ambito informatico la situazione sia decisamente più
complessa.
Un protocollo può contenere infatti regole estremamente
dettagliate come quelle che identificano il significato di
ogni singolo bit nella costruzione di un messaggio, oppure
fornire uno scenario di più alto livello, come per
esempio definire come avviene il trasferimento di files da
un computer allaltro.
Così come in un qualsiasi linguaggio di programmazione,
le regole più dettagliate devono essere seguite alla
lettera (provate a tralasciare un punto e virgola in un listato
Pascal per rendervene conto), mentre quelle di alto livello
vanno costruite nel modo corretto, pena errori nella struttura
logica del programma, allo stesso modo le regole imposte da
un protocollo di trasmissione devono essere seguite per evitare
errori nella comunicazione.
Un
esempio reale di comunicazione |
Adesso
che abbiamo definito cosa sia un protocollo di comunicazione,
vediamone un applicazione pratica. Supponiamo di avere due
ditte: la "Ruini Informatica S.r.l." e la "Schenetti
Information Technology S.p.a.".
Un bel giorno, il direttore della "Ruini" vuole
mandare un biglietto di auguri al titolare dell'azienda concorrente,
la cui moglie ha appena avuto un figlio.
Egli prenderà dunque un foglio ed una penna ed inizierà
a scrivere il biglietto. Successivamente lo passerà
alla segretaria, che vi apporrà l'indirizzo della "Schenetti"
e provvederà alla spedizione.
Il postino porterà dunque il messaggio a destinazione
ed il titolare della ditta potrà leggerlo. Sembra un
gesto banale, quello di inviare qualcosa per posta, ma provate
a pensare a quante convenzioni vi siano dietro.
Standardizzazione
del protocollo |
Riprendiamo
l'esempio del paragrafo precedente. Cosa sarebbe successo se
gli impiegati della ditta destinataria, si fossero trovati di
fronte ad una lettera scritta in giapponese? Si sarebbero trovati
quantomeno spiazzati ed assolutamente non in grado né
di capire, né tantomeno di rispondere al messaggio. Tutto
ciò immaginando che il postino conoscesse il giapponese
e riuscisse a portare la lettera alla giusta destinazione. Fortunatamente,
la comunicazione é andata a buon fine, in quanto entrambe
le ditte utilizzavano il medesimo protocollo ed analoghe interfacce
di comunicazione, come appunto la stessa lingua. Ne nasce una
considerazione importante: la base di ogni protocollo é
il concetto di standardizzazione.
Più vasta é l'accettazione dello standard, più
forte e diffuso é il protocollo. Non sempre, però,
ed é bene ricordarlo, gli standard più diffusi
sono per forza i più efficienti. Gli esempi sono numerosi,
vedi il sistema operativo Windows contro Unix/Linux, il software
di compressione dati Winzip contro Winrar, ecc... In ogni modo
i sistemi divenuti standard sono generalmente i più conosciuti
e ciò semplifica notevolmente le operazioni di implementazione
e di trouble-shooting. Portiamo proprio il caso del TCP/IP,
che sarebbe ormai dovuto soffocare sotto il peso dei suoi anni,
ma che continua imperterrito a gestire reti di ogni sorta.
La
necessità di condividere dati: le reti di computers
e l'internetworking |
Sin
dalla comparsa sul mercato dei primi personal computer, si
é sentita la necessità di poter trasferire dati
liberamente, senza dover necessariamente ricorrere agli ingombranti
e delicatissimi floppy disk.
Le prime reti di PC, venivano costruite in un modo per così
dire "casereccio", in quanto mancavano precisi standard
di riferimento. Le reti potevano funzionare benissimo, ma
il problema era quello di interfacciarsi con l'esterno: era
infatti impensabile tentare di far comunicare tra loro due
reti distinte, a causa delle enormi differenze tra i vari
tipi di implementazioni.
Proprio su questo problema decise di intervenire la ISO (International
Standard Organization), che nel 1979 pubblicò il cosiddetto
OSI Model (Open System Interconnection Model),
il primo schema di riferimento per progettatori ed implementatori
di reti.
Open
System Interconnection (OSI model) |
Il
modello di riferimento OSI é costituito dai seguenti
sette strati distinti:
7) Strato dell'applicazione
6) Strato della presentazione
5) Strato della sessione
4) Strato del trasporto
3) Strato della rete
2) Strato del collegamento dati
1) Strato fisico
Esso descrive il modo in cui le informazioni si fanno strada
da un'applicazione su di un sistema host ad un'applicazione
su di un altro sistema host. Mentre le informazioni discendono
attraverso gli strati della rete sull'host mittente, cambiano
il proprio formato in ciascuno strato.
I dati che provengono dagli strati superiori sono incapsulati
in informazioni di intestazione dallo strato immediatamente
inferiore
Questo
diagramma mostra che, come i dati discendono attraverso l'host
a sinistra, la combinazione tra l'intestazione dello stato
precedente ed i dati é incapsulata nell'intestazione
dello strato successivo; per esempio i dati originali di un
messaggio e-mail sono incapsulati in un'intestazione del segmento.
Questa assicura che gli host coinvolti nel messaggio siano
in grado di comunicare in modo attendibile l'uno con l'altro.
Al livello della rete, i dati (che ora comprendono l'intestazione
del segmento ed i dati originali ricevuti dagli strati superiori)
si sistemano in un pacchetto che contiene un'intestazione
di rete. Questa intestazione di rete comprende gli indirizzi
logici dell'origine e della destinazione.
In una rete interconnessa TCP/IP, sono gli indirizzi IP degli
host mittente e destinatario ed aiutano nell'instradamento
dei pacchetti tra i due host attraverso la rete.
Allo strato del collegamento dati, l'intestazione della rete
e i suoi dati sono incapsulati in un'intestazione della cornice,
che definisce il modo in cui le informazioni saranno trasportate
attraverso l'interfaccia della rete sulla rete fisica. Ciascun
dispositivo sulla rete richiede l'inclusione in una cornice
per connettersi con il dispositivo successivo della rete.
L'intestazione della cornice include anche gli indirizzi fisici
degli host mittente e destinatario. Infine, allo strato fisico,
l'intestazione della cornice ed i suoi dati si convertono
in un formato che consente la trasmissione delle informazioni
su di un mezzo come i cavi di rete.
Quando i dati arrivano all'host destinatario, i bit sono nuovamente
convertiti in un'intestazione della cornice con i suoi dati.
Quando le informazioni si spostano verso l'alto attraverso
gli strati della rete, ciascuna intestazione serve a determinare
in che modo spostare i dati verso gli strati superiori.
A ciascuno strato si staccano le informazioni di intestazione
dello strato precedente, in modo tale che i dati abbiano di
nuovo lo stesso formato che avevano al momento della trasmissione
dallo strato corrispondente dell'host mittente. Ora che si
sono ripassate le caratteristiche basilari del modello di
riferimento OSI, nei paragrafi che seguono esamineremo brevemente
ciascuno degli strati del modello.
Ciascuno strato deve compiere una funzione predeterminata.
Mentre i dati discendono attraverso gli strati, lintestazione
ed i dati provenienti dal livello superiore diventano la sezione
dei dati del livello immediatamente inferiore. I dati non
possono saltare uno strato, mentre scendono attraverso il
modello OSI.
Questo semplifica il processo della trasmissione e consente
lo sviluppo di nuovi protocolli, poiché questi devono
semplicemente interagire con gli strati sopra e sotto a quello
in cui sono implementati.
Lo
strato fisico definisce le correnti elettriche, gli impulsi
fisici o gli impulsi ottici che sono coinvolti nel trasporto
dei dati dalla NIC (Network Interface Card, la scheda di rete)
di un host al sistema di comunicazione.
I requisiti e le caratteristiche necessarie per la trasmissione
sono in genere documentate in standard come V.35 o RS-232
(porta seriale). Lo strato fisico é responsabile per
la trasmissione fisica dei bit da un computer all'altro.
Lo
strato del collegamento dati |
Lo
strato del collegamento dati invia le cornici dati dallo strato
della rete allo strato fisico. Quando lo strato del collegamento
dati riceve i bit dallo strato fisico, li traduce in cornici
dati. Una cornice dati in genere comprende le seguenti componenti:
ID destinatario: questo ID, di solito, é l'indirizzo
MAC dell'host di destinazione o del gateway predefinito
ID mittente: questo ID, di solito, é l'indirizzo
MAC dell'host sorgente
Informazioni di controllo: includono informazioni quali
l'effettivo tipo di cornice e notizie sull'instradamento e
la segmentazione
Controllo ciclico di ridondanza (CRC, Cyclic Redundancy
Check): effettua la correzione degli errori e verifica che
la cornice dati sia arrivata intatta all'host destinatario
di riferimento Lo strato del collegamento dati é suddiviso
a sua volta in due sottostrati, chiamati rispettivamente sottostrato
del controllo del collegamento logico (Logical Link Control,
LLC) e sottostrato del controllo dell'accesso ai supporti
di trasmissione (Media Access Control, MAC). Il sottostrato
LLC si occupa del controllo degli errori e lavora soprattutto
con lo strato della rete per supportare servizi senza connessione
od orientati alla connessione. Il sottostrato MAC fornisce
l'accesso al supporto di trasmissione effettivo della LAN.
Lavora soprattutto con lo strato fisico.
|