Como o comando ping realmente funciona? Especificamente de onde o ARP (Protocolo de resolução de endereços) entra em cena?
Fiz essa pergunta em uma entrevista e não consegui criar um cenário em que o ARP pudesse ser usado.
Como o comando ping realmente funciona? Especificamente de onde o ARP (Protocolo de resolução de endereços) entra em cena?
Fiz essa pergunta em uma entrevista e não consegui criar um cenário em que o ARP pudesse ser usado.
Respostas:
Se você realmente quer entender, existe um excelente white paper (muito bem escrito) aqui:
http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf
Aqui está o resumo ->
Ping (Program on the application layer)
------->
Opens a 'raw' socket to IP Layer
------>
IP layer (Layer 2 on OSI) packages ICMP packet and sends it
Como não existe uma camada TCP no meio, ele Ping (program)
precisa monitorar todos os pacotes ICMP recebidos e filtrar apenas os pacotes do destino.
Espero que ajude.
Supondo que o ping envolva um pacote enviado por uma rede Ethernet ou WiFi, o ARP é usado para encontrar o endereço de hardware Ethernet do dispositivo que recebe o pacote de saída. Normalmente, este será o roteador da LAN na qual a máquina que originou o ping está ativada.
O processo típico é:
Você insere um comando para executar ping em um destino.
O DNS é usado para determinar o endereço IP (se necessário).
A tabela de roteamento é consultada para encontrar o próximo salto para esse destino.
O ARP é usado para encontrar o endereço de hardware do próximo salto.
O pacote IP é enviado para o próximo salto, encapsulado em um quadro Ethernet ou WiFi.
Ping é na verdade dois pacotes ICMP (Internet Control Message Protocol) diferentes.
Para executar ping em um host, você primeiro envia um pacote de solicitação de eco ICMP, o host responde com uma resposta de eco ICMP.
Para mais informações, consulte: https://en.wikipedia.org/wiki/Ping_(networking_utility)
Ping e ARP são coisas diferentes localizadas em diferentes camadas na pilha de protocolos de rede.
O ping está na camada de rede (ou camada da Internet - veja o protocolo ICMP , como apontado por @ServerMonkey).
O protocolo Arp está no nível do link (um nível inferior). O protocolo Arp foi desenvolvido para permitir a conexão física entre o hardware da rede, diretamente conectado.
Na pilha de rede TCP / IP, cada camada usa a camada abaixo para encaminhar seus dados, encapsulando-os dentro do protocolo de baixo nível. Cada camada é independente da outra e possivelmente desconhece os detalhes e implementações específicas de outros níveis (isso nem sempre é verdade: consulte a função de camada cruzada ).
O ARP fornece um endereço MAC, mas, às vezes, se não houver endereço DMAC, o endereço de broadcast é usado.
Esse quadro usando DMAC de transmissão é chamado de quadro de transmissão ARP, com isso obtemos o endereço DMAC.