Spiegazione di tutti i protocolli di rete comuni

Il protocollo di rete è un insieme di regole che i dispositivi utilizzano per comunicare tra loro su una rete.

È simile al modo in cui le persone seguono determinati comportamenti e procedure quando parlano tra loro.

Specificano cose come come dovrebbero essere strutturati i pacchetti di dati, come i dispositivi dovrebbero identificarsi e come dovrebbero essere gestiti errori e conflitti.

I protocolli di rete possono essere classificati in questi tre tipi principali: comunicazione, sicurezza e gestione.

#1. Protocolli di comunicazione

Questi protocolli si concentrano sull’abilitazione dello scambio di dati e informazioni tra dispositivi su una rete. Determinano il modo in cui i dati vengono formattati, trasmessi e ricevuti, garantendo una comunicazione efficace. Gli esempi sono HTTP/HTTPS, FTP, TCP e UDP.

#2. Protocolli di sicurezza

I protocolli di sicurezza sono progettati per proteggere la riservatezza e l’autenticità dei dati mentre attraversano una rete. Stabiliscono canali sicuri per la comunicazione e assicurano che le informazioni sensibili non siano vulnerabili a intercettazioni o manomissioni.

Gli esempi includono SSL/TLS per la crittografia, SSH per l’accesso remoto sicuro e varianti sicure dei protocolli di posta elettronica come SMTPS e POP3S.

#3. Protocolli di gestione

I protocolli di gestione vengono utilizzati per l’amministrazione, il monitoraggio e il controllo dei dispositivi/risorse di rete. Aiutano gli amministratori di rete a configurare e risolvere i problemi dei componenti di rete in modo efficiente.

Alcuni esempi sono DHCP per l’allocazione dinamica degli indirizzi IP, SNMP per la gestione dei dispositivi di rete, ICMP per scopi diagnostici e BGP per informazioni su routing e raggiungibilità.

Parliamo di alcuni protocolli comuni di ciascuna categoria.

Protocolli di comunicazione

HTTP

HTTP sta per Hypertext Transfer Protocol.

È un protocollo fondamentale utilizzato per la comunicazione tra un browser Web e un server.

È un protocollo a livello di applicazione che opera sul modello OSI.

Quando inserisci un URL nel tuo browser web e premi Invio, viene inviata una richiesta HTTP a un server web che quindi elabora la richiesta e invia una risposta HTTP contenente le informazioni richieste.

Potrebbe trattarsi di una pagina Web, un’immagine, un video o qualsiasi altra risorsa ospitata sul server.

HTTP è un protocollo senza stato. Significa che ogni richiesta da un client a un server viene trattata come una transazione indipendente e isolata.

Il server non conserva alcuna informazione sulle richieste precedenti dello stesso client. Questa semplicità è uno dei motivi per cui HTTP è così ampiamente utilizzato.

HTTP definisce diversi metodi di richiesta, tra cui GET (recupera dati), POST (invia dati da elaborare), PUT (aggiorna una risorsa), DELETE (rimuovi una risorsa) e altri. Questi metodi determinano il tipo di operazione che il client desidera eseguire sul server.

Generalmente, le risposte HTTP includono un codice di stato che indica l’esito della richiesta.

Ad esempio: un codice di stato 200 indica una richiesta riuscita, mentre 404 indica che la risorsa richiesta non è stata trovata.

E HTTP ha visto diverse versioni nel corso degli anni, e HTTP/1.1 è stata per molto tempo una delle versioni più utilizzate.

HTTP/2 e HTTP/3 (noto anche come QUIC) sono stati sviluppati per migliorare le prestazioni.

HTTPS

HTTPS sta per Hypertext Transfer Protocol Secure.

È un’estensione del protocollo HTTP utilizzato per la comunicazione sicura su reti di computer.

Aggiunge un livello di sicurezza all’HTTP standard crittografando i dati scambiati tra un browser e un server web utilizzando protocolli crittografici come SSL/TLS. Anche se qualcuno intercetta i dati trasmessi, non può leggerli o decifrarli facilmente.

HTTPS include una forma di autenticazione del server.

Quando un browser si connette a un sito Web tramite HTTPS, il sito Web presenta un certificato digitale emesso da un’autorità di certificazione (CA) attendibile.

