Servizi di rete: connessione e affidabilità

Servizi di rete, connessione e affidabilità sono i tre concetti al centro di questa lezione, che introduce i principali servizi di rete e li classifica in base a due aspetti fondamentali: la presenza o meno di una connessione tra mittente e destinatario e il livello di affidabilità del servizio.

Il testo distingue i servizi orientati alla connessione da quelli non orientati alla connessione, confrontando l’idea di un “canale” logico stabile con quella di pacchetti indipendenti, che possono attraversare la rete seguendo percorsi diversi. La lezione approfondisce poi la differenza tra servizi affidabili e non affidabili: nei primi il sistema cerca di garantire consegna, correttezza e ordine dei dati attraverso conferme, controlli e ritrasmissioni; nei secondi viene spesso privilegiata la rapidità, accettando la possibile perdita di alcuni dati.

Gli esempi proposti includono videochiamate, aggiornamenti di posizione, caricamento di file su cloud e notifiche importanti.

Servizi di rete

I servizi in rete sono legati a due attributi:

  • Al fatto che esiste una connessione tra mittente e destinatario.
  • All’affidabilità del servizio.

Il primo attributo indica se il servizio di rete è orientato o non orientato alla connessione (Fairhurst et al., 2017).
Il secondo attributo indica se il servizio è o non è affidabile (Fairhurst et al., 2017).

In base a questi attributi, un servizio può essere (Fairhurst et al., 2017):

  • Un servizio orientato alla connessione e non affidabile.
  • Un servizio non orientato alla connessione e non affidabile.
  • Un servizio orientato alla connessione e affidabile.
  • Un servizio non orientato alla connessione e affidabile.

Un servizio orientato alla connessione e non affidabile
Un esempio di servizio orientato alla connessione ma non affidabile può essere una comunicazione audio o video in tempo reale, come una videochiamata (Schulzrinne et al., 2003).
Il servizio è orientato alla connessione perché prima dello scambio dei dati viene stabilita una sessione tra i due dispositivi: la chiamata viene avviata, accettata e mantenuta attiva fino alla sua conclusione.
Tuttavia, il servizio può essere considerato non affidabile perché non garantisce necessariamente la ritrasmissione di ogni frammento audio o video perso (Eggert et al., 2017; Schulzrinne et al., 2003). 
In una comunicazione in tempo reale, infatti, ritrasmettere un dato arrivato troppo tardi sarebbe poco utile. Se un piccolo pacchetto audio viene perso, il sistema può preferire ignorarlo o compensarlo, piuttosto che interrompere la comunicazione per recuperarlo (Eggert et al., 2017).

Un servizio non orientato alla connessione e non affidabile
Un esempio di servizio non orientato alla connessione e non affidabile può essere l’invio della posizione in tempo reale in un’app di mappe, di consegne o di tracciamento (Eggert et al., 2017).
Il dispositivo invia periodicamente piccoli aggiornamenti della posizione, per esempio: “mi trovo in questo punto” e, pochi secondi dopo, “mi trovo in questo nuovo punto”. Ogni aggiornamento è indipendente dagli altri e ha valore soprattutto nel momento in cui viene inviato.
Se uno di questi aggiornamenti viene perso, il sistema può non ritrasmetterlo, perché dopo poco arriverà un’informazione più recente. In questo caso è più utile ricevere rapidamente la posizione aggiornata che recuperare una posizione ormai vecchia (Eggert et al., 2017).

Un servizio orientato alla connessione e affidabile
Un esempio di servizio orientato alla connessione e affidabile è il caricamento di un file su un servizio cloud, come Google Drive o Dropbox (Eddy, 2022).
Quando carichiamo un file, il nostro dispositivo stabilisce una connessione logica con il server del servizio (Eddy, 2022). 
Durante il trasferimento, i dati vengono inviati in modo controllato, così che il server possa riceverli correttamente (Eddy, 2022).
Questo servizio è affidabile perché il file deve arrivare completo e integro.
Se una parte dei dati viene persa o arriva in modo errato, il sistema deve rilevare il problema e ritrasmettere le informazioni mancanti. In caso contrario, il file potrebbe risultare danneggiato o impossibile da aprire (Eddy, 2022).

