ITMI20011508A1 - Metodo per il routing in reti di telecomunicazioni - Google Patents

Metodo per il routing in reti di telecomunicazioni Download PDF

Info

Publication number
ITMI20011508A1
ITMI20011508A1 IT2001MI001508A ITMI20011508A ITMI20011508A1 IT MI20011508 A1 ITMI20011508 A1 IT MI20011508A1 IT 2001MI001508 A IT2001MI001508 A IT 2001MI001508A IT MI20011508 A ITMI20011508 A IT MI20011508A IT MI20011508 A1 ITMI20011508 A1 IT MI20011508A1
Authority
IT
Italy
Prior art keywords
node
graph
original
fictitious
arc
Prior art date
Application number
IT2001MI001508A
Other languages
English (en)
Inventor
Barbara Ghiglino
Macello Orizi
Original Assignee
Marconi Comm Spa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marconi Comm Spa filed Critical Marconi Comm Spa
Priority to IT2001MI001508A priority Critical patent/ITMI20011508A1/it
Publication of ITMI20011508A0 publication Critical patent/ITMI20011508A0/it
Priority to AT02755539T priority patent/ATE480931T1/de
Priority to EP02755539A priority patent/EP1410583B1/en
Priority to PCT/IB2002/003365 priority patent/WO2003007557A1/en
Priority to US10/483,691 priority patent/US7003300B2/en
Priority to CNA028175824A priority patent/CN1554171A/zh
Priority to CA002453238A priority patent/CA2453238A1/en
Priority to DE60237612T priority patent/DE60237612D1/de
Priority to JP2003513196A priority patent/JP2004535140A/ja
Publication of ITMI20011508A1 publication Critical patent/ITMI20011508A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics

Description

