Sei sulla pagina 1di 27

Roteamento em Redes de Computadores INATEL

ROTEAMENTO EM REDES DE COMPUTADORES


1. Introduo Um dos principais problemas a ser resolvido no nvel de rede a escolha do caminho que os pacotes devem seguir para interconexo das estaes de origem e de destino. Se a rede do tipo datagrama a deciso de roteamento tomada para cada pacote. Se a rede do tipo circuito virtual, o caminho a ser seguido definido no estabelecimento do circuito virtual, e todos os pacotes da mensagem devem seguir este caminho. Uma forma comum de implementao da deciso de roteamento em cada n atravs de uma tabela de roteamento. O n recebe o pacote e se baseia em uma identificao especfica (que pode ser os endereos de origem e destino, o nmero do circuito virtual, ou apenas o endereo de destino, dependendo do sistema) para obter da tabela de roteamento qual o enlace de sada para onde a mensagem deve ser encaminhada. A figura a seguir ilustra uma rede composta de 7 ns. Perceba a existncia de diversos caminhos possveis para interconexo, por exemplo, dos ns a e g. A questo : Qual o melhor caminho a ser seguido?

Para se exemplificar o conceito de deciso de roteamento baseado em tabelas, ilustramos a seguir uma possvel tabela de roteamento para o n (a). N de Destino b c d e f g Prximo N b c d b c d

Roteamento em Redes de Computadores INATEL


Se lembarmos que a rede do tipo Store-And-Forward e que cada pacote pode enfrentar uma fila em cada um dos ns pelos quais ele passar, fica evidente que a tcnica de roteamento implementada pela rede tem uma influncia direta na performance da mesma.

2. Classificao das Tcnicas de Roteamento

2.1.

Roteamento Esttico x Adaptativo: No Roteamento Esttico os diversos caminhos interligando os ns da rede so definidos e no mais alterados, a menos que ocorra uma mudana na topologia da rede (surgimento ou desaparecimento de ns e/ou enlaces). J nas tcnicas adaptativas as tabelas de roteamento esto sendo periodicamente alteradas, de modo a tentar acompanhar as alteraes de trfego (ou outro parmetro) da rede. Normalmente as tcnicas adaptativas resultam em um melhor desempenho ao custo de uma maior complexidade de implementao.

2.2.

Roteamento Centralizado x Isolado x Distribudo

2.2.1. Roteamento Centralizado Nesta tcnica temos um nico n responsvel pela tomada das decises de roteamento na rede e pelo encaminhamento dessas decises para os demais ns da rede. Se a topologia esttica e o trfego sofre poucas alteraes, a execuo do algoritmo de forma OFF-LINE e o posterior carregamento das tabelas nos diversos ns da rede pode ser um opo. Contudo, se a rede est sujeita a variaes topolgicas (pela entrada e sada de operao de estaes) e/ou a carga sofre variaes significativas ao longo do dia, passa a ser necessrio criar um mecanismo que nos permita adaptar as tabelas de roteamento s circunstncias correntes. Quando usamos roteamento centralizado comum termos na rede um Centro de Controle de Roteamento (RCC). Periodicamente cada n envia informaes de status para a RCC (por exemplo, uma lista de seus vizinhos que esto em atividade, o tamanho atual das filas, a quantidade de trfego processado por linha de sada desde o ltimo report, etc). A RCC coleta todas estas informaes e, conhecendo agora o comportamento global da rede, determina o melhor caminho a ser seguido para todas as comunicaes possveis (por exemplo, utilizando um algoritmo de caminho mais curto). Deste processamento resultam novas tabelas de roteamento

Roteamento em Redes de Computadores INATEL


que sero distribudas para todos os ns. O roteamento centralizado apresenta duas vantagens: a primeira consiste no fato de que a RCC possui todas as informaes concernentes a rede e pode, com isso, tomar as melhores decises; a segunda vantagem que o ns no necessitam efetuar processamento de roteamento, o que acarreta em simplificao. Infelizmente, este tipo de roteamento tambm apresenta desvantagens, algumas delas srias. A primeira desvantagem est relacionada ao tempo de adaptao s mudanas na rede; em uma rede extensa a RCC pode levar vrios segundos para executar os algoritmos e gerar as novas tabelas de roteamento. Se a rede apresenta uma caracterstica de grande variabilidade no trfego, este tempo pode acarretar em problemas, pois a tabela gerada j no representar as melhores rotas a serem seguidas. Outro srio problema associado ao roteamento centralizado a vulnerabilidade do RCC no que diz respeito a falhas. Uma soluo para este problema termos uma mquina de back-up, obviamente tendo que pagar pela facilidade. Outro problema associado ao roteamento centralizado diz respeito s tabelas de roteamento. Os ns mais prximos da RCC recebero as novas tabelas antes dos ns mais distantes, podendo levar a inconsistncias no encaminhamento de mensagens durante este intervalo. Finalmente, o roteamento centralizado causa uma pesada concentrao de mensagens de roteamento nas linhas que chegam RCC. Esta idia esta ilustrada na figura a seguir.

Roteamento em Redes de Computadores INATEL

Roteamento em Redes de Computadores INATEL


2.2.2. Roteamento Isolado Nesta tcnica o n toma a deciso de roteamento baseado apenas em uma informao local, sem trocar informaes com os demais ns da rede. Perceba, pois, que se trata de uma tcnica descentralizada. Um algoritmo simples do tipo isolado adaptativo o algoritmo conhecido como HOT POTATO (batata quente). Neste algoritmo quando um pacote de mensagem chega a um n, ele procura se livrar do pacote o mais rpido possvel, colocando-o na fila de sada que apresentar menor tamanho naquele momento. Em outras palavras, quando um pacote chega, o n verifica o nmero de pacotes na fila para cada uma das linhas de sada possveis, e coloca o pacote a ser despachado naquela fila que tiver o menor nmero de pacotes, sem se importar que linha esta. Este tipo de algoritmo pode ser usado em conjunto com outros, como veremos mais tarde, para se obter uma melhor performance.