Un servizio non orientato alla connessione e affidabile
Un esempio di servizio non orientato alla connessione e affidabile può essere l’invio di una notifica importante da parte di un’app, come una notifica bancaria o una notifica di consegna (Thomson et al., 2016).
Il messaggio può essere inviato come unità indipendente: non è necessario mantenere una comunicazione continua tra mittente e destinatario. Ogni notifica contiene le informazioni necessarie per essere consegnata al dispositivo corretto.
Tuttavia, il servizio può essere considerato affidabile perché il sistema cerca di garantire che la notifica venga effettivamente consegnata. Per farlo può usare conferme di ricezione, ritrasmissioni o sistemi di memorizzazione temporanea: se il dispositivo non è raggiungibile in quel momento, la notifica può essere conservata e inviata appena torna online (Thomson et al., 2016).

Connessione

I servizi connection oriented ricordano, per certi aspetti, la commutazione di circuito: prima dello scambio dei dati viene stabilita una connessione logica tra mittente e destinatario (Fairhurst et al., 2017):

  • Si stabilisce una connessione, quindi si crea con opportuni mezzi un “canale di comunicazione” fra la sorgente e la destinazione. La relativa attività tipicamente coinvolge un certo numero di elaboratori nel cammino fra sorgente e destinazione.
  • La connessione, una volta stabilita, agisce come un tubo digitale lungo il quale scorrono tutti i dati trasmessi, che arrivano nello stesso ordine in cui sono partiti (Eddy, 2022).
  • Quando la comunicazione termina, si rilascia la connessione (attività che coinvolge di nuovo tutti gli elaboratori sul cammino).

Invece, i servizi connectionless (non orientati alla connessione) sono modellati secondo il sistema postale: ogni lettera viaggia indipendentemente dalle altre: arriva, quando arriva, e forse non arriva (Fairhurst et al., 2017; Postel, 1980).
Inoltre, due lettere con uguale mittente e destinatario possono viaggiare per strade diverse.
Nell’immagine sottostante, un servizio connection oriented è rappresentato nella parte superiore e un servizio connectionless nella parte inferiore.

Sopra un servizio orientato alla connessione, sotto invece un servizio non orientato alla connessione

Affidabilità

Un servizio è generalmente caratterizzato dall’essere affidabile (reliable) o non affidabile (unreliable).
Un servizio reliable (affidabile) cerca di garantire che i dati arrivino completi, corretti e nell’ordine previsto. Per farlo usa conferme di ricezione, controlli di errore e, se necessario, ritrasmissioni (Eddy, 2022; Fairhurst et al., 2017).
Generalmente, un servizio affidabile richiede che il ricevente invii un acknowledgment (conferma) alla sorgente per ogni pacchetto ricevuto (Eddy, 2022). 

In questa immagine è rappresentato un esempio di servizio affidabile: ogni volta che un client manda un messaggio, deve ricevere una conferma dal server (ack); a sua volta, il server deve avere la conferma dell’avvenuta ricezione della precedente conferma (ack) (Eddy, 2022).

Questa affidabilità introduce overhead (sovraccarico) a causa del costo computazionale maggiore per l’affidabilità, che in certe situazioni può non essere desiderabile; per esempio pensate ad un’applicazione in tempo reale, come un film in streaming (Eggert et al., 2017; Schulzrinne et al., 2003).

Viceversa, un servizio unreliable (non affidabile) non offre la certezza che i dati specifici arriveranno effettivamente a destinazione (Fairhurst et al., 2017; Postel, 1980).