"Metodo per il routing in reti di telecomunicazioni"
La presente invenzione si riferisce a metodi per ottenere percorsi ottimi (routing) all’interno di reti per telecomunicazione, in particolare con traffico SDH/WDM, in modo rapido ed efficiente.
La sempre più elevata diffusione dei servizi di telecomunicazione e la complessità degli apparati che compongono le reti di telecomunicazione comportano notevoli problemi nella progettazione e implementazione di algoritmi di routing che siano efficienti e abbiano soddisfacenti prestazioni.
Nell'architettura di rete tutti gli apparati SDH/WDM della corrente generazione non svolgono un ruolo attivo nel calcolo del cammino minimo e tutte le informazioni riguardanti la rete sono memorizzate in un unico database che contiene una visione completa della rete.
In quest’architettura centralizzata le informazioni che descrivono lo stato attuale della rete devono perciò venire caricate dal database quando deve essere eseguito l’algoritmo di routing per il calcolo del cammino minimo e all’instradamento dei dati. Ciò genera non pochi problemi, soprattutto se si considerano le attuali dimensioni delle reti di telecomunicazione e, soprattutto, la loro crescita tendenziale. Le attuali reti, infatti, sono costituite da alcune migliaia d’apparati (connessi da un numero di links che è proporzionale al numero degli apparati) e l’attuale tasso di crescita porta ad assicurare che si raggiungeranno, a breve, le decine di migliaia, per puntare, non molto lontano nel tempo, alle centinaia di migliaia.
Risulta chiaro che recuperare un così elevato numero di informazioni ogni qualvolta venga richiesto il calcolo di un cammino minimo, comporta un notevole sforzo e, dunque, tempi di risposta troppo elevati. Gli accessi al database, infatti, costituiscono un insieme di operazioni molto costose dal punto di vista temporale: il tempo impiegato negli accessi risulta essere molto più grande del tempo speso effettivamente durante il calcolo.
E’ anche da considerare l’elevata necessità di memoria che è richiesta per caricare tutte le informazioni contenute nel database.
Inoltre, le restrizioni nel routing degli elementi della rete implica una verifica a posteriori dei risultati, con possibili insuccessi e necessità di ripetere nuovamente l algoritmo di ricerca.
Una soluzione proposta è stata quella di partizionare la rete, ottenendo i vantaggi di necessitare di meno memoria (avendosi un grafo più piccolo) e di ottenere un algoritmo di routing più rapido. Tuttavia, il partizionamento da solo permette di affrontare solo parte dei problemi.
Scopo generale della presente invenzione è ovviare agli inconvenienti sopra menzionati fornendo un metodo per potere operare con maggiore efficienza il routing in reti di telecomunicazione, che sia scalabile per non risentire in maniera inaccettabile dell’aumento di apparati e link nella rete e che permetta di rintracciare il percorso ottimo rispettando eventuali vincoli di connessione degli apparati componenti la rete.
In vista di tale scopo si è pensato di realizzare, secondo l'invenzione , un metodo per il routing in reti per telecomunicazioni comprendente le fasi di partizionare il grafo G della rete e creare un grafo ridotto G<R >sulle partizioni Pi in una fase di preelaborazione nella quale si costruisce un grafo duale della rete e si riduce II grafo utilizzando connessioni vincolate dalle caratteristiche degli apparati, ed effettuare il routing sul grafo così trasformato.
Per rendere più chiara la spiegazione dei principi innovativi della presente invenzione ed i suoi vantaggi rispetto alla tecnica nota si descriverà di seguito, con l'aiuto dei disegni allegati, una possibile realizzazione esemplificativa applicante tali principi. Nei disegni:
-figura 1 rappresenta un grafo di una rete di esempio;
-figura 2 mostra un possibile partizionamento della rete di figura 1 in tre sottoreti A,
B e C;
-figura 3 mostra l’aggiunta di nodi fittizi per la partizione A di figura 1.
-figura 4 mostra il grafo ridotto che rappresenta la partizione A originaria e che è creato seguendo il metodo dell’invenzione;
-figura 5 rappresenta un esempio di completamento dinamico del grafo ridotto;
-figura 6 rappresenta un esempio di cammino minimo trovato sul grafo ridotto;
-figura 7 rappresenta il cammino minimo di figura 6 riportato sul grafo originario; -figura 8 rappresenta un esempio di grafo di rete con un percorso ottimo passante più volte per la stessa partizione;
-figura 9 rappresenta una schematica suddivisione di apparati in base a vincoli di connessione.
-figura 10 rappresenta schematicamente una rete originaria di esempio alla quale viene applicato un metodo “Clever Dual Network” secondo l’invenzione;
-figura lla-e rappresentano graficamente passi successivi del metodo applicati alla rete di figura 10;
-figure da 12 a 14 rappresentano un esempio di applicazione di passi del metodo secondo l’invenzione;
-figure da 15 a 17 rappresentano un altro esempio esteso di applicazione di passi del metodo secondo l’invenzione.
-figure da 18 a 24 rappresentano un esempio esteso di applicazione del metodo secondo l’invenzione.
Con riferimento alle figure, in figura 1 è mostrato un esempio generico di rete. Tale rete può essere innanzitutto partizionata, così da ottenere un certo numero di partizioni o sottoreti, di più facile gestione. Si stabilisce che:
1. Ogni apparato della rete appartiene ad una sola partizione. Una partizione contiene più apparati. Questo comporta che l’intersezione fra l’insieme degli apparati appartenenti ad una partizione e l' insieme di quelli appartenenti ad un’altra partizione, scelta a caso, sia l’insieme vuoto.
2. Una partizione non contiene al suo interno altre partizioni. Il partizionamento della rete avviene, dunque, ad un solo livello di astrazione.
3. I links originali della rete sono classificati come:
Inter-Link: questi links collegano due apparati appartenenti a due partizioni distinte. Un Inter-link è caratterizzato dalle coppie <nodo sorgente, partizione sorgente> e <nodo destinazione, partizione destinazione>.
Intra-Link: questi links collegano due apparati appartententi alla stessa partizione. Un Intra-link è caratterizzato dalla tripla di valori cnodo sorgente, nodo destinazione, partizione>.
4. Nessun link può essere classificato contemporaneamente come inter-link e intra-link.
5. Ogni Inter-Link costituisce, per entrambe le partizioni che connette, una porta attraverso la quale può scorrere del traffico. Il traffico che effettivamente scorrerà all’intemo della porta avrà un verso concorde con l’ordinamento cpartizione sorgente, partizione destinazione>. Per questo motivo, lo stesso link, svolgerà il ruolo di porta d’uscita per la partizione sorgente e quello di porta d’ingresso per la partizione destinazione.
Per ottenere il partizionamento di una rete, rappresentata da un grafo con N nodi (apparati), M archi (Links), e una funzione di costo C(M), definire un insieme di P partizioni e assegnare, a ciascuna partizione Pi, n, nodi e m, archi, appartenenti al grafo originale, in modo che, per ciascuno di questi archi, i nodi “tail” e “head” appartengano a P; (intra-links).
I restanti mk archi (i,j), con i nodi i e j appartenenti a due partizioni diverse, sono gli inter-link.
Le P partizioni sono collegate tramite mk archi (inter-links) del grafo originale.
Dal rispetto delle regole (1) e (2) si ha:
In figura 1 è mostrato un esempio di una possibile rete, che chiameremo rete originaria, e in figura 2 è mostrato un possibile partizionamento di tale rete in tre sottoreti A, B e C. E’ ovvio che con l’aumento delle dimensioni delle reti, anche il partizionamento genera sottoreti di dimensioni eccessive per quanto riguarda la gestione del database. D’altra parte, il partizionamento della rete ha un limite nella necessità di evitare una eccessiva frammentazione della rete con un conseguente troppo elevato numero di partizioni.
L’obiettivo che si vuole perseguire è quello di mantenere in memoria un insieme di informazioni di base che “riassumano” lo stato attuale della rete, così da non dovere mantenere in memoria una copia completa del grafo originale (sia esso di una sottorete o della rete) è quindi evitare di dovere caricare tutti i dati che descrivono la rete.
Secondo l’invenzione, dal grafo G della rete originale si estrae perciò un grafo ridotto G<r>.
Per costruire tale grafo ridotto si seguono le seguenti fasi:
1. Ad ogni inter-link del grafo originale si assegna un nodo nf nel grafo ridotto G<R>.
2. Per ogni partizione
Si suddivide l’insieme delle porte nei due insiemi di porte d’ingresso e di porte d’uscita.
A livello di partizione Pi, si associa a ciascuno dei nodi fittizi nf creati al punto 1, rappresentanti una porta (inter-link) della partizione Pi, un nodo fittizio che sarà un nodo fittizio d’ingresso nf o d’uscita nfu secondo il verso della relativa porta.
Si collega il nodo fittizio nf / nfu, con quel nodo che, nel grafo originale, è collegato alla porta in questione. Per evitare di contare due volte lo stesso costo, assegnare il costo 0 all’arco che ha, come head, il nodo nfu. Il costo dell’arco che ha, come “tail” il nodo nf, rimane invece invariato al valore Cin. Si calcola il cammino minimo da ogni nodo fittizio d’ingresso nf ad ogni nodo fittizio d’uscita nfu: ciascun cammino è caratterizzato da un insieme di archi del grafo originale che collegano la coppia di nodi <porta d’ingresso, porta d’uscita:».
3. Ad ogni cammino, costituito da un insieme non vuoto di archi, calcolato al punto 2, si associa un arco nel grafo ridotto mr che collega i nodi nf rappresentanti le due porte. Se il cammino fra i due nodi fittizi non esiste, e dunque l’insieme di archi associato a tale cammino è l’insieme vuoto, non si inserisce l’arco nel grafo ridotto.
4. Si associano le seguenti informazioni a ciascun arco mr del grafo ridotto:
- La lista L di archi del grafo originale attraversati dal cammino che, nel grafo originale, collega le porte relative ai nodi fittizi nf e nfu.
- Il costo, pari alla somma dei costi degli archi attraversati dal cammino nel grafo originale.
- Il nome della partizione nella quale il cammino è stato calcolato.
Si definisce (G<R>(Pi)), l insieme di archi di G<R >la cui lista di archi L è stata calcolata all’interno della partizione Pi. In modo equivalente, (G<R>(Pi)) rappresenta l’insieme di archi di G<R >il cui campo partizione vale Pi.
In figura 3 è mostrata l’aggiunta di nodi fittizi per la partizione A di figura 1. In figura 4 è mostrato il grafo ridotto che rappresenta la partizione A originaria e che è creato seguendo le fasi sopra esposte.
Per rendere più chiara la comprensione della costruzione del grafo ridotto non sono stati inseriti i costi degli archi nelle figure, in modo da non appesantire la rappresentazione.
Si ipotizzi ad esempio che il cammino minimo all'interno della partizione A, dalla porta 7,6 a quella 5,14, sia {7,6; 6; 3; 4; 5; 5,14}. Le informazioni associate all'arco del grafo ridotto GR, <7,6 ; 5,14> saranno perciò:
1. La lista L: L = {<7,6 ; 6> , <6;3> , <3;4> , <4;5> , <5; 5,14>}.
2. Il costo complessivo di questo cammino.
3. Il nome della partizione: A.
Sempre per chiarezza espositiva, il cammino è indicato come una successione di archi nella quale ad ogni arco è stato assegnato, come identificatore, la coppia di nomi dei relativi nodi “tail” e “head”. Ovviamente, questa dicitura non vale nel caso in cui esista più di un arco che collega, nello stesso verso, la stessa coppia di nodi. Un'altra semplificazione, sempre finalizzata alla comprensione del presente esempio, è quella di indicare con nomi diversi i nodi appartenenti a partizioni diverse: in realtà, un apparato è contraddistinto dalla coppia di valori “Nome, Partizione”, ed è dunque possibile che due apparati appartenenti a due partizioni diverse condividano lo stesso Nome.
Nel momento in cui arriva una richiesta di connessione R per una coppia di nodi individuati con le coordinate <nodo sorgente ns, partizione sorgente Ps>, <nodo destinazione nj, partizione destinazione Pd>, è necessario completare il grafo ridotto seguendo le seguenti fasi:
1. Aggiungere al grafo ridotto i nodi sorgente e destinazione del grafo originale.
2. Per la coppia < ns, Ps>:
Prelevare dal database tutte e sole le informazioni relative alla partizione sorgente.
Calcolare i cammini minimi dal nodo sorgente a tutte le porte d’uscita della partizione sorgente.
Associare a ciascuno dei cammini calcolati al precedente punto, un arco che contiene le stesse informazioni contenute dagli altri archi del grafo ridotto (lista di archi attraversati nella partizione sorgente, costo complessivo, nome della partizione sorgente).
3. Per la coppia < nd, Pd>:
Prelevare dal database tutte e sole le informazioni relative alla partizione destinazione;
Calcolare i cammini minimi da tutte le porte d'ingresso della partizione destinazione al nodo destinazione.
Associare a ciascuno dei cammini calcolati al precedente punto, un arco che contiene le stesse informazioni contenute dagli altri archi del grafo ridotto (lista di archi attraversati nella partizione destinazione, costo complessivo, nome della partizione destinazione).
Nella figura 5 viene presentato un esempio di completamento dinamico del grafo ridotto, applicato al GR di figura 4, necessario al calcolo del cammino dal nodo 1 della partizione A (<1,A>) al nodo 8 della partizione C (<8,C>).
Una volta completato il grafo ridotto, è possibile calcolare il cammino minimo richiesto, operando direttamente sul grafo ridotto.
Si ottiene perciò una lista ordinata di archi <nfi,nfu> del grafo ridotto GR. A ciascun elemento della lista, cioè ad ogni arco mr del grafo ridotto, è associata la lista di archi del grafo originale che sono attraversati dal cammino ottimo fra le due porte relative ai nodi fittizi nfi e nfu.
L’ultimo passo, necessario per fornire la soluzione richiesta, consiste nel linearizzare le liste seguendo l’ordine degli archi del grafo ridotto costituenti la soluzione ed evitando, ovviamente, di ripetere gli archi inter-link.
Si supponga, ad esempio, che il cammino minimo, dal nodo 1 della partizione A, <1,A>, al nodo 8 della partizione C, <8,C>, calcolato sul grafo ridotto di figura 5, sia quello riportato in figura 6. Come si vede in figura 6, questo cammino minimo è costituito dalla sequenza di tre archi del grafo ridotto: l’arco <1,A; 5,14> e l’arco <12,11; 8,C> che sono stati aggiunti durante il completamento dinamico del grafo ridotto, e l’arco <5,14; 12,11> che è stato introdotto durante la costruzione del grafo ridotto.
Supponiamo che ai tre archi siano associate le seguenti informazioni:
1. Arco <1,A; 5,14>:
• L = {<1;2>, <2;5>, <5;5,14>}.
• Costo c1 = 12.
• Nome partizione: A.
2. Arco <5,14; 12,11>
• L = {<5,14;14>, <14;15>, <15;16>, <16;12>, <12;12,11>}
• Costo c2 = 5
• Nome partizione: B.
3. Arco <12,11; 8,C>:
• L = {<12,11; 11>, <11;10>, <10;7>, <7;8>}
• Costo c3 = 6
• Nome partizione: C.
Il cammino minimo dal nodo 1 al nodo 8, nel grafo originale, ha dunque un costo pari alla somma dei costi di questi tre archi, ctot = c1 + c2 + c3 = 23, ed è costituito dalla sequenza di archi:
percorso = {<1;2>, <2;5>, <5;14>, <14;15>, <15;16>, <16;12>, <12;11>, <11;10>, <10;7>, <7,8>}.
Il cammino trovato dal nodo 1 al nodo 8 sul grafo originale è dunque quello rappresentato in figura 7.
Deve essere osservato che il metodo di routing proposto garantisce che venga calcolato il cammino ottimo anche nel caso particolare che il cammino ottimo passi più volte dalla stessa partizione, come mostrato esemplificativamente in figura 8. Ciò risulta particolarmente importante nel caso in cui il nodo sorgente e il nodo destinazione appartengano alla stessa partizione. In tale caso, può essere vantaggioso caricare tutte le informazioni relative alla partizione contenente i due nodi e tentare prima di calcolare il cammino minimo fra i due nodi all’ interno della partizione senza utilizzare il grafo ridotto. Il cammino così calcolato non è necessariamente quello ottimo, il quale poteva appunto passare per altre partizioni e poi rientrare nella partizione contenente i due nodi, ma costituisce una valida soluzione al problema di creare una connessione perché, in genere, si riesce a limitare il numero di link costituenti il cammino. Se questo primo tentativo fallisce perché il cammino all’ interno della partizione non esiste, ciò non significa che non esista nella rete originale: per questo motivo, se il cammino non è stato trovato, basta estendere il calcolo a tutto il grafo ridotto, procedendo con il metodo secondo l invenzione come nel caso generale.
Sempre in riferimento al calcolo del percorso minimo sul grafo ridotto, la cancellazione sul grafo ridotto dei nodi sorgente e destinazione e dei relativi archi incidenti può essere effettuata in un qualunque momento precedente il calcolo della successiva connessione. A tale proprosito, può essere vantaggioso cancellare tali informazioni solo nel momento in cui arriva una nuova richiesta di connessione. In questa maniera, infatti, se il nuovo nodo sorgente/destinazione coincide con il precedente nodo sorgente/destinazione, si possono riutilizzare le precedenti informazioni.
Naturalmente, sarà necessario aggiornare quei link che sono eventualmente diventati inconsistenti dopo il calcolo della precedente connessione.
Ciò è una necessità generale: fornita la soluzione, bisogna garantire la consistenza del grafo ridotto nei confronti del grafo originale; il grafo ridotto, infatti, deve riassumere, in ogni istante, lo stato attuale della rete.
Esistono diverse situazioni che possono generare problemi di consistenza. I principali si possono riassumere in: impiego di risorse già allocate; rilascio di una connessione; inserzione di un nuovo nodo/link in una partizione; cancellazione diun nodo/link in una partizione; Inserzione di un inter-link; cancellazione di un inter-link.
Si esamineranno di seguito questi casi principali.
Ad esempio, per evitare che una successiva connessione possa utilizzare le risorse di quella appena calcolata, le risorse impiegate dalla soluzione trovata devono essere assegnate', in questa maniera una successiva richiesta di connessione non potrà utilizzare tali risorse fino a quando queste non verranno rilasciate. Il problema di consistenza, che in questo caso possiamo definire “problema di occupazione di risorse”, si verifica per tutti i link m<r >del grafo ridotto G<R>, appartenenti al cammino trovato e per tutti i link del grafo ridotto G<R >che contengono, nella loro lista L, un link di G appartenente alla soluzione trovata. Al contrario, il problema di consistenza, in questo caso, non si verifica per tutti quei link di G<R >che sono stati calcolati in partizioni di G non attraversate dalla connessione instaurata, e per tutti quei link di G<R >che non contengono, nella propria lista, uno dei link appartenenti alla soluzione trovata: il cammino minimo, infatti, rimane immutato rispetto al caso in cui le risorse non erano state ancora assegnate.
Identico problema di consistenza, con identica soluzione, si ha quando si cancella un nodo/link di una partizione.
Per contro, al rilascio di una connessione si ha la situazione, duale della precedente, che può generare problemi di consistenza a causa del fatto che le risorse precedentemente occupate da una connessione diventano disponibili per il calcolo di nuove connessioni. In presenza di un tale evento, dunque, è necessario aggiornare tutti i cammini calcolati all’interno delle partizioni di G che sono attraversate dalla connessione rilasciata.
Identici problemi di consistenza si hanno nel caso di inserzione di un nuovo nodo/link in una partizione e risulta nuovamente necessario aggiornare tutti i cammini calcolati all’intemo della partizione dove il nuovo nodo/link viene installato.
Quando invece avviene l’inserzione di un inter-link al nuovo arco di G viene associato un nuovo nodo appartenente a GR. L’inserzione di questo nuovo nodo comporta il calcolo, all’intemo della partizione contenente il nodo tail, dei cammini da tutte le porte d’ingresso fino all’ inter-link in questione, e il calcolo, all’intemo della partizione contenente il nodo head, dall’ inter-link a tutte le porte d’uscita.
All’opposto, alla cancellazione di un inter-link il nodo di GR che rappresentava questa porta deve essere cancellato insieme a tutti gli archi (sia in ingresso che in uscita) che vi incidono.
Come si vede, è necessario un certo impegno per mantenere sempre consistente il grafo ridotto. Può sorgere il dubbio che l’impegno speso per mantenere il grafo ridotto in uno stato consistente vanifichi i vantaggi del suo uso e che non si ottengano tempi di risposta migliori rispetto al caso in cui si estraggono tutti i dati dal database ogni volta che arriva una nuova richiesta di connessione.
In realtà è stato verificato che il tempo necessario ad aggiornare il grafo ridotto può essere tranquillamente speso successivamente alla esposizione del percorso trovato e, quindi, nel tempo “morto” fra due richieste. Da parte del cliente, nel caso in cui l' algoritmo di routing utilizzi il grafo ridotto, c’è quindi l’indubbio vantaggio di ricevere una risposta immediata, in quanto, il tempo di aggiornamento del grafo ridotto non grava sul cliente.
Gli unici accessi al database che vengono effettuati nell’ intervallo di tempo che intercorre fra l’arrivo della richiesta di connessione e la visualizzazione della risposta, riguardano soltanto le due partizioni sorgente e destinazione: si ricorda che questi dati sono necessari al completamento dinamico del grafo ridotto. E’ evidente che in questa maniera si raggiunge l’obiettivo di accedere il meno possibile al database.
Inoltre, sperimentalmente, è stato osservato che il numero di links che costituiscono una connessione è molto piccolo in confronto alle dimensioni della rete.
Il piccolo numero di archi costituenti una connessione permette di affermare che la probabilità che la connessione attraversi poche partizioni è molto elevata: ciò vuol dire che risulta improbabile dovere caricare una mole considerevole di dati dal database. Solo nella fase di costruzione del grafo ridotto si accede al database per prelevare tutti i dati della rete: tale fase di pre-processing, una volta terminata, non incide più sul tempo di risposta.
Allo stesso tempo, data una partizione Pj attraversata dalla connessione appena instaurata, risulta poco probabile che tutti gli archi di (G<R>(Pi)) debbano essere nuovamente calcolati, dato che, non essendo elevato il numero di archi della connessione che appartengono alla partizione Pi, è improbabile che un arco di G<R>Pi) contenga nella propria lista L uno degli archi della connessione. In realtà, quest’ultimo aspetto dipende fortemente dalla topologia e dalla distribuzione dei costi delle varie partizioni: nella costruzione del grafo ridotto può infatti succedere che più archi di G<R>(P<i>) contengano lo stesso link nel caso in cui, all’interno di Pi, esistano dei cammini obbligati o archi particolarmente vantaggiosi in termini di costo.
Da non sottovalutare, infine, la possibilità di “parallelizzare” l’algoritmo. Dato che gli apparati gestiti non svolgono un ruolo attivo nel calcolo del cammino minimo e quindi risulta impossibile, al momento, realizzare un algoritmo distribuito, l’unica maniera per ottenere quest 'obbiettivo consiste nell 'utilizzare al meglio i calcolatori destinati alla gestione della rete. Questi calcolatori sono macchine multi-processore, a memoria condivisa, e molto potenti.
L’utilizzo del grafo ridotto, aggiunto al partizionamento della rete, permette di distribuire il carico di lavoro sui vari processori in base ad una distribuzione geografica delle risorse: si può pensare di associare un thread ad ogni partizione in modo da eseguire in parallelo le operazioni di costruzione e aggiornamento del grafo ridotto.
Nelle reti di telecomunicazione alcuni apparati SDH/WDM distribuiti nella rete introducono vincoli di connessione che complicano notevolmente l’algoritmo di routing. Un vincolo di connessione implica che non è sempre possibile, data una stabilita porta d’ingresso, connetterla con una qualunque porta d’uscita.
Le porte di un apparato si possono ad esempio raggruppare in tre possibili insiemi a seconda dei vincoli di connessione che possiedono. Si possono così distinguere:
- porte prive di restrizioni, per le quali un segnale giunto in ingresso all’apparato attraverso una delle porte appartenenti a questo insieme, può lasciare l’apparato attraverso una qualunque porta d’uscita appartenente a questo insieme;
porte con restrizione totale o porte “fixed cross connections”·. un segnale che giunge in ingresso all’apparato attraverso una delle porte appartenenti a questo insieme è costretto a lasciare l’apparato attraverso una prestabilita porta d’uscita appartenente a questo insieme.
- Porte con restrizione parziale o “Protection”: queste porte vengono utilizzate per proteggere le connessioni che sono state instaurate sfruttando porte di altri insiemi. I vincoli di quest’insieme di porte, dipendono da quali connessioni devono essere protette.
A questi vincoli di connessione, che limitano le operazioni di switching, si sommano ad esempio quelli dovuti all’impossibilità di connettere un segnale ottico da un determinato canale caratterizzato da una certa lunghezza d’onda ad un altro canale caratterizzato, anch’esso, da una propria lunghezza d’onda. Questo problema si presenta, ad esempio, nella multiplazione di più segnali dal dominio SDH a quello WDM, la quale avviene attraverso l’utilizzo di opportune schede e di un multiplexer (MUX).
Ciascuna di queste schede, ovviamente, deve trasmettere il suo segnale al multiplexer utilizzando una lunghezza d’onda diversa da tutte quelle con cui sono spediti gli altri segnali in ingresso al MUX, provenienti da altre schede. Il MUX ha la funzione di multiplare questi diversi segnali in un unico segnale WDM, trasportandoli con diverse lunghezze d’onda all’interno della stessa fibra. La lunghezza d’onda alla quale il segnale viene spedito dalla scheda al MUX, è impostata via hardware (in verità, ci sono diversi studi nella direzione di permettere l’impostazione dell’opportuna . via software, il che introdurrebbe maggiori gradi di libertà -nel processo di routing).
Tutte queste limitazioni implicano di risolvere il problema del più breve percorso con penalità e proibizioni: a ciascuna coppia di archi (i,j)(j,k) è associata una penalità che indica il costo di fare una commutazione di un segnale di ingresso al nodo j dall’arco (i,j) all’arco (j,k). Se la commutazione non è permessa la penalità è infinita.
Con una rete duale a ogni arco del grafo originario è associato un nodo in un “grafo trasformato”. A ciascuna penalità è associato un arco. Una commutazione non permessa è semplicemente mostrata come una assenza dell’arco nel grafo trasformato.
E’ stato sorprendentemente trovato che fra le varie trasformazioni possibili una trasformazione a grafo duale o Dual Graph appare essere la più soddisfacente. Proprio per la caratteristica delle trasformazioni duali, in una rete di telecomunicazioni, dove i nodi sono in numero molto minore delle connessioni, la trasformazione in grafo duale dovrebbe generare un aumento di complessità inaccettabile. Nella Dual Graph il numero di nodi è pari al numero di archi del grafo originale e gli archi della rete trasformata rappresentano le cross-connessioni ammissibili negli apparati della rete. Il problema più evidente della Dual Graph applicata al mondo delle telecomunicazioni SDH/WDM, è che, per rappresentare alcuni vincoli introdotti da alcuni apparati, bisogna effettuare la stessa trasformazione a tutti gli apparati. Questo comporta che la trasformazione debba essere effettuata anche per tutti quegli apparati che non introducono vincoli di conessione, e per i quali, dunque, il lavoro preparatorio di espansione fisica dei nodi risulta troppo costoso: un apparato che non ha vincoli di connessione, viene esploso, attraverso la Dual Graph, in un numero di nodi . = (. in + . out) > dove . rappresenta il numero di link in ingresso all’apparato nel grafo originale, e out rappresenta il numero di link in uscita dall’apparato nel grafo originale, e in numero di archi pari a Mr = (. in x . out).
Si vedrà nel seguito come l’impiego della trasformazione duale e del grafo ridotto e partizioni della presente invenzione da luogo a quella che può essere chiamata trasformazione “Clever Dual Graph”, che annulla gli svantaggi del grafo duale e, anzi, permette di ottenere una elevata efficienza nel routing.
Il presente metodo utilizza la trasformazione duale per costruire grafi associati alle varie partizioni: una volta calcolati i cammini necessari a costruire o aggiornare il grafo ridotto, tali grafi vengono cancellati.
Si ottiene così che, ancora una volta, l’unica struttura dati che viene mantenuta permanentemente, e che viene aggiornata regolarmente, è il grafo ridotto. Il calcolo dei cammini, dalle porte d’ingresso alle porte d’uscita di ciascuna partizione, garantisce che i vincoli di connessione degli apparati vengano rispettati. La connessione stabilita operando direttamente sul grafo ridotto GR, dunque, rispetta i vincoli in quanto è la concatenazione di vari cammini tutti ammissibili.
Sul grafo ridotto, quindi, non è necessario effettuare una qualche trasformazione ma si utilizza direttamente quanto sopra descritto per la ricerca del percorso minimo nel caso non vincolato.
Con l’utilizzo del partizionamento della rete si limita la crescita del numero di nodi e archi alle partizioni di volta in volta coinvolte nell’ aggiornamento della rete. Per sottolineare questo fatto, basta pensare cosa significhi, invece, ogni volta che arriva una richiesta di connessione, caricare dal database tutte le informazioni riguardanti la rete ed operare la trasformazione su una tale mole di dati.
Sia data una rete G(V,A), dove |V|=N e |A|=M, si indichi con W il numero medio di link in ingresso ad ogni apparato. Poiché un link in ingresso ad un apparato é un link in uscita da un altro apparato, W rappresenta anche il numero medio di link in uscita da ogni apparato.
Bisogna osservare, per evitare possibili incomprensioni, che W é stato da qui definito come il numero medio di link in ingresso/uscita ad/da ogni apparato che sono effettivamente installati nella rete. Non bisogna confondere questo numero con quello dei link che l’apparato può gestire in ingresso/uscita: questi due valori coincidono solo nel caso peggiore, dal punto di vista delle dimensioni della rete trasformata, in cui ogni apparato ha in ingresso/uscita il numero massimo di link installabili.
Nel caso peggiore, in cui tutte le possibili cross-connessioni sono ammesse, la trasformazione Dual Graph genera una rete costituita da M nodi e NxW<2 >archi, dato che ogni arco diventa un nodo e, per ogni apparato, si hanno W<2 >archi (ogni link d'ingresso può essere connesso ad ogni link d'uscita, e il numero medio dei link d’ingresso e di quelli di uscita è W).
Da quanto è stato detto sopra, risulterà chiaro che per costruire e aggiornare il grafo ridotto, occorre eseguire più volte l’algoritmo di ricerca del cammino minimo . La scelta su quale algoritmo di shortest path utilizzare è, dunque, uno dei punti più critici.
Una scelta basata sull’efficienza può consigliare l’uso dell’algoritmo di Dijkstra implementato con la particolare struttura dati degli Heap di Fibonacci. In questa implementazione dell’algoritmo di Dijkstra, la complessità computazionale su una rete con N nodi e M archi è pari a 0(M Nxlog(N)), sostituendo a M il valore NxW2 e a N il valore M, si ottiene che la complessità della rete trasformata è:
0(NxW<2 >+ Mxlog(M)) Bisogna osservare che il valore W è limitato superiormente dal numero massimo di links gestibile dall’apparato e, dunque, la precedente complessità diventa:
0(N Mxlog(M))
Praticamente, però, il valore di W risulta importante specialmente in reti costituite da pochi nodi e archi.
A questo punto si rende necessaria la seguente considerazione. Il traffico SDH è un traffico strutturato e, di conseguenza, ogni richiesta di connessione deve specificare, oltre alla coppia di nodi sorgente e destinazione, anche il tipo di traffico desiderato: questo comporta che in memoria venga mantenuto un grafo ridotto G<R>, per ogni tipo di traffico.
In teoria, a livello di creazione del grafo rappresentante la rete (a prescindere dall 'utilizzo del grafo ridotto), questa situazione comporterebbe un’espansione di ciascun link in un numero di archi pari al numero di contenitori, disponibili su quel link, relativi al tipo di traffico richiesto. L’osservazione fondamentale è che il vincolo di connessione riguarda la coppia di links di ingresso/uscita e non il particolare contenitore scelto all’interno dei due links. In questa maniera, in fase di prelevamento dei dati, è possibile scegliere uno qualunque dei contenitori disponibili a supportare il tipo di traffico richiesto. Per garantire una corretta distribuzione del traffico, il costo degli archi è stabilito in base ad una combinazione lineare del costo assegnato dal cliente a quel link, e la disponibilità di traffico su quel link.
Lo stesso discorso fatto per il traffico SDH, è valido per il traffico WDM, nel caso in cui l’apparato ottico sia in grado di effettuare una conversione completa delle lunghezze d’onda. Anche in questo caso, infatti, si può scegliere uno qualunque dei canali disponibili sul link ottico anziché esplodere il link nel numero di canali disponibili, e assegnare un costo seguendo il criterio proposto per il traffico SDH. Oltretutto, niente vieta di utilizzare altre politiche di assegnamento delle lunghezze d'onda.
Ovviamente, si possono esplodere i link in ingresso e uscita dall’apparato in modo da assegnare dei costi che privilegino le cross-connessioni che non effettuano conversione di lunghezza d’onda, qualora questa operazione avvenga senza la conversione del segnale dal dominio ottico a quello elettronico e viceversa (conversione OEO).
Nel caso di reti WDM single-hop, invece, occorre esplodere ciascun link in un numero di link pari al numero di canali disponibili.
Le reti single-hop, infatti, introducono il vincolo “wavelength-continous constraint”: la connessione che deve essere stabilita utilizzerà la stessa lunghezza d’onda in ciascuno dei suoi links. Per ottenere una soluzione ammissibile, bisogna inserire, nella rete trasformata, solo gli archi rappresentanti una cross-connessione fra due identiche lunghezze d’onda. Dal punto di vista del vincolo introdotto, possiamo paragonare il wavelength-continous-constraint alle fixed-cross-connections.
Si è sopra scritto della apparente aumento di complessità che dovrebbe introdurre l’uso di un grafo duale. In realtà con il partizionamento secondo l’invenzipne si possono suddividere gli apparati in insiemi che hanno, come caratteristica, il fatto di possedere vincoli di connessione, ed insiemi che non hanno vincoli di connessione. In questo modo, all’intemo delle partizioni che hanno apparati privi di vincoli di connessione, non si utilizza la Dual Graph, ma si applica direttamente il “Single-Shortest-Path-Algortihm”) preferito.
Nel caso che all'interno della stessa partizione siano presenti entrambe le tipologie di apparati, con e senza vincoli, si può applicare il seguente procedimento, qui chiamato “Clever Dual Network”. In altre parole, la rete duale non è efficiente per elementi di rete senza restrizioni. In questo caso è possibile una variazione nel metodo o algoritmo (“clever dual network”) che fa uso del fatto che questi nodi sono caratterizzati dal fatto che ciascun ingresso può raggiungere una uscita senza nessuna penalità. Ciascun arco è perciò con penalità zero. In questo modo è possibile l’arco da ρ<Λ>2 a 2p.
Esso comprende le seguenti fasi:
1. Suddividere gli apparati nelle seguenti tre classi (un esempio di apparati nelle tre classi è dato in figura 9):
- Apparati A, privi di vincoli di connessione: qualunque porta di ingresso può essere connessa a qualunque porta d’uscita.
- Apparati B, con vincoli parziali di connessione: esiste almeno un insieme composto da porte d’ingresso e porte d’uscita, all’ interno del quale è possibile connettere qualunque porta d’ingresso con qualunque porta d’uscita.
- Apparati C, con vincoli totali di connessione: ogni porta d’ingresso ha dei vincoli da rispettare.
2. Ad ogni apparato di tipo A e B, associare un nodo fittizio Nf nel grafo trasformato.
3. Ad ogni Link che ha, come tail o come head, una porta con vincoli di connessione, associare un nodo fittizio Lf nel grafo trasformato: questo avviene se uno dei due nodi del grafo originale è di tipo C, o di tipo B e la porta utilizzata ha dei vincoli.
4. Per ogni nodo fittizio Nf del grafo trasformato, relativo ad un nodo originale di tipo A:
- per ogni nodo fittizio Lf creato al punto 3, che lo riguarda, inserire un link che collega Lf a Nf, se l’arco originale relativo a Lf era in ingresso al nodo originale relativo a Nf. Il costo di questo arco deve essere quello dell'arco originale rappresentato da Lf.
per ogni nodo fittizio Lf creato al punto 3, che lo riguarda, inserire un link a costo nullo che collega Nf a Lf, se l’arco originale relativo a Lf era d’uscita per il nodo originale relativo a Nf.
considerare gli archi del grafo originale che non hanno subito la trasformazione descritta al punto 3, e che hanno, nel grafo originale, il nodo relativo a Nf come head o tail. Per ogni arco, collegare Nf all’altro nodo fittizio relativo al nodo tail o head del grafo originale, mantenendo lo stesso costo dell’arco del grafo originale.
5. Per ogni nodo fittizio Nf del grafo trasformato, relativo ad un nodo originale di tipo B:
considerare tutti i nodi fittizi Lfin/Lfout, creati al punto 3, relativi ad archi del grafo originale in ingresso/uscita, in una porta con vincoli, al/dal nodo relativo al nodo fittizio Nf e per ciascuno di questi nodi fittizi Lfin, inserire un link che colleghi Lfin agli altri nodi fittizi.Lfout. Tale collegamento deve essere fatto solo per le coppie di nòdi fittizi Lfin, Lfout che corrispondono a coppie di archi del grafo originale che sono connettibili. Il costo dell’arco deve essere pari alla somma del costo dell’arco originale rappresentato da Lfin, e del costo della penalità da pagare per connettere i due archi nel grafo originale.
considerare tutti i nodi fittizi Lfin/Lfout, creati al punto 3, relativi ad archi del grafo originale in ingresso/uscita, in una porta senza vincoli, al/dal nodo relativo al nodo fittizio Nf e per ciascuno di questi nodi fittizi Lfin, inserire un link che colleghi il nodo fittizio Lfin al nodo fittizio Nf, mantenendo il costo dell'arco originale rappresentato da Lfin, mentre per ciascuno di questi nodi fittizi Lfout, inserire un link che colleghi a costo nullo il nodo fittizio Nf al nodo fittizio Lfout. considerare gli archi del grafo originale che non hanno subito la trasformazione descritta al punto 3, e che hanno, nel grafo originale, il nodo rappresentato da Nf come head o tail. Per ogni arco, collegare Nf all’altro nodo fittizio relativo al nodo tail o head del grafo originale, mantenendo lo stesso costo dell’arco del grafo originale.
6. Per ogni nodo fittizio Nf del grafo trasformato, relativo ad un nodo originale di tipo C:
tutti i nodi fittizi Lfin/Lfout, creati al punto 3, sono relativi ad archi del grafo originale in ingresso/uscita, in una porta con vincoli, al/dal nodo rappresentato da Nf. Inserire un arco per tutte le coppie Lfin,Lfout che rappresentano due archi che sono connettibili nel grafo originale.
Nelle figura 10 è mostrata una rete originaria di esempio alla quale viene applicati i passi del metodo sopra descritti. In particolare, le figure da Ila a Ile mostrano, rispettivamente, i passi 2, 3, 4, 5, e 6 della trasformazione.
Si è già sopra scritto come il partizionamento della rete secondo l’invenzione permetta di limitare le dimensioni della Dual Graph: la trasformazione di rete viene applicata singolarmente a ciascuna partizione, per consentire le operazioni di costruzione, completamento dinamico e aggiornamento del grafo ridotto.
Così facendo ciascuna partizione ha un numero minore di nodi e link rispetto alla rete completa. Successivamente a ciascuna di queste operazioni, le strutture dati rappresentanti la Dual Graph delle partizioni coinvolte vengono cancellate.
Quanto è stato detto non cambia se, al posto della Dual Graph, si considera la Clever Dual Network.
Bisogna però anche costruire la Clever Dual Network delle partizioni sorgente e destinazione che sono coinvolte nel completamento dinamico del grafo ridotto quando arriva una richiesta di connessione. Inoltre, bisogna potere identificare nella rete trasformata i nodi della richiesta.
A partire dalle considerazioni sopra fatte, si possono formulare i seguenti ulteriori passi per il completamento dinamico del grafo ridotto:
1. Durante le operazioni di costruzione della Clever Dual Network, relativa alla partizione sorgente/destinazione, se il nodo sorgente/destinazione è di tipo C, si aggiunge un nodo fittizio; se il nodo sorgente è di tipo A o B, il nodo della rete trasformata viene creato direttamente durante le normali operazioni necessarie alla costruzione della Clever Dual Network.
2. Si considera il nodo sorgente ns e se ns è di tipo A, non si compie nessuna azione; se ns è di tipo B, si aggiunge, per ogni porta d’uscita con vincoli di connessione, un arco fra il nodo fittizio rappresentante ns nel grafo trasformato e il nodo fittizio rappresentante il link presente su quella.porta; se ns è di tipo C, si aggiunge, per ogni porta d’uscita, un arco fra il nodo fittizio rappresentante ns nel grafo trasformato e il nodo fittizio rappresentante il link presente su quella porta.
3. Si consideri il nodo destinazione n e se nd è di tipo A, non si compie nessuna azione; se nd è di tipo B, si aggiunge, per ogni porta d’ingresso con vincoli di connessione, un arco fra il nodo fittizio rappresentante il link presente su quella porta, e il nodo fittizio rappresentante nd nel grafo trasformato; se nd è di tipo C, si aggiunge, per ogni porta d’uscita, un arco fra il nodo fittizio rappresentante il link presente su quella porta, e il nodo fittizio rappresentante nd nel grafo trasformato.
In altre parole, riassumendo, il metodo proposto consiste perciò di tre fasi:
- pre-elaborazione
- routing sul grafo trasformato
- aggiornamento del grafo
La pre-elaborazione è composta da due fasi:
- costruzione della rete duale
- riduzione del grafo utilizzando le connessioni fissate (può essere una opzione realizzare questa operazione)
Ogni volta che è richiesto un routing per un tipo di traffico non ancora considerato, un grafo ridotto per quel traffico è costruito, cancellando l’arco del grafo originale che non supporta quel traffico.
Per ciascun tipo di traffico il grafo ridotto, derivato applicando il partizionamento del grafo definito sopra, è mantenuto in memoria.
Il routing sul grafo trasformato viene effettuato in modo che per ciascuna richiesta dal nodo s nella partizione A al nodo d nella partizione B, tipo di traffico tr, si sostituisce la parte del grafo relativa al traffico tr e alle partizioni A e B con due sottografi che danno il costo minimo dal nodo s ai nodi sul bordo della partizione A e il costo minimo dai nodi sul bordo della partizione B al nodo d.
A questo grafo finale viene applicato un algoritmo di ricerca del percorso più breve e, ottenuto il percorso, vengono riservate le risorse relative.
Prima del prossimo routing è necessario l’aggiornamento del grafo, ma questo si applica solo alle partizioni usate dal routing. In particolare, è necessario aggiornare solo i percorsi del grafo trasformato che nel grafo originario condividono almeno un arco con l’instradamento calcolato.
Questo aggiornamento è necessario anche quando un nodo è inserito, cambiato o cancellato.
In figura 12 è mostrata una rete di esempio. In figura 13 è mostrata la rete duale per la sottorete 2 di figura 12. In questo esempio tutte le penalità sono uguali a l: . ij,jk =lper ogni ij,jk.
Il corrispondente grafo ridotto è mostrato in figura 14. Si vede che, se si indica con Min(p) e Mout(p) il numero di archi I/O da e per una partizione, nel grafo trasformato non si hanno più di Min(p)xMout(p) archi per ciascuna partizione p. Nelle figura 15 è mostrato un esempio di alcuni apparati costituenti la rete e aventi limitazioni nelle connessione. Per esempio, le limitazioni sono:
gli elementi di rete A e D hanno restrizioni complete alla connessione; l’elemento di rete B ha restrizioni parziali alla connessione;
l’elemento di rete C non ha nessuna restrizione alla connessione
Per trasformare la rete, tre differenti regole si applicano secondo le caratteristiche degli elementi di rete. Le prime due regole sono:
piena restrizione alla connessione: tutti i collegamenti I/O divengono npdi; nessuna restrizione alla connessione: tutti i collegamenti che connettono l’elemento di rete con gli elementi di rete con restrizione alla connessione diventano nodi; tutti i collegamenti che connettono l’elemento di rete con elementi di rete senza restrizioni alla connessione diventano un singolo collegamento che connette il nodo senza restrizioni ad un nuovo nodo fittizio riferito all’elemento di rete senza restrizioni alla connessione. Applicando queste prime due regole alla rete originaria di figura 15 si ottiene il grafo di figura 16.
La terza regola riguarda il caso di restrizioni parziali alla connessione: un insieme di porte completamente connettibili sono rappresentate con un singolo nodo; porte con restrizioni alla connessione sono trattate secondo le regole della piena restrizioni alla connessione.
Applicando anche questa regola la rete finale è quella mostrata schematicamente in figura 17.
Per riepilogare quanto è stato scritto finora, di seguito viene riportato un esempio riassuntivo che evidenzia le operazioni necessarie all’ individuazione di un cammino minimo in una rete con apparati che introducono vincoli di connessione.
Secondo il metodo della presente invenzione, il primo passo consiste nel partizionare, ad un livello, la rete originale, classificando i vari apparati interni alle partizioni in funzione dei vincoli di connessione che presentano. Questo primo passo, è mostrato in Figura 18.
Successivamente, per ogni partizione, bisogna inserire i nodi fittizi rappresentanti gli Inter-Link del grafo originale, e operare la trasformazione Clever Dual Network seguendo le operazioni più sopra descritte. Questo passo è mostrato in figura 19. Per ciascuna partizione, si calcolano i cammini minimi che collegano le poppie <porta d’ingresso, porta d’uscita>. Se per una coppia di tali porte non esiste il cammino, non si inserisce alcun arco nel grafo ridotto. Procedendo come descritto sopra, viene costruito il grafo ridotto GR. Il grafo ridotto relativo alla rete di figura 18, è riportato in figura 20.
Quando arriva una richiesta di connessione (<S,Pa>, <D,Pc>), bisogna completare dinamicamente il grafo ridotto, come già descritto, tenendo conto della trasformazione Clever Dual Network. Questo passo è mostrato in figura 21, dove si vede il clever dual network delle partizioni coinvolte nel completamento dinamico del grafo rifdotto, mentre il risultato finale del grafo ridotto completato per il calcolo della connessione (<S,Pa>, <D,Pc>) è mostrato in figura 22.
Bisogna evidenziare che, per quanto concerne il nodo S, che appartiene alla categoria di nodi di tipo A, non è stato aggiunto alcun nodo, in quanto il nodo fittizio Sf viene automaticamente creato in fase di costruzione della Clever Dual Network di Pa. Per il nodo D, appartenendo alla categoria dei nodi di tipo C, è necessario, invece, inserire un nodo fittizio Df, che, essendo un nodo destinazione, rappresenta il nodo head di tutti gli archi che lo collegano ai nodi rappresentanti i link presenti sulle porte d’ingresso di D.
Infine, sul grafo ridotto di figura 22 viene calcolato il cammino richiesto, ottenendo il risultato presentato in figura 23, cui corrisponde, nel grafo originale, il cammino rappresentato in figura 24.
A questo punto è chiaro come si siano raggiunti gli scopi prefissati.
Fra i vari vantaggi del metodo dell’invenzione, la trasformazione duale consente un successivo e più semplice sviluppo delle tecniche di protezione della rete che sono fondamentali, a causa dell’enorme banda fornita dalle comunicazioni in fibra ottica. Sulla rete trasformata che viene generata dalla trasformazione duale, si possono continuare ad utilizzare algoritmi di "shortest path" utilizzati nelle normali reti a commutazione di circuito, fra i quali, ad esempio, l'algoritmo di Dijkstra. Inoltre, le dimensioni della rete trasformata diminuiscono all'aumentare del numero di vincoli di connessione presenti negli apparati. La presenza di Fixed-Cross-Connections, ad esempio, riduce notevolmente il numero di archi della rete duale. Infine, il lavoro di trasformazione della rete originale nella rete duale, viene notevolmente limitato grazie all’utilizzo del partizionamento della rete. Una volta costruito il grafo ridotto G<R>, infatti, questo lavoro viene effettuato solo sulle partizioni sorgente e destinazione, per fornire la risposta alla richiesta di connessione, e sulle partizioni attraversate dal cammino, nella successiva fase di aggiornamento che non grava sul cliente.
Naturalmente, la descrizione sopra fatta di realizzazioni applicanti i principi innovativi della presente invenzione è riportata a titolo esemplificativo di tali principi innovativi e non deve perciò essere presa a limitazione dell'ambito di privativa qui rivendicato.

