# Routing Information Protocol

O RIP (Routing Information Protocol) é um padrão para troca de informações entre os gateways e hosts de roteamento. Atualmente existem muitos protocolos de roteamento utilizados para toda a rede. A rede mundial de computadores é organizada como um conjunto de "sistemas autônomos". Cada sistema autônomo tem a sua própria tecnologia de roteamento, o que pode bem ser diferente para diferentes sistemas autônomos. O protocolo de roteamento usado entre roteadores de um mesmo sistema autônomo é referido como um IGP (Interior Gateway Protocol). Um protocolo separado é usado para fazer a interface entre os sistemas autônomos. O mais antigo, e ainda usado na internet é o EGP (Exterior Gateway Protocol). Esses protocolos são agora geralmente referidos como protocolos inter-AS de roteamento. O RIP é projetado para redes com tamanho moderado, que utilizam uma tecnologia razoavelmente homogênea. Não é destinado a uso em ambientes mais complexos, devido à suscetibilidade a falhas. O RIP2, é uma evolução do RIP, e destina-se a expandir a quantidade de informação útil carregada nos pacotes e também adicionar uma medida de segurança. RIP2 é um protocolo que utiliza UDP para transporte. Cada host que usa RIP2 tem um processo de roteamento que envia e recebe datagramas em UDP, na porta 520. RIP e RIP2 são para redes IPv4, enquanto o RIPng é projetado para a rede IPv6.

## Atualizações do roteamento

O RIP emite mensagens de atualização das suas rotas (Tabelas de Roteamento) em intervalos regulares (a cada 30 segundos) e quando a topologia da rede mudar. Quando um roteador recebe uma atualização do roteamento que inclua mudanças a uma entrada, atualiza sua tabela de roteamento para refletir a rota nova. O valor métrico (salto) para o trajeto é aumentado por 1 e o remetente é indicado como o hop seguinte. Os roteadores do RIP mantêm somente a melhor rota (a rota com o valor métrico mais baixo) à um destino. Após ter atualizado sua tabela de roteamento, o roteador começa imediatamente a transmitir atualizações do roteamento para informar aos outros roteadores da rede sobre a mudança. Estas atualizações são emitidas independentemente das atualizações regulares programadas.

### Operação

RIP define 2 tipos de mensagens.
* Requisição (Request Message)
* Resposta (Response Message).
Quando um roteador RIP fica online, envia uma mensagem de requisição (Request Message) em broadcast para todas as interfaces RIP. Todos os roteadores vizinhos que receberem essa mensagem a respondem de volta (Response Message) contendo suas tabelas de roteamento. A mensagem de resposta é também gratuitamente enviada quando o temporizador de atualização expira.
Assim que o roteador recebe a tabela de roteamento, processa cada entrada da tabela de roteamento seguindo as regras:
* Se não existem entradas de rotas que correspondem à recebida, então a entrada de rota é automaticamente adicionada à tabela de roteamento, juntamente com as informações sobre o roteador do qual recebeu a tabela de roteamento.
* Se existirem entradas correspondentes, mas a contagem de hop é menor da que está em sua tabela de roteamento, então a tabela de roteamento é atualizada com a nova rota.
* Se existirem entradas correspondentes, mas a contagem de hop é maior da que está em sua tabela de roteamento, então a tabela de roteamento é atualizada com contagem de hop de 16 (hop infinito). Os pacotes ainda são encaminhados à antiga rota. Um temporizador hold-down é disparado e todas as atualizações daquela rota vindas de outros roteadores são ignoradas/descartadas. Se após o término do temporizador o roteador ainda está alertando sobre a contagem maior de hop, então o valor é atualizado dentro de sua tabela de roteamento. Somente após o fim do temporizador, as atualizações dos outros roteadores são aceitas para aquela rota.

## Métrica de roteamento

O RIP usa um único roteamento métrico (contagem do hop) para medir a distância entre a origem e o destino. Cada hop em um trajeto da fonte ao destino é atribuído um valor de contagem, tipicamente 1. Quando um roteador recebe um atualização do roteamento que contenha uma entrada nova ou mudada da rede de destino, o roteador adiciona 1 ao valor métrico indicado na atualização e incorpora a rede à tabela de roteamento. O endereço IP do remetente é usado como o hop seguinte.

## Características da estabilidade do RIP

O RIP impede que os enlaces do roteamento continuem transmitindo infinitamente, a fim de evitar loops na rede. Para tal, o protocolo possui um limite no número dos hops permitidos em um trajeto da fonte ao destino. O número máximo dos hops em um trajeto é 15. Se um roteador receber uma atualização do roteamento que contenha uma entrada nova ou mudada, e se aumentar o valor métrico por 1 pode resultar em loop, o destino da rede será então considerado inalcançável. O ponto fraco desta característica da estabilidade é que limita o número de saltos máximos de uma rede RIP para 16 hops. O RIP inclui inúmeras outras características de estabilidade que são comuns a muitos protocolos do roteamento. Estas características são projetadas a fim de fornecer estabilidade, mesmo com mudanças rápidas e constantes na topologia de uma rede. O RIP executa os mecanismos SPLIT HORIZON e HOLD DOWN para impedir que a informação de roteamento incorreta seja propagada.

