Che cos'è un protocollo di rete?
I protocolli di rete vengono spesso nominati negli articoli tecnici, ma cosa sono? La rete è facilmente comprensibile da sola, il protocollo pure, ma insieme? Cosa intendiamo con "protocollo di rete"?
La risposta, ambigua ma precisa, sarebbe: cosa ti ha permesso di leggere questo articolo. Lo so, non è molto utile. Ma è la verità assoluta.
I protocolli di rete sono come le lingue: esistono per consentire la comunicazione tra diversi dispositivi e servizi. Come per le lingue umane, è necessario avere una lingua comune tra te e il tuo interlocutore, altrimenti non potete comunicare.
Esistono protocolli di rete per diversi compiti. Tutti permettono ai dispositivi e ai servizi di parlare tra loro, ma non tutti condividono lo stesso tipo di contenuto. Da quando è nata la prima linea telefonica, sono stati sviluppati protocolli di rete per la condivisione di file, per la stampa da una stampante remota o per la conversazione vocale. Oggi esistono letteralmente decine di protocolli di rete, da quelli di base e generali a quelli super-specifici.
Come funziona un protocollo di rete?
Un protocollo di rete è chiamato anche "protocollo di comunicazione" o "protocollo di comunicazione di rete". Tecnicamente, un protocollo di questa classe è definito come un insieme di regole per lo scambio di informazioni su una rete. È simile a un linguaggio umano, dove le regole sono la sintassi e la grammatica della lingua, mentre le informazioni si traducono nelle parole che diciamo o scriviamo.
Qualsiasi protocollo di rete funziona secondo determinate regole, per un ambito preciso. Le regole riguardano "come le informazioni devono essere trasmesse". Di solito stabiliscono l'ordine e il significato di alcuni metadati che indicheranno al dispositivo ricevente il protocollo utilizzato. Analogamente a una conversazione umana, in cui qualcuno ti ringrazia e tu si che dovresti rispondere educatamente con "prego", i protocolli di rete hanno un numero prestabilito di risposte attese per ogni tipo di messaggio.
Non tutti i dispositivi supportano tutti i protocolli, come non tutti gli esseri umani parlano tutte le lingue. Ad esempio, un dispositivo può supportare un protocollo di monitoraggio della rete, mentre un amministratore potrebbe aver bisogno di controllarne il funzionamento. Un altro dispositivo può supportare un protocollo di gestione della rete perché è destinato a gestire altri dispositivi attraverso uno di questi protocolli.
A differenza dei linguaggi umani che possono essere usati tutti per parlare e scrivere, i protocolli di rete sono più specifici. Esistono protocolli di monitoraggio della rete che scambiano informazioni sullo stato di un dispositivo, per monitorarlo. I protocolli di sicurezza di rete scambiano in modo sicuro messaggi che contengono informazioni sensibili (criptandoli tramite complicati algoritmi matematici).
Esistono protocolli di rete per scambiare file (FTP), mostrare pagine web (HTTP), connettersi a un dispositivo remoto (SSH), monitorarlo e configurarlo (SNMP) e così via. Alcuni protocolli hanno funzioni multiple. L'HTTP, ad esempio, è nato per distribuire testi ipermediali (comunemente chiamati pagine web) ma si è sviluppato in molteplici usi, che vanno dallo streaming di video alle chiamate vocali.
Se ora sei confuso, non preoccupati: gli esperti la pensavano allo stesso modo. Già negli anni Settanta, quando è stata creata la maggior parte dei sistemi di rete che utilizziamo oggi, è stato sviluppato il Modello di rete OSI per facilitare l'interoperabilità tra le reti seguendo un sistema di livelli concettuali. In totale ci sono 7 livelli, a partire dal più basso, l'hardware, fino a quello più vicino all'uomo, il livello applicativo. Nel corso di questo articolo faremo corrispondere ogni protocollo ai vari livelli del modello OSI, quando opportuno.
L'elenco completo dei livelli, con relativa spiegazione, è disponibile qui.
Chi utilizza i protocolli di rete?
Immagino che tu sappia già la risposta a questa domanda: tutti. I protocolli di rete non sono solo per gli specialisti IT e gli amministratori di rete, poiché ognuno di noi li sfrutta in un modo o nell'altro. La semplice navigazione in Internet, l'invio di una e-mail, la ricezione di un SMS o la chat con gli amici comportano l'utilizzo di un protocollo di rete. Spesso anche più di uno contemporaneamente.
Gli esperti dispongono di protocolli per il monitoraggio della rete che li aiutano a risolvere i problemi di una rete, in quanto fa parte del loro lavoro. La maggior parte delle persone, invece, non utilizza alcun protocollo di monitoraggio della rete. Come per le lingue naturali, si imparano e si usano solo quelli che sono utili. Non è necessario conoscerli tutti.
Ma se sei più di un utente medio, potresti voler sapere quali protocolli puoi usare per monitorare una rete o quali protocolli di gestione della rete esistono.
Quali tipi di protocolli di rete esistono?
Oggi sono in uso migliaia di protocolli di rete, ma noi ci concentreremo su tre aree principali: comunicazione di rete, gestione di rete e sicurezza di rete.
Il motivo è semplice: i primi sono i più utilizzati, e di gran lunga. Quelli di gestione sono quelli che ci interessano di più e, infine, ma non certo per importanza, i protocolli di sicurezza sono di primaria importanza per il monitoraggio.
Protocolli di comunicazione di rete
I protocolli di comunicazione di rete sono il tipo base di protocolli di rete, nati per trasmettere informazioni su una rete. Comunicano quindi informazioni, siano esse generiche o specifiche. La maggior parte di questi protocolli è comunemente conosciuta e costituisce la base su cui si basa l'intera Internet.