Claims (13)

  1. RIVENDICAZIONI 1. Metodo per il routing in reti per telecomunicazioni comprendente le fasi di partizionare il grafo G della rete e creare un grafo ridotto G<R >sulle partizioni Pi in una fase di pre-elaborazione nella quale si costruisce un grafo duale della rete e si riduce il grafo utilizzando connessioni vincolate dalle caratteristiche degli apparati, ed effettuare il routing sul grafo così trasformato.
  2. 2. Metodo secondo rivendicazione 1, nel quale solo il grafo ridotto è mantenuto in memoria.
  3. 3. Metodo secondo rivendicazione 1, nel quale per costruire il grafo ridotto G<R >si seguono le seguenti fasi: ad ogni inter-link del grafo originale si assegna un nodo nf nel grafo ridotto G<R>. per ogni partizione Pi si suddivide l’insieme delle porte nei due insiemi di porte d’ingresso e di porte d’uscita, a livello di partizione Pi, si associa a ciascuno dei nodi fittizi nf creati al punto 1, rappresentanti una porta (interlink) della partizione Pi, un nodo fittizio che sarà un nodo fittizio d’ingresso nfi o d’uscita nfu secondo il verso della relativa porta. si collega il nodo fittizio nfi / nfu, con quel nodo che, nel grafo originale, è collegato alla porta in questione. Per evitare di contare due volte lo stesso costo, assegnare il costo 0 all’arco che ha, come head, il nodo nfu Il,, costo dell’arco che ha, come “tail” il nodo nfi rimane invece invariato al valore Cin. si calcola il cammino minimo da ogni nodo fittizio d’ingresso nfi ad ogni nodo fittizio d’uscita nfu: ciascun cammino è caratterizzato da un insieme di archi del grafo originale che collegano la coppia di nodi <porta d’ingresso, porta d’uscita:». ad ogni cammino, costituito da un insieme non vuoto di archi, calcolato al punto precedente, si associa un arco nel grafo ridotto mr che collega i nodi nf rappresentanti le due porte: se il cammino fra i due nodi fittizi non esiste, e dunque l’insieme di archi associato a tale cammino è l’insieme vuoto, non si inserisce l’arco nel grafo ridotto.
  4. 4. Metodo secondo rivendicazione 3, nel quale si associano le seguenti informazioni a ciascun arco mr del grafo ridotto: - La lista L di archi del grafo originale attraversati dal cammino che, nel grafo originale, collega le porte relative ai nodi fittizi nfi e nfu. - Il costo, pari alla somma dei costi degli archi attraversati dal cammino nel grafo originale. - Il nome della partizione nella quale il cammino è stato calcolato.
  5. 5. Metodo secondo rivendicazione 1, nel quale all’arrivo di una richiesta di connessione R per una coppia di nodi individuati con le coordinate <nodo sorgente ns, partizione sorgente Ps>, <nodo destinazione nd, partizione destinazione Pd>, il grafo ridotto viene completato con le seguenti fasi: - aggiungere al grafo ridotto i nodi sorgente e destinazione del grafo originale. - Per la coppia < ns, Ps>: prelevare dal database tutte e sole le informazioni relative alla partizione sorgente; calcolare i cammini minimi dal nodo sorgente a tutte le porte d’uscita della partizione sorgente; associare a ciascuno dei cammini calcolati al precedente punto, un arco che contiene le stesse informazioni contenute dagli altri archi del grafo ridotto (lista di archi attraversati nella partizione sorgente, costo complessivo, nome della partizione sorgente). - per la coppia < nd, Pd>: prelevare dal database le informazioni relative alla partizione destinazione; calcolare i cammini minimi da tutte le porte d’ingresso della partizione destinazione al nodo destinazione; associare a ciascuno dei cammini calcolati al precedente punto, un arco che contiene le stesse informazioni contenute dagli altri archi del grafo ridotto.
  6. 6. Metodo secondo rivendicazione 1, nel quale per la creazione del grafo duale si suddividono gli apparati della rete o sottorete in almeno tre classi: - apparati A, privi di vincoli di connessione: qualunque porta di ingresso può essere connessa a qualunque porta d’uscita. - apparati B, con vincoli parziali di connessione: esiste almeno un insieme composto da porte d’ingresso e porte d’uscita, all’intemo del quale è possibile connettere qualunque porta d’ingresso con qualunque porta d’uscita. - apparati C, con vincoli totali di connessione: ogni porta d’ingresso ha dei vincoli da rispettare.
  7. 7. Metodo secondo rivendicazione 6, nel quale ad ogni apparato di tipo A e B, si associa un nodo fittizio Nf nel grafo trasformato e ad ogni Link che ha, come tail o come head, una porta con vincoli di connessione, si associa un nodo fittizio Lf nel grafo trasformato.
  8. 8. Metodo secondo rivendicazione 7, nel quale ad ogni nodo fittizio Nf del grafo trasformato, relativo ad un nodo originario di tipo A: - per ogni nodo fittizio Lf creato al punto 3, che lo riguarda, inserire un link che collega Lf a Nf, se l’arco originale relativo a Lf era in ingresso al nodo originale relativo a Nf. Il costo di questo arco deve essere quello dell'arco originale rappresentato da Lf. per ogni nodo fittizio Lf creato al punto 3, che lo riguarda, inserire un link a costo nullo che collega Nf a Lf, se l’arco originale relativo a Lf era d’uscita per il nodo originale relativo a Nf. considerare gli archi del grafo originale che non hanno subito -la trasformazione descritta e che hanno, nel grafo originale, il nodo relativo a Nf come head o tail e per ogni arco, collegare Nf all’altro nodo fittizio relativo al nodo tail o head del grafo originale, mantenendo lo stesso costo dell’arco del grafo originale.
  9. 9. Metodo secondo rivendicazione 7, nel quale ad per ogni nodo fittizio Nf del grafo trasformato, relativo ad un nodo originale di tipo B: considerare i nodi fittizi Lfin/Lfout creati relativi ad archi del grafo originale in ingresso/uscita, in una porta con vincoli, al/dal nodo relativo al nodo fittizio Nf e per ciascuno di questi nodi fittizi Lfin, inserire un link che colleghi Lfin agli altri nodi fittizi Lfout; tale collegamento deve essere fatto solo per le coppie di nodi fittizi Lfin, Lfout che corrispondono a coppie di archi del grafo originale che sono connettibili. considerare tutti i nodi fittizi Lfin/Lfout creati relativi ad archi del grafo originale in ingresso/uscita, in una porta senza vincoli, al/dal nodo relativo al nodo fittizio Nf e per ciascuno di questi nodi fittizi Lfin, inserire un link che colleghi il nodo fittizio Lfin al nodo fittizio Nf, mantenendo il costo dell'arco originale rappresentato da Lfin, mentre per ciascuno di questi nodi fittizi Lfout, inserire un link che colleghi a costo nullo il nodo fittizio Nf al nodo fittizio Lfout· considerare gli archi del grafo originale che non hanno subito la trasformazione descritta al punto 3, e che hanno, nel grafo originale, il nodo rappresentato da Nf come head o tail. Per ogni arco, collegare Nf all’altro nodo fittizio relativo al nodo tail o head del grafo originale, mantenendo lo stesso costo dell’arco del grafo originale.
  10. 10. Metodo secondo rivendicazione 7, nel quale per ogni nodo fittizio Nf del grafo trasformato, relativo ad un nodo originale di tipo C: tutti i nodi fittizi Lfin/Lfout creati sono relativi ad archi del grafo originale in ingresso/uscita, in una porta con vincoli, al/dal nodo rappresentato da Nf e inserire un arco per tutte le coppie Lfin,Lfout che rappresentano due archi che sono connettibili nel grafo originale.
  11. 11. Metodo secondo rivendicazione 6, nel quale si eseguono passi di completamento dinamico del grafo ridotto che comprendono, durante la creazione del grafo relativa alla partizione sorgente/destinazione: se il nodo sorgente/destinazione è di tipo C, si aggiunge un nodo fittizio; se il nodo sorgente è di tipo A o B, il nodo della rete trasformata viene creato direttamente.
  12. 12. Metodo secondo rivendicazione 6, nel quale si eseguono passi di completamento dinamico del grafo ridotto che comprendono il considerare il nodo sorgente ns e: se ns è di tipo A, non si compie nessuna azione; „ - se ns è di tipo B, si aggiunge, per ogni porta d’uscita con vincoli di connessione, un arco fra il nodo fittizio rappresentante ns nel grafo trasformato e il nodo fittizio rappresentante il link presente su quella porta; se ns è di tipo C, si aggiunge, per ogni porta d’uscita, un arco fra il nodo fittizio rappresentante ns nel grafo trasformato e il nodo fittizio rappresentante il link presente su quella porta.
  13. 13. Metodo secondo rivendicazione 6, nel quale si eseguono passi di completamento dinamico del grafo ridotto che comprendono il considerare il nodo destinazione nd e: se nd è di tipo A, non si compie nessuna azione; se nd è di tipo B, si aggiunge, per ogni porta d’ingresso con vincoli di connessione, un arco fra il nodo fittizio rappresentante il link presente su quella porta, e il nodo fittizio rappresentante nd nel grafo trasformato; se nd è di tipo C, si aggiunge, per ogni porta d’uscita, un arco fra il nodo fittizio rappresentante il link presente su quella porta, e il nodo fittizio rappresentante nd nel grafo trasformato.