Questo certificato verifica l’identità del sito Web, garantendo che il client si connetta al server previsto e non a uno dannoso.

I siti web che utilizzano HTTPS sono identificati da “https://” all’inizio dei loro URL. L’uso di questo prefisso indica che il sito web utilizza una connessione sicura.

HTTPS generalmente utilizza la porta 443 per la comunicazione, mentre HTTP utilizza la porta 80. I server Web possono facilmente distinguere tra connessioni sicure e non sicure utilizzando questa distinzione.

I motori di ricerca come Google danno la priorità ai siti Web che utilizzano HTTPS nelle loro classifiche di ricerca.

I browser possono anche avvisare gli utenti quando una pagina Web HTTPS sicura contiene elementi (immagini o script) serviti su una connessione HTTP non protetta. Questo è noto come “contenuto misto” e può compromettere la sicurezza.

Ecco un articolo dettagliato su come ottenere un certificato SSL per un sito web. Sentiti libero di visitare questa pagina.

FTP

File Transfer Protocol (FTP) è un protocollo di rete standard utilizzato per trasferire file tra un client e un server su una rete di computer.

FTP funziona secondo il modello client-server. Ciò significa che il client avvia una connessione a un altro computer (il server) per richiedere e trasferire file.

FTP utilizza due porte per la comunicazione e può funzionare in due modalità: modalità attiva e modalità passiva.

La porta 21 viene utilizzata per la connessione di controllo in cui vengono inviati comandi e risposte tra il client e il server.

La modalità attiva è la modalità tradizionale che funziona secondo il principio del modello client-server. Qui viene aperta una porta aggiuntiva (di solito nell’intervallo 1024-65535) per il trasferimento dei dati.

D’altra parte, la modalità passiva viene spesso utilizzata quando il client si trova dietro un firewall o un dispositivo NAT e il server apre una porta casuale con numero alto per il trasferimento dei dati.

FTP generalmente richiede l’autenticazione per accedere ai file sul server. Gli utenti devono fornire un nome utente e una password per accedere.

Alcuni server FTP supportano anche l’accesso anonimo. Pertanto, gli utenti possono accedere con un nome utente generico come “anonimo” o “FTP” e utilizzare il proprio indirizzo e-mail come password.

FTP supporta due modalità di trasferimento dati: modalità ASCII e modalità binaria.

La modalità ASCII viene utilizzata per i file di testo e la modalità binaria viene utilizzata per file non di testo come immagini ed eseguibili. La modalità viene impostata in base al tipo di file da trasferire.

L’FTP tradizionale non è un protocollo sicuro poiché trasmette dati inclusi nomi utente e password in testo semplice.

FTP sicuro (SFTP) e FTP su SSL/TLS (FTPS) sono alternative più sicure che crittografano il trasferimento dei dati per proteggere le informazioni sensibili.

Ecco un articolo dettagliato su SFTP vs FTPS e quale protocollo utilizzare.

TCP

Il Transmission Control Protocol (TCP) è uno dei principali protocolli del livello di trasporto nella suite IP.

Svolge un ruolo importante nel fornire una trasmissione dati affidabile e ordinata tra dispositivi su reti IP.

TCP stabilisce una connessione tra il mittente e il destinatario prima che inizi qualsiasi trasferimento di dati. Questa configurazione di connessione prevede un handshake a tre vie (SYN, SYN-ACK, ACK) e un processo di terminazione della connessione una volta completato lo scambio di dati.

Supporta inoltre la comunicazione full-duplex che consente l’invio e la ricezione simultanea dei dati in entrambe le direzioni all’interno della connessione stabilita.

Generalmente, TCP monitora le condizioni della rete e regola la velocità di trasmissione per evitare la congestione della rete.

Questo protocollo include meccanismi di controllo degli errori per rilevare e correggere il danneggiamento dei dati durante la trasmissione. Se un segmento di dati risulta danneggiato, il ricevitore richiede la ritrasmissione.

TCP utilizza i numeri di porta per identificare servizi o applicazioni specifici su un dispositivo. I numeri di porta aiutano a instradare i dati in entrata all’applicazione corretta.

Il destinatario in una connessione TCP invia riconoscimenti (ACK) per confermare la ricezione di segmenti di dati. Se il mittente non riceve un ACK entro un certo tempo, ritrasmette il segmento di dati.

