5.3 KiB
Traffic Engineering
Problema: minimizzare l'utilizzazione massima dei link.
topologia G = (V,E)
c[i,j] capacita' del link i,j appartenente a E
K insieme dei flussi sorg / dest
alpha massima utilizzazione dei link
La comunicazione tra link avviene tramite OSPF. Risolvendo questo problema, riusciamo a invertire Dijkstra e ottenere nel problema duale i pesi dei link che OSPF puo' utilizzare per instradare i pacchetti. (vedi slides per formulazione standard)
Risoluzione PL
Utilizzando un risolutore di PL (programmi lineari) si trova una soluzione ottimale che pero' non restituisce i pesi che OSPF richiede. Questi pesi sono variabili duali del problema. Inoltre, la formulazione standard tende a dare risultati troppo spalmati (manda pacchetti a link remoti in maniera eccessiva).
Per questi motivi, si decide di minimizzare l'utilizzo totale della rete utilizzando un parametro di controllo r
, prefissato ma modificabile per ottimizzare la dispersione dei pacchetti.
Trasformazione a Duale (forma Asimmetrica)
Utilizzando tecniche standard di programmazione lineare, otteniamo un duale che per definizione contiene tante variabili duali quanti sono i vincoli del problema originale. Essendo che alcuni dei vincoli (quelli nella forma c[i,j]*alpha - sum...
sono relativi ai singoli link, da essi ottengo:
w[i,j] >= 0
Ossia una variabile duale relativa al singolo link che posso considerare un peso.
(vedi slides per formulazione duale)
Io posso creare un vettore contenente tutte le variabili di decisione:
| k = 1 | k = 2 | ...
alpha | {x1[i,j]} | {x2[i,j]} | ...
Dove ogni colonna corrisponde a un flusso sorg/dest.
- Posso notare inoltre che tutte le variabili con criteri di uguaglianza nel primale diventano variabili libere nel duale.
Formulazione duale e Interpretazione
Ottengo due insiemi di variabili di decisione {Uk[i]}
, {W[i,j]}
in cui il problema si formula come: (vedi slides)
Per interpretare la soluzione utilizziamo la slackness complementare, proprieta' dei problemi di programmazione lineare. (vedi slides)
Il risultato e' che:
W[i,j] = r + w[i,j]
Sommando r
alle variabili duali w
ottengo W
, i pesi dei link del protocollo OSPF.
Nota sulla soluzione lineare di problemi
Molte delle volte il duale dei problemi (scrivibili nella forma di programmazione lineare) e' utile da analizzare per scoprire dettagli aggiuntivi / utili nella risoluzione del problema.
Sguardo applicativo: estensioni / practical problems
- Il metodo descritto funziona per un vasto insieme di funzioni di costo, che portano a formulazioni in PL simili l'una all'altra. Un esempio puo' essere l'utilizzo di funzioni di costo approssimate (i.e. lineari a tratti) per semplificare la computazione.
Problemi
-
Le soluzioni sono specifiche per i flussi, metre IP instrada solo in base alla destinazione. Si puo' pero' riformulare il problema per tener conto di quel vincolo.
-
Le soluzioni potrebbero non essere compatibili con le ripartizioni eque sui cammini minimi equivalenti operata da OSPF (link uguale peso, uguale carico). Tener conto di questo vincolo porta a un problema NP-hard. Questa limitazione di OSPF non e' mai stata cambiata, e questo limita molto l'utilizzo dell'approccio PL. Soluzione puo' essere modificare routing IP, utilizzando (ad esempio) MPLS, che porta su internet il concetto tipico di ATM del circuito virtuale. (Non particolarmente utilizzato, vedi slides per approfondimento)
Nota: OSPF, ripartizioni di carico su cammini equivalenti
Per evitare di randomizzare la trasmissione di uno stesso flusso su due link (che metterebbe a dura prova TCP) si puo' utilizzare la quadrupla (IP sorg/dest, PORT sorg/dest), convertirla con una funzione di hash a un valore univoco e indirizzare tutto il traffico di uno stesso hash allo stesso link. Non ottimale, ma meglio che dover gestire TCP che lamenta pacchetti persi.
OSPF (open shortest path first)
Protocollo link state che permette costi dei link compresi tra 0 e 65535.
- Utilizza Dijstra, facendo quindi broadcast della topologia
- Permette i percorsi multipli di pari costo MA traffico diviso equamente
- Molto scalabile
- Cisco raccomanda di utilizzare
costo link = 1/(capacita' link)
(vedi slides)
TCP e controllo di congestione
Studio della strategia di TCP per effettuare controllo di congestione, tramite modelli analitici.
Studio delle prestazioni di TCP
Per studiare le caratteristiche delle connessioni TCP e' possibile effettuare delle simulazioni. Queste hanno il vantaggio di implementare piuttosto fedelmente il comportamento di TCP, ma sono costosi in termini di tempo / lavoro e scalano male.
Alternative: modelli
- modelli deterministici approssimati, semplici, veloci ma assumono steady-state in TCP (non precise). Universalmente scalabili.
- modelli fluidi / stocastici, che modellano anche il comportamento transitorio di TCP ma rimangono comunque approssimazioni.
TCP congestion control
TCP opera alla cieca sulla rete, perche' e' presente solo negli endpoint e non nei nodi. Per effettuare controlli di congestione, TCP manda prima la rete in congestione, poi si regola di conseguenza una volta determinata la potenza della rete. (vedi slides per ripasso congestion control)