Elementi chiave

  • I servizi di rete si classificano in base alla connessione e all’affidabilità.
  • Un servizio orientato alla connessione stabilisce una comunicazione logica prima di trasmettere i dati.
  • Un servizio non orientato alla connessione invia ogni messaggio in modo indipendente.
  • Un servizio affidabile controlla che i dati arrivino corretti, completi e nell’ordine previsto.
  • Conferme di ricezione e ritrasmissioni aumentano l’affidabilità, ma introducono overhead.
  • Un servizio non affidabile non garantisce la consegna di ogni dato, ma può essere più rapido.
  • Le comunicazioni in tempo reale privilegiano spesso la velocità rispetto al recupero dei dati persi.
  • Il trasferimento di file richiede invece affidabilità, perché tutti i dati devono arrivare integri.
  • Combinando i due attributi si ottengono quattro tipi di servizio: 
  • Con connessione e affidabile.
  • Senza connessione e affidabile.
  • Con conessione e non affidabile.
  • Senza connessione e non affidabile.

Scarica pdf della lezione

  • Eddy, W. (Ed.). (2022). Transmission Control Protocol (TCP) (RFC 9293). RFC Editor. https://doi.org/10.17487/RFC9293
  • Eggert, L., Fairhurst, G., & Shepherd, G. (2017). UDP usage guidelines (RFC 8085). RFC Editor. https://doi.org/10.17487/RFC8085
  • Fairhurst, G., Trammell, B., & Kuehlewind, M. (Eds.). (2017). Services provided by IETF transport protocols and congestion control mechanisms (RFC 8095). RFC Editor. https://doi.org/10.17487/RFC8095
  • Postel, J. (1980). User Datagram Protocol (RFC 768). RFC Editor. https://doi.org/10.17487/RFC768
  • Schulzrinne, H., Casner, S., Frederick, R., & Jacobson, V. (2003). RTP: A transport protocol for real-time applications (RFC 3550). RFC Editor. https://doi.org/10.17487/RFC3550
  • Thomson, M., Damaggio, E., & Raymor, B. (2016). Generic event delivery using HTTP push (RFC 8030). RFC Editor. https://doi.org/10.17487/RFC8030
  • James F. Kurose e Keith W. Ross, Reti di calcolatori e Internet. Un approccio top-down, 8ª ed., Pearson, 2022 — Approfondisce i servizi del livello di trasporto, il funzionamento di TCP e UDP, l’affidabilità, il controllo della congestione e le applicazioni multimediali.
  • Behrouz A. Forouzan e Firouz Mosharraf, Reti di calcolatori. Un approccio top-down, 2ª ed., a cura di Gaia Maselli, McGraw-Hill Education, 2024 — Presenta in modo visuale i servizi di trasporto e mette a confronto comunicazione connessa, datagrammi, controllo degli errori e protocolli Internet.
  • Andrew S. Tanenbaum, Nick Feamster e David J. Wetherall, Reti di calcolatori, 6ª ed., Pearson, 2023 — Offre una trattazione sistematica dei servizi orientati e non orientati alla connessione, dei protocolli affidabili e delle comunicazioni in tempo reale.
  • Douglas E. Comer, Internetworking con TCP/IP. Principi, protocolli e architetture, vol. 1, 5ª ed., Pearson, 2006 — Approfondisce la famiglia TCP/IP, gli acknowledgment, le ritrasmissioni, lo stato delle connessioni e i servizi real-time come il VoIP.
  • Marco Paganini e Luca Libanore, I nuovi protocolli delle reti e di Internet. Cosa bolle in pentola nelle reti degli anni 2000: QUIC e tutto il resto, In Riga Edizioni, 2022 — Collega TCP e UDP ai protocolli più recenti, tra cui QUIC e UDP-Lite, mostrando come velocità, sicurezza e affidabilità vengano bilanciate.

Quale servizio scegliere?

Un’azienda sta progettando quattro funzioni per una nuova applicazione:

  • Una videochiamata tra due utenti.
  • L’invio periodico della posizione di un corriere.
  • Il caricamento di un documento importante sul cloud.
  • L’invio di una notifica bancaria che deve raggiungere l’utente anche se in quel momento il telefono è offline.