TCP mantiene le informazioni sullo stato della connessione sia sul lato mittente che su quello ricevente. Queste informazioni aiutano a tenere traccia della sequenza dei segmenti di dati e a gestire la connessione.

IP

IP sta per Protocollo Internet.

È un protocollo fondamentale che consente la comunicazione e lo scambio di dati nelle reti di computer, inclusa la rete globale che conosciamo come Internet.

IP utilizza un sistema di indirizzamento numerico per identificare i dispositivi su una rete. Questi indirizzi numerici sono chiamati indirizzi IP e possono essere IPv4 o IPv6.

Gli indirizzi IPv4 sono tipicamente sotto forma di quattro serie di numeri decimali (ad esempio, 192.168.1.1), mentre gli indirizzi IPv6 sono più lunghi e utilizzano la notazione esadecimale.

IP instrada i pacchetti di dati tra dispositivi su reti diverse.

Router e switch svolgono un ruolo importante nell’indirizzare questi pacchetti verso le destinazioni previste in base ai loro indirizzi IP.

Generalmente, IP utilizza una metodologia di commutazione di pacchetto. Ciò significa che i dati vengono suddivisi in pacchetti più piccoli per la trasmissione attraverso la rete. Ogni pacchetto contiene un indirizzo IP di origine e di destinazione che consente ai router di prendere decisioni di inoltro.

L’IP è considerato un protocollo senza connessione. Non stabilisce una connessione dedicata tra mittente e destinatario prima di trasmettere i dati.

Ogni pacchetto viene trattato in modo indipendente e può prendere percorsi diversi per raggiungere la sua destinazione.

UDP

UDP sta per User Datagram Protocol.

È un protocollo leggero e senza connessione che fornisce un modo per inviare dati su una rete senza stabilire una connessione formale.

A differenza del protocollo TCP, UDP non stabilisce una connessione prima dell’invio dei dati. Impacchetta semplicemente i dati in datagrammi e li invia alla destinazione.

Non garantisce la consegna dei dati e non implementa meccanismi per il rilevamento e la correzione degli errori. Se un pacchetto viene perso o arriva fuori ordine, spetta al livello dell’applicazione gestirlo.

UDP ha un sovraccarico inferiore rispetto a TCP perché non include funzionalità come il controllo del flusso, la correzione degli errori o i riconoscimenti. Ciò lo rende più veloce ma meno affidabile.

Inoltre, non dispone di meccanismi di controllo della congestione integrati, quindi è possibile inondare una rete con traffico UDP che potenzialmente causa congestione.

UDP viene comunemente utilizzato in situazioni in cui la bassa latenza e la trasmissione dei dati ad alta velocità sono più critiche della consegna garantita. Alcuni esempi comuni sono lo streaming audio e video in tempo reale, i giochi online, il DNS e alcune applicazioni IoT.

La cosa migliore di UDP è la sua funzionalità di multiplexing. Consente a più applicazioni sullo stesso dispositivo di utilizzare la stessa porta UDP differenziando i flussi di dati utilizzando i numeri di porta.

capiamo l’UDP con un semplice esempio.

Immagina di voler inviare un messaggio al tuo amico attraverso un parco giochi rumoroso utilizzando una palla rimbalzante. Decidi di utilizzare UDP, che è come lanciare la palla senza alcuna conversazione formale. Ecco come funziona:

  • Scrivi il tuo messaggio su un pezzo di carta e avvolgilo attorno alla palla.
  • Lanci la palla in direzione del tuo amico. Non aspetti che il tuo amico lo prenda o riconosca di averlo ricevuto; lo lanci e speri che lo prendano.
  • La palla rimbalza e raggiunge il tuo amico, che cerca di prenderla. Ma a volte, a causa del rumore, potrebbe rimbalzare sulle loro mani o arrivare fuori servizio.
  • Il tuo amico legge il messaggio sul foglio e, se ha preso la palla con successo, riceve il messaggio. In caso contrario, potrebbero non vederlo e tu non lo saprai perché non avevi modo di controllare.

Quindi, in questo esempio:

La palla rappresenta il protocollo UDP che invia dati senza stabilire una connessione formale.

Inviare la palla senza attendere una risposta è come se UDP fosse senza connessione e non garantisse la consegna.

