Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

lunghezza media della coda che si vuole mantenere. Se si vuole un traffico molto intenso per abbastanza tempo, il

limite minimo deve essere abbastanza alto, come quando si vuole che il ritardo di un pacchetto non influenzi troppo

l’affidabilità del collegamento. Il limite massimo dipende invece dal massimo ritardo che il router è disposto ad

accettare. I router RED lavorano meglio quanto la differenza max - min è maggiore del tipico aumento della lunghezza

th th

media della coda in un RTT. Una regola quasi sempre adottata è quella di scegliere un max uguale al doppio del min .

th th

Se invece di cancellare il pacchetto, vengono impostati i bit dell’intestazione, si renderà possibile una cooperazione nella

Un’appropriata bilancia temporale permette che, dopo

prevenzione della congestione da parte degli altri router. il

marcamento, in un tempo pari al Round Trip Time (RTT), il router noti una diminuzione di velocità di arrivo dei

pacchetti. La bilancia temporale, quindi, misura il tempo di reazione alla congestione delle connessioni. La

sincronizzazione globale è da evitare, quindi si devono marcare il minor numero di pacchetti possibile. La

massimizzazione del rapporto tra larghezza di banda e ritardo globale si ottiene con il controllo della lunghezza

è più alto con l’utilizzo dei gateway RED piuttosto che di quelli con normale Drop

media della coda. Questo rapporto

Tail. I router RED non devono discriminare certe connessioni rispetto alle altre, infatti il numero di pacchetti

marcati di una connessione sarà proporzionale alla sua larghezza di banda. Cambiamenti nel traffico vengono notati

dal cambiamento della lunghezza media della coda e la velocità di marcatura è proporzionale alla quantità di congestione.

3.2.7 PI (Proportional Integral)

E’ un’evoluzione di RED e si propone di risolvere i suoi problemi. RED, infatti, mostra un legame eccessivo e dannoso

tra la lunghezza media della coda e la probabilità di marcatura dei pacchetti, e produce un errore detto steady

Con l’introduzione PI, si riesce a portare l’errore di steady state a zero.

state. del controller Infatti la lunghezza della

coda risulta essere molto più stabile. Le caratteristiche principali di PI sono:

 cercare di mantenere una data lunghezza tipo della coda considerata campione entro un certo range

 campionare la lunghezza istantanea ad intervalli precisi e calcolare la probabilità di cancellazione al k-esimo campione

Sebbene l’errore dello

Prima del PI controller, nasceva il Proportional controller. steady state venga eliminato, la velocità

di risposta diminuisce notevolmente, i ritardi di incodamento sono lunghi, grosse quantità di pacchetti vengono persi, ha

cattiva risposta alle oscillazioni di traffico nella rete, sia nei momenti in cui il numero degli utenti decresce

improvvisamente, sia in quelli in cui il numero dei flussi cresce molto rapidamente (la probabilità di marcatura aumenta

2

lentamente). Perciò è stato proposto un ulteriore algoritmo P I , combinazione di PI e Proportional controller, che risolve

il problema della risposta lenta di PI.

5 Qualità del servizio

Un insieme di pacchetti diretti da una sorgente ad una destinazione viene chiamato flusso di sessione. In una rete

connection oriented tutti i pacchetti di un flusso seguono lo stesso percorso. In una connectionless i pacchetti possono

seguire percorsi differenti. A ciascun flusso è possibile associare una determinata QoS, classificabile con questi parametri:

 affidabilità: nessun bit può essere trasmesso in modo scorretto;

 banda: livelli di garanzia sulla banda minima garantita (BMG);

 jitter: variazione del tempo di arrivo di ciascun pacchetto (indica pacchetti in arrivo ad intervalli irregolari);

 ritardo: valutabile e controllabile.

Applicativi come la posta elettronica o il telnet necessitano di alta affidabilità, invece altri necessitano di diversi

impostazioni di parametri. Infatti, in reti ATM e non, i flussi sono classificati in 4 categorie, con differenti QoS:

 Reti a Velocità Costante (es. quelle telefoniche): fornisce banda uniforme e ritardo uniforme;

 Reti a Velocità Variabile in tempo reale (quali la videoconferenza): bassi ritardi, e possibilmente bassi jitter;

 Reti a Velocità Variabile non in tempo reale (es video on-demand);

 Velocità Disponibile (es. il file transfer), per

applicazioni non sensibili al ritardo o allo jitter.

5.3 Tecniche per buona QoS

5.3.1 Bufferizzazione

Tecnica che consiste nella memorizzazione del

flusso, prima della consegna, in un buffer. Non

viene influenzata l'affidabilità e la banda, ma si

possono verificare problemi di jitter, di ritardo e

E’ importante

di creazione di code anomale. incrementare su tutte le porte seriali, il buffer a disposizione perché la

bufferizzazione è legata a due aspetti: sia che perda dati (dal sorgente), sia che mi arrivino troppi dati, ho un tempo di

bufferizzazione che mi consente di mettere i pacchetti tutti assieme (quindi al destinatario), li ho nel buffer della

macchina sorgente. Abbiamo un certo numero di pacchetti in invio che hanno modalità di pervenimento differente a

seconda delle capacità, velocità della rete. Arrivano distribuiti nel tempo e non in maniera continuativa.

5.3.1 Traffic Shaping (Tecnica di diluizione)

L'idea è quella di forzare la trasmissione dei pacchetti a un ritmo regolare per

limitare il rischio di congestioni. Gli algoritmi più comuni:

 al caso di un

Leaky Bucket (secchio bucato): Ha un’analogia secchio

riempito d’acqua attraverso un rubinetto con la possibilità di variare la

portata istantaneamente, provvisto di un foro sul fondo, che cede l'acqua con

portata costante. Se viene immessa troppa acqua, essa fuoriesce dal bordo

Nell’host viene

superiore del secchio e si perde. realizzato un Leaky Bucket

(Figura), contenitore con un foro, autorizzato a riversare sulla rete pacchetti

con un fissato data rate (quantità di dati) e che mantiene quelli accodati per la trasmissione nei suoi buffer. Se l'host

genera più pacchetti di quelli che possono essere contenuti nei buffer, il primo ulteriore che satura la capacità del

buffer che quindi si limita, è perso. Il flusso è irregolare, quindi deve essere dimensionato in maniera corretta.

 Token Bucket (secchio di gettoni): Consente un certo grado di irregolarità nel flusso entrante nella sottorete

(Figura). Non garantisce una quantità illimitata di dati che fluiscono dal Token buchet alla sottorete di

fonda sull’accumulazione

comunicazione, ma una quantità controllata e si di un credito trasmissivo basato su

gettoni (token) in fase di non trasmissione, creati a cadenze prefissate (ogni tot di tempo), fino ad un massimo

consentito (cioè il riempimento del secchio di token). In fase di trasmissione

viene sfruttato tale credito fino all'esaurimento, alla massima velocità

consentita dalla linea, associando ad ogni pacchetto un gettone. I pacchetti in

eccesso devono aspettare la creazione di nuovi token e non vengono mai

scartati. Se necessario, viene avvertito il livello superiore, produttore dei dati,

interrompere l’invio delle informazioni. Attraverso tale tecnica è possibile

per

trasmettere dei burst di pacchetti, anche se mediamente non si riesce a

trasmettere ad una velocità più elevata di quella di generazione dei token. So

quanti gettoni e quindi quanti pacchetti mi mancano. Devono esserci un numero

di gettoni sufficiente da associarli alla sottorete. Garantisce la QoS.

 Flow Specification (specifica o parametrizzazione del flusso): In alcuni casi permette di incrementare le risorse per

E’ molto

garantire il flusso. efficace se sorgente, sottorete e destinazione si accordano sulla trasmissione. Un modo

di ottenere il flow specification consiste nello specificare le caratteristiche del traffico prima della trasmissione

(es. data rate, grado di burstiness) e la QoS (es. ritardo massimo, frazione di pacchetti che si può perdere). Tale

accordo consiste in una struttura dati che descrive le grandezze in questione e può essere stipulato sia in sottoreti

non connesse, sia nelle connesse, dove è più facile il controllo della congestione, perché le risorse per una

connessione sono allocate in anticipo. Per evitare la congestione è possibile negare l'attivazione di nuovi circuiti

virtuali ove non vi siano sufficienti risorse per gestirli. Questa tecnica è chiamata di admission control.

5.3.3 Routing Adattativo

di routing tentano l’instradamento di tutto il traffico,

Molti degli algoritmi per ciascuna destinazione, attraverso il

percorso migliore. I router non hanno una visione completa dei path di traffico di tutta la rete. Si ha la suddivisione in

percorsi differenti del traffico diretto in ciascuna direzione, utilizzando le informazioni disponibili localmente. Il

metodo più semplice consiste nella suddivisione del traffico in parti uguali nei percorsi alternativi, o proporzionali

alla banda disponibile per ciascun percorso. In tal modo, per ogni collegamento diretto, ci si potrà attendere più

frazioni di banda uguali ed in grado di essere gestite alla stregua di una multiplazione statistica.

5.3.4 Sovradimensionamento

Consiste nell’aumentare e l’ampiezza di banda per singole

le capacità di calcolo, le dimensioni del buffer dei router

tratte della sottorete. Risulta costosa e spesso inapplicabile. Leggi militari (I tecnici danno 1, ritornano chiedendo 4).

5.4 Servizi Integrati

La gestione di flussi di dati multimediali o real time, richiede alla sottorete comportamenti riguardanti traffico generato da

applicazioni broadcast, multicast o unicast. Sono nati pertanto specifici algoritmi detti algoritmi basati sui flussi o

uno,

servizi integrati, rivolti principalmente ad applicazioni unicast (traffico molti es. il download di un videoclip da

un sito), o multicast (traffico molti molti, es. trasmissioni video digitali su IP di programmi televisivi).

5.4.1 P RSVP (Resource reSerVetion Protocol)

ROTOCOLLO

Molte applicazioni multicast permettono la modifica dinamica dei gruppi di appartenenza e degli utenti di tali gruppi.

Pertanto risulta inefficiente un algoritmo in grado di riservare la banda in anticipo per ciascun gruppo, in quanto

dovrebbe considerare tutti gli ingressi e le uscite di ciascun utente di ciascun gruppo. Per la gestione dei servizi

integrati si utilizza il protocollo RSVP che si occupa della gestione delle prenotazioni preallocando le risorse prima di

ed ottimizzando l’uso della banda eliminando le congestioni.

utilizzarle, Ho una sottorete, so che dovrò inviare una

prima dell’invio.

certa quantità di dati e inizio a prenotare pezzi di banda del path, in modo da averli Il protocollo

utilizza il routing multicast basato su strutture spanning tree. Ciascun gruppo riceve un indirizzo collettivo e la

Quando l’host 4 richiede

trasmissione verso un gruppo avviene tramite l'inserimento di tale indirizzo nei pacchetti. un