Per ciascuna funzione:

  • Stabilisci se il servizio dovrebbe essere orientato alla connessione oppure non orientato alla connessione.
  • Stabilisci se dovrebbe essere affidabile oppure non affidabile.
  • Classifica quindi ciascun caso in una delle quattro combinazioni studiate nella dispensa.
  • Motiva ogni scelta spiegando cosa accadrebbe se alcuni dati venissero persi.
  • Indica in quali casi una ritrasmissione sarebbe utile e in quali potrebbe invece essere poco conveniente.
  • Spiega perché non esiste una combinazione sempre migliore delle altre, ma la scelta dipende dal servizio che si vuole realizzare.

Una videochiamata con problemi di rete

Durante una videochiamata alcuni piccoli frammenti audio vengono persi.
Il progettista del sistema deve scegliere tra due strategie:

  • Strategia A: bloccare temporaneamente la comunicazione e ritrasmettere ogni frammento mancante.
  • Strategia B: continuare immediatamente la comunicazione anche se alcuni frammenti vengono persi.

Analizza le due soluzioni.

  • Indica quale strategia è più coerente con il tipo di servizio in tempo reale descritto nella dispensa.
  • Spiega perché una videochiamata può essere considerata orientata alla connessione.
  • Spiega perché può comunque utilizzare un servizio non affidabile per una parte dei dati.
  • Spiega perché ricevere un frammento audio con molto ritardo potrebbe essere meno utile che perderlo.
  • Descrivi quale problema potrebbe introdurre un sistema che pretende di confermare e ritrasmettere ogni singolo dato prima di proseguire.
  • Collega questo problema al concetto di overhead.
  • Spiega perché, in questo caso, “non affidabile” non significa necessariamente “servizio progettato male”.

Trasferire un file senza errori

Uno studente deve caricare sul cloud un file di progetto da 2 GB.

Durante il trasferimento alcuni pacchetti vengono persi a causa di problemi momentanei della rete. Il sistema deve però garantire che il file ricevuto dal server sia identico a quello originale.

Rispondi alle seguenti domande:

  • Spiega perché in questa situazione è necessario utilizzare un servizio affidabile.
  • Spiega quale problema si avrebbe se anche una piccola parte del file non arrivasse correttamente.
  • Descrivi quale funzione svolge un acknowledgment.
  • Spiega cosa dovrebbe fare il mittente se non ricevesse la conferma relativa a determinati dati.
  • Spiega perché controlli, conferme e ritrasmissioni introducono un maggiore overhead.
  • Nel caso di overhead, spiega perché questo overhead è comunque accettabile rispetto alla perdita dei dati.
  • Confronta infine questa situazione con una videochiamata: spiega perché la stessa strategia di affidabilità non è necessariamente ottimale per entrambe.

Progettare un sistema di localizzazione

Un’applicazione mostra in tempo reale sulla mappa la posizione di un autobus.
Ogni tre secondi l’autobus invia la propria posizione:

  • 10:00:00 → Piazza A.
  • 10:00:03 → Via B.
  • 10:00:06 → Via C.
  • 10:00:09 → Via D.

L’aggiornamento delle 10:00:03 viene perso durante la trasmissione.
Il progettista deve decidere se ritrasmetterlo oppure continuare con gli aggiornamenti successivi.

  • Spiega perché ogni aggiornamento della posizione può essere considerato un messaggio relativamente indipendente dagli altri.
  • Stabilisci se questo servizio può essere modellato come orientato o non orientato alla connessione secondo l’esempio della dispensa.
  • Stabilisci se può essere considerato affidabile o non affidabile.
  • Spiega perché ritrasmettere alle 10:00:07 la posizione delle 10:00:03 potrebbe essere poco utile.
  • Spiega perché ricevere rapidamente la posizione delle 10:00:06 può essere più importante che recuperare quella precedente.
  • Immagina invece che l’applicazione debba comunicare l’avvenuta consegna di un pacco e che tale messaggio non possa andare perso. Spiega perché in questo nuovo caso sarebbe opportuno cambiare il requisito di affidabilità.
  • Usa i due casi per spiegare perché il progettista di un servizio di rete deve valutare il significato e la validità temporale dei dati prima di decidere se utilizzare conferme e ritrasmissioni.

