4. Análise de Desempenho de Topologias em Malha para Roteamento Estático
4.2. Topologias estudadas
4.3.2. Algoritmo de roteamento
4.3.2.2. Algoritmo Dijkstra
O algoritmo consiste basicamente em fazer uma visita por todos os nós da rede, iniciando no nó fixo dado e encontrando sucessivamente o nó mais próximo, o segundo mais próximo, o terceiro mais próximo e assim por diante, um por vez, até que todos os nós da rede tenham sido visitados.
O algoritmo Dijkstra é um algoritmo para se achar o caminho de custo mínimo em grafos. A escolha da rota a ser utilizada para ir do nó de origem para o nó de destino é previamente calculada (off-line), sendo transferida para os roteadores quando a rede é inicializada [21].
Calcula-se o caminho mínimo de um nó origem a todos os demais nós da rede resultando em uma árvore cuja raiz é o nó de origem e cujas folhas são os nós destino. O algoritmo Dijkstra opera recursivamente em dois passos: atualiza o potencial (distância até a origem) dos nós fora da árvore mínima, e insere na árvore o nó de menor potencial, ou seja, de menor caminho.
A construção do modelo necessita de duas definições prévias [21]:
• Topologia Física, descrita por um grafo cujos nós consistem de comutadores ópticos, com capacidade plena de conversão de comprimento de onda, interconectados por fibras ópticas.
• Caminho Óptico (Lightpath) estabelecido pela alocação de um comprimento de onda em cada enlace interligando os nós do caminho entre a fonte e o destino da conexão.
Assim, o algoritmo Dijkstra recebe como entrada uma matriz de conectividade dos nós da topologia estudada. O algoritmo calcula o menor caminho entre a origem e o destino, e gera uma nova matriz de caminho mínimo. Através da matriz de caminho mínimo é possível calcular o número de aplicações2 (usuários ou fontes) em cada enlace da rede e também o número médio de saltos (hops). Isto pode ser observado na Figura 4.6.
Matriz conectividade Algoritmo Dijkstra Matriz caminho Mínimo (Cm) Nº Aplicação por enlace E[hops] Matriz conectividade Algoritmo Dijkstra Matriz caminho Mínimo (Cm) Nº Aplicação por enlace E[hops]
Figura 4.6 Algoritmo Dijkstra: cálculo de caminho de custo mínimo
Considere a rede, mostrada na Figura 4.7, para exemplificar a aplicação do algoritmo de Dijkstra. Inicialmente os nós da rede em estudo devem ser numerados, o que resulta em uma matriz de enlaces e distância que pode ser usada como base para se desenvolver a lógica do programa.
1
2
3
4
5
6
7
1 1 2 2 2 3 31
2
3
4
5
6
7
1
2
3
4
5
6
7
1 7 7 5 3 5 2 2 3Figura 4.7 Rede com 7 nós e 11 enlaces (distância em km).
2 Utiliza-se o termo aplicação para definir uma conexão fim a fim, o que está relacionado aos usuários ou fontes de tráfego.
A matriz de enlaces e distância (km) da rede é dada pela Figura 4.8 1 2 3 4 5 6 7 1 0 1 3 0 0 0 0 2 1 0 5 2 7 0 0 3 3 5 0 2 0 7 0 4 0 2 2 0 5 3 0 5 0 7 0 5 0 2 3 6 0 0 7 3 2 0 1 7 0 0 0 0 3 1 0
Figura 4.8 Matriz de enlaces e distância (km).
O passo seguinte é definir respectivamente o nó origem (u0) e o nó destino (uf) na
matriz de dados. Para a atual demonstração, a origem é o nó 1 (u0=1) e o destino é o nó 7
(uf = 7). Na seqüência criam-se dois conjuntos de nós, o M dos nós marcados, e o D dos nós
desmarcados. A marcação pode ser feita por meio de um vetor com dados do tipo booleano (bool), verdadeiro (true) ou falso (false), dessa forma os marcados poderiam ter valor verdadeiro e os desmarcados o valor falso. A próxima providência é a criação de dois vetores para definir os comprimentos acumulados (L) e o nó anterior (A), ambos os vetores guardam informações relativas ao nó em estudo. O vetor de comprimento (L) deve ter inicialmente o valor máximo (∞) enquanto o vetor nós anteriores (A) deve apontar inicialmente para nulo [21].
Uma vez preparadas as etapas anteriores, as estruturas de dados necessárias para o desenvolvimento do algoritmo estão prontas. Pode-se, então, dar início a uma rotina de verificação, nó a nó. Partindo-se do nó inicial (u0) executa-se uma interação até atingir o nó
de destino (uf). A rotina de interação consiste basicamente dos seguintes passos: a) verificar
as conexões do nó da vez (ui) que não foram usadas (desmarcadas); b) calcular as distâncias
acumuladas das conexões disponíveis; c) identificar entre as disponíveis qual apresenta a menor distância acumulada e marcá-la; d) repetir a rotina até o enésimo nó ser o nó de destino (ui = uf). Depois de definidas as distâncias mínimas, ainda se faz necessária uma
rotina para varrer os vértices anteriores partindo do vértice destino (uf), seguindo a
seqüência em ordem inversa dos caminhos mínimos. O algoritmo ainda contempla a verificação do caso de não existir a conexão entre o nó inicial (u0) e final (uf).
Assim, a matriz de caminhos mínimos da Figura 4.7 calculada pelo algoritmo Dijkstra é dada pela Figura 4.9
1 2 3 4 5 6 7 1 0 1 3 3 8 6 7 2 1 0 4 2 7 5 6 3 3 4 0 2 7 5 6 4 3 2 2 0 5 3 4 5 8 7 7 5 0 2 3 6 6 5 5 3 2 0 1 7 7 6 6 4 3 1 0 Figura 4.9 Matriz de caminhos mínimos.
Exemplo: a menor distância entre o nó 1 (origem) e o nó 7 (destino) é 7 km, sendo a rota de menor caminho dada pela Figura 4.10
1
2
3
4
5
6
7
1 1 2 2 2 3 31
2
3
4
5
6
7
1
2
3
4
5
6
7
1 7 7 5 3 5 2 2 3Utilizando o algoritmo Dijkstra também é possível obter o diâmetro de uma topologia através da matriz de distância mínima. O comprimento do enlace e o número de nós entre o enlace determina o diâmetro da rede, que é definido como o maior caminho mínimo. Na topologia acima, o diâmetro da rede é 8 km, dado pelo caminho (1,5) passando pelos nós 2 e 4.
4.4. Resultados e análises
Nesta seção serão apresentados os dados estatísticos da utilização das topologias NSFNET, Alemã, Pan-Européia, Finlândia e República Checa, utilizando as tecnologias WDM e WDM/OCDM. Será mostrada uma melhora na qualidade de serviço quando VOCP/VWPs são utilizados.
A Figura 4.11, Figura 4.12, Figura 4.13, Figura 4.14 e Figura 4.15 apresentam o resultado referente ao número de aplicações de cada enlace que constitui as topologias das redes NSF-NET, Alemã, Pan-Européia, Finlândia e República Checa respectivamente.
Pode-se observar que há uma variação no número de aplicações de cada enlace. Entende-se por aplicação, o total de fluxo de tráfego gerado por cada nó para toda rede. Em redes desbalanceadas, cada nó apresenta uma série de enlaces conectados, portanto existem nós com maior intensidade de tráfego que outros. Como por exemplo: Na rede NSF-NET, o nó 4 esta ligado com os nós 3, 6, 13 e 14. O enlace (4,6) tem um número de aplicações 16. Já o nó 1 esta ligado com os nós 2, 3 e 8. No enlace (1,2) o número de aplicações é de apenas 7. Portanto cada enlace tem um QoS específico, ou seja, cada enlace apresenta uma probabilidade de bloqueio (BBP) que esta em função do número de aplicações de cada enlace (usuários) e do número de recursos (comprimento de onda) da rede. Isto pode ser observado na Figura 4.16, Figura 4.17, Figura 4.18, Figura 4.19 e Figura 4.20. Para o cálculo da probabilidade de bloqueio foi utilizado o modelo Engset [17].
Figura 4.11 Número de aplicações por enlace – NSFNET.
Figura 4.13 Número de aplicações por enlace – Pan-Européia.
Figura 4.15 Número de aplicações por enlace – República Checa.
Na Figura 4.16, Figura 4.17, Figura 4.18, Figura 4.19 e Figura 4.20 apresentam-se os resultados referentes à probabilidade de bloqueio de cada enlace que constituem as topologias NSF-NET, Alemã, Pan-Européia, Finlândia e República Checa respectivamente. Foram considerados 4 comprimentos de onda fixos, e o número de aplicações referente a cada enlace mostrado na Figura 4.11, Figura 4.12, Figura 4.13, Figura 4.14 e Figura 4.15 respectivamente. Foi utilizando uma carga de tráfego de 0,5. No anexo 1 são apresentadas as Tabelas 7.1, 7.2, 7.3, 7.4 e 7.5 que mostram a influência dos códigos OOC’s nos requisitos de QoS (medido exclusivamente em função da BBP) para cada enlace, podendo ser observada a BBP para os enlaces com e sem OOC’s.
Como já era de se esperar, observamos que a probabilidade de bloqueio (BBP) é diretamente proporcional ao número de aplicações, ou seja, enlaces com maior número de aplicações têm uma maior BBP. Além disso, podemos observar que alguns enlaces não apresentam bloqueio porque o número de fontes é igual (ou maior) que o número de caminhos virtuais (comprimentos de onda). Por Exemplo: No Backbone Alemão o enlace (11,6) que apresenta um número de usuários 30 a probabilidade de bloqueio (BBP) é 7,2x10-1. Já o enlace (2,7) que apresenta número de aplicação de 4 a BBP é zero, porque em nosso cenário, cada enlace tem 4 comprimentos de onda, que já seria suficiente para garantir 100% de atendimento às aplicações que usam este enlace.
Figura 4.16 Probabilidade de bloqueio por enlace – NSFNET.
Figura 4.18 Probabilidade de bloqueio por enlace – Pan Européia.
Figura 4.20 Probabilidade de bloqueio por enlace – República Checa.
A fim de otimizar o desempenho das redes e melhorar o nível do QoS, nós propomos o uso da tecnologia WDM/OCDM que permitirá melhorar a capacidade e escalabilidade das redes de acordo com a demanda de vazão. Propomos também utilizar um número de códigos (OOC) em cada enlace que seja proporcional à intensidade de tráfego do enlace no pior caso, onde todos os usuários estão conectados ao mesmo tempo. Assim, em cada enlace pode-se utilizar uma quantidade de códigos e comprimentos de onda, de acordo com os requisitos de QoS desejado, evitando o desperdício de recursos.
A Figura 4.21, Figura 4.22, Figura 4.23, Figura 4.24 e Figura 4.25 mostram o número de códigos por enlace da rede NSF-NET, Alemã, Pan-Européia, Finlândia e República Checa, respectivamente. Foram considerados quatro comprimentos de onda por enlace, e um dado número de códigos para cada enlace, a fim de obter uma BBP de 10-6 para cada enlace.
A análise mostra que para um maior número de aplicação, é necessário um maior número de recursos e assim um maior número de códigos ópticos (OOC’s) para obter o QoS desejado. Neste caso, por exemplo, na rede Pan-Européia o enlace (11,17) tem um número de aplicação de 85 e precisa de 13 OOC em cada comprimento de onda para obter uma probabilidade de bloqueio de 10-6. Por outro lado, alguns enlaces não precisam utilizar códigos, porque o número de fontes é menor (ou igual) ao número de caminhos virtuais
(comprimentos de onda) neste cenário. Por exemplo: o enlace (24,22) tem um número de aplicações igual a quatro e não precisa utilizar códigos porque a BBP é zero. Por outro lado, no backbone da República Checa, o enlace (5,7) tem um número de aplicação 13 e precisa de 3 OOC para obter uma BBP de 10-6, já o enlace (11,10) não precisa utilizar códigos, sendo representado por um código de acordo com o modelo apresentado.
Figura 4.21 Número de códigos por enlace – NSFNET.
Figura 4.23 Número de códigos por enlace – Pan Européia.
Figura 4.25 Número de códigos por enlace – República Checa.
Com a utilização de um número de códigos ópticos por comprimento de onda proporcional ao número de aplicações de cada enlace pôde-se obter um nível de QoS medido pela BBP desejado, tirando a limitação da rede e ao mesmo tempo evitando um desperdício de recursos, pois utilizou em cada enlace apenas a quantidade de códigos necessária para se obter o QoS desejado e não uma quantidade homogênia para todos os enlaces. Assim, enlaces com alta intensidade de tráfego podem manter uma mesma BBP que enlaces com baixa intensidade de tráfego, melhorando o desempenho da rede, obtendo um nível de QoS (Qualidade de serviço) satisfatório e ao mesmo tempo evitando o desperdício de recursos. Portanto, o planejamento da rede óptica de proteção deverá levar em conta os recursos adicionais que são necessários para garantir a disponibilidade de ligação, ao mesmo tempo, garantir uma elevada eficiência da rede, a fim de minimizar a probabilidade bloqueio e obter um nível de QoS satisfatório. É fato que aqui foi assumido o pior caso, com a quantidade ótima de códigos para a obtenção de uma determinada BBP, sendo desconsiderado um estudo em função de uma determinada taxa de fontes Pf, que será melhor analisada em um trabalho futuro, onde pretende-se estudar estes cenários utilizado roteamento dinâmico.