IT2001MI001508A 2001-07-13 2001-07-13 Metodo per il routing in reti di telecomunicazioni ITMI20011508A1 (it)

Priority Applications (9)

Application Number Priority Date Filing Date Title
IT2001MI001508A ITMI20011508A1 (it) 2001-07-13 2001-07-13 Metodo per il routing in reti di telecomunicazioni
AT02755539T ATE480931T1 (de) 2001-07-13 2002-07-09 Verfahren zur weglenkung in telekommunikationsnetzwerken
EP02755539A EP1410583B1 (en) 2001-07-13 2002-07-09 Method for routing in telecommunications networks
PCT/IB2002/003365 WO2003007557A1 (en) 2001-07-13 2002-07-09 Method for routing in telecommunications networks
US10/483,691 US7003300B2 (en) 2001-07-13 2002-07-09 Method for routing in telecommunications networks
CNA028175824A CN1554171A (zh) 2001-07-13 2002-07-09 电信网络中的路由方法
CA002453238A CA2453238A1 (en) 2001-07-13 2002-07-09 Method for routing in telecommunications networks
DE60237612T DE60237612D1 (de) 2001-07-13 2002-07-09 Verfahren zur weglenkung in telekommunikationsnetzwerken
JP2003513196A JP2004535140A (ja) 2001-07-13 2002-07-09 電気通信網におけるルーティング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT2001MI001508A ITMI20011508A1 (it) 2001-07-13 2001-07-13 Metodo per il routing in reti di telecomunicazioni