Per la realizzazione di questi materiali ho utilizzato strumenti di intelligenza artificiale generativa come supporto alla scrittura, in particolare per migliorare la forma del testo, riorganizzare i contenuti, correggere la formulazione e velocizzare alcune attività redazionali.

Lavorando autonomamente alla produzione di questi materiali, cerco infatti di automatizzare tutte le attività che possono esserlo, così da poter dedicare più tempo alla ricerca, alla progettazione e allo sviluppo dei contenuti.

L’intelligenza artificiale non determina però i contenuti dell’opera: la scelta degli argomenti, la struttura, le idee, le interpretazioni, gli esempi e l’impostazione didattica sono elaborati da me. L’IA viene quindi utilizzata principalmente come strumento di supporto alla produzione e alla revisione formale, mentre la responsabilità autoriale e progettuale dei contenuti rimane mia.

Salvo diversa indicazione, questo materiale è distribuito con licenza Creative Commons Attribuzione – Non commerciale – Condividi allo stesso modo 4.0 Internazionale (CC BY-NC-SA 4.0).

È quindi possibile condividere, ridistribuire, modificare e creare opere derivate a partire dal materiale, a condizione di attribuirne correttamente la paternità, di non utilizzarlo per scopi commerciali e di distribuire eventuali versioni modificate o derivate con la stessa licenza.

Vuoi aiutarmi a scrivere articoli come questo?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

No responses yet

Sostieni il progetto

Tutti i materiali che condivido nascono da una convinzione molto semplice: una buona formazione non dovrebbe limitarsi a insegnare quali pulsanti premere, ma aiutare a comprendere le idee, i principi e i processi che stanno dietro agli strumenti.

Per questo dedico una parte significativa del mio tempo a studiare, organizzare e produrre contenuti gratuiti dedicati al multimedia, al design e alla comunicazione visiva. Articoli, lezioni, approfondimenti e risorse che hanno l’obiettivo di rendere accessibili argomenti spesso affrontati in modo frammentario o superficiale.

Questo lavoro richiede però tempo, ricerca e cura. Ogni guida, ogni video, ogni materiale pubblicato gratuitamente è il risultato di molte ore di studio, scrittura e revisione.
Sostenere il progetto attraverso Patreon significa permettermi di continuare a produrre contenuti educativi di qualità, mantenerli accessibili al maggior numero possibile di persone e dedicare più energie alla costruzione di una risorsa che possa essere utile a studenti, professionisti e appassionati.

Se credi che una conoscenza più profonda, rigorosa e consapevole del multimedia abbia valore, il tuo contributo non sostiene soltanto il mio lavoro: aiuta a rendere queste risorse disponibili per tutta la comunità.
Grazie per il supporto e per la fiducia.

Patreon è troppo impegnativo?

Puoi sostenermi anche con una donazione libera, senza abbonamento e senza impegno.
Anche un piccolo contributo mi aiuta a continuare a creare giochi, contenuti didattici e materiali gratuiti con più libertà.

Support the project

All the materials I share stem from a very simple conviction: good training should not be limited to teaching which buttons to press, but should help people understand the ideas, principles, and processes behind the tools.

That is why I dedicate a significant portion of my time to researching, organizing, and producing free content focused on multimedia, design, and visual communication—articles, lessons, in-depth analyses, and resources aimed at making accessible topics that are often addressed in a fragmented or superficial way.

However, this work requires time, research, and care. Every guide, video, and piece of material published for free is the result of many hours of study, writing, and revision.
Supporting the project via Patreon enables me to continue producing high-quality educational content, keep it accessible to as many people as possible, and devote more energy to building a resource that benefits students, professionals, and enthusiasts alike.

If you believe that a deeper, more rigorous, and informed understanding of multimedia is valuable, your contribution does more than just support my work: it helps make these resources available to the entire community.
Thank you for your support and trust.

Is Patreon too demanding?

You can also support me with a voluntary donation—no subscription or commitment required.

Even a small contribution helps me continue creating games, educational content, and free materials with greater freedom.