FacoltdiIngegneria
CORSODIPROGETTOEOTTIMIZZAZIONEDIRETI
Docenti
Prof.GianpaoloOriolo Ing.LauraSanit
Studenti
DaniloSoluri GiancarloVolpe
AnnoAccademico2007/2008
SOMMARIO
INTRODUZIONE............................................................................................3 1.PROBLEMAINSTRADAMENTODELTRAFFICO.........................................6 1.1Descrizionedelproblema............................................................6 1.2Formulazionedelproblema.........................................................7 2.ALGORITMODIRISOLUZIONE.................................................................10 2.1Strategiadiordinamentodellecommodity.................................10 2.2Allocazionedeicostisuilinkdellarete.......................................11 2.3Schemadellalgoritmodiinstradamento....................................11 3.SIMULAZIONIEANALISIDEIRISULTATI...................................................15 3.1Topologiadellereti.....................................................................15 3.2Risultatidellesimulazioni............................................................17 CONCLUSIONI..............................................................................................23
INTRODUZIONE
La creazione, gestionee manutenzione di retidi comunicazione uno dei campipi fertili perleapplicazionidellaRicercaOperativa,oltreallaloroimportanzaeconomicaestrategica perlosviluppodiunpaese. Dalle reti telefoniche a centrali elettromeccaniche e dalle reti telegrafiche, che hanno caratterizzatoiprimiannidel20secolo,larealtodiernahasubitounevoluzionenotevole attraverso la diversificazione dei sistemi a rete e lapplicazione di nuove tecnologie di comunicazione. TalesviluppoharicevutounnotevoleimpulsodallusopubblicodiInternetelintroduzione di reti Intranet in aziende. Questo fenomeno ha caratterizzato lera in cui viviamo con la forte integrazione dei diversi servizi di comunicazione: immagini, dati, parole viaggiano semprepisuuninsiemediretiinterconnesse,rendendoormaisuperataladistinzionetra telefono,cellulare,computeretelevisione. Lintegrazionedelleretihageneratounesplosionedelleattivitsvolteattraversounarete, talecheladomandaditrafficocresciutaesponenzialmente. Perfarfronteaquestatendenza,laricercasiorientataversoduedirezioni: Adeguare linfrastruttura tecnologica aumentando la capacit di traffico trasportabiledellereti; Ricercare metodi di gestione delle reti in grado di sfruttare e allocare meglio le risorseesistenti. Per quanto riguarda il primo aspetto, gli interventi sono di natura strutturale. Si portato avantilosviluppoditecnologiechehannopermessoailinkfisicidelleretidiaumentarela lorocapacit.Inquestosenso,unpuntodiarrivoimportantestatalevoluzionedallereti elettrichealleretiottiche. Riguardoagliaspettilegatiallagestionedellereti,unfondamentalecontributostatodato dallosviluppodelTrafficEngineering. Con il termine Traffic Engineering si intende linsieme di quei meccanismi volti ad un uso intelligenteedefficientedellerisorsedirete.IlprocessodiTrafficEngineeringconsistenello stabilire come il traffico debba fluire attraverso la rete, in modo da evitare la congestione 3
dellareteodilinkdellarete,dovutaadunutilizzosbilanciatodellerisorse,edaottimizzare leprestazioni. Gli aspetti di ottimizzazione del Traffic Engineering riguardano la gestione della capacit e del traffico: la prima comprende pianificazione, controllo dellinstradamento e amministrazionedellerisorse;lasecondaincludefunzionidicontrollodeltrafficoneinodie diregolazionedeltrafficoattraversolarete. IlcontrolloeffettuatodalTrafficEngineeringpuesserepreventivooreattivo:percontrollo preventivosiintendeleazioniatteascongiurarelinsorgerediproblemifuturi;percontrollo reattivosiintendelerispostecorrettiveadeventisfavorevoligiverificatisisullarete. Il Traffic Engineering si propone il raggiungimento di obiettivi prestazionali suddivisibili in duecategorie:trafficorientederesourceoriented.Gliobiettivitrafficorientedriguardanola crescitadellaqualitdiserviziofornitaaltraffico.Includonoipacchettipersi,ilritardoela variazionedelritardo.Lefficaciadellepolitichetrafficorientedpuesserevalutataanchein terminidiporzioneditrafficooffertocheraggiungeirequisitiprestazionalirichiesti. Gli obiettivi resourceoriented si riferiscono allottimizzazione dellutilizzo della rete. Per assicuraretaliobiettivinecessariaunefficienteallocazionedellerisorse. Tra gli altri obiettivi del Traffic Engineering vi la minimizzazione della congestione della rete.Tipicamentesiverificanoproblemidicongestionequandolerisorsesonoinsufficientio inadeguate per servire le richieste di traffico, oppure quando il traffico distribuito in maniera asimmetrica sulle risorse provocando la congestione di alcune e il sottoutilizzo di altre. UnaltroimportanteobiettivodelTrafficEngineeringlaffidabilitdelleoperazionidirete. opportunoidearediversiscenaridirecuperoincasodifallimentiperassicurarelacontinuit delservizio.Dopounfallimentosirichiedeunadeguatacapacitnelripristinodelservizioeil TrafficEngineeringdeveessereingradodireinstradareiltrafficovelocemente. Quindilobiettivodiunoperatorediretequellodisoddisfarelerichiestediconnessionee fornire dei meccanismi di recupero in grado di mantenere attiva la trasmissione dei dati anche nelleventualit che parte della rete sia affetta da rottura. Data una richiesta di connessione,sipossonodistinguereduefasi: Unafasediprovisioning,incuivengonosceltiipercorsiperlinstradamentodel traffico;talipercorsisonodettiprimari; 4
Una fase di recovery, in cui si individuano i cammini alternativi, detti secondari, cheidatipercorrerannoincasodiuneventodirottura.
In particolare, in questo lavoro, ci occuperemo della sola fase di provisioning, andando ad analizzare e descrivere il problema di instradamento di traffico su rete capacitata, formulandolo come un PLI, descrivendo un algoritmo euristico adatto a risolverlo e successivamente implementando tale algoritmo mediante linguaggio di programmazione Java. Infineeffettueremodellesimulazionisudiversetopologiedirete,instradandodeifiletestdi matrici di traffico con un numero di commodity vario e diverso livello di carico della rete. Analizzeremoirisultatiottenutievaluteremolefficienzadellestrategieproposte. 5
1. PROBLEMAINSTRADAMENTODELTRAFFICO
1.1. Descrizionedelproblema
Inquestafaselerisorsedisponibilisonofissate:abbiamocomedatolatopologiadellarete costituitadalinkbidirezionaliecapacitati,ovveroadognunodiessiassegnatounvalore finitocherappresentalacapacitmassimadellink,labandamassima.Ogninododellarete puesseresiaoriginechedestinazionediunarichiestaditraffico. Ilproblemariguardalaconfigurazionedellerelativecommodityacostominimo,inbasead unvolumeditrafficostaticoepredeterminato. Lecommoditysonoiflussichedevonoessereinstradatisuilinkdellarete;unacommodityk definitadaunaterna: (ok,dk,bk) Dove okrappresentailnodooriginedelflussodidati; dkrappresentailnododestinazionedelflussodidati; bk il valore della banda della commodity, ovvero la porzione di capacit che deveessereriservatasuilinkquandoilflussovieneinstradato. I flussi delle commodity sono unsplittable, cio non possono essere frazionati e inviati su cammini diversi ma occorre instradarli su un unico cammino dallorigine alla destinazione, quindisecondounoschemadiroutingdettoSinglePathRouting. Ledomandeditraffico,comedetto,sonostaticheecicaratterizzailmomentotemporalein cuiavvienelaconfigurazionedellareteinunoscenariooffline. Lo scenario offline prevede lesistenza di una matrice di traffico contenente linsieme di richieste di connessione tra unorigine e una destinazione per tutte le coppie origine/destinazione, costituita sia dal traffico prenotato (ondemand) e sia dalle stime di quellononprenotato(online). Percalcolareilvalorediutilizzodellerisorsesiutilizzalavariabilecongestione. Lacongestioneunvalorechecidlinformazionesullutilizzodellerisorse:
cong(e)=
k :ePk
b
ue
e E
Ilpiccodicongestionesar:
MAX (cong (e ))
e
chesicercaditenereilpibassopossibile.
1.2 Formulazionedelproblema
Presentiamo ora una possibile formulazione del problema di routing su rete capacitata in terminidiprogrammazionelineareintera. Dati: Grafo G(V,E) orientato e con vincoli di capacit sugli archi. Dove v V linsieme dei nodi,eElinsiemedegliarchi; Unvaloredicapacitdellarcoue, eE; UnamatriceditrafficocostituitadaunsetKdincommodity; Trovare: Uninstradamentoperlecommoditydate,cercandoipercorsiod; FunzioneObiettivo: Massimizzareilnumerodicommoditydasoddisfare; Minimizzareilpiccodicongestione. 7
Introduciamoleseguentivariabili:
1selacommoditykservita x k = 0altrimenti
() {
() {
x
kK
e
(1.1)
b y u e E(1.2) y) = 0k K(1.3) (
k kK k e e ok e + dk
( y)
+
y) (
i
k e
= 0k K(1.4 )
k e
k k
xk
e + ok
y) k K(1.6) (
k e k e
( y)
k e
e dk
y) k K(1.7) (
k K(1.8 ) 2 x k k + k 1k K(1.9)
k x k {0,1};y e {0,1}; k {0,1}; k {0,1}(1.10)
k + k
Lafunzioneobiettivo(1.1)massimizzailnumerodicommodityinstradate(domandeservite); unacommodityservitasestatotrovatouncamminosullaretedalnodooriginealnodo destinazione. Il vincolo (1.2) il vincolo di capacit sui link della rete, atto a garantire che il volume di trafficototaledellecommodityinstallatesullarisorsanoneccedalasuacapacit. Ivincoli(1.3)e(1.4)esprimono,rispettivamente,chenoncisianoarchientrantinelnodo origineenoncisianoarchiuscentidalnododestinazione,perognicommodityinstradata. Ilvincolo(1.5)garantiscelacontinuitdelflussolungoilcamminoperinodiintermedi;per ognunodiessi,infatti,entraunsololinkedesceunsololink,perunacommodityservita. I vincoli (1.6) e (1.7) esprimono, grazie alle variabili ausiliarie k e k , che se una commodity k ha attivato un link dal nodo origine e uno nel nodo destinazione, allora la commoditykservita;eivincoli(1.8)e(1.9)vannoamodellizzareproprioillegametrale variabiliausiliarieelavariabile x k x k = k AND k . 9
2. ALGORITMODIRISOLUZIONE
Assegnati una rete capacitata e una matrice di traffico, il nostro problema consiste nel soddisfare il maggior numero di domande di traffico andando a determinare i cammini origine/destinazione. La risoluzione di una certa istanza di questo problema, per flussi unsplittable come nel nostrocaso,richiedeuntempodirisoluzionemoltoelevatoepuessereinseritonellaclasse di problemi NPHARD. Ci occuperemo, quindi, di implementare un algoritmo euristico, che nongarantisceapriorilottimalitmacheoperandointempilimitatisiaingradodifornire soluzioniaccettabili. Prima di presentare e descrivere dettagliatamente lalgoritmo proposto, andiamo ad analizzarelestrategieelescelteeffettuateaifinidellasuaimplementazione.
2.1 Strategiadiordinamentodellecommodity
Linputdelnostroproblemaconsisteinunaseriedidomandeditrafficochedevonoessere instradate sulla rete; queste commodity sono fornite in una matrice di traffico dove si specifica, per ognuna di esse, lorigine la destinazione e la relativa quantit di flusso da inviare. Faseimportanteperlarisoluzionedelproblemapropostolordinamentodellecommodity inquantolasceltadelpercorsoprimarioperunacommodityinfluenzatadaquanteequali commoditysonostateprecedentementeserviteeinchemodo. Ilcriteriodiordinamentodevelogicamenteseguirelafunzioneobiettivodelproblema,cio servireilmassimonumerodicommoditypossibile. Ilcriteriousatoinquestasede:Valoricrescentidibanda. Utilizzandotalestrategiavengonoinstradateprimalecommoditycherichiedonobandepi piccole;questasceltapermettediaveremaggioresuccessonellinstradamentodiunnumero maggiore di commodity, in quanto inizialmente le risorse vuote vengono riempite
10
gradualmentedallebandebasseinmanierataledaaverequantopispaziopossibileperle restanticommodity.
2.2 Allocazionedeicostisuilinkdellarete
AsupportodellafasediprovisioningsiutilizzalalgoritmodiDijkstra:sullareteverrcercato un cammino minimo per le commodity d e verso le rispettive origini e destinazioni. importante,quindi,andareadefinirequalipesiverrannoassociatiailinkpoichilcostodiun camminotrovatotramitetalealgoritmoriferitoallasommadeicostisuisingoliarchiche compongonoilpercorso,andandoaconcorrereallindividuazionedelminimo. A tale scopo introduciamo il costo di congestione zij su ogni link della rete; questo costo riferito alla percentuale di capacit dellarco utilizzata in relazione alle bande delle commodityinstradate.Quandoquestovaloresarpariad1,perungenericolink,alloranon sarpipossibileinstallaredeiflussiditrafficosudiesso. Indicandoconuelacapacitmassimadellarcoe,ilcostodicongestionesar: zij=1/ue e E,cone=ij. Adungenericoinstantet,quandosullaretesonostateinstradateuncertonumeromdi commodity,ilcostodicongestionesar: doveBklasommadellebandedellemcommodityinstradateilcuipercorsoutilizzaillinke. zij=(Bk+1)/ue
2.3 Schemadellalgoritmodiinstradamento
Dopo aver descritto e formalizzato il problema affrontato, procediamo con la descrizione dellevariefasidellalgoritmoproposto.Larappresentazionegraficamediantediagrammadi flussolaseguente:
11
Ordina
linsieme
delle
commodity
Perogniarco(i,j)E poni:
zij=1/ue,cone=ij
Selezionalakesimacommodity
ApplicalalgoritmodiDijkstra k = k +1 allareteassegnandocosicosti:
arco(i,j)ponicij =zij
NO
Ilcammino esiste?
SI
Assegnalarelativacommodityalcammino eaggiornailpesodegliarchiche costituisconoilpath:zij =zij+bk/uij
NO
Klultima commodity
SI
FINE
Figura2.1:Schemadellalgoritmodiinstradamentomediantedigrammadiflusso
12
Descriviamoipassidellafasesequenzialedellalgoritmo. Si prende in input il grafo G = (V,E) rappresentante la rete fisica e la matrice di traffico composta dalle n commodity, specificando per ognuna origine, destinazione e banda da trasmettere. Successivamente le commodity vengono ordinate come spiegato precedentemente ed inseriteinunalista. AquestopuntovieneselezionatalaprimacommodityeapplicandolalgoritmodiDijkstrasi identifica il percorso minimo dallorigine alla destinazione, allocando i costi come gi spiegato.Seilcamminoesiste,lacommodityvieneassegnataallareteediconseguenzaci saranno dei link, quelli che appartengono al path individuato, che hanno diminuito la loro capacitiniziale,aumentandoillorolivellodicongestione. Quindisiandraoperaresuirelativipesiaggiornandoivaloridelcostodicongestionezijin relazioneallabandabkdellacommodityinstradata. Siripetonoquestipassifinoallultimacommoditydellalista. Procedendo in questo modo si realizza un bilanciamentodella rete, in quando, applicando lalgoritmodiDijkstra,divoltainvoltasiidentificherilcamminoconlaminimacongestione eassegnandolacommoditysiottieneviaviaunlivellamentodeicarichisullerisorse. Nellapplicare lalgoritmo di Dijkstra, bisogna definire in modo corretto la condizione di assegnamento delleetichette ai nodi dellarete; cos da far rispettare il vincolo di capacit sugliarchiche,avendodefinitoilcostodicongestionesuilinkcomeunvalorepercentuale sullacapacitmassima,ugualead1. IndefinitivaseindichiamoconYi letichettaassegnataalnodoi Vedobbiamocercareun camminodicostominimodalnodosalnodot,loschemadellalgoritmo: PASSOP0(Inizializzazione)
13
dalloriginesalladestinazionet.
14
AltrimentitornaalpassoP1.
3. SIMULAZIONIEANALISIDEIRISULTATI
Lalgoritmo proposto in precedenza stato implementato tramite linguaggio di programmazioneJava,inambientedisviluppoJBuilder.Limplementazioneharesopossibile lesecuzionedellalgoritmosuistanzedidiversiproblemi. Inquestocapitolopresenteremoleretisuicuisonostatieffettuatiitest,lesecuzionedelle simulazionielanalisideirisultati.
3.1 Topologiadellereti
Per effettuare i test dellalgoritmo, sono state fornite 3 diverse reti topologicamente differentipernumerodinodipresenti:
Retea7nodi
Figura3.1:Topologiadellaretea7nodi
15
Retea14nodi
Figura3.2:Topologiadellaretea14nodi
Retea43nodi
Figura3.3:Topologiadellaretea43nodi
16
3.2 Risultatidellesimulazioni
Per ognuna delle tre reti, abbiamo testato 4 matrici di traffico con un diverso valore del livellodicaricodellarete:10%,30%,50%,70%.Ognunadiessepresentaundiversonumero dicommoditydainstradare. Lanciando le simulazioni del nostro algoritmo, siamo interessati a conoscere il numero di commodityservitealvariaredellivellodicaricoeilvaloredelpiccodicongestionefinalein ogniconfigurazionedirete. Otteniamoiseguentirisultati:
RETE 7 NODI
100% 100% 100% 99%
% Commodity servite
Figura3.4:Rappresentazionedellecommodityservitealvariaredellivellodicaricoperretecon7nodi
Livellodicaricorete TOTCommodity Piccodicongestione
0.1
0.3
0.5
0.7
22 0.238
62 0.609
99 0.973
143 0.99
Tabella3.1:Numerodicommoditydellematriciditrafficoepiccodicongestioneperretecon7retenodi
17
RETE 14 NODI
100% 100% 100% 84% % Commodity servite
0.1 0.3 0.5 0.7
Figura3.5:Rappresentazionedellecommodityservitealvariaredellivellodicaricoperretecon14nodi
0.1
0.3
0.5
0.7
32 0.42
86 0.868
137 0.995
191 0.997
Tabella3.2:Numerodicommoditydellematriciditrafficoepiccodicongestioneperretecon14nodi
RETE 43 NODI
100% 100% 92% % Commodity servite 76% 0.1 0.3 0.5 0.7
Figura3.6:Rappresentazionedellecommodityservitealvariaredellivellodicaricoperretecon43nodi
Livellodicaricorete TOTCommodity Piccodicongestione
0.1
0.3
0.5
0.7
49 0.491
141 0.996
229 0.996
311 0.997
Tabella3.3:Numerodicommoditydellematriciditrafficoepiccodicongestioneperretecon43nodi
18
I risultati ottenuti mostrano che, seguendo la strategia da noi scelta, lapplicazione dellalgoritmogarantisceilserviziodituttelecommoditycontenutenellematriciditraffico finoacheilvaloredellivellodicaricosimantienesottoil70%.Allaumentaredelnumerodi nodidelleretiedelnumerodicommoditydaservire,ilpiccodicongestioneaumentaedi conseguenzavengonoserviteviaviamenocommodity. Perottenereunoscenarioalternativodiconfrontoepotermegliovalutareirisultatiottenuti in precedenza, procediamo ad apportare una modifica al nostro algoritmo, in particolare cambiandoilcriteriodisceltaperlordinamentodellecommoditycontenutenellematricidi traffico, che rappresentano linput del problema prima di procedere allinstradamento: ordineremolecommoditypervaloridibandadecrescenti. Inquestomodovengonoinstradateprimalecommoditycherichiedonobandepielevate; questa scelta potrebbe permettere di avere maggiore successo nellinstradamento di un numeromaggioredicommodity,inquantoleultimecommoditydellalista,necessitandodi piccolivaloridibanda,hannopipossibilitditrovareunpercorsodisponibilesuilink. Riportiamo i risultati ottenuti applicando questo criterio confrontati con i risultati ottenuti nello scenario principale; per ogni rete si confrontano i valori della percentuale di commodityserviteedelpiccodicongestione,alvariaredellivellodicarico:
RETE 7 NODI
% Commodity servite 100% 98% 96% 94% 92% 90% 0.1 0.3 0.5 0.7 Livello di carico rete Ord_Crescente Ord_Decrescente
Figura3.7:Confrontotrastrategiediordinamentocommoditysullabasedellecommodityserviterete7nodi
19
RETE 7 NODI
Picco di congestione 1 0.8 0.6 0.4 0.2 0 0.1 0.3 0.5 0.7 Livello di carico rete Ord_Crescente Ord_Decrescente
Figura3.8:Confrontotrastrategiediordinamentocommoditysullabasedelpiccodicongestionerete7nodi
RETE 14 NODI
% Commodity servite 100% 95% 90% 85% 80% 75% 70% 0.1 0.3 0.5 0.7 Livello di carico rete
Ord_Crescente Ord_Decrescente
RETE 14 NODI
Picco di congestione 1 0.8 0.6 0.4 0.2 0.1 0.3 0.5 0.7 Livello di carico rete Ord_Crescente Ord_Decrescente
Figura3.9:Diversestrategiediordinamentocommoditysullabasedellecommodityserviterete14nodi
Figura3.10:Confrontotrastrategiediordinamentocommoditysullabasedelpiccodicongestione rete14nodi
20
RETE 43 NODI
% Commodity servite 100% 95% 90% 85% 80% 75% 70% 0.1 0.3 0.5 0.7 Livello di carico rete
Ord_Crescente Ord_Decrescente
Figura3.11:Diversestrategiediordinamentocommoditysullabasedellecommodityserviterete43nodi
RETE 43 NODI
Picco di congestione 1 0.9 0.8 0.7 0.6 0.5 0.4 0.1 0.3 0.5 0.7 Livello di carico rete
Ord_Crescente Ord_Decrescente
Figura3.12:Confrontotrastrategiediordinamentocommoditysullabasedelpiccodicongestionerete43 nodi
Analizzando i risultati ottenuti dalle simulazioni dei due scenari proposti, vediamo che la strategia da noi scelta inizialmente (ordinamento crescente delle commodity) permette di servireunapercentualedicommoditymaggioreougualediquelladelloscenarioalternativo; siverificaununicocasoincuilordinamentodellecommodityinmododecrescenteportaa servireunmaggiornumerodicommodityrispettoallordinamentocrescente:inparticolare nellaretecon7nodiincorrispondenzadellamatriceditrafficoconlivellodicaricodello0.7.
21
Riguardoaivaloridelpiccodicongestionedellarete,dairisultatinonsiriesceadelineareun preciso andamento di questo valore che sia migliore in generale in una strategia rispetto allaltra. Nella rete a 7 nodi, la strategia decrescente sembra produrre un picco di congestione pi bassoconunnumeromaggioredicommodityservite,allaumentaredellivellodicarico. Un andamento inverso si verifica nella rete a 14 nodi, dove per valori bassi del livello di caricolareterisultamenocongestionataconunordinamentodecrescenteeallaumentare delcaricorisultaprevalerelastrategiacrescente. Nellaretecon43nodiinizialmenterisultafavorevolelastrategiadiordinamentocrescentee allaumentaredellivellodicarico,perentrambelestrategierisultaunpiccodicongestione prossimoa1;malastrategiaoriginariadiordinamentocrescente,comegivisto,garantisce diservireunnumeromaggioredicommodity.
22
CONCLUSIONI
Lalgoritmo proposto per il problema di instradamento di domande di traffico su una rete capacitata,risultaessereefficientenelsoddisfarelerichiesteondemanddeiclientioffrendo un elevato livello di servizio in relazione allobiettivo di massimizzare il numero di commodityinstradaterispettandoivincolidicapacitsuilink. Dalle simulazioni effettuate, per ogni tipologia di rete in riferimento a differenti livelli di carico, risulta evidente la flessibilit con cui l algoritmo raggiunge i risultati desiderati in termini di flusso instradato, garantendo sempre unalta percentuale di commodity servite, infattinelnostrocasolimite,conretea43nodielivellodicaricodello0.7,ilvaloreottenuto stato76%. Il valore del picco di congestione, ottenuto dallesecuzione delle varie simulazioni, risulta essere prossimo a 1 allaumentare del livello di carico delle reti, denotando un elevato sfruttamentodellerisorse;ciderivadalfattochelematriciditrafficorappresentavanodei flussididomandastaticipredeterminati.Nelcasoincuisivolesseriservaresuilinkunaparte di capacit per flussi online, cio quelle richieste variabili e imprevedibili che arrivano durante il funzionamento della rete, si dovrebbe operare sullalgoritmo andando a modificareilvincolosullacapacitmassimadeilinkeimpostareilvaloredesiderato.
23
24