1 Roteamento Um dos aspectos complexos e cruciais das redes de comutação de pacotes é a seleção da melhor rota para enviar um pacote ao seu destino roteamento. Conforme ilustra a Figura 1, um algoritmo de roteamento necessita de um critério de desempenho para selecionar a melhor rota, o qual pode se basear em: Número de saltos (hops - nós intermediários); Mínimo custo do enlace (algoritmos least cost routing ): tempo de atraso na la, taxa de dados. Menor número de Saltos: nós 1-3-6; Menor custo: nós 1-4-5-6. Figura 1: Exemplo de critério de roteamento. As seguintes características são requeridas para um algoritmo de roteamento: Simplicidade; Robustez estabilidade: diz respeito a capacidade da rede de entregar o pacote na presença de falhas e congestionamento, sem provocar instabilidade, isto é, congestionar em outro local, deixando o inicial sub-utilizado; 1
Imparcialidade desempenho ótimo: o critério de desempenho não deve inibir que estações distantes se comuniquem ao visar o aumento da taxa de envio de dados; Eciência: o overhead do pacote e do processamento não deve prejudicar o desempenho. 1.1 Instante e lugar da decisão O instante da descisão é tomado de acordo com o tipo de quadro sendo transmitido, se datagrama ou circuito virtual: Se datagrama a decisão é tomada por pacote; Se circuito virtual a decisão é tomada no estabelecimento da conexão. O local da decisão determina que nós são responsáveis por realizar o roteamento, podendo ser: Distribuído: Cada nó é responsável por selecionar um enlace para a saída dos pacotes; Centralizado: um nó especíco realiza o roteamento; Estação Fonte: a rota é decidida na estação que gerou a mensagem. 1.2 Fonte de informação da rede e frequência de atualização Fonte de Informação: geralmente o cálculo do roteamento necessita de informações da rede,como topologia, tráfego, custo do enlace. Frequência de Atualização: roteamento: função da fonte de informação e da estratégia de Mudança de Topologia (estratégia xa); Contínua (informação local); Periódica (estratégia adaptativa). 2 Estratégias de roteamento Podem ser classicadas com: 1. Fixa; 2. Flooding (Enchente); 3. Random ( Aleatória); 4. Adaptativa. 2
2.1 Roteamento xo Um rota única é estabelecida para cada par fonte-destino. Utiliza um dos algoritmos de mínimo custo para determinar a rota. Como o roteamento é xo, o cálculo é baseado apenas em critérios estatísticos (capacidade do canal, distância, etc). A rota permanece a mesma, a não ser devido a mudanças na topologia da rede. Não há diferença entre datagrama e circuito virtual. 2.2 Flooding Não requer informação da rede. Em cada nó, o pacote que chega é transmitido para todos os nós vizinhos exceto para o vizinho que enviou o pacote originalmente, Figura 2 ilustra a referida estratégia de roteamento. Várias cópias de um mesmo pacote poderão chegar ao destino o pacote deve possuir um identicador para descartar duplicatas. Deve, também, possuir mecanismo para evitar retransmissões innitas contador com o número máximo de enlaces existentes na rede. Figura 2: Representação da estratégia de roteamento denominada ooding. 2.2.1 Propriedades de ooding Todo as as rotas são experimentadas; Muito robusto; Pelo menos um pacote chegará pela rota de custo mínimo; 3
Pode ser usado para estabelecer o circuito virtual; Pode ser usado para implementar comunicação broadcast Difusão Todos os nós são visitados; Útil para distribuir informação; Tem como desvantagem a carga de tráfego alta. 2.3 Roteamento aleatório Possui a simplicidade e robustez do ooding, mas com menor tráfego: Cada nó seleciona apenas um enlace de saída para a retransmissão do pacote; A seleção do enlace i pode ser aleatória, baseada em probabilidade conforme equação 1, onde R i representa a taxa de dados do nó i, P r {nó i} é denida como a probabilidade de selecionar o nó i e R j é a taxa de transmissão de dados do j-ésimo enlace. P r {nó i} = R i j R (1) j Também não necessita de informações da rede; A rota não é de custo mínimo nem de menor tamanho. 2.4 Roteamento adaptativo Utilizado pela maioria das redes de comutação de pacotes. O resultado do roteamento muda de acordo com as condições da rede, como, falha e/ou congestionamento, necessita portanto, de informações do estado da rede. 2.4.1 Roteamento Adaptativo - vantagens Pode aumentar o desempenho da rede; Ajuda no controle de congestionamento. 2.4.2 Roteamento Adaptativo - desvantagens Processo de decisão mais complexo; Compromisso entre a qualidade da informação e o overhead gerado para obtê-la; Reação pode ser muito rápida oscilações; Reação muito lenta processo irrelevante (muito custo de overhead para nada). 4
3 Algoritmos de custo mínimo 3.1 Algoritmo de Djkstra 1. Inicialização do algoritmo de Edsger Djkstra 1 : (a) T = s, conjunto de nós incorporados consiste apenas no nó fonte; (b) L(n) = w(i, j) para n s em que, n é o n-ésimo nó na rede e s é o nó fonte; T = conjunto de nós já incorporados pelo algoritmo; w(i, j) = custo direto entre os nós i e j; L(n) = custo até o momento do nó s para o nó n. 2. Incorporação de novo nó: Ache um nó, ainda não incorporado a T, que possua custo mínimo do nó s e o incorpore em T. (a) Ache x / T tal que L(x) = min[l(j)] 3. Atualize os valores de custo: (a) L(n) = min[l(n), L(x) + w(x, n)] para todo n / T. Tabela 1: Algoritmo de custo mínimo Dijkstra aplicado à Figura 1 Iteração T L(2) Path L(3) Path L(4) Path L(5) Path L(6) Path 1 {1} 2 1-2 5 1-3 1 1-4 2 {1,4} 2 1-2 4 1-4-3 1 1-4 2 1-4-5 3 {1,2,4} 2 1-2 4 1-4-3 1 1-4 2 1-4-5 4 {1,2,4,5} 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4-5-6 5 {1,2,3,4,5} 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4-5-6 6 {1,2,3,4,5,6} 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4-5-6 3.2 Algoritmo de Bellman Ford Ache o caminho mínimo a partir de um certo nó fonte, sujeito à restrição que o caminho contenha no máximo um enlace; em seguida, ache o o caminho de menor custo com a restrição de no máximo 2 enlaces; e assim sucessivamente. 1. Inicialização: (a) L 0 (n) =, para todo n s (b) L h (s) = 0, para todo h 1 Pronúncia: ed-star dex-trah. 5
2. Atualização: (a) Para cada valor sucessivo de h 0 : e para cada n s, compute: L h+1 (n) = min{j}[l h (j) + w(j, n)]. Onde: h = máximo número de enlaces em um estágio do algoritmo; s = nó fonte; w(i, j) = custo direto entre os nós i e j; L h (n) = custo mínimo do caminho entre o nó s e o nó n, sujeito à restrição de no máximo K links. Tabela 2: Algoritmo de custo mínimo Bellman Ford aplicado à Figura 1 h L(2) Path L(3) Path L(4) Path L(5) Path L(6) Path 0 1 2 1-2 5 1-3 1 1-4 2 2 1-2 4 1-4-3 1 1-4 2 1-4-5 10 1-3-6 3 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4-5-6 4 2 1-2 3 1-4-5-3 1 1-4 2 1-4-5 4 1-4-5-6 6
4 Exercícios 1. Determine a rota de menor custo para a rede ilustrada na Figura 3. Empregue os algoritmos de Dijkstra e BellmannFord. Figura 3: Representação de uma rede de comunicação de dados. Tabela 3: Resolução- exercício empregando o algoritmo de Dijkstra Iteração T L(A) Path L(C) Path L(D) Path L(E) Path L(F) Path 1 {A} 2 AB 5 AC 1 AD 2 {AD} 2 AB 4 ADC 1 AD 2 ADE 3 {ADE} 2 AB 3 ADEC 1 AD 2 ADE 4 ADEF 4 {ADEBC} 2 AB 3 ADEC 1 AD 2 ADE 4 ADEF 5 {ADEBCF} 2 AB 3 ADEC 1 AD 2 ADE 4 ADEF Tabela 4: Algoritmo de custo mínimo Bellman Ford h L(B) Path L(C) Path L(D) Path L(E) Path L(F) Path 0 1 1 AB 1 AD 2 1 AB 3 ADC 1 AD 2 ADE 3 1 AB 3 ADC 1 AD 2 ADE 4 ADEF 7