I protocolli sono insiemi predeterminati di regole tra i partecipanti alla comunicazione affinché la comunicazione abbia successo e sia efficiente. Queste regole sono spesso organizzate in livelli.
Per esempio esaminiamo una rete locale cablata che sto usando proprio ora per pubblicare questa risposta.
Ci sono 4 coppie di cavi all'interno di un cavo LAN. Un protocollo definisce per cosa viene usato ogni filo, quali tensioni usano i segnali, quali alternanze di tensioni nei fili significano cosa, ecc. Entrambe le parti devono conformarsi. Questo è il livello fisico che definisce come l'elettricità corre attraverso i cavi.
Su questo ci sono regole che definiscono come inizia una trasmissione, quali dati sono contenuti all'interno e cosa significano e come finisce la trasmissione. Questo è il livello di collegamento dati.
C'è un altro livello con un altro protocollo sopra questo. Come fanno i diversi dispositivi a identificarsi e a distinguersi l'uno dall'altro? Hanno bisogno di avere nomi unici per poter stabilire una comunicazione punto a punto. Questo è il livello di rete.
Questi sono solo 3 di una lista di 6-7 livelli che stabiliscono le regole di comunicazione tra le applicazioni. Questo è il modo in cui un pezzo di software comunica con un altro pezzo di software senza considerare ciò che accade nei livelli sottostanti.
Ora sto scrivendo questo pezzo di testo all'interno della mia applicazione browser e quando faccio clic su "Invia" questo testo deve essere memorizzato in un'applicazione server di database remoto. Queste applicazioni esistono entrambe nei livelli superiori, eppure riescono a comunicare con successo sulla base di un rigido insieme di regole che permettono ai livelli sottostanti di comunicare tra loro da ogni lato. I protocolli sono le regole che noi persone definiamo in ogni strato per questi sistemi per ottenere questa comunicazione.