Esercizi settimana 4 Introduzione Lezione 10 Lo scopo della prima parte della lezione e' di confrontare l'efficienza dei protocolli di comunicazione dall'aloha, al CSMA, al CSMA/CD mettendo in evidenza i motivi che hanno portato alla nascita di nuove soluzioni. DAll'ALOHA al CSMA al CSMA/CD L'algoritmo Aloha presenta il maggior numero di inconvenienti in quanto la possibilità di venire interrotti dura per due volte il tempo di trasmissione. Un passo successivo è stato il CSMA che introduce un meccanismo di ascolto del traffico in rete, se possibile, in reti con mezzo condiviso (ethernet, wireless).la sorgente intenzionata a comunicare ascolta prima di parlare e se sente silenzio trasmette con probabilita p. Questo meccanismo non evita il problema delle collisioni, dovute all'intervallo di vulnerabilità, e quindi è stata introdotta la versione CSMA/CD in cui la fase di ascolto si estende anche dopo l'inizio della trasmissione(per il tempo necessario a superare il tempo di vulnerabilita') eliminando le collisioni di coda. Di tutti questi algoritmi esistono le versioni SLOTTED queste nuove versioni dividono il tempo in intervalli (slot) di durata predefinita permettendo alle varie sorgenti di sincronizzarsi, in questo modo non si puo' venire interrotti da trasmissioni iniziate durante lo slot precedente ma solo da quelle iniziate contemporaneamente(vedi lezione 3).Questo miglioramento e' particolarmente evidente nell'algoritmo ALOHA e nel CSMA mentre nel CSMA/CD non lo e' perche' gli slot in cui ho collisione vengono comunque eliminati dalle code e se queste sono abbastanza lunghe portano un miglioramento molto maggiore. Da questo grafico si mette in evidenza che si possono confrontare algoritmi in due modi: -tra algoritmi dello stesso tipo (slotted o non slotted) -tra tipi diversi dello stesso algoritmo Fare quindi molta attenzione nello scegliere l'algoritmo migliore in quanto nn e' scontato ad esempio che il CSMA non slotted sia migliore si slotted Aloha Per visualizzare piu' efficientemente i miglioramenti passiamo ad un esempio numerico delle versioni slotted dei vari algoritmi di comunicazione: Supponiamo di avere una rete composta da n nodi e che ogni nodo voglia trasmettere un messaggio che dura S slot (suppuniamo per semplicita' che siano necessari 10 slot) e classifichiamo i vari tipi di intervalli(sia per la testa che per la coda). S1 = numero slot di silenzio (slot cattivi) S2 = numero slot di trasmissione (slot buoni) S3 = numero slot di collisione (slot cattivi)
Nello SLOTTED Aloha ci sono solo slot di testa: - la probabilita' che uno slot sia di silenzio e'(1-p)^n quindi ci aspettiamo che S1 sia circa S*(1-p)^n - la probabilita' che uno slot sia di trasmissione e'np(1-p)^(n-1) quindi ci aspettiamo che S2 sia circa S*np(1-p)^(n-1) - la probabilita' che uno slot sia di collisione e'1-(1-p)^n-np(1-p)^(n-1) quindi ci aspettiamo che S3 sia circa S*(1-(1-p)^n-np(1-p)^(n-1)) Nello SLOTTED CSMA ci sono anche SC slot di coda(nell'esempio 10 di coda e 1 di testa) che sono: - SC1=0 - SC2=10*S2 - SC3=10*S3 Nello SLOTTED CSMA/CD gli (sempre SC) slot di coda sono: - SC1=0 - SC2=10*S2 - SC3=0
CONCLUSIONI: L'algoritmo SLOTTED CSMA riduce di un fattore 11 gli slot silenzio poiche' elimina questo tipo di intervallo dalle code. L' algoritmo SLOTTED CSMA/CD riduce, per lo stesso motivo,di un fattore 11 anche gli slot di collisione. Approfondimento sul distance vector Abbiamo visto due algoritmi di routing ed ora proponiamo una variazione di quello distance vector in cui invece di avere informazioni sulla distanza abbiamo informazioni sulla banda dei vari collegamenti. La trasmissione avviene tra x(mittente) ed y(ricevente).nel caso in cui si voglia considerare il tempo di latenza il percorso viene scelto come min{a;b+c} dove a,b,c sono i tempi di latenza dei canali di trasmissione. Se invece noi volessimo determinare il medesimo percorso partendo dall'informazione sulla banda a disposizione su ogni collegamento intermedio tra due nodi(cioè con riferimento alla figura, la linea che congiunge due nodi che si trovano sul cammino che va da x a y) anziche' utilizzare le informazioni sulla latenza allora dovremo calcolare le tratte piu adatte utilizzando la seguente relazione: max{a,min{b,c}} con a,b,c banda dei collegamenti. Split Horizon Nella seguente rete:
se C si rompe B comunica ad A che non è più in grado di raggiungere il nodo C e chiede ad A se ha un percorso alternativo per raggiungere tale nodo. nodo A risponde dicendo che puo' raggiungere C in due passi e così il nodo B crede di poter ancora raggiungere C in tre salti passando attraverso A. Questo meccanismo si propaga all' infinito (count to infinity). Si rimedia a questo problema dando limite al numero di salti che si possono fare, pero' nel decidere questo numero bisogna tenere conto del fatto che deve essere abbastanza alto, per poter ammettere percorsi validi anche se molto lunghi. Pero' questo fa aumentare il tempo necessario per raggiungere la stabilizzazione. Per migliorare l'efficienza in termini di tempo introduciamo l'algoritmo split horizon che sfrutta la seguente idea: quando un nodo invia un aggiornamento di instradamento ai propri vicini, non invia ad un vicino quei percorsi che ha appreso da esso. Con riferimento alla rete di prima, se il nodo C si rompe allora B manda un aggiornamento ad A. Quando A risponde a B dicendo che puo' raggiungere C attraverso B, il nodo B non accetta tale aggiornamento. Lo split horizon puo' avere problemi sulle lunghe distanze, infatti se consideriamo la seguente rete: supponiamo che ci sia un guasto al nodo D e quindi C manda l'aggiornamento sia ad A che a B, il quale arriva prima ad A che a B. Allora A interroga i sui vicini per sapere se hanno un percorso valido per raggiungere D. Supponiamo che riesca a ricevere un tale percorso da B per cui A adesso sa di poter raggiungere il nodo D in tre salti passando attraverso il nodo B. Ora anche a B arriva la notifica di guasto del nodo D e B dice ad A di non essere piu' in grado di raggiungere D. B allora interroga i suoi vicini per avere un nuovo percorso, ma in base all'algoritmo split horizon, non puo' accettare il percorso che gli dice A, ma puo' accettare quello di E tornando cosi' al problema iniziale in quanto si crea un ciclo tra A B E. Il problema si puo' risolvere solo memorizzando il cammino completo (tutti i nodi attraversati) e non limitandosi ai nodi vicini. Framing Il framing su IP è del tipo a sentinella per i datagrammi qualora la loro dimensione dovesse superare MTU essi vengono frammentati. Per questi pacchetti piu' piccoli il framing e' a contatore.
Codifica 4B/5B Esercizio 1: Calcolare le combinazioni legali per la codifica 4B/5B. La specifica di questa particolare codifica prevede che ogni sequenza di 4 bit di dati venga associata ad un' univoca sequenza di 5 bit trasmessa con codifica NRZI. In questa nuova sequenza ciascuna parola di 5 bit per essere legale deve avere al piu' uno 0 in testa e al piu' due 0 in coda.(cioe' o nessuno, o uno, o due, ma non tre) #max di combinazioni=2^5 #max di combinazioni illegali di testa=2^3 #max di combinazioni illegali di coda=2^2 #max di combinazioni legali=2^5-2^3-2^2+1=21 #max di combinazioni illegali=2^5-21=11 CORREGGERE LIBRO PAG 67 Esercizio proposto Dati b bit trovare i valori di x e y in testa ed in coda in modo tale da avere la max efficienza. Suggerimento: La formula da utilizzare è la seguente # combinazioni legali = 2^b-2^(b-(x+1))-2(b-(y+1))+2^(b-(x+y+2)) Flooding Esercizio proposto Supponiamo che il nodo di partenza A debba inviare dei pacchetti tramite flooding. Questo nodo manda i pacchetti nella rete ai propri vicini. Quando i nodi vicini ricevono un pacchetto devono inoltrarlo a loro volta verso i rispettivi vicini. Siccome ogni nodo non ricorda da quale nodo ha ricevuto il messaggio c'e' la possibilita' che lo rimandi verso il nodo che glielo ha inviato, il quale non essendo in destinatario lo inoltrera' ancora. Per risolvere questo problema ogni nodo deve ricordarsi per un certo tempo che messaggi ha inoltrato in modo tale che se li rivede entro questo periodo di tempo sa che lo ha gia' inoltrato e non lo reinvia nuovamente. Il problema e' che maggiore e' il tempo di memorizzazione, maggiore sara' la quantita' di memoria necessaria; meno memoria usa piu' aumenta la probabilita' che il nodo inoltri il pacchetto(inutilmente).quindi qual è la quantita' di memoria che deve avere un nodo per evitare la ritrasmissione del pacchetto? ARP & BGP ARP (Addres Resolution Protocol) ARP ha il compito di consentitre a ciascun host di una rete di costruire una tabella di corrispondenza tra indirizzi IP ed indirizzi dello strato di linea di collegamento(per esempio una rete ethernet).queste associazioni vengono stabilite inviando una richiesta ARP mediante un messaggio broadcast nella rete. BGP (Border Gateway Protocol)
Il problema dell' instradamento interdominio, cioe' tra diversi sistemi autonomi AS(ad esempio una rete universitaria o un' altra rete gestita da un solo amministratore), si rivela complesso in quanto esistono diverse politiche di trasmissione. Ad esempio una rete può non volere che attraverso di lei passino pacchetti diretti ad altre sottoreti, oppure vuole solo inviare o ricevere pacchetti. Per questo motivo diamo piu' peso alla raggiungibilita' piuttosto che all'ottimizzazione del percorso. Ogni AS al suo interno possiede uno speaker che dialoga con gli speaker degli altri AS dicendo loro quali sottoreti è possibili raggiungere attraverso di lui e pubblicizza il relativo percorso. I router di confine, che non coincidono necessariamente con gli speaker,si incaricano di realizzare la politica selettiva di trasmissione BGP inoltrando pacchetti tra AS diversi.