Problema de contagem ao infinito no Vetor de Distância Aula 042
Aula 43 · Redes Teórico
Transcrição do áudio
chegamos no algoritmo de roteamento por vetor de distância. Algoritmo esse que é cobrado em provas de concurso, algoritmo esse que é cobrado por exemplo em certificações como Cisco. É muito utilizado e nós vamos adentrar bastante nesse assunto, provavelmente eu vou fazer um parêntese trazendo conteúdo da rede de racisco, beleza? Vamos lá, é um algoritmo do tipo dinâmico, ele se adapta à atopologia da rede. Não é o mais inteligente com relação a isso, mas é, isso é inquestionável. Vimos essa diferença de algoritmos que são estáticos e algoritmos que são dinâmicos em aulas anteriores. Bom, esse algoritmo de roteamento por vetor de distância opera fazendo cada roteador manter uma tabela, entre em cada roteador eu tenho uma tabela. Nessa tabela cada linha tem a menor distância até uma outra rede e qual enlace eu devo seguir, ou seja, vamos imaginar qual placa de rede eu devo seguir. Não sei se você já estudou álgebra, mas lá no roteado de vetores você vai ter o sentido e a força. Não é isso? Bem parecido. A rede A está à minha esquerda três saltos, mais ou menos assim, pegou a jogada? Então vamos lá. Vamos ver um exemplo. Roteamento por vetor de distância, cada roteador mantém a tabela de roteamento indexada para cada roteador de rede contém uma entrada nessa tabela. Imagina então que eu tenho um grupo de roteadores e você já tem que pensar em uma coisa. Esse grupo de roteadores é fechado, ou seja, são só esses. Nas redes de telecomunicações isso é chamado de AS, é uma unidade autônoma de serviço. Lá dentro eu tenho um grupo de roteadores que é um grupo fechado. Vamos lá. Agora vamos imaginar que todos esses equipamentos vão ligar no exato momento. Então no exato momento o router A vai descobrir que a sua esquerda, pelo menos aqui na minha gravação, não sei aí como fica na sua visualização. A minha esquerda aqui, a... existe a rede 1 que está a minha esquerda do A. E a rede 2 está a direita do A segundo a minha visão. Beleza. Vamos lá. A pessoa não sabe que a direita esquerda vai que essa porca é a lista de invertida. A câmera é invertida, né? Deixa eu dar uma toa aqui, galera. Ai caramba. Curta, compartilhe esses equipamentos. Eu estou morrendo, pô, dá pelo menos uma livre no final desse pobre velho acabado, acabado dando programar. Bom, para o router B a sua esquerda tem a rede 2 e a sua direita eu tenho a rede 3. Para o C eu tenho a esquerda a rede 3, desculpe, e a sua direita a rede 4, assim como no C, a sua esquerda tem a rede 4 e a sua direita eu tenho a rede 5. Repare que todos eles travam suas redes conectadas diretamente com o valor zero no vetor, tá? Então o vetor é o meu sentido, a esquerda e a direita, e o valor é quanto saltos, quanto saltos. Legal. Acordei. Veja que se algo está conectado de 1 e tem que ir para a rede 5, não consegue chegar, porque o router A não sabe para onde é a rede 5. Bom, então vamos imaginar o seguinte algoritmo. O router acorda e sonda seus vizinhos, igual ele fez aqui, tá? E aí para saber qual rede ele está conectado, conforme ele fez cada um aqui, detectou a rede em que está conectado diretamente. Bom, ele ouve os vizinhos para saber se eles sabem de alguma coisa. E naturalmente a cada tempo x segundos, vamos imaginar, 45 segundos, ele pega e começa a enviar tudo que ele sabe para os vizinhos. E aí ele vai repetir o passo 2 e 3. Ou seja, escuta os vizinhos, pega tudo que aprendeu e envia. No um laço eterno a cada 45 segundos. Então nesse exemplo aqui, vamos imaginar que todos acordaram, todos sondaram as redes vizinhas que estão conectadas diretamente. Próximo passo, escutar, não tem ninguém me falando nada. E aí eu pego tudo que o A aprendeu e envia para o B. Tudo que o B aprendeu, envia para o A. Vamos imaginar que é tudo exatamente no mesmo momento, porque todos ligaram exatamente no mesmo tempo e todos estão com exatamente 45 segundos. Então ao mesmo tempo que o A manda tudo que aprendeu, o B está mandando tudo que aprendeu. Da mesma forma, o B e o C ao mesmo tempo, o C e o D ao mesmo tempo, tá? Estão trocando informações. Legal. Então depois da primeira rodada de aprendizado, no caso aqui é o aprendizado, né? Isso onde você aprende os vizinhos. Depois na segunda rodada, quando houve essa troca dos vizinhos, reparem. Olha só, o A aprendeu que existe uma rede 3 que está ligada a um salto de distância. Como que ele sabe? Porque o B disse que é o R3, está a zero saltos. Repare que ele pega o que ele aprendeu do centro e incrementa mais um. Bem simples, né? Olha só, vamos para o D. Das pontas sempre convergem mais lento. Do centro sempre convergem mais rápido. Vamos lá. O D ele aprendeu, olha só, que existe um R3 que está a um salto à esquerda dele. Ou seja, a distância que é um salto e o vetor que é a esquerda. Isso ele aprendeu porque o C informou isso a ele. Já os do centro, por exemplo, como o B e o C, eles aprendem com A e com D. Então é natural que a tabela dele converge mais rápido. O B, por exemplo, aprendeu que existe o R1 que está à esquerda, a um salto. E o B aprendeu que existe o R4 que está à direita, a um salto. Beleza? E aí eles dormem e daqui 45 segundos ele inicia a próxima rodada. Repare que a tabela está começando a ficar completa. Qual o número de entradas? O mesmo número de holders que estão trabalhando nessa unidade autônoma de serviço. Entendeu? Por isso que as extremidades vão demorar um pouco mais. Vamos lá. Agora nessa próxima rodada, se você olhar, o A aprendeu que existe a rede 4 para direita, porque se você olhar no B, o B sabia, já sabia que existia a rede 4 à sua direita. Ele pegou e incrementou. Da mesma forma, o B sabe da R de 5, porque o C conhecia a rede 5 que está à sua direita, a um salto. Então passou a ser dois saldos. E naturalmente eles começam a trocadados uns com os outros. Repare, eles trocam dados, daqui. Repare, olha o R5 onde estava e olha onde o R5 foi parar. O R5 não chegou no A ainda, mas o que é o número de entradas? É, nós temos mais uma rodada. Na última rodada, tá, eu sei porque o número de entradas é o número de holders, então bateu a última rodada. O que acontece? O meio não aprendeu nada, porque as pontas convergem mais lento para o melhor caminho. E naturalmente, se você olhar, agora o A aprende o R5, porque se você voltar aqui, o B sabia do R5 que está à sua direita, dois saldos. Agora o A aprende sobre o R5 que está a três saldos à direita. Repare, todos convergiram para o aprendizado da rede. E isso a faz um algoritmo dinâmico. Eu coloquei um exemplo diferente do livro, porque o exemplo do livro é muito complexo, é muito mais fácil você enxergar isso como uma linha assim, tá? Aprendi isso no material da CISCO. Inclusive, o material da CISCO é uma linha reta e são três. Eu decidi colocar quatro aqui, só fiz besteira porque demorou mais, porque é fácil pegar dinâmica disso, tá? Tá, mas esse é o dos algoritmos. Veja, preste atenção. Para o router A, se ele quer chegar na rede 5, é a sua direita, tá? Três saldos, um, dois, três. Chegou na rede 5, tá? Chegou na rede 5. Olha só que interessante. Se a rede 5 para de funcionar, quantos saltos serão necessários para que essa informação de R5 chegue até o router A? Vários saltos. Então, por vários momentos, naturalmente, por um longo momento, haverá uma desatualização nas rotas caso uma rota dessa caia, uma rede caia. O que que vai acontecer? É só esse o problema? Não. Tem um problema mais grave que é quando cai e o vizinho não tem. Parece que tem uma rede, um caminho melhor, mas ele está enganado. Vamos imaginar então, que a princípio, tá? Vamos ver essa conversão de novo aqui. Agora o material do tânibus, tá? Então, ele está aqui supondo que A inicialmente esteja inativo, eles não saibam disso, todos estão no infinito, tá? Todos registram o infinito. Aí, naturalmente, o B aprende sobre o A, que está a um salto, a esquerda, aí, no próximo, na próxima troca, o C aprende com B. É isso? É igual a nós vimos. Não tem diferença nenhuma, tá? Que é o material do tânibus. Bom, e aí ele vai conforme a gente. Então, se você olhar, os roteadores B, C, D e E, tem distâncias até A igual a 1, 2, 3 e 4, respectivamente. E, de repente, o A para de funcionar novamente. Peraí, deixa eu jogar uma pedra nesse passarem. Agora, vamos imaginar então a falha, né? A falha aqui em A, e aí o B aprende que para o A é infinito, ou seja, não tem caminho. Então, de um estado que era 1, 2, 3 e 4, ele passa a C. Infinito, 2, 3 e 4. Mas, olha o curioso. O C tem uma rota para o A, e o C replica que tem uma rota para o A. Hmm, olha a merda. O B não tem rota para o A, o C disse que tem uma rota para o A, e ele replica, e o que era 2 em C vira 3 aqui. Tudo isso porque o roteador no estado de inlace, ele não guarda topologia da rede. Ele só guarda, é para lá e tanto saltos. Ah, meu garoto. Então, quer dizer que a imagem vai virar infinito, vai aprender que é 3, aí por um momento vai aprender que é 5, por um momento vai aprender que é 7. A rede vai demorando para, né, tipo assim, vai replicando os errados pela rede, isso vai indo, cara. Isso vai indo. Levando ao ponto de que, vamos lá, o B manda para cá e o C manda para cá. E eles ficam nessa. Tá, tá, tá, tá, tá. E não manda para o A, infinitamente. Tudo isso porque se você olhar, as más notícias se propagam lentamente. E nem o roteador tem um valor maior que a humanidade, é mais do que seu valor mínimo. E todos os roteadores vizinhos. Então, quer dizer que lentamente ele vai levando a rotas erradas por não guardar o estado do inlace. Vou falar estado de inlace, é o nosso próximo algoritmo. Até o nosso próximo vídeo. Até mais, tchau.