2.2.3. Roteamento Distribudo Nesta classe de algoritmos de roteamento cada n troca, periodicamente, informaes de roteamento com outros ns da rede (por exemplo, com os ns vizinhos). Baseado ento em informaes locais e informaes provenientes de outros ns da rede, cada n toma suas decises de roteamento.

3. Algumas Questes de Desempenho Associadas ao Roteamento Existem duas medidas de performance que so substancialmente afetadas pelos algoritmos de roteamento - o Throughput (quantidade de servio), e o atraso mdio sofrido pelo pacote (qualidade de servio). O roteamento interage com o controle de fluxo na determinao dessas medidas de performance por meio de um mecanismo de realimentao como o mostrado na figura a seguir. Quando o trfego chegando subrede (trfego oferecido) relativamente baixo, ele completamente aceito pela rede, isto , Throughput = Trfego Oferecido

Roteamento em Redes de Computadores INATEL


Delay

Trfego Oferecido

Controle de Fluxo

Roteamento Throughput Delay

Trfego Rejeitado

Quando o trfego oferecido excessivo, uma parte dele ser rejeitado pelo controle de fluxo, e, Throughput = Trfego Oferecido - Trfego Rejeitado O trfego aceito na rede sofrer um atraso mdio por pacote que depender da rota escolhida pelo algoritmo de roteamento. Contudo, o Throughput tambm ser grandemente afetado (mesmo que apenas indiretamente) pelo algoritmo de roteamento, porque os esquemas de controle de fluxo tpicos operam na base de um balanceamento entre Throughput e Delay, isto , eles iniciam a rejeio do trfego oferecido quando o Delay torna-se excessivo. Portanto, quanto mais sucesso o algoritmo de roteamento tiver em manter o atraso baixo, mais trfego entrante o algoritmo de controle de fluxo permitir. Embora o balanceamento preciso entre Delay e Throughput seja determinado pelo controle de fluxo, o efeito de um bom roteamento sob condies de trfego oferecido alto realizar uma curva Throughput x Delay mais favorvel, sob a qual o controle de fluxo opera. A figura a seguir ilustra a idia.

Roteamento em Redes de Computadores INATEL


Os exemplos seguintes ilustram a discusso anterior: Exemplo 1 : Na rede da figura abaixo todos os enlaces tem uma capacidade de 10 unidades. Temos dois ns, (1) e (2), originando mensagens para o mesmo destino, n (6). O trfego oferecido em cada n origem 05 unidades. Neste caso, o trfego oferecido relativamente leve e pode ser facilmente encaminhado, com baixo Delay, por exemplo pelas rotas 1 3 6 e 2 5 6 . Se, contudo, as rotas 1 4 6 e 2 4 6 so usadas, o fluxo no enlace (4,6) ser igual sua capacidade, resultando em um atraso significativamente grande.

Exemplo 2 : Para a mesma rede, assuma agora que o trfego oferecido pelos ns (1) e (2) seja de 5 e 15 unidades, respectivamente. Se o roteamento do n (2) para o destino feito por um caminho nico, ento ao menos 5 unidades de trfego oferecido devem ser rejeitadas, uma vez que a capacidade total do caminho igual a 10. Assim, o Throughput total no pode ser maior do que 15 unidades. Por outro lado, suponha que o trfego originado no n (2) seja igualmente dividido entre os caminhos 2 4 6 e 2 5 6 , enquanto o trfego originado no n (1) encaminhado por 1 3 6 . Ento, o trfego chegando em cada enlace no ultrapassar 75% da sua capacidade, resultando em um atraso com valor razovel, e (dado um bom esquema de controle de fluxo) nenhuma parcela do trfego oferecido ser rejeitado. Analisando similarmente, vemos que quando o trfego oferecido pelos ns (1) e (2) elevado (em ambos os ns), o Throughput mximo que a rede pode acomodar est entre 10 e 30 unidades, dependendo do esquema de roteamento. Este exemplo tambm ilustra que,

Roteamento em Redes de Computadores INATEL


para conseguirmos um Throughput elevado, o trfego de um par origem-destino pode ter de ser encaminhado por mais de uma rota.

Em concluso, o efeito de um bom roteamento incrementar o Throughput para o mesmo valor de atraso mdio por pacote sob condies de alto trfego oferecido e decrementar o atraso mdio por pacote sob condies de baixo trfego oferecido. Alm disso, evidente que o algoritmo de roteamento deva operar de modo a manter o atraso mdio por pacote to baixo quanto possvel, para qualquer nvel de Throughput dado.

4. Algoritmos de Caminho Mais Curto Como vimos, o Throughput e o Delay so dois parmetros de performance intimamente ligados com o algoritmo de roteamento. Alguns dos algoritmos que trataremos em itens posteriores associam uma medida de custo a cada enlace (ou n) da rede, e tentam encontrar um caminho que minimize o custo total. O custo pode ser uma quantidade fixa relacionada a alguns parmetros, tais como: comprimento do enlace, velocidade, largura de faixa do enlace (capacidade de transmisso), se o enlace seguro ou no, atraso estimado, ou alguma combinao deles. Ainda, o custo pode incluir o trfego mdio esperado para uma dada hora em um dado dia, ele pode incluir estimativas de trfego no enlace, ocupao de Buffer, condies de erro no enlace, e assim por diante. O tipo de parmetro escolhido depende da classe do usurio (tipo de aplicao). Por exemplo, trfego entre um terminal e um computador (interativo, em Bursts) requer um caminho que oferea baixo tempo de resposta. Tal trfego deve evitar enlaces com elevado tempo de propagao (enlace satlite, por exemplo). Assim, devemos aumentar o custo deste tipo de enlace para esta classe de aplicao. Por outro lado, a transferncia