canale all'host 1 viene riservata la banda per la sorgente 1 (Figura a).

Preriservo tutto il path (1-A-E-H-J-4), poi ci sono altri path. In seguito 2

vuole trasmettere ma non avendo prenotato, non può trasmettere perché ho

già saturato le tratte (tecnica proattiva). Per l'eliminazione delle congestioni

tutti i ricevitori inviano un messaggio di prenotazione nella struttura,

l’algoritmo

propagato con di Riverse Path Forwarding. Il router prende

nota della prenotazione ad ogni salto e riserva la banda necessaria. Quando

il messaggio torna alla sorgente la banda è stata prenotata. Successivamente,

l’host 4 richiede 2 (Figura b).

un secondo canale all’host Viene riservato un

secondo canale indipendente da quello creato prima, tenendo conto della

banda disponibile in quel momento. In fase di prenotazione il ricevitore può

specificare sorgenti multiple che possono variare lungo la durata della

prenotazione, permettendo un disaccoppiamento tra banda riservata e

banda scelta da parte del sorgente.

5.4.2 MPLS (MultiProtocol Label Switching)

Esistono altri metodi di inoltro dei pacchetti, utili per la gestione dei servizi

integrati e differenziati. Un efficiente e più raffinato metodo consiste

nell’aggiungere al pacchetto un’etichetta per permettere al router

l’instradamento del traffico in base ad etichette e non a indirizzi di

destinazione, e una gestione più efficace delle risorse. Abbiamo un pacchetto

internet che ha un numero IP come intestazione con 4 record (Figura). Quindi

mette un treno di bit che anziché farli leggere tutta l’intestazione, invia

MPLS

direttamente per un canale prestabilito già strutturato. Tale tecnica prende il

L’inserimento dell’etichetta è all’intestazione

nome di MPLS. di fronte del pacchetto del livello di rete IP. La

sequenza dei campi contenuti nel MPLS, fa si che, a rigore nella pila gerarchica ISO-OSI, la sua collocazione sia tra i

livelli di collegamento e di rete; tali atipicità e flessibilità sono le ragioni del suo impiego sempre più ampio. 4 campi:

 contiene l’indice che serve

Etichetta (label): ad individuare la linea di trasmissione ed è di 20 bit;

 QoS: indica la classe di servizio del pacchetto ed è di 3 bit;

 bit di accatastamento di più etichette; permette di conoscere l’esistenza di etichette incapsulate in altre etichette; il

S:

suo valore posto a 1 sta a significare l'appartenenza ad un circuito virtuale, o circuito virtuale concatenato, che il

protocollo MPLS rende disponibile anche tra sottoreti diverse tra loro;

 TTL (Time To Live): decrementato ad ogni passaggio su un router; se il valore è nullo, il pacchetto viene scartato.

Le intestazioni MPLS sono indipendenti dai livelli successivi e precedenti (Rete e Collegamento). Pertanto è possibile

costruire switch MPLS in grado di inoltrare pacchetti di diversi protocolli (MultiProtocol). Quando un pacchetto IP

con informazioni MPLS, raggiunge un router compatibile, la sua etichetta viene utilizzata come indice per una tabella

che determina la linea di trasmissione e la nuova etichetta da utilizzare. Due router possono inviare sulla stessa

E’

linea di uscita dei pacchetti non in rapporto tra loro, ma con stessa etichetta, creando dei circuiti virtuali.

associare un gruppo di etichette a ciascun flusso per la sottorete, o associare un’etichetta collettiva a più

possibile

flussi, chiamati Forwarding Equivalence Class (FEC). Una differenza rispetto ai circuiti virtuali tradizionali riguarda la

possibilità da parte del MPLS di raggruppare più percorsi distinti con punti finali distinti, poichè i pacchetti

contengono oltre all'etichetta, l’indirizzo di destinazione finale. E’ possibile rimuovere l’intestazione

perciò

dell’etichetta le informazioni all’indirizzo di destinazione.

alla fine del percorso etichettato, ed inoltrare MPLS inoltre

è in grado di operare su più livelli contemporaneamente, e di generare tunnel ricorsivi attraverso il controllo del bit S.

5.5 Service Level Agreement (SLA)

Spesso la garanzia di un apprezzabile QoS è dato non soltanto dall'impiego di un solo protocollo. Come in Traffic

Shaping, la QoS è dipendente da un impiego concordato di risorse. Risulta essenziale concordare il complesso delle

prestazioni desiderate dagli host. Sono state definite delle soglie di garanzia minima, o massima, concordata e

misurabile su specifici parametri. La definizione dei livelli di servizio prende il nome di SLA. Le SLA hanno la

duplice funzione, verso l'host e verso la sottorete, di raggruppare al loro interno un insieme di servizi, spesso

implementati nei protocolli di livello rete, che rendono misurabili prestazioni specifiche sia dell'host che della

sottorete. Hanno una flessibilità di parametrizzazione che ne consente l'impiego con architetture e tecnologie di rete

differenti. Le prestazioni considerano ininfluente il contributo del singolo host. I livelli di servizio di solito considerano:

 throughput per port (es bit/sec): garanzia su livello minimo di produttività assicurata per porta del router di sottorete;

 data delivery ratio, DDR (bit/sec): garanzia sul livello minimo di consegna dei dati; ritardo accettabile per la

consegna; deve essere garantito un certo numero di pacchetti in uscita da una porta

 constant bit rate, CBR (bit/sec): preferisco non avere una grande velocità ma avere garanzia sulla mantenimento di

una velocità minima concordata di consegna dei dati per applicazioni particolari, tipico dell'ATM;

 back-up di linea: garanzia della continuità trasmissiva, in caso di caduta del collegamento principale, con linea di

back-up già predisposta (a caldo, quindi costantemente in funzione, dinamico) o predisposta al momento (a

freddo, devo accenderlo manualmente, statico), dove i tempi massimi e risorse stimate per tale operazione;

 back-up router: garanzia della continuità trasmissiva, in caso di malfunzionamento o non funzionamento del

router di interfacciamento, con router di back-up già predisposto (a caldo, dinamico) o predisposto al momento

(a freddo, statico), dove i tempi massimi e le risorse stimate per tale operazione. Meglio a caldo che a freddo;

 uptime (percentuale/mese-anno): garanzia di una percentuale minima di mantenimento del servizio per tot tempo

 report service unit (RSU): garanzia di poter usufruire di strumenti di controllo delle prestazioni da parte

dell'host, tipicamente non interattivi e di sola visualizzazione; richiedo di poter scaricare quando voglio il report di

funzionamento dell’apparecchiatura in nostro uso

 management service unit (MSU): garanzia di poter usufruire di strumenti di configurazione delle prestazioni da

parte dell'host, tipicamente gestione della banda a propria disposizione, e generazione o modifica di circuiti virtuali

Non solo posso avere l’unità del report, ma posso modificare i parametri

permanenti. da remoto.

La complessità derivante dalla verifica e/o dalla misurabilità dei livelli di servizio delle SLA, hanno portato alla

definizione di più semplici e strutturati parametri di indagine chiamati KPI (Key Performance Indicator) che

consentono di raggruppare in un unico reporting set l'insieme di KPI necessari alla descrizione del SLA desiderato.

KPI è un indicatore di efficienza complessiva di parametri richiesti per la QoS ad un provider.

LIVELLO DI RETE (STRATO NETWORK) TANENBAUM

5.6 Lo strato network in Internet

10 principi (RFC 1958) dal più al meno importante dello strato network di Internet usati per la sua architettura:

 Assicurarsi che funzioni. Spesso i progettisti scrivono uno standard, lo fanno approvare e poi, dopo aver scoperto

che non funziona, ne scrivono la versione 1.1. Non è il modo corretto di procedere.

 Mantenerlo semplice. William di Occam ha formulato il principio di utilizzare la soluzione più semplice (rasoio di

Occam - 14° secolo). Le funzionalità non strettamente necessarie e rimpiazzabili, vanno eliminate.

 Fare scelte chiare. Se la stessa cosa può essere fatta in modi diversi, sceglierne uno. Gli standard spesso hanno più

opzioni, modalità o parametri perché si pensa che così il sistema è migliore. Si cerca di ridurre le ridondanze.

 Sfruttare la modularità. L’idea è di avere pile di protocolli con ciascuno degli strati, indipendente da tutti gli altri. Se

l’intervento a un elemento

le circostanze richiedono la modifica di un modulo o di uno strato, non modificherà gli altri.

 Aspettarsi l’eterogeneità. Nelle rete di grandi dimensioni si usano diversi tipi di hardware, attrezzature, trasmissione

applicazioni. Per gestire tutti questi elementi, l’architettura di rete deve essere semplice, generale e

e flessibile.

 No opzioni e parametri statici. Invece di definire parametri fissi è meglio fare in modo che il trasmettitore e il

ricevente concordino un valore, preferendo così algoritmi adattivi e dinamici.

 Mirare a un buon progetto, non è necessario che sia perfetto.

 Essere rigorosi nella trasmissione e tolleranti nella ricezione. Cioè inviare solo pacchetti che si attengono agli

standard, ma aspettarsi che i pacchetti in arrivo non siano completamente compatibili e si deve tentare di gestirli.

 Scalabilità. Per una gestione efficace non usare database centralizzato, ma carico distribuito tra le risorse disponibili.

 Considerare le prestazioni e i costi. Se una rete ha scarse prestazioni o costi eccessivi, nessuno la utilizzerà.

La rete di Internet viene vista come un insieme di sottoreti o di Autonomous Systems (AS) interconnessi. Non esiste

alcuna struttura, ma molte dorsali principali formate da linee a banda larga e router veloci. Alle dorsali si collegano

le reti regionali (di livello intermedio), a cui si collegano le LAN di molte università, aziende e fornitori di servizi

Internet (ISP). Ciò che tiene unito Internet è il protocollo IP (Internet Protocol) dello strato network, progettato per la

(“fa del suo meglio”,

comunicazione tra reti. Il compito dello strato network è fornire un mezzo di tipo best effort

perciò non garantito) per trasportare i datagrammi da sorgente a destinazione, senza tener conto della posizione delle

macchine che possono trovarsi su reti diverse e della presenza di reti intermedie. La comunicazione in Internet funziona

così: lo strato trasporto prende i flussi di dati e li divide in datagrammi che, in teoria possono essere grandi 64 KB,

in pratica 15 KB (coincide con il frame Ethernet), e che sono trasmessi attraverso Internet e magari frammentati in

unità più piccole. Quando tutti i pezzi raggiungono la macchina di destinazione, lo

strato network ricostruisce il datagramma originale, che sarà passato allo strato

trasporto che lo inserisce nel flusso di input del processo ricevente. La Figura

che deve attraversare 6 reti per raggiungere l’host2.

mostra un pacchetto dell’host1

5.6.1 Il protocollo IP