## Temporizadores do RIP

O RIP usa vários temporizadores para regular seu desempenho. Estes incluem:
* temporizador de atualização do roteamento;
* temporizador do intervalo de distribuição;
* temporizador para o nível de distribuição.
O temporizador da atualização de roteamento cronometra o intervalo entre atualizações periódicas das tabelas de roteamento. Geralmente, é ajustado a 30 segundos, com uma quantidade pequena de tempo aleatório adicionado sempre que o temporizador é restaurado. Isto é feito para ajudar impedir o congestionamento, que poderia ocorrer caso todos os roteadores que tentem simultaneamente atualizar suas tabelas. Cada entrada da tabela de roteamento tem um temporizador de intervalo de distribuição associada a ela. Quando o temporizador de intervalo de parada expira, a rota é marcada como inválida, mas será retida na tabela de roteamento por um certo número de atualizações, após isso, ela será excluída.

## Formato do pacote do RIP

As seguintes descrições resumem os campos do formato do datagrama RIP:
* Comando: Indica se o pacote que é um pedido ou uma resposta. O pedido pergunta que um roteador emite o toda ou uma parte de sua tabela de roteamento. A resposta pode ser uma atualização regular não solicitada do roteamento ou uma resposta a um pedido. As respostas contêm entradas da tabela de roteamento.
* Número de versão: Especifica a versão do RIP usada. Este campo serve para sinalizar versões potencialmente diferentes e/ou incompatíveis.
* O campo zero: Este não é usado realmente pelo RIP de RFC 1058; adicionou-se unicamente para fornecer a compatibilidade inversa com as variedades pré-padronizadas do RIP. Seu nome vem de seu valor optado: zero.
* Identificador do Endereço da família (AFI): Especifica a família do endereço usada. O RIP é projetado para carregar a informação de roteamento para diversos protocolos diferentes. Cada entrada tem um identificador do endereço-família para indicar o tipo de endereço que está sendo especificado.
* Endereço: Especifica o endereço IP endereço para a entrada.
* Métrica: Indica quantos hops da rede interna (roteadores) foram atravessados da chegada ao destino. Este valor está entre 1 e 15 para uma rota válida, ou 16 para uma rota inalcançável.
Até 25 AFIs, endereços, e métricos são permitidos em um único pacote RIP. (até 25 destinos podem ser alistados em um único pacote do RIP).

## Formato do pacote do RIP 2

A especificação do RIP 2 (descrita em RFC 1723) permite que mais informação seja incluída em pacotes do RIP e fornece um mecanismo simples do autenticação que não seja suportado pelo RIP.
* Comando: Indica se o pacote é um pedido ou uma resposta. O pedido pergunta se um roteador emite toda ou uma parte sua tabela de roteamento. A resposta pode ser uma atualização regular não solicitada do roteamento ou uma resposta a um pedido. As respostas contêm entradas da tabela de roteamento. Os pacotes múltiplos do RIP são usados fazer saber à informação das tabelas de roteamento grandes.
* Versão: Especifica a versão do RIP usada. Em um pacote do RIP que executa alguns dos campos do RIP 2 ou que usa o autenticação, este valor é ajustado a 2.
* Identificador de endereçamento da família (AFI): Especifica a família do endereço usada. Funções do campo da AFI do RIP 2 são idênticas ao campo de AFI do RIP do RFC 1058, com uma exceção: Se o AFI para a primeira entrada na mensagem for 0xFFFF, o restante da entrada contém a informação da autenticação. Atualmente, o único tipo de autenticação é senha simples.
* Distribution Tag: Provê um método para distinguir entre as rotas internas (aprendidas pelo RIP) e as rotas externas (aprendidas de outros protocolos).
* Endereço IP: Especifica o endereço IP para a entrada.
* Máscara da Sub-rede: Contém a máscara da sub-rede para a entrada. Se este campo for zero, nenhuma máscara da subrede foi especificada para a entrada.
* Hop seguinte: Indica o endereço IP do hop seguinte a que os pacotes devem ser enviados.
* Métrica: Indica quantos hops da rede interna (roteadores) foram atravessados no desengate ao destino. Este valor está entre 1 e 15 para uma rota válida ou 16 para uma rota inalcançável.
Em resumo, o RIP (Routing Information Protocol) foi o primeiro protocolo de roteamento padrão desenvolvido para ambientes TCP/IP. O RIP é um protocolo de encaminhamento dinâmico, que implementa o algoritmo vetor-distância (erroneamente vetor de distância) e caracteriza-se pela simplicidade e facilidade de solução de problemas. Seus pacotes são enviados em UDP. Normalmente, os roteadores usam RIP em modo ativo e as estações (hosts) em modo passivo. O RIP transmite a sua tabela de encaminhamento a cada 30 segundos. O RIP permite 15 rotas por pacote; assim, em redes grandes, são exigidos vários pacotes para enviar a tabela de encaminhamento inteira. A distância ao destino é medido pelos roteadores que se passam até chegar ao destino, permitindo passar por até 15 roteadores, tendo depois de ser reencaminhado de novo.

## Tópicos relacionados

* BGP
* OSPF
* Traceroute
* Ping
* WHOIS