Roteamento em Redes de Computadores INATEL


de grandes arquivos pode requerer um enlace com grande largura de faixa, se disponvel. Assim devemos associar um baixo custo para esses enlaces (para a aplicao de transferncia de arquivos). Completando o exemplo, mensagens que exijam segurana devem ser roteadas por caminhos que envolvam apenas enlaces seguros. Isto pode ser conseguido, associando os custos adequadamente. Finalmente, vale salientar que para o caso de enlaces bidirecionais, podemos ter custos diferentes associados a cada direo. Passaremos agora a descrever dois algoritmos de roteamento que so utilizados (diretamente, ou atravs de alguma variao) em diversos tipos de rede. Chamaremos os algoritmos de A e B . O primeiro (A) devido A E. W. Diskstra, e o segundo a L. R. Ford Jr. e D. R. Fulkerson.

4.1.

Algoritmo A Algoritmo de Dijkstra Considere a rede da figura abaixo, onde os nmeros associados com cada link representam o seu custo (por simplicidade estamos admitindo que o custo para uma direo e outra o mesmo). O algoritmo que aqui tratamos visa buscar o caminho mais curto de um n para todos os outros ns da rede. Logo, necessitamos conhecer os aspectos topolgicos da rede, isto , devemos conhecer todos os ns e suas interconexes, assim como o custo de cada interconexo.
5 2 2 2 1 1 4 3 1 6 1 2 5 3 3 5

