6.1 Definizione
La definizione di “Protocollo” tratta dal dizionario della lingua italiana Devoto-Oli recita : “… Il complesso delle norme relative alla redazione dei documenti diplomatici o anche all’applicazione del cerimoniale diplomatico … “.
Abbiamo già accennato, vedi par. 5.1, al fatto che due computer che vogliano comunicare possono farlo solo adottando una lingua comune ma mentre abbiamo utilizzato il termine “standard” per definire la convenzione relativa alla tensione elettrica che una scheda di rete trasmette sul cavo per rappresentare un 1 binario, vista la definizione di cui sopra, è più appropriato parlare di “protocollo” quando si definisce l’insieme di regole che consente di trasferire file da un capo all’altro del mondo (FTP – File Transfer Protocol) o di digitare nella barra degli indirizzi del proprio browser www.mrwcorsi.it e di ricevere in risposta testo e/o immagini e/o suoni (http – Hyper Text Transfer Protocol) senza neppure sapere dove si trovi il computer o i computers che ce li inviano.
E’ facile immaginare che come è avvenuto per Ethernet anche i protocolli cui abbiamo appena accennato (FTP, HTTP, SMTP ecc… ecc… ) hanno subito un processo di standardizzazione cui accenneremo nel seguito ma è probabile che a questo punto vi stiate domandando: come si passa dal bit 0 o 1 rappresentato attraverso un segnale elettrico inviato su un cavo in rame alla navigazione del web?
Trattandosi di una lunga storia credo sia il caso di cominciare dall’inizio.
6.2 C’era una volta
In America nel 1969 un ente denominato Advanced Research Projects Agency (ARPA) fu incaricato di progettare una rete di computer che potesse essere utilizzata dai vertici militari per comunicare anche in caso di guerra nucleare!?!?
Nacque il progetto della rete ARPANet per la quale, visti gli ambiziosi propositi, furono stabiliti i seguenti requisiti:
- Indipendenza dall’hardware: doveva poter essere utilizzato sulle macchine di qualsiasi produttore;
- Indipendenza dal software: due macchine connesse alla rete dovevano poter comunicare anche se equipaggiate con software completamente diversi;
- Capacità di gestire la trasmissione dei dati anche in presenza di alti tassi di errore: resistenza a condizioni quali l’improvvisa indisponibilità di una macchina connessa alla rete o di un intero ramo della rete stessa;
- Instradabilità: Capacità di portare a termine la trasmissione dei dati qualunque fosse la destinazione
Lo sviluppo di un protocollo di comunicazione di rete richiede di dare risposta ad una enorme quantità di domande di cui possiamo fare un piccolissimo esempio:
- Che tipologia di cavo collega fra loro i computer della rete?
- In che modo i dati vengono trasmessi lungo il cavo?
- Come fa ognuno dei computer della rete a sapere quando è il momento di trasmettere i dati?
- Come fa ognuno dei computer della rete a sapere quanti dati può trasmettere in un dato istante?
- Come si fa a garantire che due computer con sistemi operativi diversi e diversa rappresentazione dei dati possano comunicare?
- Il computer che riceve i dati come fa ad essere certo della loro correttezza?
- Il computer che trasmette i dati come fa ad essere certo che siano giunti a destinazione?
- … …
Il concetto più importante introdotto dal modello OSI [Fig. 9] è certamente quello della suddivisione del protocollo in strati o “livelli” (7 per la precisione) che tradotto significa:
Il risultato finale è uno o più protocolli per ogni strato del modello che lavorando insieme agli strati superiori e sottostanti costituisce quello che si usa definire una “suite” di protocolli che è poi la definizione più corretta per il TCP/IP.
Il modello OSI però è, appunto, solo un modello che in quanto tale da delle indicazioni non rigide e credo che nessun protocollo ad esso ispirato sia costituito esattamente dai suoi 7 livelli cosa che vale anche per il TCP/IP il cui sviluppo, fra l’altro, fu avviato prima della definizione formale del modello OSI e che si basa su una struttura a 4 livelli [Fig. 10] in cui il livello APPLICATION del TCP/IP svolge le funzioni previste dai livelli APPLICATION/PRESENTATION/SESSION del modello OSI.