La possibilità che la palla rimbalzi o si perda simboleggia la mancanza di affidabilità nell’UDP.

Il tuo amico che legge il messaggio è come il livello dell’applicazione che gestisce i dati ricevuti tramite UDP, che eventualmente si occupa di eventuali dati mancanti.

Protocolli di sicurezza

SSH

SSH sta per Secure Shell.

È un protocollo di rete utilizzato per la comunicazione sicura tra un client e un server su una rete non protetta. Fornisce un modo per accedere e gestire in remoto i dispositivi tramite un’interfaccia della riga di comando con un elevato livello di sicurezza.

SSH utilizza tecniche crittografiche per autenticare sia il client che il server. Ciò garantisce che ti stai connettendo al server corretto e che il server possa verificare la tua identità prima di consentire l’accesso.

Tutti i dati trasmessi tramite una connessione SSH sono crittografati, il che rende difficile per chiunque intercetti la comunicazione intercettare i dati scambiati.

Fonte immagine: StackOverflow

SSH utilizza una coppia di chiavi per l’autenticazione. La coppia di chiavi è composta da una chiave pubblica (che è condivisa con il server) e una chiave privata (che mantieni segreta).

Ecco un articolo su come funziona: accesso senza password SSH

Quando ti connetti a un server SSH, il tuo client utilizza la tua chiave privata per dimostrare la tua identità.

Oltre a questo, supporta anche l’autenticazione tradizionale con nome utente e password. Tuttavia, questo è meno sicuro ed è spesso scoraggiato, soprattutto per i server connessi a Internet.

SSH utilizza la porta 22 per la comunicazione per impostazione predefinita, ma questa può essere modificata per motivi di sicurezza. La modifica del numero di porta può aiutare a ridurre gli attacchi automatizzati.

SSH è comunemente utilizzato per l’amministrazione di server remoti, il trasferimento di file (con strumenti come SCP e SFTP) e l’accesso sicuro alle interfacce della riga di comando remote.

È ampiamente utilizzato nell’amministrazione di sistemi operativi simili a Unix ed è disponibile anche su Windows tramite varie soluzioni software.

SMTP

SMTP sta per Simple Mail Transfer Protocol.

È un protocollo standard responsabile dell’invio di messaggi di posta elettronica in uscita da un client o server di posta elettronica a un server di posta elettronica sul lato del destinatario.

SMTP è una parte fondamentale della comunicazione e-mail e funziona insieme ad altri protocolli e-mail come IMAP/POP3 per consentire l’intero ciclo di vita della posta elettronica, inclusi l’invio, la ricezione e l’archiviazione dei messaggi e-mail.

Quando componi un’e-mail e fai clic su “invia” nel tuo client di posta, utilizza SMTP per inoltrare il messaggio al server del tuo provider di posta elettronica.

Utilizza la porta 25 per la comunicazione non crittografata e la porta 587 per la comunicazione crittografata (utilizzando STARTTLS). Anche la porta 465 è stata utilizzata per la comunicazione SMTP crittografata, ma è meno comune.

Molti server SMTP richiedono l’autenticazione per inviare e-mail per impedirne l’uso non autorizzato. Vengono utilizzati metodi di autenticazione come nome utente e password o metodi più sicuri come OAuth.

Questi server SMTP vengono spesso utilizzati come relè, il che significa che accettano le email in uscita dai client (ad esempio, la tua app di posta elettronica) e le inoltrano al server di posta elettronica del destinatario. Ciò aiuta a instradare le e-mail su Internet.

La comunicazione può essere protetta utilizzando la crittografia tramite TLS o SSL, soprattutto quando si inviano informazioni sensibili o riservate tramite e-mail.

Protocolli di gestione

POP3

POP3 sta per Post Office Protocol versione 3.

È uno dei protocolli di recupero della posta elettronica più comuni utilizzati per recuperare i messaggi di posta elettronica da un server di posta a un’applicazione client di posta elettronica.

POP3 è progettato per funzionare in modalità “store-and-forward”. Recupera le e-mail dal server e quindi in genere le elimina dal server dopo aver archiviato una copia sul dispositivo del client.

Alcuni client di posta elettronica offrono la possibilità di lasciare una copia dell’email sul server, ma questo non è il comportamento predefinito.