Ele pode ser implementado de uma forma centralizada, em que um nico n detm toda a informao da rede, processa o algoritmo e posteriormente distribui as tabelas de roteamento; ou servir de base para a implementao de um algoritmo distribudo (como na Arpanet, onde cada n possui sua prpria base de dados com todas as informaes para o processamento do algoritmo. Vamos fazer um exemplo considerando o n 1 (veja figura anterior) como fonte. Antes de apresentarmos o algoritmo vamos fazer as seguintes definies:

Roteamento em Redes de Computadores INATEL


- D(v) distncia (soma dos pesos de todos os links ao longo do caminho) do n fonte 1 para o n v. - l(i,j) custo entre o n i e o n j. Vamos ao algoritmo: 1. INICIALIZAO: Faa N = {1}. Para cada n v fora de N, faa D(v) = l(1,v) (para os ns no conectados a 1 podemos fazer D(v) = infinito, por exemplo). 2. PASSOS SUBSEQUENTES: Encontre um n w fora de N tal que D(w) seja mnimo, adicione este n (w) a N. Atualize D(v) para todos ns restantes que ainda no esto em N, fazendo D(v) Min [ D(v), D(w) + l(w,v)] Repita este passo at que todos ns estejam em N. A tabela a seguir ilustra a aplicao deste algoritmo para o exemplo mostrado na figura anterior. Step inicial {1} 1 {1,4} 2 {1,4,5} 3 {1,4,5,2} 4 {1,4,5,2,3} 5 {1,4,5,2,3,6} 2 2 2 (2) 2 2 5 4 3 3 (3) 3 1 (1) 1 1 1 1 infinito 2 (2) 2 2 2 infinito 4 4 4 (4)

A rvore de caminho mais curto vai aparecendo com o prprio desenrolar do algoritmo, como mostra a figura abaixo, onde o nmero entre parnteses prximo de cada n representa o passo em que o n foi includo no algoritmo.

10

Roteamento em Redes de Computadores INATEL


(3) 2 2 (0) 1 6 2 1 4 (1) 1 5 (2) (4) 3

(5)

Step number

(a)

Da rvore de caminho mais curto obtemos a tabela de roteamento para o n (1), indicando, por destino, o enlace de sada para o qual o pacote deve ser encaminhado. Assim, para o n (1) temos: Destino 2 3 4 5 6 Prximo N 2 4 4 4 4

O algoritmo deve ser rodado para cada um dos ns da rede como fonte, dando origem tabela de roteamento. No caso de computao centralizada um nico n tem as informaes da rede, executa o algoritmo para todos os ns e transmite a tabela de roteamento para o n correspondente. No caso de roteamento descentralizado ou distribudo, cada n executa o algoritmo tomando-se como fonte e gera sua prpria tabela de roteamento. Neste caso todos os ns devem possuir as informaes da rede. Esta ltima tcnica utilizada na rede ARPANET.

4.2.

Algoritmo B Algoritmo de Bellman - Ford Neste algoritmo cada n v tem um label [n,D(v)], onde D(v) representa o valor corrente da distncia mais curta do n para o destino e n o nmero do prximo n ao longo do caminho mais curto corrente. A execuo do algoritmo engloba dois procedimentos bsicos:

11

Roteamento em Redes de Computadores INATEL


1. INICIALIZAO: Com o n 1 como destino, faa D(1) = 0 e associe o label (.,infinito) para os demais ns. 2. DISTNCIA MAIS CURTA: Para cada n v diferente de 1, faa o seguinte: atualize D(v) usando o valor corrente D(w) para cada n vizinho w, fazendo D(v) min [D(w) + l(w,v)]. Atualize o label v fazendo n igual ao n adjacente que minimizou a expresso acima e fazendo D(v) igual ao valor encontrado. Repita este passo para cada n at que nenhuma mudana ocorra. A tabela a seguir ilustra a aplicao deste algoritmo para a figura do exemplo anterior. CICLO LABELS N 2 INICIAL 1 (.,INFIN) (1,2) 3 (.,INFIN) (1,5) 4 (.,INFIN) (1,1) 5 6

(.,INFIN) (.,INFIN) (4a) .Tj 35.25 0 TD (5,4.,INFIN 1 (1,2)1,5) (1,1)

12

Roteamento em Redes de Computadores INATEL


D(1) + l(1,3) = 0 + 5 = 5 D(4) + l(4,3) = 1 + 3 = 4 D(5) + l(5,3) = 2 + 1 = 3 D(6) + l(6,3) = 4 + 5 = 9 - D(4) D(1) + l(1,4) = 0 + 1 = 1 D(2) + l(2,4) = 2 + 2 = 4 D(3) + l(3,4) = 3 + 3 = 6 D(5) + l(5,4) = 2 + 1 = 3 D(4) + l(4,5) = 1 + 1 = 2 D(3) + l(3,5) = 3 + 1 = 4 D(6) + l(6,5) = 4 + 2 = 6

- D(5)

D(3) + l(3,6) = 3 + 5 = 8 D(5) + l(5,6) = 2 + 2 = 4 Como no ocorreu mais nenhuma mudana, o algoritmo termina. Olhando para os labels resultantes (vide tabela anterior) vemos que o n 2 deve se conectar ao n 1, o n 3 deve se conectar ao n 5, o n 4 ao n 1 e ao n 5, e o n 6 ao n 5, resultando na figura mostrada abaixo. - D(6)
(3) 2 2 (0) 1 6 2 1 4 (1) 1 5 (2) (4) 3

(5)

Step number

(a)

Para obter a tabela de roteamento para cada n, o algoritmo B deve ser repetido tomando-se cada um dos ns como destino. Um algoritmo similar a este usado para roteamento com computao centralizada na rede TYMNET.

5. Roteamento Por Caminhos Mltiplos Em muitas redes, existe mais de um caminho "timo" entre pares de ns. Nestes casos, uma boa performance pode ser obtida dividindo-se o trfego por esses diversos 13

Roteamento em Redes de Computadores INATEL


caminhos, de forma a reduzir a carga em cada link. A tcnica de utilizar mltiplas rotas entre um par de ns especfico chamada de MULTIPATH ROUTING ou roteamento bifurcado. Este tipo de roteamento se aplica tanto para redes do tipo DATAGRAMA quanto para redes do tipo CIRCUITO VIRTUAL. Nas redes do tipo Datagrama, quando um pacote chega a um n este escolhe uma das rotas possveis de sada, independente da rota que o pacote anterior seguiu; j nas redes com implementao por Circuito Virtual, os pacotes de uma mensagem seguem sempre uma das rotas timas, mas diferentes circuitos virtuais podem ser escolhidos para diferentes mensagens, mesmo que os dois ns sejam os mesmos. Roteamento Multi-rotas pode ser implementado, por exemplo, da seguinte maneira: cada n mantm uma tabela com uma linha para cada n destino. Nesta linha esto listadas a melhor rota, a segunda melhor rota, a terceira melhor rota e assim por diante; para cada uma dessas rotas temos um peso associado. Quando o n recebe um pacote para ser retransmitido ele examina a linha correspondente ao destino da mensagem, gera um nmero randomico e, em funo deste nmero e do peso associado a cada uma das possveis rotas escolhe o caminho a ser seguido. Esta tabela pode ser carregada nos ns durante o processo de inicializao da rede, no sendo alterada aps isto. Como um exemplo considere a rede da figura abaixo, a tabela mostrada a tabela de roteamento do n j. Se J recebe um pacote cujo destino o n A ele usa a linha referente a este n. Como temos 3 alternativas de link de sada, o n J ir gerar um nmero randomico entre 0 e 0.99 e escolhe a rota em funo deste nmero. Se o nmero gerado estiver entre 0 e 0.63 a linha A utilizada, se o nmero estiver entre 0.63 e 0.83, I ser utilizada, e se for maior que 0.83 a rota H ser utilizada.

14

Roteamento em Redes de Computadores INATEL


Destination First Second Third Choice Choice Choice 64 74 8 64 74 8 64 74 8 4 4 4 4 4 4 A B C D A B C D E F G H I K L A A A H A A H H I K K 0.63 0.46 0.34 0.50 0.40 0.34 0.46 0.63 0.65 0.67 0.42 I H I A I H A K A H H 0.21 0.31 0.33 0.25 0.40 0.33 0.31 0.21 0.22 0.22 0.42 H I H I H I K A H A A 0.16 0.23 0.33 0.25 0.20 0.33 0.23 0.16 0.13 0.11 0.16

F E

G H

Uma vantagem deste tipo de roteamento sobre o de Caminho mais Curto a possibilidade de enviar trfegos de classes diferentes atravs de rotas diferentes. Este tipo de roteamento pode tambm ser utilizado para incrementar a confiabilidade da rede. Em particular, se a tabela de roteamento possui n rotas disjuntas entre cada par de ns da rede, ento a subrede suporta a perda de n-1 linhas sem haver a diviso da rede em duas partes. Uma simples forma de implementar este tipo de algoritmo (garantindo que todas as rotas alternativas so disjuntas) primeiro determinar o caminho mais curto entre a fonte e o destino. A seguir, vamos remover do grafo todos os ns e arcos usados no caminho mais curto e calcular um novo caminho mais curto. Este algoritmo garante que falhas que ocorrerem no primeiro caminho mais curto no iro afetar as demais rotas alternativas. Excluindo-se agora o segundo caminho mais curto podemos determinar a terceira opo, e assim sucessivamente. (Garantindo que todas as rotas alternativas so disjuntas).

6. Roteamento Isolado - Evoludo a Idia do Hot Potato J descrevemos o algoritmo Hot Potato em itens anteriores. Uma variao desta idia combinar roteamento esttico com o algoritmo Hot Potato. Aqui, quando um pacote chega, o algoritmo de roteamento levar em conta tanto os pesos estticos das linhas de sada quanto o tamanho da fila nestas linhas. Uma possibilidade escolher a melhor rota de sada, desde que a fila para esta rota no tenha ultrapassado um dado valor. Outra

15

Roteamento em Redes de Computadores INATEL


possibilidade escolher a rota com menor fila, desde que seu peso esttico no seja inferior a um dado valor. Ainda, uma outra forma escolher a rota de sada considerando-se um ranking das melhores rotas e das menores filas, e escolhendo a rota que tiver a melhor composio dos dois fatores. De qualquer forma, uma caracterstica desejvel que o algoritmo escolha a melhor rota possvel em situaes de baixo trfego e com o incremento do trfego naquela rota, desvie parte deste trfego para outras rotas.

7. Algoritmo Delta Rudin, em 1976, descreveu um tipo de algoritmo hbrido, entre o roteamento centralizado e isolado, bastante interessante. Este algoritmo denominado de algoritmo DELTA. A idia a seguinte: cada n mede o "custo" (alguma funo de atraso, tamanho de fila, utilizao, etc.) dos links e, periodicamente, envia um pacote para um n central com essas informaes. Usando as informaes enviadas pelos ns, o n central calcula os K melhores caminhos para interligar o n i ao n j, para todo i e j. Seja ento Cij1 o custo total do melhor caminho entre i e j; Cij2 o custo total do prximo melhor caminho, e assim sucessivamente. Se Cijn - Cij1 < Delta, o caminho n dito equivalente ao caminho 1, uma vez que seus custos diferem de um valor pequeno. Quando os clculos de roteamento terminam, o n central envia para cada n uma lista dos caminhos equivalentes para cada um dos seus possveis destinos. Nas implementaes atuais, o n pode escolher qual a rota a seguir dentro das rotas equivalentes enviadas pelo n central. Esta deciso pode ser feita de forma aleatria ou baseada no "custo" corrente de cada link. Note que, ajustando os valores de k e Delta, podemos transferir autoridade dos ns para o n central ou vice-versa. Se fizermos Delta tender a zero, todos os caminhos tornam-se inferiores ao melhor caminho, e o n central toma a deciso; se por outro lado fazemos Delta tender a infinito, todos os caminhos tornam-se equivalentes, e cada n passa a tomar a deciso de roteamento. Simulaes tem mostrado que o valor de Delta pode ser ajustado de tal forma a obtermos um desempenho superior quele que obteramos trabalhando com algoritmos puramente centralizados ou puramente isolados.

8. Roteamento Por Inundao Uma forma extrema de roteamento isolado o roteamento por INUNDAO. Nesta tcnica o n recebe um dado pacote e o retransmite para todas linhas de sada, com exceo daquela pela qual ele recebeu o pacote. Obviamente, o processo de inundao gera uma enorme quantidade de duplicatas dos pacotes, tendendo a infinitas duplicatas se no criarmos uma forma de restringir este nmero. 16

Roteamento em Redes de Computadores INATEL

Uma das formas de restringirmos o nmero de duplicatas na rede utilizarmos um contador no cabealho do pacote. Este contador inicializado com o tamanho do caminho entre a fonte e o destino ( caso este valor no seja conhecido podemos inicializlo com o tamanho mximo da rede) em termos de nmero de "escalas". Cada n que recebe o pacote decrementa este contador de 1. Quando o contador chegar a zero o pacote no mais ser retransmitido, sendo eliminado da rede. Assim, conseguimos eliminar as duplicatas que no tenham chegado ao destino. A tcnica de inundao no tem aplicao prtica na maioria dos casos. No entanto, existem algumas situaes onde ela torna-se atrativa. Em aplicaes militares, por exemplo, a robustez da tcnica pode ser um fator interessante. Em aplicaes com bases de dados distribudas, algumas vezes necessrio atualizar essas bases concorrentemente, neste caso a tcnica de inundao pode ser til. Outra possvel utilizao esta relacionada a um processo de medio de caractersticas da rede, que podem ser utilizadas por outros algoritmos. A vantagem da tcnica de inundao neste caso a garantia de que a mensagem chegar ao destino atravs do caminho mais curto possvel. De fato, nenhum outro algoritmo pode produzir um atraso menor para uma dada mensagem. (Se ignorarmos o Overhead gerado pelo prprio processo de inundao). Uma variao deste algoritmo a inundao seletiva. Aqui, os ns no enviam cada pacote que chega para todas as linhas de sada, mas somente para aquelas que vo aproximadamente para a direo correta.

9. Verso Descentralizada do Algoritmo B Roteamento com Vetor de Distncia Uma verso descentralizada do algoritmo B, denominado Algoritmo Distribudo de Bellman- Ford foi usado originalmente na Arpanet (posteriormente abandonado) e na Internet (com o nome e RIP), e muito proximamente relacionado com o algoritmo usado na arquitetura DNA (Digital Network Architecture). Um aspecto interessante deste algoritmo que ele requer que uma quantidade muito pequena de informaes seja armazenada nos ns da rede. De fato, um n no precisa conhecer os detalhes da topologia da rede. suficiente para um n conhecer o comprimento de seus enlaces de sada e a identidade de cada n na rede. Faremos aqui uma descrio simplificada do algoritmo (seguindo Tanenbaum). Uma abordagem um pouco mais formal pode ser obtida em [Schuwartz] e [Bertsekas, 87]. Nesta classe de algoritmo de roteamento, originalmente usada na rede ARPANET, cada n troca, periodicamente, informaes de roteamento com cada um dos seus vizinhos. Tipicamente, cada n mantm uma tabela que diz a linha de sada a ser usada para cada 17

Roteamento em Redes de Computadores INATEL


destino e uma estimativa do custo para aquele destino. O parmetro usado para estabelecer o custo pode ser o nmero de "escalas", o atraso estimado, o nmero de pacotes na fila, etc. Como um exemplo, assuma que o atraso usado como parmetro(caso da Arpanet) e que cada n conhece o atraso relacionado a cada um dos seus vizinhos. Uma vez a cada T milisegundos(2/3 segundo na Arpanet cada n envia para cada um dos seus vizinhos uma lista de sua estimativa de atraso para cada destino. Imagine que um determinado n recebeu uma tabela do seu vizinho X, com Xi representando a estimativa de X para uma conexo com o n i. Se o n que recebeu a mensagem conhece o atraso para X, ele tambm conhece o atraso para cada um dos ns (i) atravs de X, que seria Xi + m (mseg), onde m representa a estimativa de atraso do n em questo para o n X. Executando este clculo para cada vizinho, o n tem condio de encontrar qual a melhor forma de se conectar aos demais ns da rede. Este processo de atualizao ilustrado na figura a seguir. A parte (a) da figura mostra a subrede. As primeiras 4 colunas mostram os vetores de atraso recebidos pelo n J, oriundo de seus vizinhos. Por exemplo, o n A diz ter um atraso de 12 ms para B, 25 ms para C, 40 ms para D, etc. Suponha que o n J tenha medido ou estimado o atraso para cada um dos seus vizinhos como 8, 10, 12 e 6 ms para os ns A, I, H e K respectivamente. Considere que o n J est calculando uma nova rota para se interligar ao n G. Ele sabe que o n A estima um atraso de 18 ms para se conectar a G, como o atraso na conexo J->A de 8 ms, o atraso total para conexo ao n G atravs do n A de 26 ms. Da mesma forma, para a conexo atravs de I obtemos um atraso de 31 + 10 =41 ms, atravs de H temos 6 + 12 = 18 ms , e atravs de K obtemos 31 + 8 = 37 ms. Logo, a melhor forma de enviarmos uma mensagem de J para G faze-lo atravs de H. Este procedimento repetido pelo n J para todos os possveis destinos na rede, gerando uma nova tabela de roteamento para este n.

18

Roteamento em Redes de Computadores INATEL


A B C D

F E

G H

J (a)

A A B C D E F G H I J K L 0 12 25 40 14 23 18 17 21 9 24 29 JA Delay =8

I 24 36 18 27 7 20 31 20 0 11 22 33

H 20 31 19 8 30 19 6 0 14 7 22 9

K 21 28 36 24 22 40 31 19 22 10 0 9

New estimated Delay from J line 8 20 28 20 17 30 18 12 10 0 6 15 A B C D E F G H I J K L

JI Delay JH Delay JK Delay = 10 = 12 =6 (b)

Note que, por causa da natureza deste algoritmo, em que o ns passam mensagens de controle para os outros ns at que o algoritmo esteja completo em cada n, convergindo para o caminho mais curto, ele s pode ser usado em redes tipo datagrama. De fato, uma caracterstica geral de algoritmos deste tipo a seguinte: No existe nenhuma garantia que durante a transmisso dos pacotes o algoritmo no possa ser invocado em algum ponto da rede, mudando o caminho aps a convergncia. Isto significa que pacotes diferentes da mesma mensagem podem trilhar caminhos diferentes, podendo inclusive chegar fora da ordem em que foram transmitidos. Esta

19

Roteamento em Redes de Computadores INATEL


caracterstica no um problema para redes datagrama, mas o para redes do tipo Circuito Virtual. Ainda, durante a fase de convergncia este algoritmo propenso a formao de Loops: Pacotes saindo de um n podem voltar ao mesmo algum tempo depois. Isto pode no ser um grande problema para redes datagrama, mas intolervel para redes com circuito virtual. Em funo dos parmetros de adaptatividade usados na Arpanet, o problema do loop tornou-se bastante srio (ns diferentes tinham vises diferentes das condies da rede). Por esta razo o algoritmo foi abandonado e outro foi desenvolvido, em 1979.

10. Exemplos de Roteamento em Redes e Arquiteturas de Rede

10.1. Roteamento na TYM NET O algoritmo de roteamento da Tymnet, implementado em 1971, baseado no mtodo do caminho mais curto. O algoritmo o de Floyd, que uma variao do algoritmo B apresentado no item 4. A Tymnet usa o conceito de roteamento centralizado, operado por um programa supervisor rodando em um dos quatro possveis computadores supervisores na rede. A rede trabalha com circuito virtual, o que significa que a deciso de roteamento tomada no instante do estabelecimento do circuito. A construo do caminho de roteamento incorpora o conceito de classe de servio, similar ao usado no SNA. O Peso dos enlaces varia, dependendo do tipo de trfego transmitido. Por exemplo, usurios iterativos de baixa velocidade so guiados para longe de enlaces via satlite atravs do incremento do peso desses enlaces para este caso. Computadores que esto transferindo arquivos entre si podem requerer enlaces via-satlite, com maior largura de faixa que os enlaces terrestres. Os pesos dos enlaces tambm dependem da utilizao e das condies de erro detectadas no mesmo. Especificamente, o nmero 16 associado a enlaces de 2.400 BPS, 12 aos enlaces de 4.800 BPS e 10 aos enlaces de 9.600 BPS. Uma penalidade de 16 adicionada ao enlace satlite para usurios iterativos de baixa velocidade. Isto desloca tais usurios para enlaces terrestres. Uma penalidade de 16 adicionada a um enlace se o n de uma das extremidades acusa sobrecarga. Se ambos os ns que compem o enlace acusam sobrecarga a penalidade 32. A sobrecarga experimentada se o pacote para um circuito virtual especfico espera mais que 0,5 [s] para ser servido. Esta condio reportada pelo n para o supervisor. Uma condio de sobrecarga pode ocorrer por um excesso de circuitos requerendo servio sobre o mesmo Link, ou ela pode ser devida a uma situao de canal ruidoso, provocando um aumento na taxa de erro de Bit e, consequentemente, um nmero maior de retransmisses. A penalidade usada neste caso serve para afastar os circuitos adicionais do enlace at que as condies do mesmo melhorem. 20

Roteamento em Redes de Computadores INATEL


Na ausncia de sobrecarga, o algoritmo tende a selecionar o caminho mais curto (menor nmero de enlaces) com a maior taxa de transmisso. medida que mais usurios vo entrando na rede, os enlaces de mais baixa velocidade passam tambm a ser utilizados. Em situaes de carga leve, os usurios tendem a ter um atraso relativamente curto na rede. O caminho mais curto (com nmero menor de saltos), favorecido pelo caso de trfego leve, tambm tende a ser mais confivel do que caminhos com mais enlaces. Usurios que cheguem ao sistema em um perodo de maior ocupao podem experimentar um atraso maior, devido a congestionamentos e uso de enlaces de mais baixa velocidade. O uso de penalidades para sobrecarga tende a espalhar o trfego pela rede desviando-o do caminho mais curto mas reduzindo o atraso. No caso de falha de um enlace ou n a longo de um circuito virtual, o n supervisor notificado, determina automaticamente uma nova rota e notifica todos os ns envolvidos. A notificao consiste no envio para o n de origem de um pacote controle que contm uma lista de todos o ns ao longo da rota. O n de origem por sua vez envia este pacote de controle para o prximo n na lista, que o envia para o prximo n na lista e assim sucessivamente, at que o n de destino seja alcanado. O procedimento descrito no pargrafo anterior tambm ocorre quando do estabelecimento de um novo circuito virtual. Ou seja, o n supervisor recebe uma solicitao de estabelecimento de circuito virtual entre dois pontos, decide qual o caminho ser usado pelo circuito virtual e informa os ns associados ao caminho. O supervisor estabelece o novo circuito virtual, como antes, enviando um pacote Bssola para o n de origem. A tabela de roteamento mantida em cada n basicamente associa ao circuito virtual um nmero de canal (ou porta) em cada enlace do mesmo. Por exemplo na figura abaixo, a tabela do n A mapeia a porta de entrada 5 no canal 4 do enlace 1. No n B, o canal de entrada 4 mantido no canal de sada 10. Para o n C, o canal de entrada 10 mapeado para a porta 7.

21

Roteamento em Redes de Computadores INATEL

10.2. Roteamento na Internet Roteamento por Estado de Enlace O algoritmo que aqui descrevemos a verso introduzida em 1979, em substituio verso original, que apresentava alguns problemas de loop. Esta algoritmo usa uma verso modificada do algoritmo de caminho mais curto de Dijkstra (algoritmo A) rodando independentemente em todos os ns. Em essncia, cada n mantm uma base de dados topolgica completa (global), que atualizada regularmente quando uma mudana topolgica ocorre. A filosofia de Roteamento da Arpanet tem consistentemente sido a de rotear os pacotes (datagramas) por caminhos que possuam a menor estimativa (corrente) de atraso, de modo que as estimativas de atraso tambm devem ser disseminadas quando mudanas significativas ocorrem. Neste algoritmo cada n executa os seus prprios clculos. O problema bsico manter (confivelmente) a mesma base de dados para cada n e disseminar as mudanas rapidamente e de forma confivel para as bases de dados dos ns. Podemos dividir o algoritmo em trs partes: 1) Estimativa do Atraso: As estimativas so feitas sobre um intervalo de 10 segundos. No algoritmo anterior eram feitas cerca de duas vezes por segundo, levando a estimativas que algumas vezes eram estatisticamente insignificantes e que geravam instabilidades no roteamento. O n estima o retardo para cada uma de suas linhas. 2) Protocolo de Atualizao: Para a disseminao das informaes de atraso medidas, o algoritmo utilizado o da inundao, de modo a alcanar todos os ns da rede to rpido quanto possvel. 3) Definio do Caminho Mais Curto: Uma verso modificada do algoritmo de Dijsktra utilizada em cada n para gerar as tabelas de roteamento. A medida de retardo feita para cada pacote, em todos os ns da rede, da seguinte maneira: O intervalo de tempo entre a chegada do pacote e o seu envio com sucesso (levando em conta as retransmisses necessrias) constitui o atraso sofrido pelo pacote. A este tempo somado o tempo de transmisso do pacote (que depender da taxa de transmisso do enlace de sada) e o tempo de propagao (uma constante para cada enlace de sada). A mdia deste tempo em um perodo de 10 segundos constitui a estimativa estatstica de atraso para aquele enlace. Se a nova estimativa difere da anterior por mais que 64 [ms], ela transmitida para os demais ns da rede por inundao. Se este limiar no excedido, o processo repetido a intervalos de 10 [s] com o limiar sendo reduzido de 12.8 [ms] a cada vez. Isto garante ao menos uma atualizao a cada 60 [s]. Contudo, quando uma mudana topolgica ocorre (por exemplo, uma linha retirada ou inicializada), uma informao de atualizao transmitida imediatamente. 22