IP e TCP/UDP
Il protocollo IP è la radice di Internet. Senza di esso non sarebbe esistito. Il suo funzionamento è facilmente comprensibile, poiché la sua terminologia è diventata parte di ciò che tutti noi usiamo per descrivere il Web.
Il protocollo IP funziona consegnando i pacchetti da un host di origine a un indirizzo IP di destinazione. È anche un protocollo di routing, in quanto ha stabilito il concetto di indirizzi numerici e le loro varie classi. A seconda di come sono distribuiti i numeri, un pacchetto può essere destinato a una rete locale (LAN) o a una rete esterna (WAN). In pratica, Internet è la WAN di tutti.
L'IP è un protocollo senza connessione, il che significa che non esiste una procedura stabilita per iniziare a comunicare con un host. Si inizia a parlare e si prosegue in base alla risposta (o alla sua mancanza). I protocolli orientati alla connessione, invece, hanno un modo rigido di iniziare la comunicazione, che prevede una serie di interrogazioni e risposte che devono essere seguite per trasmettere e ricevere correttamente le informazioni. Un esempio, costruito su IP, è il TCP (Transmission Control Protocol). Forse avete sentito parlare di TCP/IP. È così popolare che viene associato al principale protocollo di comunicazione di rete di Internet.
L'altra faccia del TCP è UDP (User Datagram Protocol). A differenza del TCP, l'UDP è molto meno rigido e si occupa solo di confezionare i messaggi e di inviarli il più velocemente possibile. Anche se è generalmente preferito al TCP per la pura velocità, non si ha alcuna garanzia che l'altro capo riceva correttamente i messaggi, né che li capisca davvero.
Tra i livelli del modello OSI, IP si trova al numero 3, la rete. TCP e UDP si trovano al di sopra, al livello 4, il trasporto.
DNS
Il DNS è un altro protocollo chiave di Internet. Se l'IP fornisce a ogni dispositivo un indirizzo (come il nome di una persona), il DNS (Domain Name System) lo traduce in una posizione specifica su una rete (come l'indirizzo di casa). Il DNS è il registro degli indirizzi del Web e sa a quale indirizzo IP corrisponde un nome di dominio e viceversa.
Il DNS consente di digitare un sito web nel browser e di essere indirizzati a quello giusto. I provider di Internet mantengono un "server di nomi" per i loro clienti che ha i registri di tutti gli indirizzi IP nella loro "zona". L'intero Internet è diviso in tante piccole zone. Quando cerchi un sito web in base al suo dominio, la tua richiesta si sposta da quello fisicamente più vicino a te a quello più lontano necessario per avere una risposta positiva. Una volta ottenuto l'indirizzo IP, il compito del DNS è terminato e si può passare ad altri protocolli di rete per iniziare a condividere i dati desiderati.
Forse inaspettatamente, il DNS si trova al vertice dei livelli OSI, quello delle applicazioni, il numero 7.
HTTP e FTP
Li raggruppiamo perché hanno un ambito di applicazione simile. L'HTTP è di solito il protocollo successivo a cui ci si rivolge dopo che il DNS ha fornito l'indirizzo IP corrispondente al dominio cercato. L'HTTP si occupa di trasmettere il contenuto che risiede in quel dominio. Semplicemente.
L'FTP fa più o meno lo stesso. È l'acronimo di File Transfer Protocol e, come si può intuire dal nome, si concentra sulla trasmissione di file anziché di pagine web. I file possono essere estremamente grandi, gigabyte e oltre. Un tempo molto popolare, negli ultimi anni è diventato meno popolare perché l'HTTP ha preso il posto di gran parte delle funzioni dell'FTP.
Sia l'HTTP che l'FTP funzionano su pacchetti TCP/UDP e si trovano al livello applicazione del modello OSI.
SMTP
Un esempio di protocollo specifico per un solo compito, SMTP (Simple Mail Transfer Protocol) trasmette le e-mail. E solo questo. Non riceve e-mail, poiché altri protocolli lo fanno. SMTP si limita a inviarle.
Un solo compito, ma svolto così bene da essere il protocollo di rete per questo scopo fin dai primi anni '80. SMTP non solo invia le e-mail, ma aggiunge le intestazioni necessarie (i campi "Da" e "A" delle e-mail sono intestazioni) e si assicura che il destinatario abbia ricevuto la posta. Analogamente al TCP, esistono diverse richieste per garantire il corretto invio e la corretta ricezione dei messaggi.
SMTP è un altro protocollo del livello applicazione del modello OSI.
Protocolli di gestione della rete
Nel corso degli anni, la necessità di gestire i dispositivi è cresciuta di pari passo con le dimensioni delle reti. Quelli che una volta erano una manciata di computer, tutti nella stessa stanza, sono diventati decine o centinaia, sparsi in più sedi nel mondo, spesso sotto più di un'organizzazione.
Gestirli tutti è un compito difficile. I protocolli di gestione delle reti sono stati sviluppati proprio per alleggerire questo compito.