Utilizza la porta 110 per la comunicazione non crittografata. La porta 995 viene comunemente utilizzata per comunicazioni POP3 sicure tramite TLS/SSL.

POP3 è un protocollo senza stato. Ciò significa che non tiene traccia delle email che hai già scaricato. Ogni volta che ti connetti al server, recupera tutti i messaggi non letti. Ciò può portare a problemi di sincronizzazione se accedi alla tua posta elettronica da più dispositivi.

POP3 è progettato principalmente per recuperare le email dalla posta in arrivo. Potrebbe non supportare il recupero di email da altre cartelle sul server, come messaggi inviati o bozze.

Poiché POP3 non sincronizza le cartelle di posta elettronica tra il server e il client, le azioni intraprese su un dispositivo (ad esempio, l’eliminazione di un’e-mail) non si rifletteranno sugli altri dispositivi.

Si consiglia di utilizzare la versione sicura di POP3 (POP3S o POP3 su SSL/TLS), che crittografa la comunicazione tra il client di posta elettronica e il server per migliorare la sicurezza.

POP3 è oggi meno utilizzato rispetto a IMAP (Internet Message Access Protocol). Fornisce funzionalità più avanzate come la sincronizzazione delle cartelle e consente a più dispositivi di gestire la stessa casella di posta in modo più efficace.

BGP

BGP sta per Border Gateway Protocol.

Si tratta di un protocollo gateway esterno standardizzato utilizzato nelle reti per scambiare informazioni di routing e raggiungibilità tra sistemi autonomi (AS).

Un sistema autonomo è un insieme di reti IP e router sotto il controllo di una singola organizzazione che presenta una politica di routing comune verso Internet.

BGP è un protocollo vettoriale di percorso. Ciò significa che tiene traccia del percorso (elenco dei sistemi autonomi) che i pacchetti di dati seguono per raggiungere la loro destinazione. Queste informazioni aiutano i router BGP a prendere decisioni di routing basate su policy e attributi del percorso.

Viene utilizzato principalmente per determinare il percorso migliore da attraversare per i dati quando attraversano più reti gestite da diverse organizzazioni o ISP.

Supporta anche l’aggregazione delle rotte che aiuta a ridurre la dimensione della tabella di routing globale riepilogando più prefissi IP in un unico annuncio di rotta.

Il protocollo BGP utilizza vari meccanismi per prevenire loop di routing, incluso l’uso dell’attributo del percorso AS e del file orizzonte diviso regola.

Viene utilizzato sia nella rete Internet pubblica che nelle reti private.

Nell’Internet pubblica, viene utilizzato per scambiare informazioni di routing tra ISP e reti di grandi dimensioni. Nelle reti private viene utilizzato per il routing interno e la connessione a Internet tramite un router di confine.

DHCP

DHCP sta per Dynamic Host Configuration Protocol.

Viene utilizzato per assegnare automaticamente indirizzi IP e altre impostazioni di configurazione di rete ai dispositivi su una rete TCP/IP.

Il processo DHCP prevede generalmente quattro fasi principali:

DHCP Scopri

Quando un dispositivo si unisce a una rete, invia un messaggio broadcast DHCP Discover per trovare i server DHCP disponibili.

Offerta DHCP

I server DHCP sulla rete rispondono al messaggio DHCP Discover con un’offerta DHCP. Ciascun server fornisce un indirizzo IP e le relative opzioni di configurazione.

Richiesta DHCP

Il dispositivo seleziona una delle offerte DHCP e invia un messaggio di richiesta DHCP al server scelto che richiede l’indirizzo IP offerto.

Riconoscimento DHCP

Il server DHCP riconosce la richiesta inviando un messaggio di riconoscimento DHCP che conferma l’assegnazione dell’indirizzo IP.

Comprendiamo il principio di funzionamento del DHCP con un semplice esempio.

Immagina di avere una rete Wi-Fi domestica e di voler che i tuoi dispositivi (come telefoni e laptop) si connettano ad essa senza configurare manualmente le impostazioni di rete di ciascun dispositivo. È qui che entra in gioco DHCP:

  • Supponiamo che il tuo smartphone si sia appena connesso alla rete Wi-Fi domestica.
  • Lo smartphone invia un messaggio che dice: “Ehi, sono nuovo qui. Qualcuno può darmi un indirizzo IP e altri dettagli di rete?”
  • Il tuo router Wi-Fi che funge da server DHCP ascolta la richiesta. Dice: “Certo, ho un indirizzo IP disponibile ed ecco le altre impostazioni di rete di cui hai bisogno, come la maschera di sottorete, il gateway predefinito e il server DNS”.
  • Lo smartphone riceve queste informazioni e si configura automaticamente con l’indirizzo IP e le impostazioni di rete forniti.