Roteamento em Redes de Computadores INATEL

No processo de inundao as mensagens so retransmitidas, em cada n, para todas as linhas, incluindo quela por onde o pacote chegou. O eco aqui serve como um reconhecimento. Mecanismos de controle so utilizados para evitar a inundao contnua descontrolada da rede; Ou seja, existem mecanismos para a retirada desses pacotes da rede.

11. Performance de Algoritmos de Roteamento Uma comparao quantitativa de algoritmos de roteamento bastante complexa por uma srie de razes. Uma delas est associada aos diversos critrios possveis de anlise da performance existentes. Muitas vezes um algoritmo tem um melhor desempenho para determinados objetivos; Enquanto outros podem ser melhores se trocarmos os objetivos. Outra razo se deve ao fato de que a performance do algoritmo depende da configurao especfica da rede. Ns s podemos obter resultados analticos para certos grafos regulares. Para configuraes de rede reais devemos lanar mo de anlises computacionais e/ou simulaes. Quando estamos comparando o desempenho de algoritmos de mesmo tipo (por exemplo, algoritmo de caminho mais curto), o que mais nos interessa so as caractersticas do mesmo associadas sua capacidade de se adaptar a mudanas na rede.

Alguns critrios que podem ser utilizados so: 1) Velocidade de Resposta: O tempo requerido para que uma mudana na topologia se propague atravs da rede e para que as novas tabelas de roteamento estabeleam um novo caminho mais curto (quiescente). Uma possvel medida de velocidade o nmero de iteraes requeridas para que o algoritmo convirja para um novo estado. Esta medida de performance , obviamente, extremamente importante em um ambiente dinmico. A velocidade de resposta deve ser mais rpida que a taxa de mudana na rede, caso contrrio a convergncia no ocorrer e o algoritmo de roteamento ser intil. 2) Nmero de Pacotes de Controle Transmitidos: Qual a informao que deve ser transmitida ao longo da rede para propagar as modificaes ocorridas (topolgicas, nos custos associados) e as atualizaes das tabelas de roteamento. Quanto maior o nmero de pacotes de controle, maior o Overhead introduzido e maior a possibilidade de congestionamento introduzida pelos pacotes de controle.

