Una parola chiave delle reti di calcolatori è sicuramente: protocollo. Che cos’è un protocollo? Che cosa fa?
Probabilmente è più facile comprendere la nozione di protocollo di rete considerando dapprima alcune analogie con il comportamento umano, dato che noi eseguiamo protocolli in ogni momento. Si consideri che cosa si fa quando si vuole chiedere a qualcuno che ore sono:
Il “protocollo umano” (o quanto meno le buone maniere) impone come prima cosa un saluto (il primo “Ciao”) per iniziare la comunicazione con qualcun altro. La tipica risposta è un messaggio “Ciao” di ritorno. Implicitamente, una persona interpreta una risposta cordiale “Ciao” come l’indicazione di poter procedere e chiedere l’ora. Una risposta diversa (quale un “Non mi scocciare!”, “Non parlo italiano” o qualsiasi altra) potrebbe indicare una scarsa propensione a comunicare o l’incapacità di farlo. In questo caso, si dovrebbe rinunciare a chiedere l’ora. Quando una persona non riceve risposta alla propria domanda, in linea di massima, non ripresenta la richiesta. Si noti che nel “protocollo umano” sono presenti specifici messaggi che inviamo e specifiche azioni che intraprendiamo in risposta ai messaggi ricevuti o ad altri eventi (quali la mancata ricezione di risposta in un tempo ragionevole). Chiaramente, i messaggi trasmessi e ricevuti e le azioni intraprese quando questi messaggi vengono inviati e acquisiti, rivestono un ruolo centrale nel protocollo umano. Se le persone adottano protocolli differenti (per esempio, se una persona è bene educata e l’altra no, o se una delle due comprende il concetto di tempo e l’altra no) i protocolli non interoperano e non è possibile portare a termine una transazione utile. Lo stesso concetto vale per le reti. Lo scambio si appoggia a due (o più) entità che comunicano utilizzando lo stesso protocollo al fine di assolvere un certo compito. Consideriamo una seconda analogia. Supponiamo di seguire una lezione. La voce del docente risuona monotona e noi siamo disorientati. Il docente si interrompe per chiedere: “Ci sono domande?” (messaggio che viene trasmesso a tutti gli studenti e recepito da tutti quelli che non stanno dormendo). Alziamo la mano (trasmettendo un messaggio implicito al docente). Il docente si rivolge a voi dicendo “Sì ...” (messaggio trasmesso per incoraggiarvi a porgli una domanda). Al che voi fate la vostra domanda (ossia trasmettete il vostro messaggio al docente). Quest’ultimo sente la domanda (riceve il messaggio) e risponde (vi trasmette una risposta). Ancora una volta, osserviamo che la trasmissione e la ricezione dei messaggi e le azioni convenzionali intraprese nel momento in cui tali messaggi vengono inviati e ricevuti rappresentano il cuore di questo protocollo a domanda e risposta.
Un protocollo di rete è simile a un “protocollo umano”, a eccezione del fatto che le entità che si scambiano messaggi e che intraprendono azioni sono componenti hardware o software di qualche dispositivo (computer, smartphone, tablet, router o altri dispositivi di rete). Qualsiasi attività in Internet che coinvolga due o più entità remote in comunicazione viene governata da un protocollo. Per esempio, i protocolli cablati nelle schede di rete di due calcolatori fisicamente connessi controllano il flusso di bit sul “cavo” tra le due schede; i protocolli di controllo di congestione nei sistemi periferici verificano la velocità alla quale i pacchetti vengono trasmessi tra mittente e destinatario; i protocolli nei router determinano un percorso per il pacchetto dalla sorgente alla destinazione.
Come esempio di protocollo di rete si consideri che cosa succede quando si invia una richiesta a un web server, ossia quando si digita l’indirizzo di una pagina web in un browser. La situazione viene mostrata nella parte destra della figura precedente. Per prima cosa il vostro computer invierà un messaggio di richiesta di connessione al web server e si metterà in attesa di una risposta. Il web server alla fine riceverà il vostro messaggio di richiesta di connessione e restituirà un messaggio di risposta di connessione. Sapendo che ora è possibile richiedere un documento web, il vostro computer invierà il nome della pagina che vuole prelevare dal server tramite un messaggio detto "GET". Infine, il web server restituirà la pagina web (un file) al vostro computer. Sulla base degli esempi appena forniti, lo scambio di messaggi e le azioni intraprese quando tali messaggi vengono inviati e ricevuti sono gli elementi chiave che definiscono un protocollo. Un protocollo definisce il formato e l’ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di ricezione di un messaggio o di un altro evento.
Internet fa un uso estensivo di protocolli. Si impiegano protocolli differenti per realizzare compiti diversi. Alcuni protocolli sono semplici e diretti, mentre altri sono complessi e difficili da un punto di vista concettuale.
Tratto da "Reti di Calcolatori e Internet" - Kurose-Ross