web-dev-qa-db-fra.com

Comment fonctionne la commande 'ping'?

Comment fonctionne la commande ping? Plus précisément, où ARP (Address Resolution Protocol) entre en scène?

On m'a posé cette question lors d'une interview et je n'ai pas été en mesure de proposer un scénario d'utilisation du protocole ARP.

24
liv2hak

Si vous voulez vraiment comprendre, il y a un excellent livre blanc (très bien écrit) ici:

http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf

Voici le résumé ->

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

Comme il n'y a pas de couche TCP entre les deux, la Ping (program) doit surveiller tous les paquets ICMP entrants et ne filtrer que ceux de la destination.

J'espère que cela pourra aider.

16
PlanetUnknown

En supposant que le ping implique l'envoi d'un paquet sur un réseau Ethernet ou WiFi, ARP est utilisé pour rechercher l'adresse matérielle Ethernet du périphérique qui reçoit le paquet sortant. Il s’agit généralement du routeur du réseau local sur lequel la machine à l'origine du ping est allumée.

Le processus typique est:

  1. Vous entrez une commande pour envoyer une requête ping à une destination.

  2. DNS est utilisé pour déterminer l'adresse IP (si nécessaire).

  3. La table de routage est consultée pour trouver le prochain saut vers cette destination.

  4. ARP est utilisé pour trouver l'adresse matérielle du saut suivant.

  5. Le paquet IP est envoyé au saut suivant, encapsulé dans une trame Ethernet ou WiFi.

9
David Schwartz

Ping est en réalité deux paquets ICMP (Internet Control Message Protocol) différents.

Pour envoyer un ping à un hôte, vous devez d'abord envoyer un paquet de demandes d'écho ICMP. L'hôte répondra ensuite par une réponse d'écho ICMP.

Pour plus d'informations, voir: https://en.wikipedia.org/wiki/Ping_ (networking_utility)

2
ServerMonkey

Le protocole ARP fournit une adresse MAC, mais parfois, en l’absence d’adresse DMAC, l’adresse de diffusion est utilisée.

Cette trame utilisant broadcast DMAC s'appelle trame de diffusion ARP, avec ceci nous obtenons l'adresse DMAC.

1
Sagar Vardekar

Ping et ARP sont des objets différents situés à différentes couches de la pile de protocoles réseau.

Ping est à la couche réseau (ou couche Internet - Jetez un coup d'œil au protocole ICMP comme indiqué par @ServerMonkey).

Le protocole Arp est au niveau de la liaison (un niveau inférieur). Le protocole Arp est conçu pour permettre la connexion physique entre le matériel réseau directement connecté.

Dans la pile réseau TCP/IP, chaque couche utilise la couche ci-dessous pour transférer ses données, en les encapsulant dans le protocole de bas niveau. Chaque couche est indépendante de l'autre et ignore éventuellement les détails et les implémentations spécifiques des autres niveaux (ce n'est pas toujours vrai: voir la fonction de couche croisée ).

1
Heisenbug