23

Roteamento em Redes de Computadores INATEL

3) Complexidade Computacional: Os algoritmos requerem um esforo computacional varivel para processar os pacotes de controle, executar o algoritmo propriamente dito e atualizar as tabelas de roteamento. Isto pode refletir no tempo de processamento para cada n e portanto na velocidade de processamento. 4) Tamanho dos Pacotes de Controle: Os algoritmos diferem na quantidade de informao transmitida por pacote de controle. 5) Espao de Buffer Requerido: Os algoritmos diferem no espao de memria requerido para atualizar e manter as tabelas de roteamento. 6) Loop: No estado transitrio ou de convergncia de um algoritmo podemos ter a ocorrncia de loop. Um algoritmo Loop-Free garante que os pacotes de dados no retornaro aos ns pelos quais ele j passou, mesmo quando as tabelas de roteamento esto em processo de mudana.

24

Roteamento em Redes de Computadores INATEL


12. Bibliografia

12.1. SCHWARTZ, Mischa - Telecommunication Networks; Protocols, Modeling And Analysis Addison - Wesley Publishing Company - 1987. 12.2. BERTSEKAS, Dimitri And Gallager, Robert - Data Networks - Prentice-Hall, Inc-1987. 12.3. TANENBAUM , (1989). Andrew S. - Redes de Computadores - Editora Campus - 1994