SNMP
Poiché abbiamo già parlato del Simple Network Management Protocol (SNMP), non è necessaria una lunga spiegazione. È sufficiente dire che SNMP è il nonno dei protocolli di gestione di rete, nato all'inizio degli anni '80 e ancora oggi largamente utilizzato. Esistono tuttavia molte alternative, di cui parliamo altrove.
La sua funzione è duplice: non solo gestisce (configura) i dispositivi remoti, ma può essere utilizzato anche per il monitoraggio della rete. Il protocollo si basa sul concetto di manager e di agente. Il primo gestisce i vari dispositivi su cui sono installati gli agenti e tiene traccia di tutte le metriche raccolte. Gli agenti tengono d'occhio il dispositivo su cui si trovano e possono inviare un avviso al manager se qualcosa non funziona.
Queste sono le basi di un protocollo piuttosto complesso. SNMP è stato il principale protocollo di monitoraggio della rete per oltre quarant'anni. È presente nel modello OSI al livello 7, applicazione.
Protocolli di sicurezza di rete
In questa sezione vedremo alcuni protocolli di rete che si concentrano sulla sicurezza delle comunicazioni. Non sono come i linguaggi umani, ma più simili a un codice che viene scambiato preventivamente tra due persone, dove un simbolo o un numero ha un significato solo per chi conosce il codice.
I protocolli di sicurezza di rete sono l'equivalente di tali codici nei computer.