Lo smartphone è ora pronto per utilizzare Internet e comunicare con altri dispositivi sulla rete domestica.

ICMP

Internet Control Message Protocol (ICMP) è un protocollo del livello di rete utilizzato nella suite IP per consentire la comunicazione e fornire feedback sullo stato delle operazioni di rete.

ICMP viene utilizzato principalmente per segnalare errori e fornire informazioni diagnostiche relative all’elaborazione dei pacchetti IP.

Ad esempio, se un router riscontra un problema durante l’inoltro di un pacchetto IP, genera un messaggio di errore ICMP e lo rimanda alla fonte del pacchetto.

I messaggi di errore ICMP più comuni includono “Destinazione non raggiungibile”, “Tempo scaduto” e “Problema relativo al parametro”.

Uno degli usi più conosciuti di ICMP è il comando “ping” (utilizzato per verificare la raggiungibilità di un host).

Questo comando ping invia messaggi ICMP Echo Request a un host di destinazione e, se l’host è raggiungibile, dovrebbe rispondere con un messaggio ICMP Echo Reply. Questo è un modo semplice per testare la connettività di rete.

ICMP viene utilizzato anche per il rilevamento PMTU (Path Maximum Transmission Unit). PMTU è la dimensione massima di un pacchetto IP che può essere trasmesso senza frammentazione lungo un percorso.

I messaggi ICMP come “Fragmentation Needed” e “Packet Too Big” vengono utilizzati per determinare la MTU appropriata per un determinato percorso, contribuendo a evitare la frammentazione e a ottimizzare il trasferimento dei dati.

Inoltre, questi messaggi possono essere utilizzati per tenere traccia del tempo impiegato dai pacchetti per viaggiare dall’origine alla destinazione e ritorno. A questo scopo viene utilizzato il messaggio “Tempo scaduto”.

SNMP

SNMP sta per Simple Network Management Protocol.

È un protocollo a livello di applicazione per la gestione e il monitoraggio di dispositivi/sistemi di rete.

SNMP funziona utilizzando un modello manager-agente. Ci sono due componenti principali.

Gestore SNMP

Il manager è responsabile dell’effettuazione delle richieste e della raccolta delle informazioni dagli agenti SNMP. Può anche impostare parametri di configurazione sugli agenti.

Agente SNMP

L’agente è un modulo software o un processo in esecuzione sui dispositivi di rete. Memorizza informazioni sulla configurazione e sulle prestazioni del dispositivo. L’agente risponde alle richieste dei gestori SNMP.

MIB (Management Information Base) è un database gerarchico che definisce la struttura e l’organizzazione degli oggetti gestiti su un dispositivo di rete. Serve come riferimento sia per i gestori che per gli agenti SNMP, garantendo la comprensione reciproca dei dati.

Esistono tre versioni di SNMP ampiamente utilizzate.

SNMPv1: la versione originale di SNMP che utilizza le stringhe della community per l’autenticazione. Manca di funzionalità di sicurezza ed è considerato meno sicuro.

SNMPv2c: un miglioramento rispetto a SNMPv1 con supporto per tipi di dati aggiuntivi e migliore gestione degli errori.

SNMPv3: la versione più sicura di SNMP, che offre crittografia, autenticazione e controllo degli accessi. Risolve molti dei problemi di sicurezza delle versioni precedenti.

SNMP viene utilizzato per varie attività di gestione della rete come il monitoraggio dell’utilizzo della larghezza di banda, il monitoraggio del tempo di attività dei dispositivi, la configurazione dei dispositivi di rete in remoto e la ricezione di avvisi quando si verificano eventi specifici (ad esempio guasti del sistema o violazioni delle soglie).

Conclusione✍️

Spero che tu abbia trovato questo articolo molto utile per conoscere i vari protocolli di rete. Potresti anche essere interessato a conoscere la segmentazione della rete e come implementarla.