


Quel est le principe de fragmentation et d'assemblage des datagrammes IP ?
Lorsqu'un hôte envoie des données à un autre hôte, les données doivent être transmises via plusieurs couches de routage. Le processus de transfert d'IP au niveau de la couche de routage est relativement compliqué. Comment traiter le datagramme envoyé par l'hôte de destination ?
Nous devons d'abord comprendre le format du datagramme :
La transmission et le contrôle IP sont tous contrôlés par l'en-tête de le datagramme IP Le ministère a décidé
La valeur de la longueur de l'en-tête à 4 chiffres est basée sur 4 octets, et la valeur minimale est de 5,C'est-à-dire que le la longueur minimale de l'en-tête est de 4x5 = 20 octets,
est l'en-tête IP sans aucune option. La valeur maximale représentée par le tableau de 4 bits est de 15, ce qui signifie que la longueur maximale de l'en-tête est de 60 octets. 🎜#
8 bits Le champ TOS comporte 3 bits servant à préciser la priorité du datagramme IP (actuellement obsolète), et 4 bits indiquant en option incluant le délai minimum, le débit maximum, le maximum Fiabilité et coût minimum, et le total des bits est toujours 0. La longueur totale de 16 bits correspond au nombre d'octets de l'ensemble du datagramme (y compris l'en-tête IP et la charge utile de la couche IP). Chaque fois qu'un datagramme IP est transmis, l'identifiant de 16 bits est augmenté de 1, peut être utilisé pour fragmenter et réassembler le datagramme.
Un indicateur 3 bits et un décalage de tranche 13 bits sont utilisés pour le découpage. TTL (Time to live) est utilisé comme ceci:L'hôte source définit un temps de survie pour le paquet de données, tel que 64, à chaque fois qu'il passe par un routeur # 🎜🎜# Diminuez la valeur de 1. Si elle est réduite à 0, cela signifie que la route a été trop longue et que le réseau de l'hôte de destination est introuvable, le paquet sera donc rejeté. 🎜#
L'unité de ce temps de survie n'est pas la seconde, mais le saut. Le champ protocole indique si le protocole de la couche supérieure est TCP, UDP, ICMP ou IGMP. Ensuite, il y a la somme de contrôle, qui vérifie uniquement l'en-tête IP. La vérification des données est gérée par des protocoles de niveau supérieur. La longueur de l'adresse IP d'IPv4 est de 32 bits. Dans le datagramme IP, la longueur totale est un champ de 16 bits et la longueur maximale d'un datagramme est de 2 ^ 16-1. Bien que le datagramme le plus long possible puisse améliorer l'efficacité de la transmission, il en existe peu. Plus de 1500 octets donc ici tant qu'il dépasse 1500 octets, on considère que ce datagramme doit être fragmenté. Une fois le datagramme IP fragmenté, chaque fragment forme un paquet avec un en-tête IP et est acheminé indépendamment. Une fois arrivé à l'hôte de destination, la couche IP de l'hôte de destination traitera tous les fragments reçus avant de les transmettre à la couche de transport. sont réassemblés dans un datagramme. 1. Fragmentation IP 1. Principe de fragmentation IP : Le processus de fragmentation et de réassemblage est transparent pour la couche de transport. qu'une fois le datagramme IP fragmenté, il ne peut être réassemblé que lorsqu'il atteint la station suivante, et il est complété par la couche IP de destination. Le datagramme fragmenté peut être à nouveau fragmenté selon les besoins. Les fragments IP et les paquets complets ont presque le même en-tête IP. Le champ ID est cohérent pour les fragments américains et britanniques, de sorte que le même fragment de paquet de données IP peut être identifié lors de l'assemblage. Dans l'en-tête IP, le numéro d'identification de 16 bits enregistre de manière unique l'ID d'un paquet IP, et les fragments IP avec le même ID seront réassemblés tandis que le décalage de fragment de 13 bits enregistre la position d'un fragment IP par rapport à l'ensemble du paquet ; . Le drapeau 3 bits au milieu de ces deux tableaux indique s'il y a de nouveaux fragments derrière ce fragment. Le récepteur peut réassembler les données IP à l'aide des informations fournies dans ces trois champs, qui sont toutes les informations qui composent la fragmentation IP. (1) Le rôle du champ drapeau 0 DF MFLe champ drapeau a trois chiffres au total, le bit le plus élevé est 0 , et la valeur doit être copiée dans La valeur Ne pas fragmenter (DF) doit être copiée dans tous les groupes. DF=1 signifie que l'hôte récepteur ne peut pas fragmenter le paquet. Si le paquet ne peut pas être fragmenté mais que sa longueur dépasse la MTU, le paquet peut uniquement être rejeté et un message d'erreur ICMP doit être utilisé pour avertir l'hôte source. DF=0, signifie qu'il peut être fragmenté Fragmentation (MF) indique si le fragment est le dernier fragment, MF=1 signifie que le fragment accepté n'est pas le dernier fragment, MF=0 signifie que le fragment accepté n'est pas le dernier fragment. le fragment est accepté L'heure du fragment est le dernier fragment L'envoi délibéré de certains fragments IP au lieu de tous amènera l'hôte cible à toujours attendre que les fragments consomment et occupent les ressources système. 2. Principe du MTU (Maximum Transmission Unit) Lorsque deux CP distants sont interconnectés, leurs données doivent transiter par de nombreux routeurs et divers réseaux. Le support peut atteindre l'extrémité opposée. Le MTU des différents médias du réseau est différent. C'est comme une longue section de conduite d'eau, composée de conduites d'eau de différentes épaisseurs (MTU différentes). La quantité maximale d'eau passant à travers cette section de conduite d'eau est déterminée par. la conduite d'eau la plus fine au milieu.Pour les protocoles de la couche supérieure de la couche réseau (ici, prenons le cluster de protocoles TCP/IP comme exemple), ils ne se soucient pas de l'épaisseur des conduites d'eau car ils pensent que c'est une question de réseau. Au niveau de la couche réseau, le protocole IP détecte la taille de chaque paquet de données transmis depuis le protocole de couche supérieure et détermine s'il doit être fragmenté en fonction de la taille MTU de la machine. Le plus gros inconvénient du partitionnement est qu’il réduit les performances de transmission et nécessite que les tâches qui peuvent être effectuées une seule fois soient divisées en plusieurs processus. Par conséquent, les couches supérieures du réseau (implémentation de la couche transport) y prêtent souvent attention, car certaines couches supérieures peuvent exiger que les paquets ne puissent pas être fragmentés pour certaines raisons, et l'index ajoutera une étiquette à l'en-tête de l'IP. datagramme :DF Lorsqu'un paquet de données IP est transmis sur un grand segment de réseau, si la MTU est plus petite que le paquet de données, le périphérique de transfert abandonnera le paquet de données en fonction de la situation. Un message d'erreur est ensuite renvoyé à l'expéditeur, ce qui entraîne souvent des problèmes de communication. Heureusement, la plupart des MTU des liaisons réseau sont de 1 500 ou plus. Pour UDP, le protocole lui-même est un protocole sans connexion. Il ne se soucie pas de l'ordre d'arrivée des paquets de données. est correct, donc généralement UDP n'a pas beaucoup d'exigences en matière de fragmentation. C'est différent pour TCP. Ce protocole est un protocole orienté connexion. Pour TCP, il se soucie beaucoup de l'ordre d'arrivée des paquets de données. erreurs pendant le processus de transmission, donc certaines applications TCP ont des exigences de fragmentation --- ne peuvent pas être fragmentées
3. Principe MSS (longueur maximale du segment)
MSS est la quantité de données qu'un paquet TCP peut avoir à chaque fois. segment à transmettre. Afin d'obtenir les meilleures performances de transmission, le protocole TCP négocie généralement la valeur MSS des deux parties lors de l'établissement d'une connexion. Cette valeur est remplacée par MTU lorsque le protocole TCP est implémenté (moins la taille de l'en-tête de l'IP). paquet de données). 20bits et l'en-tête du segment de données TCP 20BITES), la taille MSS est donc souvent de 1460. Les deux parties détermineront la valeur MSS maximale de cette connexion en fonction de la valeur MSS minimale fournie
étapes de fragmentation IP
. Un datagramme non fragmenté Le champ d'informations de fragmentation est entièrement à 0, c'est-à-dire que plusieurs indicateurs de fragmentation sont à 0 et le décalage est à 0. Pour fragmenter un datagramme, vous devez suivre les étapes suivantes
(1) Vérifiez l'indicateur DF pour voir si la fragmentation est autorisée. Si ce bit est défini, le datagramme sera rejeté et une erreur ICMP sera renvoyée à la source
(2) En fonction de la valeur MTU, le champ de données est divisé en deux ou paires de parties Sauf. pour la dernière partie des données, toute nouvelle La longueur de l'option de données doit être un multiple de 8 octets
(3) Chaque donnée est mise dans un datagramme IP, et les en-têtes de ces datagrammes modifient légèrement les en-têtes d'origine
(4) Sauf pour le dernier datagramme À l'exception de la fragmentation, tous les fragments ont plusieurs indicateurs de fragmentation définis. (5) Le champ de décalage de fragment dans chaque fragment est défini sur la position occupée par cette partie de données dans le datagramme d'origine. Cette position par rapport au début de l'original. datagramme non fragmenté.
(6) Si des options sont incluses dans le datagramme d'origine, l'octet de poids fort de l'octet de type d'option détermine si ces informations sont copiées dans tous les datagrammes fragmentés, ou uniquement dans le premier datagramme.(7) Définissez le champ d'en-tête et le champ de longueur totale du nouveau datagramme.
(8) Recalculez le champ de somme de contrôle dans l'en-tête du message. À l'heure actuelle, ces datagrammes fragmentés sont transmis comme un datagramme IP complet. IP traite chaque fragment de datagramme indépendamment. Les fragments de datagramme peuvent atteindre leur destination par différentes routes s'ils respectent ces réglementations, ils peuvent être davantage fragmentés.Sur l'hôte de destination, les données sont réassemblées dans le datagramme d'origine, et le champ d'identification défini par l'hôte expéditeur ainsi que l'adresse IP Yuan et l'adresse IP de destination dans le datagramme sont utilisés ensemble, le processus de fragmentation ne modifie pas ce champ
3. Réassemblage
Pour reconstruire les fragments de ces datagrammes, l'hôte récepteur alloue un tampon de stockage à l'arrivée du premier fragment. Cet hôte démarrera également une minuterie. Lorsque les fragments suivants du datagramme arrivent, les données sont copiées dans la mémoire tampon à l'emplacement spécifié par le décalage du fragment, et lorsque tous les fragments sont arrivés, le datagramme original complet et non fragmenté est restauré.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. Configuration de l'accès restreint à la liste noire/blanche nginx propose plusieurs façons de configurer les listes noire et blanche. Voici seulement deux méthodes couramment utilisées. 1. La première méthode : les instructions Allow, Denydeny et Allow appartiennent à ngx_http_access_module. Nginx charge ce module par défaut, il peut donc être utilisé directement. Cette méthode est la plus simple et la plus directe. Le paramètre est similaire au pare-feu iptable. Comment utiliser : Ajoutez directement au fichier de configuration : #Paramètres de la liste blanche, suivi de autoriser l'adresse IP accessible/{allow123.13.123.12;allow23.53.32.1/100;denyall;}#. Paramètres de la liste noire,