SSL e TLS
SSL (Secure Sockets Layer) è in effetti un livello sopra altri protocolli. Comunemente, viene utilizzato con HTTP, che diventa HTTPS (la S sta per secure). SSL è nato nel 1995 per fornire un modo per trasmettere informazioni in modo sicuro nel browser Netscape. Da allora, tutti i browser lo hanno implementato.
Ma come funziona? Cifra tutti i dati trasmessi utilizzando una combinazione di chiavi crittografiche e certificati pubblici, insieme a un algoritmo di hashing. Tante parole nuove che possono essere facilmente tradotte: due computer si accordano, automaticamente, su come criptare i dati che stanno per scambiarsi. Il server fornisce il suo certificato digitale, un file contenente una lunga stringa alfanumerica che rappresenta l'identità del server. Il client sa quindi che il server è quello che dichiara di essere, poiché solo quel server dovrebbe avere quel certificato specifico. Successivamente, vengono generate un paio di chiavi (altri file alfanumerici) basate sul certificato e utilizzate per crittografare matematicamente tutti i dati trasferiti da quel momento in poi.
Sembrano molti passaggi complicati, ma tutto è trasparente per l'utente. Nessun passaggio è manuale, tutto è automatico.
L'SSL è stato afflitto da difetti e problemi di sicurezza fin dall'inizio. Oggi è stato deprecato a favore di un protocollo di sicurezza di rete più robusto, TLS (Transport Layer Security). Funziona esattamente come SSL, ma in modo più sicuro.
Curiosamente, né SSL né TLS rientrano chiaramente nei livelli del modello OSI. Si suppone che si trovino da qualche parte tra il quarto e il quinto, i livelli di trasporto e di sessione.
SSH
Negli stessi anni di SSL è stato sviluppato anche il protocollo di sicurezza di rete SSH (Secure Shell Protocol). Il funzionamento di SSH è simile a quello di SSL/TLS: un client e un server si scambiano una serie di chiavi e/o certificati per crittografare i dati che si stanno scambiando.
Abbiamo detto "o" perché con SSH non è necessario avere un certificato digitale. L'autenticazione può essere effettuata tramite la tipica coppia di nome utente e password, e in questo caso si utilizzano solo le chiavi digitali. Il certificato in SSH è utile per autenticarsi automaticamente, senza che l'utente sia presente per digitare nome e password.
SSH è quindi un po' più flessibile di SSL/TLS. Di solito non viene utilizzato solo come protocollo di sicurezza della rete, ma anche come protocollo per il monitoraggio della salute della rete. Può essere considerato anche uno dei protocolli di monitoraggio della rete. Questo perché SSH consente l'accesso completo a un computer remoto, non solo lo scambio di dati crittografati. Una volta concesso l'accesso, è possibile gestire, configurare e monitorare il computer remoto come se fosse il proprio. SSH è un ottimo esempio di protocollo di rete che ha più di un utilizzo.
SSH si trova sul modello OSI al livello 7, applicazione.
IPSec
IPSec è l'acronimo di Internet Protocol Security e il nome dovrebbe già dirvi dove si colloca nello strato del modello OSI. È l'equivalente di IP, ma sicuro. Per questo motivo si trova molto in basso, al livello 3.
Probabilmente non avete mai sentito parlare di IPSec in sé, ma del suo uso più famoso: VPN. Una rete privata virtuale è come avere computer remoti come se fossero nella tua rete, vicino a te. Questo funziona perché IPSec si occupa di creare un "tunnel", una comunicazione crittografata tra i computer, unendoli virtualmente come se fossero fisicamente vicini.
Il tunnel viene creato in modo simile a come funzionano SSH e SSL, quindi non ci sono grosse sorprese. Tuttavia, non viene utilizzato per scambiare dati con server casuali, come SSL/TLS, o per accedervi, come SSH, ma per avere una comunicazione sicura con più server. Questa è la definizione di VPN. IPSec è il protocollo di comunicazione e sicurezza di rete che consente a una VPN di funzionare. In genere viene utilizzato dalle aziende per proteggere la comunicazione tra tutti i computer dell'organizzazione, anche se non possono trovarsi fisicamente sulla stessa rete.
Che cos'è un protocollo di monitoraggio di rete?
Un altro tipo di protocolli di rete che si concentrano su un compito sono i protocolli di monitoraggio della rete. Sono sottotipi dei protocolli di comunicazione di rete perché, dopo tutto, anche loro scambiano informazioni. Ma mentre questi ultimi sono generici, i protocolli di monitoraggio della rete si occupano di trasmettere dati che possono essere utilizzati da un amministratore di rete per identificare problemi nella rete.
Rispetto al linguaggio umano, sono come le persone che comunicano regolarmente al proprio medico come si sentono, e il medico interpreta le loro parole per trovare una cura, se necessario.
Quale protocollo può essere utilizzato per il monitoraggio della rete?
SNMP è probabilmente il principale. È spesso una buona risposta alla domanda su quale protocollo può essere usato per il monitoraggio della rete. Tuttavia, non è l'unico. Anche una manciata di altri protocolli di monitoraggio della rete sono una scelta valida.

