domingo, 20 de dezembro de 2009

Endereçamento x protocolo ARP...

Os diferentes níveis de endereçamentos utilizados nas camadas de protocolos podem causar certa confusão. Existe a necessidade de mapeamentos entre os endereçamentos da camada de enlace e da camada de rede em redes padrão Ethernet. Na camada de enlace, a forma de endereçamento é feita por meio de endereços físicos (MAC address). Estes endereços são compostos por 6 Bytes (48 bits), são relacionados a interface de rede e são dividos em parte fabricante e parte número de série. Um exemplo seria o endereço 00-1D-7D-FC-47-D0. Para descobrir qual o fabricante, pode-se utilizar o site http://standards.ieee.org/regauth/oui/index.shtml. Usando os três primeiro pares de números hexadecimais 00-1D-7D e fazendo a procura o resultado mostra que o fabricante é GIGA-BYTE TECHNOLOGY CO.,LTD., correto pois é uma interface de rede integrada a uma placa-mãe deste fabricante. A outra porção do endereço corresponde ao número de série da interface de rede. Na teoria, não deveriam existir placas com números MAC iguais. Entretanto, existem casos em que isto pode acontecer tais como placas de rede antigas que ainda estão sendo usadas ou com a modificação por software do MAC, opção bastante comum em notebooks e placas de rede integradas.
As aplicações utilizam o endereço da camada de rede para encontrar o host de destino. Atualmente, a utilização de TCP/IP é dominante em praticamente todas as redes locais. Uma pergunta comum é, "Mas o que tinha antes do TCP/IP?". Para citar apenas dois casos bem comuns, as redes Microsoft com o NetBIOS e as rede Novell Netware com o IPX/SPX utilizam formas de endereçamento diferentes do TCP/IP. Bom, hoje em dia é TCP/IP e ponto final, o resto é exceção. Portanto, o protocolo IP é o responsável pelo endereçamento e o roteamento dos pacotes até o destino final. O formato do endereçamento do protocolo é a notação decimal por pontos. Um exemplo de endereço IP seria o 192.168.254.3. Quando uma aplicação deseja acessar uma aplicação remota, será utilizado um endereço IP ou um nome que deverá ser convertido para que isto ocorra.
Desta forma, surge um problema em uma rede local. Se as aplicações utilizam endereços IP para a comunicação na camada de rede e a comunicação na camada de enlace de dados se dá por endereços físicos, alguma coisa está faltando! O que está faltando é o protocolo ARP (Address Resolution Protocol). Este protocolo tem a função de descobrir no mesmo domínio de broadcast o endereço físico de determinado IP. Para isto, são geradas requisições ARP em broadcast perguntando que tem o endereço MAC de determinado IP. Em uma situação normal, o host com o IP requisitado responde para o host que gerou a requisição o seu endereço MAC. A partir deste momento, os quadros já podem ser enviados para o host de destino.
Para saber mais sobre o ARP, utilize o Wireshark e faça um filtro arp. Experimente requisitar um endereço IP de um host que não existe (Figura 1), um IP da rede local, um IP de outra rede, verificar a tabela ARP com o comando arp -a (Linux e Windows prompt) e experimentar "clonar" um endereço MAC para ver o efeito.

Figura 1. Captura de mensagens ARP com o Wireshark.

Nenhum comentário:

Postar um comentário