1. Indice

2. Reti a Commutazione di Pacchetto

Esistono diverse topologie di topologie per le reti a commutazione di pacchetto.

L’esempio più semplice è quello dell’ethernet hub. L’hub è un dispositivo di livello fisico analogo a tutti gli effetti ad un ripetitore di segnale. Non permette il frame buffering, non fa controlli CSMA/CD e inoltre non fa nemmeno packet switching, ma si limita a ritrasmettere i messaggi verso tutte le uscite.

Dall’hub ci siamo evoluti introducendo l’ethernet switch. Lo switch non solo permette il frame buffering, ma permette anche di effettuare packet switching, controllando il destinatario del messaggi e propagando quest’uiltimo solo nel link corretto. Per fare ciò lo switch deve essere in grado di conservare i frame attraverso un buffer.

Lo switch, che è un dispositivo completamente trasparente verso gli host, effettua anche controlli CSMA/CD.

Inoltre lo switch è un dispositivo plug-and-play self-learning.

Ogni host ha una connessione dedicata verso lo switch, ognuna amministrata con il protocollo ethernet.

Poiché ogni link è indipendente, il massimo numero di trasmissioni con $N$ nodi e uno switch è di $\frac{N}{2}$.

Nell’esempio a destra vediamo infatti come le comunicazioni A-A' e B-B' avvengano in parallelo.

Per permettere un’instradamento corretto ogni switch ha al suo intenro una switch table. La switch table è equivalente ad una routing table (che vedremo più avanti) e contiene:

Uno switch impara quali host possono essere raggiunti attraverso le interfacce, quando si riceve un frame, lo switch impara infatti l’interfaccia del trasmettitore.

Se lo switch non ha informazioni relative all’interfaccia del ricevitore procede a trasmettere il messaggio a tutti.

Lo pseudocodice che descrive come si comporta un switch all’arrivo di un frame è il seguente:

Recupera il MAC address del trasmettitore
Se non è presente nella table lo salva