I datagrammi IP sono costituiti da una parte di intestazione (parte fissa di 20

byte + parte opzionale di lunghezza variabile), e da una parte di testo. È

trasmessa in ordine big endian (es. SPARC): da sinistra a destra, a partire dal bit più significativo del campo version.

Sulle macchine little endian (es. Pentium), è necessario eseguire una conversione sia in ricezione che in trasmissione.

 Version: tiene traccia della versione del protocollo usato per il datagramma e può essere modificato (es. da IPv4 a

IPv6). IPv5 è un protocollo sperimentale streaming in tempo reale mai usato.

 lunghezza dell’intestazione

IHL: indica la (32 bit): il valore minimo è 5 parole (20 byte), si applica quando non

sono presenti altre opzioni, quello massimo a 4 bit, è 15 parole (60 byte)

 Type of service: usato per distinguere

diverse classi di servizio di appartenenza

del pacchetto; sono ammesse varie

combinazioni di affidabilità e velocità.

Prima era formato da 6 bit (da sinistra a

destra, ora 8). Ci sono 4 priorità di

accodamento, 3 probabilità di eliminazione

e le classi storiche:

1. Un campo di 3 bit (precedence) che

indicava la priorità da 0 (normale) a 7

(pacchetto di controllo della rete)

2. Tre segnalatori D, T e R, che

permettevano all’host di indicare

l’interesse nei confronti di ritardo,

capacità di trasporto, affidabilità.

3. Un ulteriore bit C che se impostato a 1,

il router dovrebbe scegliere il percorso

di costo minimo per il pacchetto.

I bit inutilizzati perciò, non sono due ma

uno. I router correnti spesso ignorano del

tutto il campo type of service.

 Total lenght: indica il valore massimo del pacchetto (65.535 byte) considerando sia intestazione che dati.

 serve all’host di destinazione per

Identification: determinare a quale datagramma appartiene il frammento

Subito dopo c’è un

appena arrivato. Tutti i frammenti di un datagramma contengono lo stesso valore identification.

Fragment)

