Maison >Problème commun >Lorsqu'un paquet IP hôte envoyé vers la destination est transmis via plusieurs routeurs, l'adresse IP de destination change-t-elle ?
Lorsqu'un paquet IP hôte envoyé vers la destination est transmis via plusieurs routeurs, l'adresse IP de destination reste inchangée.
L'adresse IP source et l'adresse IP de destination changent-elles lorsque les paquets IP sont transmis via le routage ?
Cette question est souvent posée lors d'entretiens récents avec des professionnels du réseau. La réponse ne peut pas être modifiée, *sauf si une conversion NAT est effectuée. (Apprentissage recommandé : Tutoriel vidéo Web front-end)
Cependant, l'adresse Mac change, car l'expéditeur ne connaît pas l'adresse Mac de l'hôte de destination au début, donc l'adresse Mac change à chaque fois qu'il passe par un routeur.
Comment obtenir l'adresse MAC de destination ?
TCP/IP utilise le protocole ARP. Par exemple, si un nouvel intranet est créé, si la machine A recherche la machine B, lors de l'encapsulation de FRAME (le format de données utilisé par la deuxième couche d'OSI), le MAC de l'autre partie doit être encapsulé au début, A ne le fait pas. connaît le MAC de B, mais ne connaît que l'IP. Il envoie un paquet ARP, l'IP source est la sienne, l'IP de destination est celle de B, le MAC source est le sien et le MAC de destination est diffusé.
Ensuite, le paquet de requête est diffusé sur l'intranet. Lorsque d'autres machines reçoivent ce paquet, elles comparent l'IP de destination avec leur propre IP. Sinon, elles le rejettent. Lorsque B l'a reçu, il a constaté que l'adresse IP était la même que la sienne, il a donc accepté la demande du paquet et a envoyé son MAC à A. Si B est une machine dans un autre sous-réseau, alors le routeur déterminera que B se trouve dans un autre sous-réseau, puis le routeur renverra son MAC à A. Lorsque A enverra un paquet à B à l'avenir, le MAC de destination sera encapsulé par le routeur.
Processus de routage et de transfert :
Lorsque le flux de données envoyé de l'hôte A à l'hôte B est encapsulé dans un paquet de données IP au niveau de la couche réseau, l'en-tête du Le paquet de données IP contient l'adresse source et l'adresse de destination. L'hôte A utilisera le masque de réseau IP 24 bits 255.255.255.0 configuré sur cette machine pour effectuer une opération ET avec l'adresse cible afin de déterminer si l'adresse réseau cible et l'adresse réseau de cette machine se trouvent dans le même segment de réseau. Sinon, transmettez le paquet IP à la passerelle.
L'hôte A obtiendra également l'adresse MAC de la passerelle par défaut via une requête ARP avant de l'envoyer à la passerelle. Le paquet de données IP au niveau de la couche liaison de données de l'hôte A est encapsulé dans une trame de données Ethernet puis envoyé à la passerelle... qui est un port du routeur.
Lorsque le routeur passerelle reçoit la trame de données Ethernet et constate que l'adresse MAC cible dans la trame de données est l'adresse physique de l'un de ses propres ports, le routeur supprimera l'encapsulation de la trame de données Ethernet. Le routeur pense que ce paquet IP doit être transmis via lui-même, puis il correspond à la table de routage. Après avoir fait correspondre l'entrée de routage, il envoie le paquet à l'adresse suivante.
C'est ainsi que le routeur transmet les paquets de données, de sorte qu'il ne changera jamais l'adresse IP. Seul le MAC sera modifié.
Lorsqu'un paquet de données est transmis au routeur, le routeur compare d'abord son adresse de destination avec la table de routage. S'il s'agit d'un réseau local, il ne sera pas transmis. au réseau externe, il est transmis directement à l'hôte de destination dans le réseau local, mais si l'adresse de destination est comparée à la table de routage et qu'il s'avère qu'elle ne se trouve pas dans le réseau local, s'il y a NAT, le L'adresse IP de l'adresse source sera modifiée (l'adresse IP de l'adresse source d'origine sera remplacée par l'adresse IP du routeur), le routeur transmet le paquet de données au port correspondant pour la communication.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!