TCP (Transmission Control Protocol), UDP (User Datagram Protocol) e SSL/TLS (Secure Sockets Layer/Transport Layer Security) sono tre protocolli di comunicazione comuni nell'Internet of Things. Ognuno di essi ha caratteristiche e vantaggi diversi e svolge un ruolo fondamentale nelle applicazioni IoT. TCP si concentra sull'affidabilità ed è adatto a scenari che richiedono una trasmissione dati accurata; UDP si concentra sulla velocità ed è adatto ad applicazioni con elevati requisiti in tempo reale; infine, SSL/TLS garantisce sicurezza per il processo di comunicazione, proteggendo i dati da furti e manomissioni. Comprendere le caratteristiche di questi protocolli ed effettuare selezioni e combinazioni ragionevoli in base a specifici scenari applicativi IoT può migliorare in modo efficace l'efficienza della comunicazione e la sicurezza del sistema e gettare solide basi per l'applicazione diffusa dell'IoT.
Definizione
Il TCP è un protocollo di livello di trasporto orientato alla connessione e affidabile, progettato per garantire l’integrità e l’ordine dei dati su reti non affidabili.
Refer article:
3 steps to learn the TCP/IP protocol of the communication protocol
Detailed explanation of TCP keep-alive mechanism
Confronto tra i protocolli TCP/UDP/HTTP/MQTT
Caratteristiche Principali
Affidabilità: Utilizza una connessione stabilita con three-way handshake (SYN → SYN-ACK → ACK) e meccanismi di conferma (ACK) e ritrasmissione dei pacchetti.
Controllo del flusso e della congestione: Ottimizza la velocità di trasmissione per evitare sovraccarichi.
Ordine dei dati: I pacchetti vengono riassemblati nell’ordine corretto.
Applicazioni Tipiche
Navigazione web (HTTP/HTTPS).
Invio di email (SMTP).
Trasferimento di file (FTP).
Definizione
L’UDP è un protocollo di livello di trasporto senza connessione e non affidabile, prioritario per velocità e semplicità.
Caratteristiche Principali
Nessuna connessione: Invia dati immediatamente, senza handshake.
Basso overhead: Intestazione di 8 byte (vs. 20 byte del TCP).
Nessuna garanzia: Possibili perdite o disordine nei pacchetti.
Applicazioni Tipiche
Streaming video/audio in tempo reale (es. Zoom).
Giochi online.
Query DNS.