Publications (2)

Publication Number Publication Date
ITMI20011508A0 ITMI20011508A0 (it) 2001-07-13
ITMI20011508A1 true ITMI20011508A1 (it) 2003-01-13

Family

ID=11448062

Family Applications (1)

Application Number Title Priority Date Filing Date
IT2001MI001508A ITMI20011508A1 (it) 2001-07-13 2001-07-13 Metodo per il routing in reti di telecomunicazioni

Country Status (9)

Country Link
US (1) US7003300B2 (it)
EP (1) EP1410583B1 (it)
JP (1) JP2004535140A (it)
CN (1) CN1554171A (it)
AT (1) ATE480931T1 (it)
CA (1) CA2453238A1 (it)
DE (1) DE60237612D1 (it)
IT (1) ITMI20011508A1 (it)
WO (1) WO2003007557A1 (it)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346608C (zh) * 2003-11-06 2007-10-31 华为技术有限公司 一种路径搜索方法
EP1738258A4 (en) 2004-03-13 2009-10-28 Cluster Resources Inc SYSTEM AND METHOD IMPLEMENTING OBJECT TRIGGERS
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US9497109B2 (en) * 2005-02-11 2016-11-15 Hewlett Packard Enterprise Development Lp Switching mesh with user-configurable paths
CN100417115C (zh) * 2005-06-21 2008-09-03 中兴通讯股份有限公司 一种实现以太网业务的自动配置方法
US8908674B2 (en) * 2005-08-08 2014-12-09 Telecom Italia S.P.A. Method for configuring an optical network
US8428990B2 (en) * 2005-08-19 2013-04-23 Siemens Aktiengesellschaft Method for allocating resources to jobs using network flow algorithms
US8041773B2 (en) * 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US20090274157A1 (en) * 2008-05-01 2009-11-05 Vaidya Aniruddha S Method and apparatus for hierarchical routing in multiprocessor mesh-based systems
US8280835B2 (en) * 2009-01-29 2012-10-02 Telcordia Technologies, Inc. Method for automated distributed diagnostics for networks
US8738559B2 (en) 2011-01-24 2014-05-27 Microsoft Corporation Graph partitioning with natural cuts
EP2979404A1 (en) * 2013-03-27 2016-02-03 Telefonaktiebolaget L M Ericsson (publ) Aggregation-node selection using virtual hub
US9397917B2 (en) * 2014-01-10 2016-07-19 Huawei Technologies Co., Ltd. System and method for zoning in software defined networks
US9998392B1 (en) * 2014-02-13 2018-06-12 Amazon Technologies, Inc. Iterative network graph placement
US10320698B1 (en) 2014-02-13 2019-06-11 Amazon Technologies, Inc. Determining network connectivity for placement decisions
US20170277728A1 (en) * 2016-03-28 2017-09-28 International Business Machines Corporation Hiding nodes in a tree containing shared subtrees
US20170337293A1 (en) * 2016-05-18 2017-11-23 Sisense Ltd. System and method of rendering multi-variant graphs
US20180144279A1 (en) * 2016-11-22 2018-05-24 Sap Se Network separator for transportation resource planning
US10990735B2 (en) * 2019-05-25 2021-04-27 Synopsys, Inc. System and method for generating a cluster-based power architecture user interface

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151327A (en) * 1997-06-30 2000-11-21 Mci Communications Corporation Method of routing and bundling demands with low utilization in a telecommunications network
US6437804B1 (en) * 1997-10-23 2002-08-20 Aprisma Management Technologies, Inc Method for automatic partitioning of node-weighted, edge-constrained graphs
US6141552A (en) * 1997-11-17 2000-10-31 Nortel Networks Corporation Estimation of mobility for network planning based on highway maps and traffic data