La liaison IP et MAC fait référence à l'association d'une adresse IP spécifique à une adresse MAC spécifique, de sorte que seul l'appareil utilisant l'adresse MAC puisse utiliser l'adresse IP pour la communication réseau. La liaison ip et mac peut empêcher l'usurpation de l'adresse IP de l'hôte lié. Conditions préalables : 1. L'adresse MAC est unique et ne peut pas être usurpée ; La passerelle de l'hôte est sur le routeur).

Comment vérifier l'adresse IP sur WeChat : 1. Connectez-vous à la version informatique de WeChat, cliquez avec le bouton droit sur la barre des tâches en bas de l'écran et cliquez sur « Gestionnaire des tâches » ; Détails » dans le coin inférieur gauche ; 3. Gestion des tâches Entrez l'option « Performances » du navigateur et cliquez sur « Ouvrir le moniteur de ressources » ; 4. Sélectionnez « Réseau » et vérifiez le processus WeChat « Wechat.exe » ; 5. Cliquez sur « Connexion TCP" ci-dessous pour surveiller la situation liée à l'IP du réseau WeChat. L'envoi d'un message et l'obtention d'une réponse révéleront l'adresse IP de l'autre personne.

1. Définissez la liste blanche du répertoire : il n'y a aucune restriction sur le chemin de requête spécifié. S'il n'y a aucune restriction sur le chemin de requête vers le répertoire de l'API, il peut être écrit sous la forme server{location/app{proxy_passhttp://192.168.1.111 : 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nodelay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#Parce que nginx donnera la priorité à une correspondance précise

Introduction Lorsque nginx est utilisé comme proxy inverse, l'adresse IP obtenue par le backend de configuration par défaut provient de nginx. Utilisez request.getRemoteAddr(); pour obtenir l'adresse IP de nginx, pas la véritable adresse IP de l'utilisateur. serveur{listen80;server_namejenkins.local.com;location/{proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_passhttp://192.168.10.

Les méthodes permettant d'interroger l'adresse IP de cette machine sont les suivantes : 1. Sous le système Windows, ouvrez le "Menu Démarrer" et recherchez "cmd" pour ouvrir l'invite de commande, saisissez "ipconfig", puis appuyez sur la touche Entrée pour trouver un ligne nommée "Adresse IPv4", le numéro à côté est l'adresse IP de la machine ; 2. Sous le système macOS, cliquez sur l'icône Apple dans le coin supérieur gauche de l'écran, sélectionnez "Préférences Système", recherchez le réseau actuellement connecté. dans l'option "Réseau", et cliquez sur le bouton "Avancé", recherchez l'IP de la machine dans l'onglet "TCP/IP", etc.

Solution au wifi n'affichant aucune allocation IP : 1. Redémarrez l'appareil et le routeur, désactivez la connexion Wi-Fi sur l'appareil, éteignez l'appareil, éteignez le routeur, attendez quelques minutes, puis rouvrez le routeur pour vous connecter au wifi. ; 2. Vérifiez les paramètres du routeur et redémarrez DHCP, assurez-vous que la fonction DHCP est activée ; 3. Réinitialisez les paramètres réseau, ce qui supprimera tous les réseaux WiFi et mots de passe enregistrés. Veuillez vous assurer qu'ils sont sauvegardés avant d'effectuer cette opération. le micrologiciel du routeur, connectez-vous à l'interface de gestion du routeur, recherchez les options de mise à jour du micrologiciel et suivez les invites.

Concept : uv (uniquevisitor) : visiteur unique, chaque ordinateur indépendant connecté à Internet (sur la base des cookies) est considéré comme un visiteur, et le nombre de visiteurs qui visitent votre site Web dans une journée (00h00-24h00). Les visites du même cookie au cours d'une journée ne sont comptées qu'une seule fois pv (pageview) : les visites, c'est-à-dire les pages vues ou les clics, chaque visite du site Web par l'utilisateur sont enregistrées une fois. Lorsqu'un utilisateur visite la même page plusieurs fois, le nombre total de visites est comptabilisé. IP indépendante : la même adresse IP n'est comptée qu'une seule fois entre 00h00 et minuit. Les amis qui optimisent le site Web sont les plus préoccupés par cela. J'indique d'abord l'environnement. Cela exécute nginx version 1.7, le backend Tomcat fonctionne de manière dynamique.
