Concetti base sulle reti
Confronto tra TCP e UDP
TCP - Pro
- E' orientato alla connessione, creando una sorta di "pipe" (tubo di comunicazione isolato), solitamente richiede un setup fra i processi clienti e server
- Garantisce un trasporto affidabile, consentendo la ri-tramissione (grazie ad un identificativo numerico presente in ogni pacchetto inviato, che gli consente di capire quali pacchetti non sono arrivati a destinazione) e ri-ordinamento dei pacchetti scambiati in caso di errori. Nel caso alcuni pacchetti non giungano a destinazione, il destinatario può chiedere al mittente di ri-trasmettere i pacchetti mancanti.
- Da la possibilità di regolare il flusso nella rete, per evitare di sovraccaricare la connessione con il destinatario
- Sempre regolando il flusso nella rete, può evitare di sovraccaricare una rete congestionata
- Si può quindi definire un protocollo affidabile
TCP - Contro
- Controllo dei ritardi
- Garanzie sulla minima capacità di ricezione e tramissione disponibili nel canale di comunicazione
- Sicurezza (nessuna cifratura dei dati)
UDP - Pro
- Trasferimento dei dati ad alta velocità, grazie al minimo overhead richiesto nella costruzione dei pacchetti, e la non necessità dell'instaurare una connessione client-server
UDP - Contro
- Nessun setup della connessione
- Soggetto a perdita di pacchetti e senza nessun riordino dei pacchetti
- Controllo del ritardo e della congestione
- Garanzie sulla minima capacità disponibile nel canale di comunicazione
- Sicurezza (nessuna cifratura dei dati)
Nota sui firewall per UDP
A causa della blindatura sempre più aggressiva delle reti, diventa complicato riuscire ad utilizzare UDP correttamente.
Per questo motivo, alcuni siti come Youtube, che hanno bisogno di inviare ai propri client enormi quantità di dati multimediali, sono dovuti ricorrere ai ripari sfruttando nuovi protocolli lato applicativo che sfruttano TCP, come il protocollo DASH, che consente di ricevere un numero pre-stabilito di frame di un filmato tramite una connessione HTTP.
Metodi offerti dal protocollo TCP
- Un metodo per creare la connessione, ed effettuare lo scambio dei 3 pacchetti SYN-ACK
- Un metodo per scrivere all'interno della connessione, disponibile dopo aver effettuato la connessione
- Un metodo per ricevere all'interno della connessione, disponibile dopo aver effettuato la connessione
- Un metodo per terminare la connessione
Metodi offerti dal protocollo UDP
- Un metodo per inviare un Datagram Packet
- Un metodo per ricevere un Datagram Packet
Come fanno i router ad indirizzare i pacchetti ?
All'interno di ogni router è presente una Tabella di forwarding, composta da due colonne:
| Le destinazioni conosciute dal router | La porta fisica in uscita del router corrente da cui poter raggiungere la destinazione |
|---|---|
| 0100 | 3 |
| 0111 | 2 |
| 1001 | 1 |
Successivamente, ad intervalli periodici, tramite a degli specifici protocolli di routing, i diversi router presenti sull'intera rete globale, sono in grado di comunicare tra di loro e "scambiarsi" le relative tabelle di forwarding, così che ogni router sia aggiornato sulla situazione corrente della rete, o per lo meno della rete dei suoi vicini.
La tabella di forwarding può inoltre essere scritta manualmente da un operatore (solitamente un sistemista) che configura l'apparato di rete per una configurazione ottimale.
Che differenza vi è quindi tra routing e forwarding ?
Routing: Il routing è l'insieme dei metodi ed algoritmi per arrivare a costruire la tabella di forwarding, tramite i metodi elencati sopra.
Forwarding: Consiste nell'utilizzare la tabella costruita tramite il routing per spedire i diversi pacchetti tramite le porte di rete dell'apparato.