Traduzione degli indirizzi IP (NAT)
In una sottorete, abbiamo quindi appreso nella trattazione scorsa, che gli host possiedono tutti una parte uguale di indirizzo IP, chiamata subnet mask. Le caratteristiche degli indirizzi IP in una sottorete sono:
- Gli indirizzi IP all’interno della sottorete, assegnati dal router, sono validi solo all’interno della sottorete. Infatti, nel mondo internet esisterebbero svariati indirizzi IP uguali e nell’internet globale non avrebbe senso.
- Da qui sorge spontanea la domanda: ma se gli indirizzi privati hanno significato solo all’interno di una determinata sottorete, come comunicano con l’internet globale? La risposta è il NAT.
NAT
Sono particolari router appunto abilitati al servizio di NAT con le seguenti caratteristiche:
- I router abilitati al NAT, esternamente non vengono visti come router, ma come un unico dispositivo con un unico indirizzo IP.
- Quando un pacchetto vuole lasciare la sottorete e dirigersi verso l’internet globale ha sempre lo stesso indirizzo IP che coincide con quello del router abilitato al NAT. Ugualmente al contrario, quando un pacchetto proviene dall’internet globale per raggiungere un host all’interno della sottorete avrà indirizzo IP del NAT che controlla la sottorete.
- A questo punto, come si fa a capire se tutti i pacchetti provenienti da internet globale hanno lo stesso indirizzo, a quale host è indirizzato il pacchetto? Questa funzione viene svolta tramite le tabelle di traduzione del NAT: quando un host vuole inviare un pacchetto sull’internet globale, il NAT gli assegna una porta non ancora in uso nella tabella, e sostituisce l’indirizzo IP privato (della sottorete) dell’host con il suo. Per il ricevimento di pacchetti dall’internet globale, il procedimento è lo stesso ma contrario.
ICMP (Internet Message Control Protocol)
ICMP: ICMP viene usato da host e router per scambiarsi messaggi di informazione. Il caso più lampante di sua utilità è la notifica degli errori.
Altri usi dell’ICMP sono:
- Richiesta di PING
- Messaggio di riduzione del tasso trasmissivo
IPV6
Nei primi anni ’90 gli informatici decisero di creare un nuovo protocollo IP: IPV6. Questa decisione derivava da:
- Esaurimento indirizzi IP a 32 bit IPV4.
- Problemi legati alla frammentazione con IPV4.
- Introduzione in IPV6 del controllo di flusso.
Struttura datagramma IPV6
I campi del datagramma IPV6 sono i seguenti:
- Version: indica la versione di IP (sempre IPV6 in questo caso).
- Traffic class: simile al campo Type of Service di IPV4.
- Flow label: usato per indicare flussi di datagrammi.
- Payload length: indica il numero di byte nel datagramma che seguono l’intestazione.
- Next header: uguale al campo Protocol in IPV4.
- Hop Limit: contatore che decrementa da ciascun router a cui passa. Quando arriva a 0, il datagramma viene eliminato.
- Source address & Destination address: indirizzo sorgente e destinatario.
- CAMPO DATI: il carico utile del datagramma.
Novità in IPV6 rispetto a IPV4
Le più importanti novità di IPV6 sono:
- Aumento byte indirizzo IP: i byte dell’indirizzo IP passano da 32 a 128 byte.
- Indirizzo anycast: un indirizzo IP che manda un messaggio a un gruppo ristretto di host.
- Priorità e controllo di flusso: i progettisti IPV6 hanno aggiunto un campo di flusso per gestione speciale di determinati datagrammi. Infatti, per esempio, un host vuole che per un determinato pacchetto vengano usati certi servizi a sfavore di altri.
- Frammentazione/riassemblaggio: la frammentazione e il riassemblaggio in IPV6 sono stati rimossi dai router intermedi poiché impiegavano troppo tempo. La frammentazione e il riassemblaggio possono essere svolti solo dai router del mittente e di destinatario. Se un datagramma è troppo grande, entra in gioco l’IMCP che restituisce al mittente un messaggio di errore, dove è scritto che il datagramma è troppo lungo.
- Checksum: dal momento che la checksum è calcolata già dai livelli di trasporto e di collegamento, i progettisti hanno ritenuto consono eliminare la checksum perché evidentemente ridondante.
- Opzioni: il campo opzioni è stato eliminato dall’intestazione IPV6.
Passaggio IPV4-IPV6
Ora che abbiamo in circolazione in rete host che possono avere un indirizzo IP IPV6 o IPV4, dobbiamo capire come fanno i router e i calcolatori a trasformare i messaggi con protocollo IPV6 in IPV4 e viceversa. Ci sono principalmente 2 metodi con cui i protocolli IPV4 vengono trasformati in IPV6 e viceversa:
- Dual stack (Approccio a doppia pila): prevede che ci sia un nodo all’interno della rete, capace di inviare e ricevere sia datagrammi IPV4 che datagrammi IPV6. Con questa tecnica però dobbiamo essere consci di perdere delle informazioni da IPV4 a IPV6, visto che l’intestazione di IPV6 è più lunga di quella di IPV4. Le informazioni perse sono per esempio quella di flusso in IPV6.
- Tunneling: quando per esempio i due nodi mittente e destinatario possiedono protocolli IPV6, mentre quelli di mezzo tra i due principali possiedono protocollo IPV4, viene preso l’intero datagramma IPV6 e viene messo nel campo dati di un protocollo IPV4, cosicché i nodi intermedii non sappiano che al suo interno c’è un protocollo IPV6. Quando il datagramma arriva a destinatario (IPV6), verrà effettuato il demultiplexing e il protocollo usato risulterà un IPV6.
Algoritmi di instradamento
Un router di primo hop è il router più vicino al mittente (router d’origine), mentre quello più vicino al destinatario è chiamato router destinazione. Lo scopo di un algoritmo d’instradamento è quello di trovare il percorso più ottimale tra il router d’origine e quello di destinazione. OTTIMALE: con minore costi di trasmissione.
Per formulare il viaggio tra i due router, si usa un grafo che contiene nodi (i router nel percorso) e archi (collegamenti fisici tra i nodi del percorso). Ogni arco possiede un costo che è scritto sopra l’arco. Quindi la funzione d’instradamento consiste nel trovare un percorso con il minore costo. La scritta c(x,y) significa il costo che possiede il collegamento tra i due nodi x e y.
Tipi di algoritmo d’instradamento
- Algoritmo d’instradamento globale (a stato del collegamento): questo algoritmo ha una conoscenza globale della rete quindi conosce tutti i collegamenti e i costi dei collegamenti tra router. Da qua sceglierà qual è il percorso più congeniale. Chiamato algoritmo LS.
- Algoritmo d’instradamento decentralizzato (a vettore di distanza): l’algoritmo non ha una conoscenza globale sulla rete e sui costi dei collegamenti. Ogni router nel percorso ha conoscenza dei costi dei percorsi adiacenti a se stesso. Grazie ad un processo iterativo (ciclico), e di scambio di messaggi tra i nodi vicini l’algoritmo viene a conoscenza del percorso migliore e meno costoso. Chiamato algoritmo DV.
Classificazione degli algoritmi d’instradamento
- Algoritmo d’instradamento statico: i percorsi dei dati cambiano raramente. La maggior parte delle volte variano per un intervento umano fisico.
- Algoritmo d’instradamento dinamico: i percorsi cambiano periodicamente al variare della:
- Quantità di dati
- Tipologia della rete
Sensibilità al carico
- Algoritmo sensibile al carico: se si associa un alto costo ad un canale trafficato, l’algoritmo eviterà di percorrerlo.
- Algoritmo non sensibile al carico: non tiene conto della congestione nei collegamenti. Sono gli algoritmi utilizzati maggiormente oggi.
Algoritmo LS (a stato del collegamento, algoritmo globale)
In questo tipo di algoritmo, la tipologia di rete e tutti i costi del collegamento tra nodi sono noti all’input dell’algoritmo LS. La conoscenza globale viene ottenuta tramite l’algoritmo di LS BROADCAST.
LS BROADCAST: tutti i nodi inviano pacchetti a tutti gli altri nodi della rete, con all’interno i costi del collegamenti a loro adiacenti. L’algoritmo più importante LS è l’algoritmo di Dijkstra, dal nome del suo ideatore. La legenda dell’algoritmo è:
- N’= sottoinsieme di nodi a costo minimo
- D(nodo)=costo minimo per arrivare a quel nodo
- P(nodo)=immediato predecessore del nodo
L’algoritmo è il seguente:
All’inizio N=nodo di partenza. Trovo i nodi adiacenti al primo nodo di partenza.
- Se il nodo è adiacente metto D(nodo)=c(primo nodo,nodo adiacente)
- Se invece il nodo non è adiacente pongo il campo a infinito
Scrivo D(nodo), p(nodo) per tutti i nodi. Prendo in considerazione ora, i nodi non aggiunti nell’insieme N’. Trovo quello con costo minimo (D(nodo) minimo) e lo aggiungo all’insieme di nodi N’.
- Ricalcolo tutti i passaggi ai vari nodi passando però ora dal nodo aggiunto in N’.
- Se D(nodo) viene minore, cambio il valore
- Se D(nodo) viene maggiore, lascio invariato il valore
Al passo successivo non considero più i nodi che sono già dentro in N’. Da qui, guardando i vari D(nodo) e p(nodo) posso vedere qual è il percorso con minor prezzo a seconda del p(nodo) dopo la virgola.
Algoritmo di instradamento con vettore di distanza (Distance Vector)
In questo algoritmo ogni nodo riceve informazioni sui costi dei collegamenti dai suoi nodi limitrofi (adiacenti) e dopo aver effettuato i calcoli li restituisce.
Caratteristiche algoritmo Distance Vector
- Distribuito: nel senso che ogni nodo riceve informazioni da calcolare dai suoi nodi adiacenti.
- Iterativo: nel senso che questo algoritmo si ripete finché non trova il prezzo minore.
- Auto-terminante: nel senso che termina da solo.
- Asincrono: nel senso che non richiede che tutti i nodi operano a pari passo con gli altri nodi.
Anche questo algoritmo richiede il disegno di una tabella d’instradamento.
Confronto tra LS e DV
Complessità dei messaggi
LS: con n nodi, E collegamenti, implica l’invio di O(nE) messaggi.
DV: richiede scambi tra nodi adiacenti quindi il tempo di convergenza può variare.
Velocità di convergenza
LS: oscillazioni di velocità.
DV:
- Può presentare cicli di instradamento.
- Può presentare il problema del conteggio infinito.
- Un calcolo errato si può diffondere per l’intera rete.
Instradamento in Internet
Applicazioni multimediali in rete
Le peculiarità delle applicazioni multimediali in rete sono due:
- Tolleranza alla perdita di dati: molte applicazioni multimediali tollerano piccole perdite di dati, perché causano danni molto marginali.
- Sensibilità al ritardo tra mittente e destinatario: interferenza nella riproduzione audio/video.
Esempi di applicazioni multimediali
Le 3 applicazioni multimediali che analizzeremo sono:
- Streaming audio/video memorizzati
- Streaming audio/video in tempo reale
- Streaming audio/video interattivo in tempo reale
Streaming audio/video memorizzati
Consiste nel vedere o sentire file video/audio memorizzati su server remoti come youtube, CNN, Vimeo, ecc...
Caratterizzati da:
- Media memorizzati: i media a cui attingono i client sono memorizzati su server remoti. In questo modo gli utenti possono usare le funzioni di fermo immagine, riavvolgimento e avanzamento.
- Streaming: il client inizia la riproduzione per esempio del video, prima di averlo scaricato tutto dal server: questo procedimento è chiamato streaming.
- Riproduzione continua: il client, mentre guarda il video o sente l’audio, continua a scaricare parte del video o audio così i tempi di attesa si riducono/azzerano.
Streaming audio/video in tempo reale
Tecnica che consente agli utenti di ricevere in diretta radio, immagini, video provenienti da ogni parte del mondo. È come la televisione solo che avviene su internet. Come possiamo bene immaginare, non è permesso il riavvolgimento e l’avanzamento appunto perché è in diretta.
Streaming audio/video interattivo in tempo reale
Questa tecnica consente di effettuare per esempio videochiamate online in tempo reale con altri client, che si possono trovare dall’altra parte del mondo.
Ostacoli applicazioni multimediali in rete
Come ben sappiamo, il protocollo IP fornisce solo un servizio di best-effort quindi non assicura né la perdita di dati, né i ritardi che compierà nel suo viaggio, ma solo una garanzia di maggior sforzo nella consegna dei pacchetti al destinatario. Alcune applicazioni multimediali come Skype però hanno un Jitter dei pacchetti (packet jitter) che è una variabile che indica la variazione dei ritardi subiti dai pacchetti di uno stesso flusso.
Streaming memorizzati
Lo streaming audio/video memorizzato richiede un client web anche chiamato browser, ma oltre a questo richiede anche nella maggior parte dei casi un media player scaricato sul pc (Windows Media Player, VLC, ecc…).
Protocollo di trasporto usato
Nei servizi di streaming audio/video memorizzati viene usato principalmente protocollo di trasporto TCP poiché:
- Tramite la sua consegna affidabile il file viene trasferito correttamente e interamente al client e salvato nella sua cache, così può riprodurlo successivamente tramite l’accesso alla cache.
Protocollo di streaming
- Esiste un protocollo apposta per lo streaming internet chiamato Protocollo di streaming in tempo reale oppure RTSP.
- Un media player ha le seguenti funzioni:
- Decompressione: I file mandati dal server sono compressi, quindi il media player ha la funzione di decomprimere questi file, mentre l’utente sta usando il servizio di streaming.
- Rimozione del Jitter: siccome il client deve ricevere audio e video sincronizzati, deve prima memorizzare i dati ricevuti in un buffer temporaneo per eliminare il Jitter (variabilità dei ritardi dei pacchetti di uno stesso flusso).
Server e client in streaming audio/video
Nello streaming audio/video esistono:
- Vari client che usufruiscono del servizio.
- 2 server:
- Uno per le informazioni da mandare al browser, che equivale ad un server HTTP per il caricamento di pagine web.
- L’altro server per il trasferimento vero e proprio del file audio/video.
Metodi per la consegna del file audio/video
Esistono vari metodi per la consegna del file audio/video da parte del server al media player del computer del client considerato:
- Il server invia il file al client tramite UDP ad un tasso costante che è uguale a quello di ricezione.
- Il server invia sempre il file tramite UDP, anche se in questo caso, il player fa un ritardo di 2-5 secondi per eliminare il jitter. Per eliminare il jitter, il client colloca i dati ricevuti in un buffer, ne salva una parte e dopo lo svuota dal buffer. Così viene eliminato il jitter.
- Il file viene inviato tramite TCP il più velocemente possibile, il client lo legge, lo memorizza nel buffer. Dopo un ritardo iniziale, il client legge dal suo buffer il file e inoltra il file al media player per la decompressione e la riproduzione. Intanto il client svuota i dati contenuti dal buffer che sono stati già mandati al media player.
Protocollo RTSP
RTSP e le sue caratteristiche:
- Permette un media player di controllare la trasmissione di flusso, cioè permettere di fermare, riprendere e riposizionare il punto di riproduzione.
- Protocollo out-of-band: infatti i suoi messaggi li invia in un'altra connessione, mentre i veri contenuti sono in band.
- Consente l’invio dei veri contenuti tramite sia UDP che TCP.
Reti di calcolatori
Internet è un insieme di calcolatori che trasmettono e ricevono a seconda che svolgano funzione di Server oppure di Client. Il procedimento client-server avviene nel seguente modo:
- Un server invia un determinato dato in rete, specificamente ad un router all’interno della nuvola internet.
- Nella nuvola internet, ci sono più router e più collegamenti tra router.
- I vari collegamenti tra host mittente e destinatario vengono denominati nodi della rete.
- Da un nodo all’altro, il dato giungerà infine al destinatario.
Topologia di rete
Esistono varie topologie di rete tra cui le più importanti:
- Topologia in bus: Una topologia in bus è l'organizzazione di rete più semplice. In effetti, in una topologia in bus tutti i computer sono collegati ad una stessa linea di trasmissione tramite un cavo, generalmente coassiale. La parola «bus» designa la linea fisica che collega i terminali di rete.
- Topologia a stella: In una topologia a stella, i computer della rete sono collegati ad un sistema hardware centrale detto Hub. Si tratta di una scatola che comprende un certo numero di collegamenti nei quali è possibile inserire i cavi di rete dei computer. Quest'ultimo ha come ruolo di assicurare la comunicazione tra i diversi collegamenti.
- Topologia ad anello: In una rete con una topologia ad anello, i computer sono posti su un cerchio e comunicano ciascuno al loro turno.
- Topologia a stella estesa: vengono aggiunti più server cosicché le comunicazioni non subiscano ritardi e code.
- Topologia gerarchica: In una rete a topologia gerarchica i nodi sono collegati tra loro con una struttura ad albero nella quale padre e figlio sono connessi direttamente.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunti esame Reti di Calcolatori, prof Calefato, libro consigliato Reti di calcolatori e internet, Pearson
-
Sicurezza delle reti - Riassunti
-
Riassunti psicologia
-
Riassunti agronomia