X
Skimbu è stato abbandonato, ma è stato sostituito da due grandi progetti: visita ora Tasc.it e Abits.it!

Internet : servizio con e senza connessione

Pubblicato da il giorno 20 luglio 2011


Qualcuno mi ha fatto notare che il mio ultimo articolo sul mondo di Internet risultava un po’ complicato da digerire. Me ne rendo conto e mi scuso con quanti l’hanno trovato troppo ‘tecnico’, ma spero di aver dato ugualmente un’idea generale sull’importanza della stratificazione nell’ambito delle reti distribuite.
Oggi però voglio focalizzarmi su uno solo degli strati che abbiamo descritto la volta scorsa, ovvero quello di trasporto. Come abbiamo già stabilito Internet mette a disposizione due principali protocolli in questo strato, il tcp e l’udp.
Essi sono molto diversi fra loro, e chi sviluppa applicazioni che viaggiano sulla rete dovrà necessariamente affidarsi, quasi sempre, ad uno dei due.
La più grande differenza (anche se non l’unica come già detto) tra di loro sta nel fatto che il tcp si definisce un protocollo orientato alla connessione mentre l’udp si definisce un protocollo non connesso.
Vediamo cosa significa.

Servizio orientato alla connessione

Per capire di cosa parliamo, richiamiamo brevemente cosa si intende per programma client e programma server.  Un programma client è un programma che gira su un terminale che richiede un servizio da un programma server che gira su un altro terminale. E’ bene precisare che in generale questo non è sempre vero, cioè non è detto in assoluto che client e server si trovino su macchine distinte. Poiché tuttavia Internet è per definizione una rete distribuita prenderemo per buono ciò che abbiamo detto sopra.

Torniamo a noi. Un applicativo utilizza un servizio orientato alla connessione quando il client e il server prima di scambiarsi dei pacchetti contenenti i dati se ne scambiano un certo numero ‘di controllo’, ovvero si preparano per l’arrivo massiccio di dati. Queste azioni, che vengono definite handshaking procedure, sono delle vere e proprie “strette di mano” tra client e server che instaurano in questo modo una sorta di connessione.

A qualcuno potrebbe venire in mente di chiedersi il perché si utilizza il termine ‘orientato alla connessione’. La risposta va ricercata nel fatto che i due terminali sono connessi in modo alquanto, potremmo dire, approssimativo. In particolare osserviamo che solo client e server sono ‘consapevoli’ della connessione, mentre tutti i router e i link che li collegano ne sono del tutto ignari.

Come abbiamo già detto il protocollo che in Internet offre questo tipo di servizio è il tcp.

Offre anche dei servizi aggiuntivi quali:

  • trasferimento dati affidabile (consegna tutti i dati senza errore nell’ordine appropriato)
  • controllo di flusso (assicura che nessuna delle due estremità della connessione saturi l’altra con l’invio di  troppi pacchetti ad eccessiva velocità)
  • controllo della congestione (aiuta a prevenire che Internet entri in uno stato di blocco)

E’ bene notare che i servizi precedenti non sono requisito di un servizio orientato alla connessione, essendo necessaria solamente la procedura di handshaking.

Servizio senza connessione

Nel servizio senza connessione su Internet non esiste handshake. Questo vuol dire che quando un’ estremità di un’ applicazione (client o server) vuole inviare pacchetti ad un’altra, lo fa. Come è ovvio, poiché non c’è la procedura di apertura della connessione, i dati saranno inviati più velocemente . C’è del resto anche un’altra faccia della medaglia.
Innanzi tutto non c’è garanzia di avvenuta ricezione, cosicché il mittente non avrà mai la certezza del fatto che i suoi pacchetti siano arrivati a destinazione  o meno. Inoltre manca il controllo di flusso e della congestione.
Questo tipo di servizio è gestito dal protocollo udp.

Conclusioni

Per concludere vorrei essere chiaro su una cosa. Non esiste un servizio migliore dell’altro in senso assoluto. Si potrebbe pensare ad una prima analisi che i vantaggi del servizio orientato alla connessione lo facciano prevalere in maniera netta sull’altro. Questo in generale non è affatto vero. Facciamo un esempio.

Applicazioni come la posta elettronica, il trasferimento di file, il web, che non possono in alcun modo tollerare una perdita di dati dovranno rivolgersi necessariamente al servizio di trasporto affidabile fornito da tcp.

Al contrario, applicazioni come la telefonia in internet, l’audio su richiesta e le video conferenze, possono tollerare una modesta perdita di pacchetti ma hanno bisogno di una velocità trasmissiva maggiore. Si rivolgeranno quindi al servizio di udp.

Spero che questo articolo sia stato più abbordabile del precedente. Badate bene, però, esso è ugualmente fondamentale per capire come viaggiano le informazione sulla rete Internet.
Per il resto, solita storia. Se avete domande, dubbi e soprattutto suggerimenti per i prossimi articoli, scrivete tutto qui sotto.

To be continued? ^^

, 10 articoli pubblicati

Laureando in Ingegneria Informatica, mi piace la tecnologia in generale e il progresso che essa porta con se. Soddisfattissimo utente finale Apple, ma soprattutto amante della sua filosofia di prodotto. L'altra cosa di cui non potrei fare a meno è la pallacanestro. Gioco da quando avevo sei anni, e finche le mie gambe (per ora sopravvissute a due interventi al crociato) me lo permetteranno, non ho intenzione di smettere. Che altro? Ah si, mi piace anche cucinare...

Visita il sito web di questo autore

Condividi l'articolo!