Definizione
SSL/TLS sono protocolli di crittografia che aggiungono sicurezza alle comunicazioni su TCP o UDP, prevenendo intercettazioni e manipolazioni.
Funzioni Principali
Crittografia: Dati cifrati con algoritmi come AES (simmetrico) e RSA/ECC (asimmetrico).
Autenticazione: Verifica delle identità tramite certificati digitali.
Integrità: Rilevazione di modifiche ai dati con HMAC.
Evoluzione
SSL 1.0-3.0: Obsoleti per vulnerabilità (es. POODLE).
TLS 1.3: Versione più recente, ottimizzata per velocità e sicurezza.
Applicazioni Tipiche
Siti web HTTPS.
VPN aziendali.
Comunicazioni IoT sicure (es. MQTT over TLS)
Aspetto | TCP | UDP | SSL/TLS |
Livello | Trasporto | Trasporto | Sicurezza (sopra TCP/UDP) |
Affidabilità | Garantita | Non garantita | Dipende dal protocollo sottostante |
Velocità | Lenta (handshake e ACK) | Velocissima | Latenza aggiuntiva (crittografia) |
Sicurezza | Nessuna | Nessuna | Crittografia end-to-end |
Casi d’Uso | Pagine web, email | Streaming, giochi | Transazioni online, IoT |
TCP + TLS: Per dati sensibili (es. home banking).
UDP + DTLS: Per applicazioni real-time sicure (es. WebRTC).
TCP è il "postino affidabile" per dati critici.
UDP è il "corriere veloce" per applicazioni in tempo reale.
SSL/TLS è la "scorta armata" che protegge i dati in transito.
La scelta dipende da affidabilità, velocità e sicurezza richieste.
Caratteristica | TCP | UDP | SSL/TLS |
Tipo di connessione | Orientato alla connessione (Three-way handshake) | Senza connessione | Livello di sicurezza basato su TCP (ad esempio, TLS 1.3) |
Affidabilità | Alta (Ritrasmissione, controllo dell'ordine) | Bassa (Possibile perdita di pacchetti, fuori ordine) | Dipende dal protocollo sottostante (richiede TCP o UDP) |
Velocità di trasmissione | Più lenta (Sovraccarico per handshake e conferme) | Molto veloce (Nessun sovraccarico di controllo) | Aumento della latenza di crittografia (ritardo dell'handshake) |
Integrità dei dati | Garantita rigorosamente | Non garantita | Garantita tramite crittografia |
Applicazioni tipiche | Trasferimento di file, caricamento di pagine web | Audio/video in tempo reale, reporting dei dati dei sensori | Comunicazioni sicure (ad esempio, autenticazione dei dispositivi, crittografia dei dati) |
TCP: Sacrifica la velocità per garantire l'affidabilità, adatto per la trasmissione di dati critici.
UDP: Sacrifica l'affidabilità per garantire la velocità, ideale per trasmissioni in tempo reale o dati frequenti e piccoli.
SSL/TLS: Aggiunge un livello di sicurezza a TCP/UDP, proteggendo da intercettazioni e manomissioni.
I dispositivi IoT (Internet of Things) si trovano spesso ad affrontare le seguenti sfide:
Vincoli di risorse: Potenza computazionale limitata e vita della batteria nei dispositivi (ad esempio, sensori).
Connessioni ad alta concorrenza: Milioni di dispositivi online simultaneamente richiedono una gestione efficiente dei protocolli.
Vulnerabilità alla sicurezza: I dispositivi sono suscettibili a man-in-the-middle attacks e fughe di dati.
Affidabilità prima → TCP + TLS (ad esempio, aggiornamenti remoti del firmware per i dispositivi).
Real-time priority → UDP + DTLS (Protocollo di sicurezza Datagram Transport Layer Security per la comunicazione sicura dei datagrammi).
Basso consumo energetico prioritario → UDP + crittografia leggera (ad esempio, AES-128-CCM).
Applicazioni TCP:
I comandi di controllo dei dispositivi (ad esempio, accendere/spegnere un condizionatore) richiedono la garanzia di una consegna al 100%.
Esempio: Una serratura intelligente utilizza TCP + TLS per la comunicazione con il cloud, impedendo l'intercettazione della password.
Applicazioni UDP:
Reporting dei dati dei sensori (ad esempio, temperatura, umidità) con trasmissioni frequenti e di piccole dimensioni, con una perdita di pacchetti accettabile.
Esempio: Un rilevatore di fumo utilizza UDP per inviare rapidamente un segnale di allarme, evitando ritardi nell'handshake.
Ruolo principale di TCP + TLS:
Manutenzione remota dei dispositivi, trasmissione dei log e aggiornamenti delle configurazioni, con crittografia per evitare manomissioni (ad esempio, Modbus/TCP su TLS).
Ottimizzazione UDP:
Monitoraggio in tempo reale dello stato di bracci robotici, utilizzando UDP + meccanismi di ritrasmissione personalizzati per bilanciare velocità e affidabilità.
UDP + DTLS:
Veicoli che comunicano con i semafori (ad esempio, V2I, Vehicle-to-Infrastructure) con una latenza minima, garantendo al contempo la crittografia.
TCP + TLS:
Aggiornamenti over-the-air (OTA) del software nei veicoli, garantendo l'integrità del firmware e la fonte affidabile.
I protocolli di comunicazione IoT sono spesso costruiti su TCP/UDP e integrati con SSL/TLS per un miglioramento della sicurezza.
Protocollo IoT | Livello di trasporto | Meccanismo di sicurezza | Scenario di applicazione |
MQTT | TCP | Crittografia TLS (porta 8883) | Comunicazione bidirezionale tra cloud e dispositivi (ad esempio, smart meters) |
CoAP | UDP | DTLS (TLS variante per UDP) | Dispositivi a basso consumo (ad esempio, sensori agricoli) |
AMQP | TCP | TLS (messaggistica a livello finanziario) | Comunicazione industriale ad alta affidabilità |
LoRaWAN | UDP | Crittografia AES end-to-end | Reti a lunga distanza e basso consumo (ad esempio, smart cities) |
Protocollo IoT | Livello di trasporto | Meccanismo di sicurezza | Scenario di applicazione |
MQTT su TLS:
Garantisce comandi sicuri tra il cloud e i dispositivi smart home, ma ha un consumo energetico maggiore.
CoAP su DTLS:
Ottimizzato per UDP, riducendo il sovraccarico dell'handshake, ideale per sensori alimentati a batteria.
Riduce i passaggi di handshake (1-RTT, un round-trip time), riducendo il carico computazionale sui dispositivi IoT.
Un protocollo di trasporto multiplexed basato su UDP, con TLS 1.3 integrato, che migliora le prestazioni negli scenari IoT ad alta concorrenza (ad esempio, Google IoT Core).
Motori AES integrati nei chip IoT risolvono i colli di bottiglia delle prestazioni SSL/TLS nei microcontrollori (MCU).
Nell'IoT, la combinazione di TCP, UDP e SSL/TLS determina direttamente l'efficienza della comunicazione e la sicurezza:
Dati di alto valore (ad esempio, pagamenti, comandi di controllo) → TCP + TLS per affidabilità e sicurezza.
Dati da sensori in massa → UDP + crittografia leggera, bilanciando velocità e consumo di risorse.
Comunicazione in tempo reale e sicura → UDP + DTLS (ad esempio, comunicazione tra veicoli autonomi).
Comprendere le caratteristiche dei protocolli e abbinarle alle necessità delle applicazioni è la chiave per costruire un sistema IoT efficiente e sicuro.