Recupera il MAC address del ricevitore
if(entrata trovata) then{
	if(l'interfaccia di uscita è uguale a quella di entrata)
		then droppa il frame
	else
		trasmette il frame all'interfaccia indicata all'entrata
}
else
	flood a tutte le interfacce tranne quella di arrivo

2.1. Switched Ethernet

Seguendo l’approccio degli switch è possibile amppliare le reti collegando tra di loro i vari switch:

Bisogna porre particolare attenzione al fatto che switch e router sono due dispositivi diversi che operano a livelli diversi.s

Lo switch, lavorando al livello di link, implementa i livelli 1 e 2, controllando il frame e gli indirizzi MAC. Gli switch lavorano al livello di network, implementando anche il livello 3, controllando quindi il datagram e gli indirizzi IP.

A livello implementativo il router e lo switch vengono collassati in un unico dispositivo hardware. È comunque più corretto da un punto di vista funzionale separare concettualmente i due dispositivi.

Gli switch sono messi a dura prova all’interno dei datacenter, dove abbiamo centinaia di migliaia di host vicini che comunicano tra loro .

È quindi necessario gestire correttamente e in maniera efficace e affidabile grossi carichi di lavoro gestiti da molte applicazioni che gestiscono ogniuna molti clienti, gestendo quindi la distribuzione del carico. Soprattutto, dobbiamo trovare un modo per evitare effetti bottleneck.

All’interno di un datacenter la rete è organizzata così:

I server rack contengono al loro interno dai 20 ai 40 server-blades, ovvero host diversi.

Ogni rack possiede un Top-Of-Rack TOR switch, che permette connessioni ethernet a 40-100Gbps per ogni server-blade.

Diversi rack (a gruppi di circa 16) sono collegati da uno switch di livello 2.

Gli switch di livello 2 sono a loro volta connessi a uno o più switch di livello 1 (anch’esso a gruppi di circa 16). I vari switch di livello 1 sono connessi ai vari router di uscita

2.2. Virutal LANs

Se proviamo a scalare le connessioni ethernet vecchia maniera su cavo coassiale, abbiamo che tutte le comunicazioni di livello 2 devono attraversare intere LAN. Questo genera problemi di efficienza, sicurezza e privacy.

Per ovviare a qesti problemi sono state introdotte le VLAN (Virtual-LAN). Le VLAN generano più domini di broadcast. In questo modo le comunicazioni broadcast vengono confinate al dominio di appartenenza.

L’introduzione delle VLAN introduce però altri problemi amministrativi. Se ad esempio un utente di un dominio di broadcast si dovesse fisicamente spostare attaccandosi ad uno switch di un altro dominio, vorrebbe comunque essere logicamente connesso allo switch del suo dominio, non a quello attuale.

Gli switch che suportono capacita per le VLAN possono essere configurati per definire più LAN virutali sulla stessa infrastruttura LAN. Questo si chiama port-based VLAN, che raggruppa le interfacce di usicta (attraverso uno switch-management-software) affinché un singolo switch fisico si comporti da più switch virtuali.

Questo tipo di VLAN permette tre vantaggi principali:

Le comunucazioni tra VLAN diverse vengono effettuate inoltrando i messaggi ad un router, complicamndo di fatto comunicazioni tra dispositivi magari fisicamente vicini ma con VLAN differenti.

Ad un switch potrebbe essere assegnata una trunk port, che permette di trasmettere frame tra switch diversi con le stesse VLAN

Al formato ethernet standard sono aggiunti 2Byre per l’identificatore di protocollo, 12bit che identificano l’ID della VLAN e 3 che ne sanciscono la priorità (come nelle tabelle a livello IP).

2.3. Packet-Switched WAN

Se scaliamo l’architettura della LAN per aumentarne l’affidabilità, andiamo a generare un nuovo tipo di area network, detto Wide-Area-Netwok o WAN, gestita topologicamente come un mesh.

Uno switch è collegato con un certo numero variabile di altri switch, così da migliorare l’affidabilità nel caso di guasti dei link.

Similmente a come accadeva per gli indirizzi MAC nelle LAN, ogni nodo nelle WAN è identificato da un proprio indirizzo univoco..

Andiamo a introdurre un problema di routing. Adesso infatti sono presenti più percorsi tra uno switch e un’altro. Adesso non ci preoccupiamo di questa scelta, e diamo per scontato di conoscerlo.

Supposto quindi di conoscere il percorso migliore, vediamo quindi come inoltrare i pacchetti all’interno di questa architettura.

I servizi forniti da questa architettura sono di due tipi:

2.3.1. Circuito Virtuale

Crea un percorso dal trasmettitore al ricevitore che i pacchetti seguiranno.

Si comporta similmente ai vecchi circuiti telefonici, dove tutte le azioni si verificano all’interno del percorso.

Nelle comunicazioni si hano tre fasi: setup, comunicazione e teardown.

Una virtual-conneciton consiste in:

  1. Un percorso dal trasmettitore al ricevitore
  2. VC number, dove ogni numero identifica il VC in un link sul perorso. Potrebbe essere diverso per link diversi, anche se identificano lo stesso percorso
  3. Le entrate nelle forwarding tables nei router sul percorso

Allo stesso modo un pacchetto che viagga sul VC possiede l’identificatore di VC piuttosto che l’indirizzo di destinazione.

La forwarding table diventa quindi qualcosa del genere:

Quando un pacchetto viene ritrasmesso da uno switch, gli viene cambiato il VC number in accordo con la propria forwarding table

2.3.2. Datagram Service

Con questo servizio non ci poniamo il problema di stabilire un unico percorso, ma trattiamo ogni pacchetto indipendentemente l’uno dall’altro.

Non abbiamo in realtà nemmeno il concetto di connessione, ma semplicemente ogni switch inoltra i messaggi senza mantenere uno stato.

I pacchetti sono inoltrati, anche attraverso percorsi diversi, sulla base dell’indirizzo del ricevitore.

Avevamo già introdotto la forwarding table all’intenro di una rete LAN:

MAC adress interface TTL
A 1 60
A’ 4 60
B 2 60

Le tabelle di forwarding vengono adesso così trasformate:

Un router non contiene tutti gli indirizzi possibili per efficienza. Si mettono quindi range di indirizzi che via via si amplieranno per switch vicini al network core, e si restringeranno per quelli più verso il network edge

La virtualizzazione delle risorse è una delle astrazioni più potenti all’interno dell’ingegneria dei sistemi.

Ad ora abbiamo visto i concetti di memoria virtuale, dispositivi virtuali. LAN virtuali, macchine virtuali

Introduciamo quindi il concetto di link virtuale.

Il percorso tra un trasmettitore e un ricevitore è trattato virtualmente come un link punto-punto. Questo è comodo poiché, dal punto di vista del network layer è inifluente il servizio di comunicazione che sta alla base.