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:
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 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):
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.

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).

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).




No responses yet