12.4. BRITO, Jos Marcos C. - Projeto de Redes de Teleprocessamento - Apostila de Curso CEDETEC/INATEL - 1994. 12.5. AHUJA , Visay - Design And Analysis of Computer Communication Networks - McGraw-Hill Book Company - 1982.

25

Roteamento em Redes de Computadores INATEL


13. Exerccios 1) Considere a rede mostrada na figura abaixo. Utilize os algoritmos A e B para encontrar o caminho mais curto entre o Rio de Janeiro e cada uma das outras cidades.

2) O nmero mostrado prximo a cada enlace da rede da figura abaixo a probabilidade do enlace falhar durante a durao de um circuito virtual entre o n A e o n B. Vamos assumir que os enlaces falham independentemente um dos outros. Encontre o caminho mais confivel de A para B, esto , o caminho para o qual a probabilidade que todos os enlaces permaneam intactos durante a durao do circuito virtual mximo. Qual esta probabilidade?

26

Roteamento em Redes de Computadores INATEL


3) Considere a rede de dados da figura abaixo. Encontre o caminho mais curto entre Seattle e todas as outras cidades na rede para trfego interativo e usurios Batch, considerando as seguintes condies: a) Linhas terrestres de 2.400 BPS tem peso 1 para todos os usurios; Linhas de 4.800 BPS tem peso 1 para usurios Batch e peso 3 para usurios interativos. b) Enlaces de satlites tem peso 1 para usurios Batch e 6 para usurios interativos. Repita os clculos se a estao terrena de Nova York sair de operao temporariamente para manuteno. Repita se o enlace Houston-Atlanta ficar fora de operao.

27

Potrebbero piacerti anche