4. Il livello rete Flashcards
Quali sono le due funzioni principali del livello di rete?
Le due operazioni principali del livello di rete sono l’inoltro(forwarding), che è un operazione locale a scala locale, che sposta il pacchetto da un ingresso del router ad un’uscita. La seconda operazione è l’instradamento(routing), che è un operazione a locale a scala globale, che determina il percorso che un pacchetto deve seguire(viene calcolata da algoritmi di routing).
Spiega le differenze tra data plane e control plane.
Il data plane è una funzione locale in ogni router, che determina come inoltrare un datagramma da una porta di arrivo a una porta di uscita del router(funzione di forwarding). Il Control plane è una logica globale di rete, che determina come instradare un datagramma in un percorso end-to-end, cioè dall’host mittente all’host destinatario.
Descrivi l’architettura di un router in generale.
Dunque possiamo dividere il router in due parti: la parte di software, che ha il compito di routing, gestione e control plane e la parte di hardware che ha il compito d inoltro e data plane.
Qual’è il compito di un sistema di commutazione all’interno di un router e quali sono le diverse strutture possibili?
Il sistema di commutazione utilizza i valori nei campi dell’ header livello 3, trova la porta di uscita corretta usando la tabella di inoltro nella porta di ingresso. L’obbiettivo è non introdurre ritardi ulteriori, prendendo una decisione alla stessa velocità con cui la porta di ingresso riceve dati, perché questo creerebbe accodamento nel buffer. In parole povere i sistemi di commutazione trasferiscono i pacchetti dall’ingresso del router all’uscita appropriata. Ci sono tre strutture tipo(a memoria, a bus e a matrice).
Definisci la commutazione a memoria, a bus e a matrice.
La commutazione a memoria veniva usata nelle prime generazioni di router e di fatto la commutazione è controllata dalla CPU, che copia i pacchetti nella memoria del computer.
Nella commutazione a bus si usa un bus dati condiviso interno al router per trasmettere i datagrammi dagli ingressi alle uscite.
Nella commutazione a matrice, il router utilizza una struttura hardware con un’interconnessione a matrice che collega direttamente le porte di ingresso alle porte di uscita.
Spiega che cos’è l’accodamento alle porte di ingresso e cosa può provocare. Spiega anche che cos’è il blocco “head-of-line”HOL
Un commutatore più lento della velocità complessiva delle porte di ingresso causa accodamenti agli ingressi(ritardi, ma anche perdite dovute all’ overflow dei buffer). Blocco “head-of-line” HOL: un datagramma accodato al primo posto della coda impedisce a quelli successivi di avanzare.
Cosa succede invece se l’accodamento avviene alle porte di uscita?
In questo caso, se i datagrammi arrivano dal commutatore più in fretta di quanto le porte di uscita possano smaltirli, i datagrammi potrebbero essere scartati se le memorie si riempiono.
Che cosa sono i meccanismi di scheduling nei router e a che cosa servono?
I meccanismi di scheduling servono a scegliere quale pacchetto trasmettere prima su un link. Uno dei possibili meccanismi è il FIFO(first-in-first-out), dove si inviano i pacchetti in ordine di arrivo nella coda. In questo caso la politica di scarto i caso di coda piena può essere o tail drop o priority drop o random drop.
Per cosa sta MTU e cosa succede se due reti hanno due MTU diversi?
Ciascun tipo di hardware specifica un limite di dati che una trasmissione può trasportare(Maximum Transmission Unit), quindi ciascun datagramma deve contenere al più un numero di Byte pari alla MTU. Se il router trova un datagramma da una rete con MTU più grande e deve mandarlo ad una rete con un MTU minore, dovrà frammentare il datagramma e inviare ogni frammento indipendentemente dagli altri(il flag nell’ header indica se un datagramma è un frammento o no e il campo offset specifica come concatenarli).
Quando un router frammenta il datagramma perché ci sono reti con MTU diverse, che è che riassembla il datagramma?
Il router che riceve i frammenti non li riassembla, ma li inoltra avanti come pacchetti qualsiasi, poi alla fine la destinazione finale raccogli e riassembla i frammenti.
La frammentazione è quindi una buona strategia o no?
La frammentazioni a livello IP può causare molti problemi e per questo è praticamente disabilitata in Internet, alcuni router nemmeno la implementano e IPv6 non la consente più. La prima ragione per questa decisione è la sicurezza, possono esserci attacchi per ingannare il firewall e mandare dati illeciti o anche attacchi di DDos.
Introduci in maniera più formale gli indirizzi IP.
Un indirizzo IP è un stringa di 32 bit associata ad un’interfaccia(connessione tra l’host o il router e il collegamento fisico, ad esempio gli host può essere il wifi o l’ethernet) di rete. Ogni interfaccia ha almeno un indirizzo IP. Quando si invia un pacchetto su Internet il software che implementa i protocolli di rete lato mittente deve specificare il proprio indirizzo IP e l’indirizzo IP del ricevitore, che serve al router per prendere decisioni sul inoltro e instradamento del pacchetto.
Quale la notazione degli indirizzi IP?
Ogni sezione da 8 bit è espressa come un intero decimale, quindi la gamma di indirizzi va da 0.0.0.0 fino a 255.255.255.255. Inoltre gli indirizzi IP sono generalmente divisi in due parti:
- prefisso: identifica la rete alle quale l’host è allacciato(NetID)
- suffisso: identifica un interfaccia di rete allacciata a quella rete(HostID)
I prefissi sono coordinati a livello globale per non avere duplicati, mentre gli suffissi possono essere assegnati localmente.
Come distinguere NetID e HostID?
In passato avvenivano assegnazioni statiche, però lo spazio degli indirizzi fu presto esaurito. Fu creata un autorità per l’assegnazione degli indirizzi, la ICANN. La ICANN non assegna gli indirizzi direttamente, invece autorizza i registrar a farlo e poi i registrar consentono agli ISP di accaparrarsi “blocchi” di indirizzi, quindi per ottenere un prefisso di rete per sé, bisogna contattare un ISP.
Che cos’è l’indirizzamento classless e quale sono le differenze con quello che utilizza le classi?
Nell’indirizzamento a classi la suddivisione tra prefisso e suffisso è fissa, invece nell’indirizzamento classless, la suddivisione tra questi due è completamente arbitraria.
Quando si utilizza l’indirizzamento classless, come facciamo a riconoscere il limite tra prefisso e suffisso?
La soluzione è memorizzare 32 bit dove gli unici bit a 1 sono quelli del prefisso. In IP questa informazione si chiama subnet mask. Il punto è che la maschera permette di estrarre il prefisso da un indirizzo con un AND logico bit-a-bit.
Quale è la notazione dell’indirizzo IP nella CIDR(Classless Inter-Domain Routing)?
Nella notazione CIDR possiamo sintetizzare i gruppi di 8 bit in un numero decimale da 0 a 255 e alle fine aggiungiamo un /m, dove m indice il numero di bit uguali a 1 nella maschera. Ad esempio: 193.185.15.199/26
Come funzione l’inoltro con CIDR?
Quando riceve un datagramma, un router deve decidere su quale interfaccia inoltrarlo. L’interfaccia usata dipende dall’indirizzo IP di destinazione e al corrispondenza viene identificata usando la netmask. Se ci sono elementi con netmask diverse, si usa quella più lunga. Se invece non c’è corrispondenza allora si usa un valore di default, che di solito è un router che si suppone sappia come inoltrare ulteriormente il datagramma.
Che cosa sono gli indirizzi IP privati e come fanno gli host con questi indirizzi a mandare pacchetti verso Internet?
Gli indirizzi IP privati non escono dalla rete, sono sempre univoci all’interno di una rete privata. Per comunicare con l’internet, utilizzano una proxy, che ha un indirizzo pubblico e uno privato e “media” la connessione per applicazioni specifiche, altrimenti si utilizza anche il NAT.
Che cos’è il NAT e come funziona?
Il NAT(Network Address Translation) è una tecnologia utilizzata per mappare indirizzi IP privati di una rete locale su un unico indirizzo IP. Questo permette ai dispositivi di una rete privata di accedere a Internet condividendo un unico indirizzo pubblico. Questa è una soluzione controversa, perché viola l’architettura a livelli, perché NAT è un router e non dovrebbe cambiare le porte.
Che cosa sono gli indirizzi IP speciali?
Ci sono alcuni tipi di indirizzi IP “speciali” che non vengono mai assegnati agli host. Ad esempio gli indirizzi che denotano tutta la rete, gli indirizzi broadcast(di una rete e locale), “questo computer”, indirizzi loopback, indirizzi multicast, indirizzi IP link-locali, indirizzi IP per i routerC
Come si chiude il cerchio per comprendere il viaggio di un pacchetto dal mittente A al destinatario B?
Dunque il datagramma IP viene incapsulato in un frame(pacchetto di livello2), per poter trasmettere il frame, bisogna inserire l’indirizzo di livello 2 di sorgente e destinazione(MAC address). Il MAC address è un identificativo assegnato a ogni scheda di rete di un dispositivo, utilizzato per comunicare all’interno di una rete locale(LAN).
Quale è il principio dell’ARP?
L’ARP(Address Resolution Protocol) serve se l’host destinatario di un datagramma IP si trova sulla mia rete e voglio inviargli il pacchetto direttamente. Se l’indirizzo IP del destinatario è uguale a C, il mittente invia in broadcast una richiesta che richiede l’indirizzo MAC che corrisponde all’indirizzo IP C. La richiesta raggiunge tutti gli host sulla rete e l’host con indirizzo IP C risponde.
Come viene incapsulato un messaggio ARP?
I messaggi ARP sono interpretati come dati da trasportare e quindi incapsulati nel payload del frame. Nell’ header del frame c’è un tipo Type, che identifica il tipo di dati trasportati, in questo caso identifica che stiamo trasportando un messaggio ARP.