Question d'entretien classique : que se passe-t-il après avoir saisi l'URL ?

0.Préface

"Qu'avez-vous vécu entre la saisie de l'URL et la visualisation de la page Web ?" est une question d'entretien courante. Cette question traverse l'ensemble du système réseau et nécessite un niveau élevé de qualité globale du réseau de la part du répondant. Cet article explique plus en détail le processus général de ce problème, mais l'espace est limité et il existe encore des connaissances détaillées que les lecteurs doivent rechercher par eux-mêmes.

1. Processus

1.1 Analyser l'URL et assembler la requête HTTP

1.1.1 Côté navigateur

L'utilisateur saisit d'abord l'URL dans le navigateur. La première étape consiste donc à analyser l'adresse URL saisie et à l'assembler dans une requête HTTP à partir de l'adresse URL. Si vous entrez, www.baidu.comune demande d'obtention pour www.baidu.com sera générée. Les détails spécifiques des requêtes HTTP peuvent être trouvés dans d’autres documents.

1.1.2 DNS résout les noms de domaine

Une fois le nom de domaine analysé à partir de l'adresse URL, le nom de domaine doit être analysé via DNS, c'est-à-dire que l' adresse IP correspondant au nom de domaine est interrogée . DNS est un service qui comporte de nombreux serveurs hiérarchisés, semblables à une structure arborescente, comme suit :

