Protocolo ARP

 

ARP - Address Resolution Protocol        

        O endereço IP é utilizado para roteamento, ou seja, a escolha do caminho ideal em determinada circunstância e o instante para a conexão entre dois nós.
        Para solucionar o problema de mapear o endereço de nível superior (IP) para endereço físico (Ethernet) foi proposto (e aceito) através da RFC826 o Address Resolution Protocol (ARP). O ARP permite que um host encontre o endereço físico de um host destino, tendo apenas o seu endereço IP.
        Apesar de ter sido criado especificamente para uso com IP sobre Ethernet, devido à forma que foi implementado, seu
uso não está restrito a este ambiente.
        O mapeamento de endereços pode ser feito de duas maneiras:

    • mapeamento direto
    • mapeamento dinâmico
        O ARP é dividido em duas partes: a primeira determina endereços físicos quando manda um pacote, e a segunda responde os pedidos de outros hosts. Geralmente antes de enviar, o host consulta seu cache ARP procurando o endereço físico. Se encontrar o endereço, anexa-o no frame e envia acrescentando os dados. Se o host não encontrar o endereço, é realizado um broadcast de pedido ARP.
        A segunda parte do código do ARP manuseia os pacotes recebidos da rede. Quando chega um pacote, o programa extrai e examina o endereço físico e IP para verificar se já existe a entrada no cache e atualiza novamente sobreescrevendo os endereços. Depois, o receptor começa a processar o resto do pacote.
        O receptor processa dois tipos de entrada de pacotes ARP:
  • pedido ARP de um outro host : o receptor envia o endereço físico ao emissor e armazena o endereço do emissor no cache. Se o endereço IP do pacote recebido não for igual do receptor, o pacote ARP é ignorado.
  • resposta de um pedido ARP: Após verificar a entrada no cache ARP, o receptor verifica primeiro a resposta com o pedido ARP enviado anteriormente. Enquanto o receptor espera pela resposta, as aplicações podem gerar outros pacotes que geralmente esperam na fila. Após verificar o endereço IP, o receptor atualiza os pacotes com o mesmo. O ARP retira os pacotes da fila depois de fornecer os endereços.
        Se durante o broadcast o destinatário não puder aceitar um pedido, o host emissor deve armazenar o pacote enviado para retransmiti-lo. Pode acontecer, também, de o hardware de um host ter sido substituído. Se algum host tentar enviar dados para ele, utilizará um endereço não existente na rede, por isso é importante atualizar e remover os endereços no cache em períodos regulares.
 

Funcionamento do protocolo ARP

        Consiste no envio de um frame em broadcasting com endereço IP do destino, o qual responde com um datagrama contendo o seu endereço IP e o endereço físico. A máquina que gerou o broadcasting passa a usar o endereço físico do destino para enviar seus datagramas.
 
 
 

Figura 1 - o host envia o pacote para todos os hosts

 
 
 

        O host A, cujo endereço IP é IA e endereço físico PA, deseja enviar dados ao host B, cujo IP é IB porém de endereço físico desconhecido. O host A envia um datagrama especial em broadcast.
 
 
 

Figura 2 - Somente o host B responde com o seu PB

 
 
 

        Apenas o host B responde, pois o datagrama foi endereçado via IP. O datagrama resposta é constituído do endereço IP (IB) mais o endereço físico PB. A partir desse instante o host A passa a endereçar o host B apenas com seus endereços já conhecidos (PB e IB).
        Resumindamente, o ARP funciona da seguinte forma:

    • Quando uma máquina A quer falar com uma máquina B e não sabe seu endereço físico, envia um pacote ARP de request em modo broadcast.
    • Todas as máquinas em operação recebem o pedido, mas somente a máquina B responde, pois ela reconhece que o endereço pedido é o seu.
    • A Guarda o endereço físico de B FB em cache.
    • A envia mensagem para FB.

Cache ARP

        Em uma rede de grande porte e ocupada, o envio de pacotes em broadcasting interromperá todos os hosts para que eles processem cada pacote da rede. Essa interrupção prejudicará de maneira significativa a eficiência da rede e a tornaria mais lenta. Para reduzir os broadcasts, os hosts de redes que necessitam utilizar o ARP mantêm uma lista de endereços IP e Ethernet que correspondem a eles obtidos por solicitações anteriores. Isto é listado como Cache ARP e é atualizado sempre que uma solicitação for enviada.
        Depois de algum tempo o endereço no ARP Cache é removido, independentemente de estar sendo usado ou não. Isto é chamado de Aging.

ARP - Encapsulamente Identificação

        As mensagens ARP devem ser transmitidas nos frames. Para identificar se os frames ARP estão carregando o pedido (request) ou a resposta, o campo do tipo do cabeçalho (header) recebe um valor específico, e a mensagem ARP é enviada no campo dos dados. Quando o frame é recebido, o host checa o tipo de frame para determinar seu conteúdo.
 

Formato do ARP

        Os dados nos pacotes do ARP não possuem um cabeçalho de formato fixo, ao contrário de outros protocolos. A mensagem é montada para ser utilizada em diferentes redes. Por isso, o primeiro campo no cabeçalho indica os comprimentos dos campos seguintes. O ARP pode ser usado com endereços físicos e protocolos arbitrários.
        Ao contrário da maioria dos protocolos, o pacote ARP não alinha no tamanho de 32-bits. Por exemplo, o endereço do emissor (sender) ocupa 6 octetos contíguos, expandindo-se para próxima linha.
 

Descrição do Campos
 
 

Figura 3 - Formato do ARP
  • Hardware Type (tipo do hardware): composto de dois octetos, especifica o tipo de hardware utilizado na rede física. Se for 1, é rede Ethernet.
  • Protocol Type (tipo do protocolo): composto de dois octetos, especifica o endereço do protocolo utilizado no nível superior do emissor.
  • Operation (operação) : especifica se o datagrama é um pedido ARP (request 1 ) ou uma resposta ARP (reply 2), ou ainda um RARP (request 3, reply 4).
  • HLEN e PLEN: habilitam o ARP para ser usado com redes arbitrárias porque eles especificam o comprimento dos endereços do hardware e dos protocolos do nível superior. O HLEN (Hardware Lenght) é utilizado para identificar o tamanho dos campos SENDER HA e TARGET HA. PLEN (Protocol Lenght) especifica o tamanho dos campos SENDER IP e TARGET IP.
  • SENDER HA (Sender Hardware Address) :  endereço físico (Ethernet) de quem envia o pacote.
  • SENDER IP (Sender Protocol Address): endereço lógico (IP) de quem envia o pacote.
  • TARGET HA (Target Hardware Address) : Endereço físico desejado. Na operação de request vai em branco, e, quem responder preenche este campo.
  • TARGET IP (Target Protocol Address) : Endereço lógico da máquina desejada.
        Quando um emissor faz um pedido, envia o endereço TARGET IP (ARP) ou o endereço físico TARGET HA (RARP). Antes de responder, o destinatário atualiza os endereços recebidos e muda a operação para resposta (reply). Assim, a resposta carrega os endereços do emissor assim como os endereços IP e físico do destinatário.
 

Voltar