NetFlow e IPFIX
NetFlow, di proprietà di Cisco, è stato per anni il principale concorrente di SNMP nel monitoraggio della rete. Ora è stato sostituito da IPFIX (IP Flow Information Export), che si basa su di esso. Entrambi i protocolli sono anche protocolli di comunicazione di rete "focalizzati". Focalizzati, perché invece di raccogliere tutto ciò che viene trasmesso tra i dispositivi di rete, ne raccolgono solo alcune parti. In questo modo, hanno un'idea generale della provenienza e della destinazione del traffico. Queste parti sono chiamate "flussi". Rispetto ai linguaggi umani, questi flussi sono come se parlassero di concetti e idee generali, invece di entrare nei dettagli.
Per il monitoraggio della rete, può essere vantaggioso avere solo un'idea generale di come si muove il traffico. Inizialmente facilita la risoluzione dei problemi e dei colli di bottiglia. È sempre possibile approfondire le informazioni NetFlow e IPFIX catturate come flussi in un secondo momento, se lo si desidera.
WMI e MI
Una scelta popolare per il monitoraggio della rete in Windows è WMI (Windows Management Instrumentation). Protocollo di monitoraggio di rete piuttosto complesso, WMI è simile a un ibrido tra SSH e SNMP. Consente sia di accedere alle metriche per il monitoraggio di un dispositivo sia di avere accesso completo ad esso. È quindi potente. Non ha però gli aspetti di sicurezza di SSH, quindi non è un protocollo di sicurezza di rete.
WMI si è trasformato in MI (Management Infrastructure), supportato da tutte le versioni recenti di Windows. Funziona in modo molto simile a WMI, ma risolve alcuni problemi del protocollo di monitoraggio di rete originale basato su Windows.
ICMP
Un protocollo di monitoraggio di rete essenziale è ICMP. Acronimo di Internet Control Message Protocol, è uno dei protocolli di rete più antichi e semplici. Si trova a un livello basso del modello OSI, il numero 3, insieme all'IP, e proviene dalla stessa era tecnologica.
La sua semplicità è il suo punto di forza. Tutto ciò che ICMP fa è controllare che un dispositivo sia attivo e rispondere. È come se due persone si controllassero ripetutamente a vicenda con un "ci sei?". La risposta, nel caso di ICMP, è sì o non risponde affatto. In questo caso, potrebbe essere presente un problema che vale la pena indagare ulteriormente. Non è niente di speciale, ma come primo passo per la risoluzione di eventuali problemi di rete, ICMP funziona benissimo.