[Échec du transfert de l'image du lien externe. Le site source peut avoir un mécanisme anti-sangsue. Il est recommandé d'enregistrer l'image et de la télécharger directement (img-4bmpNMRk-1667130070904) (C:\Users\Acer\AppData\Roaming\Typora\ typora-user-images\ image-20221028162035511.png)]

Chaque serveur de noms de domaine stocke un grand nombre de mappages entre les noms de domaine et les adresses IP. Ensuite WWW.baidu.com, prenons un exemple pour expliquer le processus de résolution de nom de domaine DNS :

  • Le navigateur demandera d'abord s'il existe un mappage d'adresses dans le cache local. S'il existe un mappage d'adresses, il sera renvoyé directement. Dans le cas contraire, la requête continuera.

  • Le client interroge son propre fichier hosts pour voir s'il existe une relation de mappage pour cette URL. Dans le cas contraire, il recherche dans le cache du résolveur DNS local .

  • Si aucune relation de mappage n'est interrogée dans les hôtes ou dans le cache du résolveur DNS local, le client accède au serveur DNS local et utilise une méthode itérative pour interroger www.baidu.coml'adresse IP. Si la requête réussit, elle est renvoyée directement. En cas d'échec, le serveur DNS local accède au serveur racine pour interroger.

  • Après avoir reçu le message, le serveur racine renverra une .comadresse de serveur DNS au serveur DNS local. Si le DNS local .comenvoie à nouveau une requête à l'adresse, comDNS服务器il renverra baidu.coml'adresse d'un domaine. Cette opération est répétée jusqu'à ce que www.baidu.coml'adresse IP soit interrogée.

1.2 Demandes d'emballage

Une fois l'assemblage de la requête HTTP terminé, l'ensemble de la requête est encore très mince et ne peut pas être transmis en toute sécurité à l'hôte avec l'adresse IP de destination via divers appareils physiques. Il est également nécessaire de terminer la transmission de la requête et l'acceptation de la réponse grâce à la coopération de divers protocoles tels que TCP et IP. Par conséquent, les en-têtes de requête TCP, IP et MAC doivent être ajoutés de haut en bas pour regrouper davantage la requête avant que le message puisse être envoyé.

1.2.1 TCP

Le protocole HTTP est basé sur TCP, qui est un protocole de transmission fiable qui garantit une livraison fiable de l'intégralité de la requête. Tout d’abord, examinons les paramètres importants de l’en-tête de la requête TCP.

  • Numéro de port source et port de destination . Ces deux champs servent principalement à la couche d'application supérieure et identifient la catégorie d'application. Le numéro de port par défaut pour HTTP est 80et le numéro de port par défaut pour HTTPS est 443.

  • Numéro de série pour résoudre le problème du désordre des paquets.

  • Numéro de confirmation pour confirmer si l'autre partie l'a reçu. S'il n'est pas reçu, il doit être renvoyé jusqu'à ce qu'il soit livré, afin de résoudre le problème de ne pas perdre de paquets.

  • quelques bits d'état . Par exemple, SYNil s’agit d’initier une connexion, ACKde répondre, RSTde se reconnecter, FINde mettre fin à la connexion, etc. TCP est orienté connexion, les deux parties doivent donc maintenir l'état de la connexion. L'envoi de ces paquets avec des bits d'état entraînera des changements d'état des deux côtés.

TCP peut également effectuer un contrôle de flux et un contrôle de congestion .

De manière générale, à ce stade, TCP traite l'ensemble de la requête HTTP dans son ensemble, définit les paramètres pour assembler l'en-tête de la requête et le place avant l'en-tête de la requête HTTP pour former une nouvelle requête.

Remarque : si le message de requête HTTP est relativement long et dépasse MSSla longueur de , alors TCP doit décomposer les données HTTP en morceaux de données et les envoyer au lieu d'envoyer toutes les données en même temps. Les données seront MSSdivisées en unités de longueur et chaque élément de données divisées sera placé dans un paquet réseau distinct. Autrement dit, les informations d'en-tête TCP sont ajoutées à chaque donnée fractionnée, puis transmises au module IP pour envoyer les données.

1.2.2 PI

Le protocole TCP est basé sur le protocole IP. Le protocole IP implémente principalement la fonction de positionnement à distance. Le protocole IP peut encapsuler les données dans des paquets réseau et les envoyer à l'objet IP de destination. Tout d’abord, examinons les paramètres importants de la propriété intellectuelle :

  • L'adresse IP source est l'adresse IP du client ; l'adresse de destination est l'adresse IP obtenue après résolution du nom de domaine DNS.
  • Numéro de protocole , 06(hexadécimal) identifiant TCP.

Chaque hôte gère en interne une table de routage, qui décrit les adresses IP auxquelles il faut accéder pour atteindre une certaine adresse IP de destination. Une table de routage typique est la suivante. Selon le réseau cible, la passerelle correspondante peut être trouvée pour l'envoi :

[Échec du transfert d'image par lien externe. Le site source peut avoir un mécanisme anti-sangsue. Il est recommandé d'enregistrer l'image et de la télécharger directement (img-KkESOVp9-1667130070905) (C:\Users\Acer\AppData\Roaming\Typora\ typora-user-images\ image-20221028170041940.png)]

Semblable à TCP, à ce stade, IP traite l'intégralité de la requête TCP dans son ensemble, définit les paramètres pour assembler l'en-tête de la requête et le place avant l'en-tête pour former un paquet réseau.

1.2.3 MAC

L'adresse MAC et le protocole ARP sont principalement utilisés pour la communication interne d'Ethernet . L'adresse MAC de l'expéditeur et l'adresse MAC cible du destinataire sont requises dans l'en-tête MAC pour la transmission entre deux points .

Puisqu'il s'agit d'une communication Ethernet, chaque fois qu'il y a une communication entre différents sujets, l'adresse MAC de l'expéditeur et l'adresse MAC du récepteur sont différentes . L'expéditeur est l'adresse MAC de l'expéditeur actuel et le destinataire est l' adresse MAC du destinataire obtenue via le protocole ARP .

Le protocole ARP permet de trouver l'adresse MAC correspondant à une adresse IP. Il interrogera le propriétaire d'une adresse IP sous forme de diffusion sur Ethernet. Si l'autre partie se trouve dans le même sous-réseau que lui, l'adresse MAC de l'autre partie peut être obtenue grâce aux opérations ci-dessus.

Bien entendu, afin d'augmenter les performances, le protocole ARP met également en place un cache . S'il y a un mappage entre les adresses IP et MAC directement dans le cache, il n'est pas nécessaire d'envoyer une diffusion.

1.3 Processus de transmission

1.3.1 Cartes réseau et commutateurs

Les cartes réseau et les commutateurs implémentent la propagation des messages point à point au sein d'Ethernet.

Tout d'abord, la carte réseau analyse les paquets réseau en signaux électriques afin que les paquets réseau puissent se propager sur le support. Le pilote de la carte réseau contrôle la carte réseau.

Après avoir reçu le paquet, le commutateur vérifie son adresse MAC, puis interroge la table d'adresses MAC et transmet le paquet au port désigné. L'autre extrémité du port est connectée à l'hôte avec l'adresse MAC de destination. S'il n'est pas trouvé dans le tableau, il sera diffusé.

Jusqu'à présent, seule la communication via Ethernet a été mise en œuvre. Si vous souhaitez que les paquets se propagent davantage, vous avez besoin de l'aide d'un routeur.

1.3.3 Routeur

Après avoir terminé l'opération de réception du paquet, le routeur supprime d'abord l'en-tête MAC au début du paquet. Car le rôle de l’en-tête MAC est de délivrer le paquet au routeur. Ensuite, l'adresse IP de destination est analysée à partir de l'en-tête de la requête IP, puis la table de routage est interrogée pour déterminer l'emplacement du prochain saut et obtenir son adresse IP.

Après avoir obtenu l'adresse du saut suivant, si elle se trouve dans Ethernet, elle sera fournie directement via le protocole ARP. Si ce n'est pas dans Ethernet, vous devez utiliser à nouveau le protocole ARP pour trouver l'adresse MAC du saut suivant via l'adresse IP du saut suivant et l'envoyer au saut suivant via le commutateur.

Après plusieurs cycles de transfert, le paquet final est livré à l'hôte de l'adresse IP de destination.

1.4 Analyser les requêtes

Une fois la transmission terminée, le paquet est envoyé avec succès à l'hôte de destination. À ce stade, certains traitements et analyses généraux seront également effectués sur le package.

Une fois le paquet de données arrivé au serveur, le serveur analyse d'abord l'en-tête MAC et vérifie si l'adresse de destination dans l'en-tête MAC correspond à la sienne. Si elle ne correspond pas, il la rejette. Ensuite, l'en-tête IP est analysé, comparé à l'adresse IP de destination, et le protocole de couche supérieure est déterminé via l'élément de protocole. S'il s'agit de TCP, il analysera l'en-tête TCP, vérifiera le numéro de séquence, la valeur de la fenêtre, etc., et verra enfin la requête HTTP, puis effectuera un traitement.

Après traitement, la demande de réponse est également encapsulée et renvoyée.

Une fois que le client a reçu la demande de réponse, le navigateur analyse et restitue la réponse, et l'utilisateur voit la page Web.

Les références:

[1] Introduction au réseau graphique | Codage Xiaolin (xiaolincoding.com)

[2] Réseau informatique.Xie Xiren

Je suppose que tu aimes

Origine blog.csdn.net/doreen211/article/details/127603761
conseillé
Classement