Also Published As

Publication number Publication date
ITMI20011508A0 (it) 2001-07-13
DE60237612D1 (de) 2010-10-21
EP1410583A1 (en) 2004-04-21
US7003300B2 (en) 2006-02-21
ATE480931T1 (de) 2010-09-15
CA2453238A1 (en) 2003-01-23
JP2004535140A (ja) 2004-11-18
EP1410583B1 (en) 2010-09-08
US20040248576A1 (en) 2004-12-09
CN1554171A (zh) 2004-12-08
WO2003007557A1 (en) 2003-01-23

Similar Documents

Publication Publication Date Title
ITMI20011508A1 (it) Metodo per il routing in reti di telecomunicazioni
Orlowski et al. SNDlib 1.0—Survivable network design library
Zang et al. A review of routing and wavelength assignment approaches for wavelength-routed optical WDM networks
Subramaniam et al. A performance model for wavelength conversion with non-Poisson traffic
Jaumard et al. Efficient spectrum utilization in large scale RWA problems
CN106416158A (zh) 用于大规模数据中心网络的业务工程
Erlebach et al. Resource allocation problems in multifiber WDM tree networks
JP6264747B2 (ja) ネットワーク設計装置、及びネットワーク設計方法
Kennington et al. Wavelength translation in WDM networks: Optimization models and solution procedures
JP2011023981A (ja) 光パス設計装置及び方法
Williams et al. Efficient embedding of a hypercube in an irregular WDM network
Dutta Virtual topology design for traffic grooming in WDM networks
Bermond et al. Traffic grooming in bidirectional WDM ring networks
Thiagarajan et al. Optimal wavelength converter placement in arbitrary topology wavelength-routed networks
CN100559742C (zh) 在运送电路数据流的传送网中分类数据流的方法
Guo et al. Waveband grooming based on layered auxiliary graph in multi-domain optical networks
Mei et al. Routing permutations in partitioned optical passive stars networks
Singh et al. Minimum connection count wavelength assignment strategy for WDM optical networks
Zhang et al. Dynamic routing and wavelength assignment in multi-granularity WDM networks
Bahri et al. A global approach for designing reliable WDM networks and grooming the traffic
Guo et al. Multicast Waveband Routing and Grooming algorithm in optical WDM networks
Guo et al. Path-based protection in WDM mesh networks subject to double-link failures
Faber Livelock free routing schemes
Ogryczak et al. Sequential algorithms for max-min fair bandwidth allocation
Ahmed et al. The problem of maximum flow with minimum attainable cost in a network