bit inutilizzato, e poi due campi di un 1 bit: DF (Don’t impone ai router di non dividere in frammenti il

datagramma perché la destinazione non è in grado di rimettere insieme i pezzi; MF (More Fragments), ossia più

Tutti i frammenti, tranne l’ultimo, hanno questo bit impostato

frammenti. a 1.

 tranne l’ultimo

Fragment offset: indica la posizione del frammento nel datagramma corrente. Tutti i frammenti

sono multipli di 8 byte (dimensione del frammento elementare). Poiché sono disponibili 13 bit, ci possono essere al

massimo 8.192 frammenti per ogni datagramma, di conseguenza la lunghezza massima di un datagramma è 65.536.

 Time to live: è un contatore utilizzato per limitare la vita di un pacchetto. La durata massima è di 255 sec. Viene

decrementato a ogni salto, oppure se rimane per lungo tempo accodato in un router, viene decrementato più volte.

Nella realtà il valore riflette solo il numero di salti. Quando raggiunge lo 0 viene scartato e un pacchetto di avviso è

inviato all’host sorgente. Questo impedisce ai datagrammi di girare a vuoto per sempre, a causa per esempio di

danneggiamento delle tabelle di routing.

 Protocol: indica quale protocollo di trasporto è in attesa di quei dati (es. TCP, UDP ecc).

 solo l’intestazione

Header checksum: verifica e aiuta a rilevare gli errori generati da locazioni di memoria

si suppone che sia 0 all’arrivo. L’algoritmo

difettose nel router e somma tutte le mezze parole di 16 bit appena

l’aritmetica

arrivate, con in complemento a uno, e poi prende il complemento a uno del risultato. Deve essere

ricalcolato a ogni salto, perché almeno un campo cambia sempre (time to live).

 Source address e destination address: indicano il numero di rete e il numero di host, e sono di 32 bit ciascuno;

 Options: non può occupare più di 40 byte. Alcune

opzioni, come quella che registra il percorso seguito

dal pacchetto, hanno bisogno di più di 40 byte, e

usarlo. E’ pensato

quindi non possono per dare alle

versioni successive del protocollo la possibilità

d’includere informazioni non presenti nel progetto

originale. Sono di lunghezza variabile e ognuna

inizia con un codice di 1 byte che la identifica.

Alcune sono seguite da un campo option lenght di 1

E’

byte che precede uno o più byte di dati. riempito con multipli di 4 byte. In origine 5 opzioni (Figura) poi nuove:

1. Security: indica il livello di segretezza delle informazioni (tutti i router lo ignorano).

2. Strict source routing: definisce il percorso preciso completo dalla sorgente alla destinazione, attraverso una

E’

sequenza di indirizzi IP, che il datagramma deve seguire. usato dagli amm di sistema, per inviare pacchetti

di emergenza in caso di danneggiamento dei router o per eseguire misure di sincronizzazione.

3. Loose source routing: costringe il pacchetto ad attraversare un elenco, normalmente di pochi router spe-

indicato, che

cificati nell’ordine può comunque attraversare anche altri router durante il suo viaggio. Viene usata

quando fattori politici ed economici impongono di attraversare o evitare particolari paesi.

4. Record route: costringe ogni router lungo la strada ad aggiungere il proprio indirizzo IP al campo delle

opzioni. Ciò permette di individuare gli errori negli algoritmi di routing. l’indirizzo IP

5. Timestamp: assomiglia al record route, ma costringe a registrare sia i 32 bit che rappresentano

sia i 32 bit che indicano data e l’ora di elaborazione. portando con se 3 valori temporali: tempo

massimo/minimo/medio di raggiungimento, in modo tale che, arrivato a destinazione si riesca a capire dov'è

passato, in che tempi e se ci sono stati problemi. Utilizzata per correggere gli algoritmi di routing.

5.6.2 Indirizzi IP

Ogni host e router di Internet ha un indirizzo IP che codifica il suo indirizzo di rete e il suo numero di host. La

combinazione è unica: in teoria, non possono esistere due macchine con lo stesso indirizzo IP. Tutti gli indirizzi IP sono

lunghi 32 bit e utilizzati in source address e destination

address dei pacchetti IP. Non si riferisce a un host ma a una

scheda di rete, perciò quando un host ha due schede di rete,

deve avere due indirizzi. La maggior parte degli host è

un’unica rete.

collegata a Sono divisi in cinque categorie

(Figura 1) e questa assegnazione è chiamata indirizzamento

7 24

per classi: A(numero di reti 2 , numero di host 2 ),B(numero

14 16 21

di reti 2 , numero di host 2 ), C(numero di reti 2 , numero di

8

host 2 ), D (multicast = invio dei datagrammi verso più host,

usati per gruppo e non un host) e E (usi futuri). Per evitare

conflitti, i numeri di rete sono gestiti da ICANN che ha

affidato la gestione di alcuni ad autorità regionali che

distribuiscono gli indirizzi IP agli ISP e alle aziende. Gli

indirizzi di rete sono formati da 4 byte, ognuno rappresentato

in notazione decimale a punti con un numero che varia tra 0 e

255. Il più basso indirizzo IP è 0.0.0.0, il più alto

255.255.255.255. Alcuni ad es 192.168.0.0 son privati. Indirizzi speciali:

 L’indirizzo IP 0.0.0.0 è usato dagli host al momento del boot (avvio)

 Gli indirizzi IP che hanno lo 0 come numero di rete si riferiscono alla rete corrente. Grazie a questi, i computer

possono utilizzare la rete locale senza conoscerne il numero (devono però sapere la classe, per sapere quanti 0 mettere)

 L’indirizzo composto da tutti 1 permette la trasmissione broadcast sulla rete locale, in genere una LAN

 nel campo host permettono ai computer l’invio di pacchetti

Gli indirizzi con un numero di rete opportuno e tutti 1

broadcast a LAN distanti collegate a Internet (molti disattivano questa funzionalità), quindi rete distante

 I pacchetti diretti a quell’indirizzo

Tutti gli indirizzi nella forma 127.x.y.z sono riservati per le prove di loopback.

non sono immessi nel cavo, ma elaborati localmente e trattati come pacchetti in arrivo. Ciò permette di inviare

pacchetti alla rete locale senza che il trasmettitore conosca il suo numero.

Sottoreti

Tutti gli host di una rete devono avere lo stesso numero di rete, ma ciò è

un problema quando le reti crescono perché si esauriscono tutti gli indirizzi.

È necessaria una soluzione diversa. Ottenere un secondo indirizzo di rete è

sono scarsi e l’università

difficile, poiché questi ne ha già abbastanza. Il

problema dipende dalla regola che lega un singolo indirizzo di classe ad una sola rete, invece che a un gruppo di

LAN. Si deve modificare il sistema di indirizzamento, dividendo internamente la rete in più parti in modo che

all’esterno si veda ancora una singola rete (Figura 1 - router principale collegato a un ISP o a una rete regionale, e

numerose Ethernet sparse nelle facoltà). Ogni Ethernet ha il proprio router collegato al router principale (es. attraverso

una LAN). Le parti della rete, in questo caso le Ethernet, sono chiamate sottoreti e sono composte da tutti i router e

dalle linee di comunicazione di una rete. Quando un pacchetto raggiunge il router principale, come viene identificata la

sottorete (Ethernet) di destinazione di quei dati? Per es. si potrebbe memorizzare nel router principale una tabella

contenente 65.536 voci che indicano il router da utilizzare per ogni host dell’università, ma richiederebbe

l’implementazione di una tabella molto grande e un’impegnativa gestione manuale degli host aggiunti, spostati o guasti.

Si usa uno schema diverso. Invece di avere un singolo indirizzo di classe B con 14 bit per il numero di rete e 16 bit

tolti all’host

per il numero host, alcuni bit sono per creare un numero di sottorete. Per implementare le sottoreti, il

router principale ha bisogno di una maschera di sottorete (subnet mask), scritta in notazione decimale a punti, oppure

da una barra verticale (|), che indichi il punto di confine tra numero di rete (e sottorete) e quello di host (Figura 2 -

All’esterno

maschera scritta come 255.255.252.0, oppure /22 che indica che è lunga 22 bit). della rete la divisione in

l’assegnazione di una sottorete non richiede l’approvazione di ICANN. Nell’es.

sottoreti non è visibile, perciò la

e l’indirizzo binario corrispondenti

prima sottorete potrebbe utilizzare gli indirizzi IP che iniziano dal valore 130.50.4.1

sarebbe (Numero di sottorete di 6 bit, numero di host a 10 bit):

10000010 00110010 000001|00 00000001

Per capire come funzionano le sottoreti è necessario spiegare in che

modo i pacchetti IP sono elaborati dal router. Ogni router ha una

tabella che elenca numeri di indirizzi IP del tipo (rete, 0) che indica

come raggiungere reti distanti, e del tipo (questa rete, host) che indica

come raggiungere host locali. A ogni tabella è associata la scheda di

rete da usare per la destinazione, insieme ad altre informazioni.

Quando riceve un pacchetto IP, il router cerca il suo indirizzo di

destinazione nella tabella, e se è indirizzato a una rete distante,

sull’interfaccia

viene inoltrato al router successivo indicata dalla

tabella, se la destinazione è un host locale (sulla LAN del router),

viene inviato direttamente alla destinazione. Se la rete non viene

trovata, il pacchetto viene inoltrato a un router predefinito

contenente tabelle più estese. Quindi ogni router deve tenere

traccia solo delle altre reti e degli host locali, invece che di tutte le

coppie (rete, host), per ridurre le dimensioni della tabella. Quando si

introduce la tecnica della divisione in sottoreti le tabelle cambiano nella forma (questa rete, sottorete, 0) e (questa

rete, questa sottorete, host). Perciò un router su una sottorete sa come raggiungere tutte le altre sottoreti e tutti gli host

della sottorete. Il dispositivo non deve conoscere i dettagli degli host che si trovano sulle altre sottoreti. La modifica è

minima: è sufficiente consentire a ogni router di eseguire una operazione AND booleano con la maschera di sottorete,

per eliminare il numero host e cercare l’indirizzo risultante nelle proprie tabelle (dopo aver determinato la classe di

appartenenza). Nell’es. un pacchetto indirizzato a 130.50.15.6 che arriva al router principale è sottoposto a un AND con la

maschera di sottorete 255.255.252.0/22; il risultato è 130.50.12.0. Il router principale cerca questo indirizzo nelle tabelle

per identificare la linea di output da utilizzare per raggiungere il router della sottorete 3. La divisione in sottoreti riduce

lo spazio della tabella, poichè crea una gerarchia a tre livelli associata alla rete, alla sottorete e agli host.

CIDR (Classless InterDomain Routing)

IP sta esaurendo gli indirizzi. Il sistema di suddivisione basato sulle classi ne ha sprecato milioni, soprattutto perché le

aziende che hanno chiesto un indirizzo B pensava che un giorno gli 8 bit del campo host non sarebbero più bastati. I

router non devono sapere tutto degli host, ma devono conoscere tutto delle reti. Infatti, se si utilizzassero 500.000

reti C, ogni router di Internet avrebbe bisogno di una tabella contenente mezzo milione di voci, indicante la linea da

L’archiviazione

utilizzare per raggiungerla (insieme ad altre informazioni). fisica di queste tabelle è fattibile, ma costosa.

Un problema più serio è la crescita della complessità dei vari algoritmi che si occupano della gestione delle tabelle e

che richiedono che ogni router trasmetta periodicamente le proprie tabelle che, più sono grandi e più è probabile che

all’altro capo della linea e

alcune parti si perdano lungo la strada, generando dati incompleti forse instabilità nel routing.

Questo problema si potrebbe risolver creando una gerarchia più ramificata. Si poteva immaginare di inserire in ogni

la città, la rete e l’host, cosicché

indirizzo IP dei campi per indicare il paese, lo stato o la provincia, un router avrebbe

dovuto conoscere solamente come raggiungere ogni paese ecc. Ciò però richiederebbe un numero di bit maggiore di 32 e

li utilizzerebbe in modo inefficiente (Liechtenstein avrebbe stesso numero di bit degli Stati Uniti). Quindi alcune

soluzioni risolvono un problema ma ne creano uno nuovo. La soluzione è CIDR che assegna gli indirizzi IP

rimanenti in blocchi di dimensioni variabili, senza tener conto delle classi, ma delle esigenze (insieme

immediatamente superiore di bit a disposizione - es. a un sito che ha bisogno di 2.000 indirizzi viene assegnato un blocco

L’abbandono delle classi rende l’inoltro più complicato.

di 2.048 indirizzi). Il vecchio sistema basato sulle classi

copia dell’indirizzo

funzionava così: quando un pacchetto raggiungeva un router, una IP era spostata a destra di 28

bit per ottenere i 4 bit del numero di classe. Poi una diramazione a sedici percorsi ordinava i pacchetti in A, B, C e

D, con 8 casi per la classe A, 4 per B, 2 per C e 1 per D ed E. Il codice di ogni classe poi mascherava il numero di rete a

8, 16 o 24 bit e lo allineava a destra in una parola di 32 bit. Il numero di rete era quindi cercato nella tabella, per

indice nelle A e B o per hash nella C. Una volta trovato, si cercava la linea di output e si inoltrava il pacchetto. Con

c’è una

CIDR questo algoritmo non funziona più. Ora singola tabella per tutte le reti dove ogni voce è integrata da

una maschera di 32 bit, perciò costituita da una matrice di valori (indirizzo IP, maschera di sottorete, linea di

output). Quando arriva un pacchetto, il router estrae il suo indirizzo IP di destinazione, poi esamina la tabella voce

mascherando l’indirizzo di destinazione

per voce, e confrontandolo con le voci della tabella. È possibile che più voci

(con diverse lunghezze di maschera) coincidano con il valore cercato, in questo caso è utilizzata la maschera più

lunga (es. corrispondenza con una maschera /20 e /24, il router sceglie /24). Sono stati sviluppati algoritmi complessi

accelerano il processo di ricerca dell’indirizzo.

che ESEMPIO: Supponiamo che indirizzi siano disponibili a partire da

194.24.0.0. A Cambridge, che ha bisogno di 2.048 indirizzi, vengono

assegnati gli indirizzi compresi tra 194.24.0.0 e 194.24.7.255, insieme

11

alla maschera 255.255.248.0 (ultimi 11 bit a 0, cioè 32-21=2 =2048

indirizzi, maschera /21). Poi Oxford chiede 4.096 indirizzi (devono

essere multipli di 4096 nella notazione binaria). Quindi non è

possibile assegnargli indirizzi che partono da 194.24.8.0; riceve quelli

compresi tra 194.24.16.0 (multiplo di 4096 successivo libero) e

194.24.31.255 insieme alla maschera 255.255.240.0 (ultimi 12 bit

a 0). Ora, a Edimburgo che chiede 1024 indirizzi sono assegnati

quelli compresi tra 194.24.8.0 (multiplo di 1024 libero) e

194.24.11.255 con la maschera 255.255.252.0 (Figura 1). Le

tabelle di routing in tutto il mondo sono aggiornate con le tre voci appena assegnate. Ogni voce contiene un indirizzo

L’indirizzo

base e una maschera di sottorete (Figura 2). Supponiamo che arrivi un pacchetto indirizzato a 194.24.17.4.

a un’operazione AND con la maschera Questo valore non corrisponde all’indirizzo di

viene sottoposto di Cambridge.

base di Cambridge, perciò l’indirizzo originale viene sottoposto a un’operazione AND con la maschera di Edimburgo.

non corrisponde all’indirizzo Quest’ultimo coincide.

Anche questo di base di Edimburgo, così si tenta con Oxford. Se più

in giù nella tabella non si trovano altre corrispondenze, il router utilizza la voce Oxford e il pacchetto viene inviato lungo

la linea associata. Ora, si considerino le tre università dal punto di vista di un router che si trova a Omaha, che dispone

solo di 4 linee di output dirette a Minneapolis, New York, Dallas e Denver. Quando il software del router riceve le tre

nuove voci, nota che le può combinare in una singola voce aggregata 194.24.0.0/19, quindi il router di Omaha ha

diminuito di due voci le dimensioni della sua tabella. Questa voce invia tutti i pacchetti destinati a ognuna delle tre

università a New York, che se ha una sola linea diretta

a Londra per tutto il traffico inglese, anche questo

router può utilizzare una voce aggregata. Se il

dispositivo ha linee separate per Londra ed Edimburgo

L’aggregazione è usata

deve avere voci separate. per

ridurre la dimensione delle tabelle dei router. La

voce aggregata nel router di Omaha invia a New York

anche i pacchetti trasmessi a indirizzi non assegnati.

Finché gli indirizzi rimangono non assegnati, tutto ciò

non ha importanza; ma se successivamente sono

assegnati a una società californiana, allora è

necessario gestire una nuova voce, 194.24.12.0/22.

NAT (Network Address Translation)

Gli indirizzi IP sono scarsi. Un ISP (fornitore di servizi Internet) potrebbe avere un indirizzo /16 (classe B) con 65.534

numeri host. Se il numero dei clienti supera questo valore, sorge un problema. Con i clienti domestici che usano

connessioni remote è possibile evitarlo assegnando gli indirizzi IP ai computer in modo dinamico al momento della

connessione, recuperandoli al termine e potendoli assegnare ad un altro chiamante. Questa soluzione è per un ISP

con clienti domestici, ma non per ISP con clienti commerciali che vogliono essere sempre in linea, quindi i computer

un router

devono mantenere il proprio indirizzo IP disponibile per tutto il giorno, e sono collegati via LAN, dove c’è

collegato all’ISP da una linea affittata che fornisce connessione continua. Il numero totale di computer non può

indirizzi IP a disposizione dell’ISP;

superare il numero di il limite è facilmente superabile. Due caratteristiche di

l’utente riceve un

questi servizi sono (1) che

indirizzo IP permanente e (2) che il costo

dell’abbonamento non dipende dalla durata

della connessione (addebito fisso mensile). Molti

utenti ADSL o via cavo, il cui numero è in

crescita, rimangono collegati in modo

permanente e ciò peggiora la scarsità di indirizzi

IP. L’assegnazione provvisoria degli indirizzi

IP, per gli utenti remoti collegati via telefono, non

è utile: a un dato istante il numero di indirizzi IP

posseduti dall’ISP.

necessari può superare quelli

Poi molti utenti hanno a casa più computer e

tutti vogliono essere sempre collegati usando il

singolo indirizzo IP che l’ISP ha assegnato loro.

Questo risultato si può ottenere collegando tutti i PC in una LAN e installando un router. Il problema

dell’esaurimento degli indirizzi va risolto aspettando che tutta Internet passi a IPv6 (indirizzi a 128 bit). Serve una

soluzione attuabile in tempi brevi, cioè NAT, la cui idea è assegnare a ogni azienda uno o pochi indirizzi IP per il

l’azienda,

traffico di Internet. Dentro ogni computer riceve un indirizzo IP unico usato per il traffico interno alla rete

pacchetto lascia l’azienda e si dirige verso l’ISP,

locale, ma quando un viene eseguita una traduzione di indirizzo. Per

renderlo fattibile, sono stati dichiarati privati tre intervalli di indirizzi IP, che le aziende possono utilizzare come vogliono:

10.0.0.0, 172.16.0.0 e 192.168.0.0. Nessun pacchetto contenente questi indirizzi può apparire su Internet. Il primo

24

intervallo permette di gestire 2 host (esclusi 0 e -1), la scelta comune in molte aziende, dove ogni macchina ha un unico

pacchetto lascia l’azienda,

indirizzo nella forma 10.x.y.z, ma quando un passa attraverso un dispositivo NAT (Figura)

IP interno (10.0.0.1) nel vero indirizzo IP assegnato all’azienda (198.60.42.12).

che converte l’indirizzo Il dispositivo è

spesso abbinato a un firewall o ad un router aziendale (LAN) che protegge la rete locale controllando tutti i dati

che entrano e escono dalla LAN. Quando ritorna la risposta i dati sono indirizzati a 198.60.42.12; in che modo il

dispositivo sceglie l’indirizzo di destinazione interno? Qui si presenta il problema di NAT. Se ci fosse un campo di

riserva nell’intestazione IP lo si potrebbe utilizzare, ma è rimasto inutilizzato solo 1 bit (non si considerano quelli di type

of service). Si sarebbe potuta creare una nuova opzione, ma ciò avrebbe richiesto la modifica del codice IP di tutti i

computer di Internet, quindi non rapida. Però la maggior parte dei pacchetti IP trasporta carichi utili TCP o UDP e

entrambi hanno intestazioni che contengono una porta sorgente e una di destinazione, entrambe di 16 bit, che aiutano

a identificare il processo che utilizza la connessione e indicano dove inizia e finisce la connessione TCP [descrizione

vale sia per TCP che UDP]. Quando un processo desidera stabilire una connessione TCP con un processo remoto, si

lega a una porta TCP inutilizzata (porta sorgente), presente nella sua macchina (al livello trasporto), e indica al codice

TCP dove devono essere inviati i pacchetti in arrivo appartenenti alla connessione. Il processo fornisce anche una

porta di destinazione che indica chi deve ricevere i pacchetti sulla parte remota. Le porte da 0 a 1024 sono riservate

a servizi noti (es. la 80 utilizzata dai server Web e ciò consente ai client remoti di individuare il servizio). ES: azienda con

un unico numero di telefono. Quando qualcuno chiama il numero principale, risponde un operatore che chiede il numero

e poi inoltra la chiamata all’interno indicato. Il numero principale equivale all’indirizzo IP asse-

di interno desiderato

gnato all’azienda, e i numeri degli interni, invece, le porte che identificano il processo al quale è destinato il pacchetto in

L’utilizzo della

arrivo. porta sorgente permette di risolvere il problema della mappatura. Ci sono 2 casi:

 pacchetto diretto verso l’esterno l’indirizzo sorgente 10.x.y.z è sostituito

Quando un raggiunge il dispositivo,

dall’indirizzo IP dell’azienda, e source port è sostituito da un indice che punta alla tabella di traduzione da

65.536 voci, del dispositivo, che contengono l’indirizzo IP originale e la porta sorgente originale (non basta a

identificare da sola, il processo trasmittente). Infine, i codici di controllo delle intestazioni IP e TCP sono

ricalcolati e inseriti nel pacchetto.

 trasmesso dall’ISP nell’intestazione TCP viene

Quando un pacchetto raggiunge il dispositivo, la source port

estratta e utilizzata come indice nella tabella di mappatura del dispositivo. Dalla voce individuata, il dispositivo

estrapola l’indirizzo IP interno e la source port TCP originale, quindi inserisce entrambe nel pacchetto; poi

per l’inoltro

ricalcola e inserisce il checksum IP e TCP. Alla fine il pacchetto viene passato al router aziendale

sull’indirizzo

basato 10.x.y.z.

Sebbene risolva il problema, molti hanno alcune obiezioni (in RFC 2993):

1. NAT viola il modello gerarchico di IP che afferma che ogni indirizzo IP identifica in modo univoco una singola

possono utilizzare l’indirizzo

macchina. Con NAT, migliaia di macchine 10.0.0.1 (e lo fanno realmente).

2. NAT trasforma Internet da una rete non orientata alla connessione ad una orientata, perché il dispositivo deve

conservare le informazioni (la mappatura) relative a ogni connessione che lo attraversa e mantiene lo stato della

connessione. Se il dispositivo si blocca e la sua tabella di mappatura si perde, tutte le sue connessioni TCP vanno

distrutte. Con NAT, Internet diventa vulnerabile come una rete a commutazione di circuito.

NAT viola l’indipendenza degli strati,

3. perché non assicura che la modifica apportata a uno strato non renda

necessario modificare gli altri.

4. I processi su Internet non sono obbligati a usare TCP e UDP. Se un utente vuole usare un nuovo protocollo di

trasporto per parlare con un altro, NAT (non in grado di individuare source port TCP), non lo farebbe funzionare.

5. Alcune applicazioni inseriscono gli indirizzi IP nel corpo del testo; il ricevente gli estrae e li utilizza. Poiché NAT

non sa nulla di questi indirizzi, non è in grado di sostituirli, perciò il tentativo di utilizzarli fallirebbe. FTP (File

Transfer Protocol) e il protocollo telefonico di Internet H.323 non funzionerebbero. Si potrebbe correggere NAT, ma

non è una buona idea aggiornare il codice del dispositivo

ogni volta che nasce una nuova app.

5.6.3 Protocolli di controllo Internet

Oltre a IP, usato per il trasferimento dei dati, Internet ha

diversi protocolli di controllo utilizzati nel network:

ICMP (Internet Control Message Protocol)

Il funzionamento di Internet è monitorato dai router.

l’evento

Quando avviene qualcosa di imprevisto, viene

comunicato da ICMP di cui stati definiti una dozzina di tipi

di messaggi e ogni tipo è incapsulato in un pacchetto IP.

 destination unreachable: utilizzato quando una sottorete

o un router non sono in grado di individuare la

destinazione, o quando un pacchetto con il bit DF non

c’è

si può inoltrare perché una rete a pacchetti piccoli.

 time exceeded: inviato quando un pacchetto è scartato perché il suo contatore ha raggiunto lo 0. Ciò indica che i

che c’è una

pacchetti si trovano in un ciclo, congestione o che i valori assegnati al timer sono troppo bassi.

 valore illegale in un campo dell’intestazione.

parameter problem: indica che è stato rilevato un Ciò può dipendere

da un errore nel software IP dell’host trasmittente, o nel software di un router attraversato.

 source quench:con la ricezione di questo messaggio si rallentavano gli host che trasmettevano troppi pacchetti.

Oggi usato raramente perché in caso di congestione la situazione peggiora. Il controllo ora eseguito nel trasporto.

 all’host trasmittente

redirect: usato dal router per comunicare che un pacchetto è stato instradato in modo errato.

 echo e echo reply: sono utilizzati per scoprire se una certa destinazione è raggiungibile ed è attiva. Non appena

riceve il messaggio echo, la destinazione deve rispondere con un messaggio echo reply.

 ma registrano nella risposta l’ora di arrivo e

timestamp request e timestamp reply: simili, di risposta del

messaggio per misurare le prestazioni della rete.

ARP (Address Resolution Protocol)

Anche se ogni macchina di Internet ha uno o più

indirizzi IP, questi non possono essere utilizzati per

perché l’hardware

inviare pacchetti che opera sullo

strato data link non comprende gli indirizzi Internet.

Oggi la maggior parte degli host nelle aziende e

università è collegata a una LAN attraverso una scheda

di rete che incorpora in frame un indirizzo Ethernet a 48

bit e che non sa nulla sugli indirizzi IP a 32 bit. Ogni

produttore di schede Ethernet richiede un blocco di

indirizzi, per garantire che nessuna coppia di schede

utilizzi lo stesso indirizzo. In che modo gli indirizzi IP vengono associati agli indirizzi dello strato data link (es agli

Un’università contiene reti di classe C (/24).

indirizzi Ethernet)? Ci sono due Ethernet, ognuna associata ad un proprio

indirizzo IP (Figura 1), collegate a un anello principale (FDDI) con un indirizzo IP. I computer sulle Ethernet hanno

mentre quelli sull’anello FDDI

indirizzi Ethernet unici El, E2, ...E6, (rete in fibra) hanno indirizzi FDDI FI, F2 e F3.

L’host 1vuole inviare un pacchetto all’host cerca l’indirizzo IP del destinatario

2, quindi si tramite DNS, che lo

dello strato superiore sull’host 1 ora costruisce un pacchetto che riporta

restituisce (192.31.65.5). Il software in

l’indirizzo IP dell’host 2, l’indirizzo e

destination address e lo passa al software IP che si occupa di trasmetterlo, esamina

scopre che la destinazione è sulla sua stessa rete, ma ha bisogno di trovare il suo indirizzo Ethernet. Ciò può essere risolto

ma in un’azienda l’aggiornamento

con un file di configurazione che associ gli indirizzi IP agli indirizzi Ethernet, grande

C’è L’host 1 trasmette

di questi file sarebbe soggetto a errori e richiederebbe molto tempo. una soluzione migliore.

chi è il proprietario dell’indirizzo IP 192.31.65.5?

attraverso la Ethernet un pacchetto broadcast che chiede: Questo

l’host 2 risponde

arriva a tutte le macchine della Ethernet 192.31.65.0, ognuna controlla il proprio indirizzo IP e solo

l’host 1 scopre che l’indirizzo IP è assegnato all’host che ha l’indirizzo

inviando il proprio (E2). Così Ethernet E2. Il

protocollo utilizzato per fare questa domanda e ottenere una risposta è ARP. Si deve soltanto assegnare a ogni

macchina un indirizzo IP e decidere le maschere di sottorete e ARP si occupa del resto. A questo punto, il software IP

sull’host 1 costruisce un frame Ethernet indirizzato a E2, inserisce il pacchetto IP nel campo carico utile e scarica il tutto

sulla Ethernet. La scheda Ethernet dell’host 2 rileva il frame, si accorge di essere il destinatario, estraendo il pacchetto IP

Dopo l’operazione, il

e passandolo al corrispondente software IP per verificare la correttezza ed elabora i dati. computer

memorizza in cache il risultato, nel caso fosse necessario ricontattare lo stesso computer. La volta successiva, trovando

l’informazione nella cache, l’host 2

non si dovrà generare alcun messaggio broadcast. In molti casi potrebbe inviare

l’indirizzo Ethernet del trasmittente;

una richiesta per determinare per evitare la trasmissione ARP broadcast, è

sufficiente che l’host 1 includa la propria associazione IP-Ethernet nel pacchetto ARP. Quando la trasmissione ARP

raggiunge l’host 2, la ARP dell’host 2

coppia di valori (192.31.65.7, E1) viene inserita nella cache per un utilizzo

futuro. Si può far si che ogni computer sulla Ethernet trasmetta in broadcast la propria associazione nelle proprie

durante l’accensione.

cache ARP Ciò, però, non genera alcuna risposta diretta. Se arriva una risposta (inattesa), significa

computer hanno ricevuto lo stesso indirizzo IP, perciò l’ultimo a collegarsi deve informare l’amm

che due di sistema e

non avviarsi. Per consentire la modifica delle associazioni, dovute per es a schede Ethernet guaste sostituite con nuove

schede (con nuovi indirizzi Ethernet), le voci nella cache ARP dovrebbero scadere dopo pochi minuti. Si supponga

l’host 1 voglia inviare un pacchetto all’host 4 (192.31.63.8). ARP non funziona perché l’host 4 non riceve la

che

trasmissione broadcast (i router non inoltrano i pacchetti broadcast a livello Ethernet). La soluzione è usare ARP proxy,

nell’interrogare

che consiste una macchina che sta fuori dalla rete locale. Il router CS (Computer Science) si può

l’host 1 crea nella sua cache ARP una

configurare per rispondere alle richieste ARP della rete 192.31.63.0 (EE), quindi

voce contenente la coppia di valori (192.31.63.8, E3) e mette il pacchetto IP nel campo carico utile di un frame Ethernet

indirizzato ad un Ethernet predefinito (E3) in grado di gestire il traffico remoto. Il router CS non deve sapere quali sono

le reti remote che sta servendo. Quando riceve il frame Ethernet, il router CS rimuove il pacchetto IP dal carico utile e

cerca l’indirizzo IP nelle sue tabelle di routing, scoprendo che i pacchetti per la rete 192.31.63.0 devono essere inviati al

in modalità broadcast un pacchetto ARP nell’anello e

router FDDI 192.31.60.7. Se non lo conosce, il router trasmette

scopre che il suo indirizzo è F3. Quindi inserisce il pacchetto nel campo carico utile di un frame FDDI indirizzato a F3 e

immette i dati nell’anello. Sul router EE il pacchetto viene

rimosso dal carico utile e passato al software IP, che deve

inviare il pacchetto all’indirizzo 192.31.63.8. Se l’indirizzo

non si trova nella sua cache ARP, il dispositivo trasmette in

modalità broadcast una richiesta ARP attraverso la Ethernet

EE e scopre che l’indirizzo di destinazione è E6, perciò

costruisce un frame Ethernet indirizzato a E6, inserisce il

pacchetto nel campo carico utile e invia i dati attraverso la

Ethernet raggiunge l’host 4, il

Ethernet. Quando il frame

pacchetto viene estratto dal frame e passato al software IP

per l’elaborazione finale. La trasmissione dall’host 1 verso

una rete distante attraverso una WAN funziona nello stesso

modo, solo che le tabelle del router CS gli dicono di usare

il router WAN il cui indirizzo FDDI è F2.

RARP, BOOTP e DHCP l’indirizzo Ethernet che corrisponde a un indirizzo IP.

ARP risolve il problema di scoprire Il problema inverso si presenta

all’avvio delle stazioni di lavoro senza dischi interni, normalmente ricevono da un file server remoto un’immagine

che

binaria del SO, perciò dato un indirizzo Ethernet come possono scoprire il proprio indirizzo IP? La soluzione è

RARP (Reverse Address Resolution Protocol), che permette a una stazione appena avviata di inviare in modalità

“Il bit è …;

broadcast il proprio indirizzo Ethernet insieme al messaggio: mio indirizzo Ethernet a 48 qualcuno conosce

il mio indirizzo IP?”. Il cerca l’indirizzo Ethernet nei suoi file di configurazione e

server RARP riceve la richiesta,

una risposta contenente l’indirizzo IP

trasmette . È meglio RARP piuttosto che incorporare un indirizzo IP

nell’immagine della memoria, perché è possibile utilizzare la stessa immagine per tutti i computer senza dischi, mentre

ogni stazione ne avrebbe bisogno di una sola personale. Lo svantaggio è che utilizza un indirizzo di destinazione

composto da tutti 1 (trasmissione broadcast limitata) per raggiungere il server RARP che deve essere installato su ogni

Per aggirare il problema c’è

rete, perchè queste trasmissioni broadcast non sono inoltrate dai router. un protocollo di

bootstrap, BOOTP (protocollo di livello 4) che, a differenza di RARP, utilizza datagrammi UDP per le richieste (come

DCHP) con indirizzo di destinazione 1.1.1.1 che si traducono in frame broadcast per la rete fisica locale, e che sono

BOOTP (come DHCP) consente però l’esistenza di

inoltrati attraverso i router. relay agent (agente di collegamento,

uno in ciascuna rete fisica locale, possono risiedere in una rete remota), con il compito di intercettare le richieste e

rispedirle al server BOOTP (o DHCP) con un datagramma UDP unicast. Inoltre fornisce alle stazioni senza dischi

l’indirizzo IP del file server che contiene l’immagine della memoria,

interni alcune informazioni aggiuntive, come

l’indirizzo IP del router predefinito e la maschera di sottorete da usare. Il problema è che richiede la configurazione

manuale delle tabelle che associano gli indirizzi IP a quelli Ethernet. Quando si aggiunge alla LAN un nuovo host,

fino a che l’amm

non è possibile utilizzare BOOTP non assegna alla macchina un indirizzo IP e non inserisce

l’associazione (indirizzo Ethernet, indirizzo IP) nelle tabelle di configurazione di BOOTP. Per eliminare il problema, è

stato esteso diventando DHCP(Dynamic Host Configuration Protocol), configuratore dinamico che permette

l’assegnazione automatica degli indirizzi IP, che ha sostituito RARP e BOOTP e, come questi, ha un server speciale

che assegna gli indirizzi IP agli host che ne richiedono uno e che non deve trovarsi necessariamente sulla stessa LAN

dell’host richiedente. Poiché il server DHCP potrebbe non essere raggiunto dalle trasmissioni broadcast, è necessario

installare in ogni LAN un agente di inoltro DHCP. Per trovare il suo indirizzo IP, una macchina appena accesa invia

L’agente di inoltro

in modalità broadcast un pacchetto DHCP DISCOVER. intercetta tutte le trasmissioni DHCP,

e, quando individua il pacchetto lo trasmette in modalità unicast al server DHCP che può anche trovarsi su una rete

distante. L’agente ha bisogno solo dell’indirizzo IP del server DHCP. Esempio: Supponiamo di avere 100 macchine con

indirizzi privati 10.x.y.z e che siamo collegati ad un provider che ha messo a disposizione solamente 32 indirizzi pubblici.

Per evitare di usare il NAT, questi 32 indirizzi pubblici ricevono continuamente richieste da tutti quelli host che vogliono

uscire, tramite una tecnica FIFO (First In, First Out), cioè

viene attribuito uno di quelli indirizzi pubblici al primo che

fa richiesta in modo che questo possa avere un accesso

garantito verso l’esterno. Stesso discorso per i restanti

indirizzo fino al 32esimo, però il 33esimo che fa richiesta

deve aspettare che si “liberi” un indirizzo

non può uscire e durata dell’allocazione.

pubblico. Un problema è la Se un host abbandona la rete e non restituisce il proprio

indirizzo IP al server DHCP, andrà definitivamente perso, perciò molti potrebbero non essere più disponibili. Quindi

l’assegnazione può essere fissata per un periodo di tempo, con la tecnica leasing. Poco prima della scadenza del

l’host deve chiedere dell’indirizzo.

leasing, al server DHCP il rinnovo Se non riesce a fare la richiesta o questa viene

rifiutata, l’host non può più utilizzare l’indirizzo IP che gli era stato assegnato.

5.6.4 OSPF - Il protocollo di routing per i gateway interni gestito da un’organizzazione diversa, che può adottare

Analizziamo il routing in Internet, rete composta da AS, ognuno

degli standard semplifica l’implementazione al confine

un proprio algoritmo di routing diverso dagli altri. L’esistenza

L’algoritmo di

tra gli AS e permette il riutilizzo del codice. routing adottato in un AS è detto interior gateway

protocol (protocollo di routing per gateway interni), quello tra AS exterior gateway protocol (per esterni). Il primo era

un protocollo basato sul Distance Vector Routing, funzionava bene nei sistemi piccoli, meno in quelli grandi. Aveva

il problema del count to infinity e di una convergenza lenta, perciò fu sostituito da un protocollo basato sullo stato

dei collegamenti, OSPF (Open Shortest Path First), standard elaborato da IETF (Internet Engineering Task Force). Oggi

è il principale protocollo di routing per gateway interni. Si volevano soddisfare alcuni requisiti:

L’algoritmo doveva essere (cioè aperta), da qui la lettera “O” (open)

1. pubblicato senza vincoli di brevetto

dell’acronimo OSPF. Una soluzione proprietaria posseduta da un’azienda non sarebbe accettabile.

2. Il nuovo protocollo doveva supportare diverse metriche di distanza, come la distanza fisica, il ritardo ecc.

3. Essere un algoritmo dinamico, in grado di modificarsi rapidamente e automaticamente in base alla topologia.

4. Doveva supportate il routing basato sul tipo di servizio e doveva saper instradare il traffico in tempo reale in un

modo e il traffico di altro tipo in un altro modo. Il protocollo IP aveva type of service, ma nessun protocollo di routing

lo utilizzava. Questo campo fu incluso in OSPF, ma poi venne rimosso causa inutilizzo.

5. Doveva eseguire il bilanciamento del carico, ossia suddividerlo su più linee per ottenere prestazioni migliori. La

maggior parte dei protocolli inviava tutti i pacchetti lungo il percorso migliore, ma il secondo non era mai usato.

6. Era necessario supportare i sistemi gerarchici. Internet era diventata così grande che nessun router poteva

conoscerne l’intera topologia. Il nuovo protocollo doveva far si che nessun router avrebbe dovuto farlo.

7. Era necessario implementare sicurezza per impedire di inviare ai router false informazioni di routing.

8. Provvedere alla gestione dei router collegati a Internet tramite tunnel, non gestito bene dai protocolli precedenti.

OSPF supporta tre tipi di connessioni e di reti (Figura a):

 linee punto-punto tra due router

 reti multiaccesso con trasmissione broadcast (maggior parte delle LAN)

 reti multiaccesso senza trasmissione broadcast (maggior parte delle

WAN a commutazione di pacchetto).

Una rete multiaccesso è una rete che può contenere più router in grado

di comunicare tra loro, ed è rappresentata da un nodo per la rete stessa

più un nodo per ogni router (gli archi dal nodo di rete ai router hanno

peso 0). Figura (b) rappresentazione grafica della rete in Figura (a). I pesi

sono simmetrici, a meno che non sia indicato il contrario. Gli host non

hanno un ruolo importante in OSPF, che rappresenta la rete reale come un grafo simile a questo dove riassume

l’insieme di router e linee, e ad ogni arco è assegnato un costo (distanza, ritardo ecc), in base al quale calcola il

percorso più breve da ogni router a ogni altro. Molti AS di Internet sono grandi e difficili da gestire, quindi sono

divisi in più aree (composte da una o più reti contigue) e alcuni router possono non appartenere ad alcuna area.

Un’area Dall’esterno,

è una generalizzazione di una sottorete. la topologia e i dettagli non sono visibili. Ogni AS ha

un’area dorsale chiamata area 0 (il numero host sono quasi assenti ed è proprio la sottorete di comunicazione), a cui

tutte le aree sono collegate (per es. con tunnel rappresentato come arco), chiamate aree terminali (stub), perciò si può

passare da un’area ad un’altra dello stesso AS attraverso la dorsale. Tutti i nodi presenti saranno terminali. Dentro

un’area, ogni router ha lo stesso database degli stati dei collegamenti e il compito è calcolare, con lo stesso algoritmo,

il percorso più breve. Un router che collega due aree ha bisogno dei database di entrambe e deve eseguire separatamente

un diverso algoritmo di ricerca del percorso più breve per ogni area. Possono essere necessari 3 tipi di percorsi: interni

all’area, tra aree e tra AS. I primi sono i più semplici, poiché il router sorgente conosce già il percorso più breve

fino all’area di

diretto al router di destinazione. Il secondo segue 3 fasi: dalla sorgente alla dorsale, attraverso la dorsale

destinazione, alla destinazione. Questo algoritmo crea su OSPF una configurazione a stella, con la dorsale che funge da

hub e le altre aree che fungono da raggi. I pacchetti sono istradati dalla sorgente alla destinazione così come sono, senza

essere incapsulati. OSPF distingue 4 classi di router:

 un’area

i router interni (internal router) si trovano dentro

 i router di confine (border router) collegano 2 o più aree

 i router di dorsale (backbone router) sono sulla dorsale

 sul confine dell’AS

i router (boundary router)

comunicano con i router che si trovano in altri AS.

Ad es. un router che si trova sulla dorsale che non fa parte di

nessun’altra area è anche un All’avvio, il

router interno.

router trasmette messaggi HELLO in modalità multicast

sulle LAN, attraverso tutte le sue linee punto-punto, agli altri

router, per scoprire chi sono i vicini. Sulle WAN, per

individuare chi deve essere contattato, il router ha bisogno di alcune informazioni di configurazione. I router sulla

stessa LAN sono tutti vicini. OSPF funziona scambiando informazioni tra router adiacenti, che non equivale a dire

c’è il

tra router vicini (router della stessa LAN). Per evitare la trasmissione ai vicini, router designato, considerato

adiacente a tutti gli altri router della sua LAN, che scambia informazioni. Un router di backup viene costantemente

aggiornato per facilitare la transizione in caso di blocco del router designato principale. Ogni router invia

periodicamente in flooding messaggi LINK STATE UPDATE ai router adiacenti, che comunicano lo stato del

dispositivo e i costi utilizzati nel database. La ricezione di ACK rende questi messaggi affidabili. I messaggi DATABASE

DESCRIPTION annunciano gli aggiornamenti del trasmittente e sono usati quando una linea viene attivata o disattivata

e quando il costo cambia. Confrontando i propri valori con quelli inviati dal trasmittente, il router ricevente può scoprire

all’altro

se uno appena arrivato è più vecchio o nuovo di quello già posseduto. Ognuno dei partner può richiedere

alcune info sullo stato dei collegamenti con LINK STATE REQUEST. Ogni coppia di router adiacenti si controlla

informazioni si propagano attraverso l’area.

per vedere chi ha i dati più recenti e così le Tutti i messaggi sono inviati

come pacchetti IP grezzi. Il flooding permette a ogni router di comunicare a tutti gli altri della sua area chi sono i vicini

costruire il grafo dell’area e di calcolare il percorso

e i costi utilizzati e ciò consente ai router di più corto.

5.6.5 BGP - Protocollo di routing per i gateway esterni

Dentro un AS, il protocollo raccomandato è OSPF. Tra AS si usa BGP (Border Gateway Protocol) perché gli obbiettivi

sono differenti. Un protocollo per gateway interni deve spostare i pacchetti nel modo più efficiente possibile senza

preoccuparsi della politica a differenza di quello per gateway esterni dove si considera. Per es. un AS aziendale

potrebbe voler inviare pacchetti a qualunque sito di Internet e ricevere pacchetti da qualunque altro, ma potrebbe anche

non voler trasportare pacchetti generati o diretta ad un AS straniero. Potrebbe trasportare il traffico di passaggio per i suoi

vicini o per altri AS specifici che hanno pagato per questo servizio. Il protocollo di gateway esterno in generale è stato

progettato per consentire il rispetto di molti di criteri di routing nel traffico tra AS, che coinvolgono considerazioni

politiche, di sicurezza o economiche (es nessun traffico di passaggio attraverso certi AS ecc). In genere i criteri sono

configurati manualmente in ogni router BGP e non fanno parte del protocollo stesso. Due AS sono considerati

collegati se esiste una linea che unisce i loro router di confine. Le reti in BGP sono raggruppate in 3 categorie:

 La prima costituita dalle stub networks (reti terminali), che hanno una sola connessione al grafo BGP e non pos-

perché non c’è nessuna rete dall’altra parte.

sono essere usate per il traffico di passaggio

 La seconda composta dalle multiconnected networks che potrebbero essere utilizzate per il traffico di passaggio,

se non rifiutano di farlo.

 Terza, transit networks (reti di transito) come le dorsali, pronte a gestire pacchetti di terze parti, con restrizioni e

di solito a pagamento.

Coppie di router BGP comunicano tra di loro stabilendo connessioni TCP nascondendo i dettagli della rete

attraversata. BGP è un protocollo basato sul Distance Vector Routing, ma diverso dagli altri come RIP. Invece di

conservare solo il costo di ogni destinazione, ogni router BGP tiene traccia del percorso usato. Quindi, invece di

comunica l’esatto percorso

comunicare periodicamente a ogni vicino il costo stimato di ogni possibile destinazione,

in uso. Per es. si considerino i router BGP (Figura 1a) e la tabella di routing di F e si supponga che questo utilizzi il per-

corso FGCD per raggiungere D. Quando i vicini passano a F le info di routing, forniscono i loro percorsi completi (Figura

b - solo D) che stanno usando, F gli esamina per identificare il percorso migliore. Scarta subito i percorsi da I e E, poiché

passano attraverso lo stesso F; la scelta è tra B e G. Ogni router BGP contiene un modulo che esamina i percorsi

la “distanza”

diretti a una data destinazione e assegna loro un punteggio, con un numero che rappresenta associata a

quella destinazione per ogni percorso. Ogni percorso che viola un criterio di vincolo riceve automaticamente un

punteggio infinito. Il router adotta il percorso che ha la distanza minore. La funzione che valuta il punteggio non fa

parte del protocollo BGP, e può essere scelta dagli amm del sistema. BGP risolve il

problema del count to infinity. Si supponga che G si rompa o che la linea FG si

interrompa. F allora riceve i percorsi BCD, IFGCD e EFGCD dai vicini superstiti, si

accorge che gli ultimi due sono privi di senso, perciò sceglie FBCD come suo nuovo

percorso. Gli altri algoritmi invece fanno spesso la scelta sbagliata perché non sono in

grado di capire quali vicini hanno percorsi indipendenti associati alla

destinazione e quali no. Figura 3: Supponiamo di avere 4 AS differenti tra

loro che hanno dei nodi utilizzatori(A,B,C), tranne AS1. Dunque un as

che è costituito solamente da router e non ha host utilizzatori sarà un

transit network (dorsali) esclusivamente di transito (il numero degli IP

assegnati è molto ridotto e in genere fa capo ad un grosso carrier).

A voglia collegarsi con l’utilizzatore C.

Supponiamo che l’utilizzatore

A, per prima cosa, entra nel suo AS2, dove probabilmente passerà tutti

i router che conosce fino ad arrivare al boundary router, attraverso il

quale esce per arrivare all’AS1. Entrato nell’AS1 continua il suo

percorso fino ad arrivare a C che gli risponderà, magari lungo la stessa

tratta (anche altre tratte). I restanti AS potrebbero essere stub

L’AS3 potrebbe essere un

networks, cioè AS terminali.

multiconnected network, perché è intermedio, e può fare sia da

transito che avere host al suo interno. Considerazioni: se ci si rende

conto che c’è una quantità di traffico enorme tra 2 AS limitrofi e si

deve pagare un transito da un terzo AS, si può inserire un internet

exchange protocol, mettendo un gateway di quel tipo tra i due AS limitrofi interessati, in modo che possano passare più

reti. L’alternativa è uno scambio equivalente (peering), collegando in maniera equivalente i due AS limitrofi interessati.

5.6.6 Internet multicasting

La comunicazione IP avviene tra un trasmittente e un ricevente, ma per alcune applicazioni è utile che un processo

l’aggiornamento di database distribuiti e replicati,

possa comunicare contemporaneamente con tanti ricevitori (es la

gestione di audioconferenze digitali). IP supporta la trasmissione multicast con gli indirizzi di classe D, dove ognuno

identifica un gruppo di host e 28 bit sono usati per identificare i gruppi, e possono esistere nello stesso momento più di

250 milioni di gruppi. Quando un processo invia un pacchetto a un indirizzo D, si tenta di trasmettere i dati a tutti i

membri del gruppo di destinazione, senza alcuna garanzia. Infatti alcuni possono non ricevere il pacchetto. Sono

supportati due tipi di indirizzi di gruppo: permanenti e temporanei.

 Un gruppo permanente è sempre presente, non deve essere impostato e

possiede un indirizzo di gruppo permanente. Alcuni esempi: (Figura).

 I temporanei devono essere creati prima di poter essere utilizzati. Un processo può chiedere al suo host di unirsi

Quando l’ultimo processo

a un gruppo specifico oppure di abbandonarlo. su un host lascia un gruppo, quello non

sull’host.

è più presente Ogni host tiene traccia dei gruppi di appartenenza dei propri processi.

Funzionamento: La trasmissione multicast è implementata da speciali router multicast, che possono essere abbinati

ai router standard. Circa una volta al minuto, ogni router multicast genera una trasmissione hardware multicast

(sullo strato data link) diretta agli host sulla LAN (indirizzo 224.0.0.1) che chiede alle macchine di indicare i gruppi di

appartenenza dei loro processi. Ogni host risponde comunicando tutti gli indirizzi di classe D che gli interessano.

Questi pacchetti di interrogazione e risposta utilizzano il protocollo IGMP (Internet Group Management Protocol), che

assomiglia a ICMP. I due tipi di pacchetti hanno un formato prefissato, con alcune informazioni di controllo nella

prima word del campo carico utile e un indirizzo di classe D nella seconda word. Il routing multicast è eseguito usando

le strutture spanning tree tramite un protocollo chiamato PIM (Protocol Indipendent Multicast), dove ogni router

scambia informazioni con i suoi vicini con un protocollo basato sul Distance Vector e ciò consente di costruire per

ogni gruppo uno spanning tree che ne copre tutti i membri e di non infastidire i nodi che non fanno parte, trami i

tunnel. Si usano vari meccanismi di ottimizzazione per sfrondare la struttura ad albero ed eliminare router e reti non utili.

5.6.8 IPv6

L’attuale forma di IP (IPv4) sta per sparire, causa eccessivo utilizzo. IP quindi deve evolversi, diventare più flessibile,

efficiente e non esaurire mai i suoi indirizzi. I suoi obiettivi principali erano:

 supportare miliardi di host, anche con un’allocazione inefficiente dello spazio di indirizzi

 ridurre la dimensione delle tabelle di routing

 semplificare il protocollo, per consentire ai router di elaborare più rapidamente i pacchetti

 offrire una sicurezza migliore (autenticazione e riservatezza) di quella fornita dall’attuale IP

 fare più attenzione al tipo di servizio, in particolare ai dati in tempo reale

 aiutare la trasmissione multicast permettendo di specificare gli ambiti

 dare all’host la possibilità di spostarsi senza cambiare indirizzo

 permettere al protocollo di evolversi in futuro

 consentire ai protocolli vecchi e a quelli nuovi di coesistere per diversi anni.

Per sviluppare un protocollo in grado di soddisfare questi requisiti, vennero fatte tante proposte e tre delle migliori

furono pubblicate in IEEE Network. Dopo molte discussioni e revisioni venne selezionata la versione combinata SIPP

(Simple Internet Protocol Plus), indicata come IPv6. Mantiene le buone caratteristiche di IP, abbandona o migliora quelle

cattive e ne aggiunge di nuove dove occorre. In generale non è compatibile con IPv4, ma con gli altri protocolli

Internet ausiliari come TCP, UDP, ICMP, IGMP, OSPF, BGP e DNS, dopo piccole modifiche (necessarie per gestire

indirizzi più lunghi). Il primo miglioramento è che IPv6 ha indirizzi più lunghi di IPv4, da 16 byte, che servono per

semplificazione dell’intestazione,

fornire una scorta di indirizzi Internet quasi illimitata. Il secondo è la che contiene

solo 7 campi (contro i 13 di IPv4), e

che permette ai router di elaborare i

pacchetti più velocemente, di

migliorare la capacità di trasporto e

il ritardo. Il terzo è il migliore

supporto per le opzioni per accelerare

l’elaborazione dei pacchetti. Il quarto

è la sicurezza che viene migliorata

con autenticazione e riservatezza.

Poiché queste caratteristiche sono state

introdotte in seguito anche in IPv4, le

differenze della sicurezza non sono più

così grandi. Quinto, è stata data più

attenzione alla QoS. Si passa da

indirizzi a 32 a 128 bit, senza perdere

niente del pregresso e della velocità.

L’intestazione principale di IPv6

 version indica la versione del protocollo usata (valore 6 per IPv6,4 per IPv4).

 traffic class indica la classe del traffico e si usa per distinguere i pacchetti con diversi requisiti di distribuzione in

tempo reale.

 flow label è sperimentale, ma sarà usato per consentire a una sorgente e a una destinazione di impostare una

pseudoconnessione con particolari proprietà e requisiti necessari. Quando è diversa da 0, tutti i router cercano

l’etichetta nelle loro tabelle interne per scoprire il tipo di trattamento speciale richiesto dal pacchetto. Ogni flusso

è rappresentato dall’indirizzo sorgente, di destinazione e dal numero di flusso, perciò tra una data coppia di

indirizzi IP possono essere attivi molti flussi. Anche se due flussi provenienti da host diversi ma con la stessa etichetta

di flusso passano attraverso lo stesso router, questo sarà in grado di distinguerli usando gli indirizzi di origine e di

destinazione. Poiché le etichette di flusso siano scelte a caso e non siano assegnate in modo sequenziale partendo da

un’operazione di hash.

1, i router devono eseguire su di esse

 l’intestazione di 40 byte.

payload lenght (lunghezza del carico utile) indica il numero di byte che seguono Non si

chiama più total lenght come in IPv4 perché il significato è cambiato: i 40 byte di intestazione non sono più

conteggiati nel calcolo della lunghezza.

 next header (intestazione successiva) indica quale delle sei (per il momento) intestazioni estese, se presente, segue

è l’ultima intestazione IP, indica il protocollo di trasporto (TCP o UDP) al quale va passato

quella corrente. Se questa

il pacchetto.

 hop limit è usato come time to live di IPv4, decrementato a ogni salto del pacchetto. In IPv4 la durata espressa in sec,

utilizzava l’etichetta in quel modo,

ma nessun router perciò il nome cambiò.

 source address e destination address: Indirizzi a 16 byte di lunghezza fissa. Per scrivergli è stata escogitata una

notazione: 8 gruppi di 4 cifre esadecimali separate da due punti: 8000:0000:0000:0000:0123:4567:89AB:CDEF

Poiché possono contenere numerosi 0, ci sono 3 ottimizzazioni:

E’ possibile

1. omettere gli 0 iniziali di un gruppo, perciò 0123 diventa 123. Perciò, l’indirizzo precedente

2. Uno o più gruppi contenenti 16 bit a 0 possono essere sostituiti da due punti.

diventa: 8000:: 123:4567:89AB:CDEF

3. Gli indirizzi IPv4 possono essere scritti in notazione decimale a punti dopo una coppia di due punti

128

:: 192.31.20.46 Esistono moltissimi indirizzi a 16 byte (2 ) ed è improbabile che in futuro si esauriscano.

l’intestazione

Confrontando IPv4 con IPv6, si vede che cosa è stato eliminato in IPv6:

 è stato tolto perché l’intestazione

IHL IPv6 ha una lunghezza fissa;

 indica che cosa c’è dopo l’ultima

protocol perché il campo next header intestazione IP (UDP o TCP).

 I campi che riguardano la frammentazione, perché IPv6 la gestisce in modo diverso. Gli host IPv6 compatibili

devono determinare dinamicamente la dimensione del datagramma da usare. Ciò rende la frammentazione meno

probabile.

 La dimensione minima è stata portata da 576 a 1.280 byte, per consentire 1.024 byte di dati e molte intestazioni.

 Quando un host invia un pacchetto IPv6 troppo grande, il router che non è in grado di inoltrarlo, invece di

all’host di suddividere tutti i pacchetti futuri

frammentarlo, trasmette indietro un messaggio di errore che dice

per quella destinazione. Questo è più efficiente che costringere i router a frammentare i pacchetti al volo.

 l’elaborazione

checksum è stato eliminato perché di questa informazione riduce enormemente le prestazioni. Oggi

ci sono le reti affidabili, codici di controllo dello strato data link e degli strati di trasporto.

La rimozione ha permesso di ottenere un protocollo di strato

network leggero, non invadente, veloce e con tantissimi indirizzi.

Intestazione estesa (Figura 1)

Alcuni dei campi mancanti di IPv4 sono ancora necessari, perciò

IPv6 ha introdotto il concetto di intestazioni estese (opzionale),

chiamate anche extension header, utili per offrire informazioni

aggiuntive. Quando ne è presente più di una devono apparire

dopo l’intestazione fissa.

direttamente Ogni elemento è codificato

come una combinazione di 3 elementi:

 che indica l’opzione

Il tipo è un campo lungo 1 byte e i suoi

valori sono stati scelti affinchè i primi due bit istruiscano i rou-

ter che non sanno come elaborare l’opzione su ciò che devono

fare. Le possibilità sono: non considerare l’opzione, scartare il

pacchetto, scartare il pacchetto e inviare un pacchetto ICMP di risposta, scartare i dati e non inviare pacchetti ICMP

per gli indirizzi multicast (per impedire ai pacchetti multicast corrotti di generare milioni di comunicazioni ICMP).

 l’estensione del valore(da 0

La lunghezza occupa 1 byte e indica a 255 byte).

 Il valore è una qualsiasi informazione necessaria, lunga fino a 255 byte.

Le intestazioni sono:

 hop-by-hop (figura 2) usata per le informazioni che tutti i router lungo

E’ l’opzione di

il percorso devono esaminare. stata definita solo sup-

porto dei datagrammi che superano i 64 KB. Quando è usata, payload

lenght è impostato a 0. Inizia con un byte che indica il tipo di

intestazione successiva, poi un altro byte che indica la lunghezza

dell’intestazione hop-by-hop (tranne i primi 8 byte che sono

obbligatori), poi un byte che indica la dimensione del datagramma (codice 194) e infine un numero a 4 byte che

rappresentano la dimensione del datagramma. Gli ultimi 4 byte rappresentano la dimensione del datagramma. I

datagrammi che usano questa estensione di intestazione sono chiamati

jumbogrammi e il loro uso è importante per applicazioni di

supercomputer che devono trasferire gigabyte di dati in modo

efficiente con Internet.

 destination options indica informazioni aggiuntive relative alla

destinazione.

 routing (Figura 3) elenca uno o più router che devono essere visitati

lungo la strada. Assomiglia al loose source routing di IPv4. Ci sono 4

valori lunghi 1 byte:

1. next header e header extensione lenght descritti precedentemente.

indica il formato del resto dell’intestazione

2. routing type (segmenti rimasti) tiene traccia del numero di indirizzi nell’elenco che non sono ancora stati visitati, ed

3. segment left

è decrementato ogni volta che ne viene visitato uno. Quando il valore diventa 0, il pacchetto può seguire il percorso

che desidera.

 IPv4 e contiene l’identificatore di datagramma, la

frammento si occupa delle informazioni di frammentazione come

posizione del frammento all’interno del datagramma originale e un bit che indica se il frammento corrente è seguito da

altri. In IPv6 solo gli host mittenti possono frammentare un pacchetto (non router), e inoltre ogni pacchetto ha una por-

zione non frammentabile costituita dalla testata principale e da tutti gli extention header che devono essere interpretati

dai router. Questo approccio semplifica il lavoro dei router e rende più rapido il processo di routing. Se riceve un

permette all’host

pacchetto troppo grande, il router scarta i dati e invia alla sorgente un pacchetto di risposta ICMP che

sorgente di spezzare il pacchetto in pezzi più piccoli, usando questa intestazione e tentando di nuovo la trasmissione.

 l’autenticità del mittente.

autenticazione fornisce un meccanismo che garantisce al ricevente di un pacchetto

 carico utile cifrato permette di proteggere con la crittografia il contenuto del pacchetto in modo da renderlo leggibile

solo ai destinatari desiderati


ACQUISTATO

5 volte

PAGINE

35

PESO

3.59 MB

AUTORE

jiustin

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica (CAGLIARI)
SSD:
Docente: Fenu Gianni
Università: Cagliari - Unica
A.A.: 2014-2015

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher jiustin di informazioni apprese con la frequenza delle lezioni di Reti di calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Cagliari - Unica o del prof Fenu Gianni.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Reti di calcolatori

Reti di Calcolatori - Appunti Parziale 2
Appunto
Reti di Calcolatori - Appunti Parziale 1
Appunto
Architettura degli elaboratori - Esercitazione
Esercitazione