Le modèle de référence tcp/ip est divisé en 4 couches, à savoir : 1. La couche liaison de données, qui implémente le pilote réseau de l'interface de la carte réseau pour gérer la transmission des données sur les supports physiques 2. La couche réseau ; , qui implémente le routage et le transfert des paquets de données ; 3. La couche de transport, qui assure la communication de bout en bout pour les applications sur deux hôtes ; 4. La couche d'application, qui est responsable du traitement de la logique de l'application.
La suite de protocoles TCP/IP est un système de protocole à quatre couches, qui est la couche liaison de données, la couche réseau, la couche transport et la couche application de bas en haut. haut. Chaque couche remplit différentes
fonctions et est implémentée via plusieurs protocoles. Le protocole de couche supérieure utilise les services fournis par le protocole de couche inférieure.
Couche liaison de données (couche d'interface réseau)
La couche liaison de données implémente l'interface de la carte réseau Pilote réseau pour gérer la transmission de données sur des supports physiques (tels qu'Ethernet, Token Ring, etc.).
Deux protocoles couramment utilisés dans la couche liaison de données sont le protocole ARP (Address Resolve Protocol, protocole de résolution d'adresse) et le protocole RARP (ReverseAddress Resolve Protocol, protocole de résolution d'adresse inversée ). Ils convertissent les adresses IP vers et depuis l'adresse physique de la machine (généralement une adresse MAC, utilisée par les réseaux sans fil Ethernet, Token Ring et 802.11).
La couche réseau utilise une adresse IP pour adresser une machine, tandis que la couche liaison de données utilise une adresse physique pour adresser une machine. Par conséquent, la couche réseau doit d'abord convertir l'adresse IP de la machine cible en son adresse physique. adresse avant de pouvoir être utilisée. Les services fournis par la couche liaison de données, c'est le but du protocole ARP.
Le protocole RARP n'est utilisé que par certains postes de travail sans disque du réseau. En raison du manque de périphériques de stockage, les postes de travail sans disque ne peuvent pas mémoriser leurs propres adresses IP, mais ils peuvent utiliser l'adresse physique sur la carte réseau pour interroger le gestionnaire de réseau (serveur ou logiciel de gestion de réseau) pour connaître leur propre adresse IP. L'administrateur réseau exécutant le service RARP gère généralement un mappage des adresses physiques aux adresses IP pour toutes les machines du réseau.
Couche réseau
La couche réseau implémente le routage et le transfert des paquets de données. Le WAN (Wide Area Network, Wide Area Network) utilise généralement de nombreux routeurs hiérarchiques pour connecter des hôtes dispersés ou un LAN (Local Area Network, Local Area Network). Par conséquent, les deux hôtes communicants ne sont généralement pas directement connectés, mais). Connecté via plusieurs nœuds intermédiaires (routeurs). La tâche de la couche réseau est de sélectionner ces nœuds intermédiaires pour déterminer le chemin de communication entre les deux hôtes. Dans le même temps, la couche réseau cache les détails de la connexion topologique du réseau au protocole de couche supérieure, de sorte que du point de vue de la couche transport et des applications réseau, les deux parties en communication sont directement connectées.
messages ICMP en deux catégories :
Messages d'erreur Ce type de message est principalement utilisé pour répondre aux erreurs réseau, telles que le fait que la cible soit inaccessible (la valeur de type est 3). ) et redirection (la valeur de type est 5) ;
message de requête . Ce type de message est utilisé pour interroger les informations du réseau. Par exemple, le programme ping utilise des messages ICMP pour vérifier si la cible est accessible (. la valeur du type est 8). Certains messages ICMP utilisent également un champ de code de 8 bits pour subdiviser davantage différentes conditions. Par exemple, un message de redirection utilise une valeur de code de 0 pour indiquer une redirection réseau et une valeur de code de 1 pour indiquer une redirection d'hôte.
Les messages ICMP utilisent un champ de somme de contrôle de 16 bits pour effectuer un contrôle de redondance cyclique (CRC) sur l'ensemble du message (y compris l'en-tête et le contenu) afin de vérifier si le message est endommagé pendant la transmission. Différents types de messages ICMP ont un contenu de corps différent.
Couche de transport
La couche de transport assure une communication de bout en bout pour les applications sur deux hôtes. Contrairement à la méthode de communication saut par saut utilisée par la couche réseau, la couche transport ne se soucie que de l'origine et de la destination de la communication et ne se soucie pas du processus de transfert du paquet de données.
Les flèches verticales pleines représentent la communication physique entre les couches de la suite de protocoles TCP/IP (les paquets de données sont en effet transmis le long de ces lignes), tandis que les flèches pointillées horizontales représentent les lignes de communication logiques. Le diagramme décrit également comment les différents réseaux physiques sont connectés. On peut voir que la couche liaison de données
(pilote) encapsule les détails électriques du réseau physique ; la couche réseau encapsule les détails de la connexion réseau ; lien pour l'application. Il est responsable de l'envoi et de la réception des données, de la reconnexion du lien après expiration, etc.
Protocole de couche transport : protocole TCP, protocole UDP.
Le protocole TCP (Transmission Control Protocol, Transmission Control Protocol) fournit des services fiables, orientés connexion et basés sur le flux pour la couche application. Le protocole TCP utilise la retransmission après expiration du délai, l'accusé de réception des données, etc. pour garantir que les paquets de données sont envoyés correctement à la destination, afin que le service TCP soit fiable. Les deux parties communiquant à l'aide du protocole TCP doivent d'abord établir une connexion TCP et conserver certaines structures de données nécessaires à la connexion dans le noyau, telles que l'état de la connexion, les tampons de lecture et d'écriture et de nombreux temporisateurs. Lorsque la communication se termine, les deux parties doivent fermer la connexion pour libérer ces données du noyau. Les services TCP sont basés sur des flux. Les données basées sur un flux n'ont pas de limite (de longueur) et circulent en continu d'une extrémité à l'autre de la communication. L'expéditeur peut écrire des données dans le flux de données octet par octet et le destinataire peut les lire octet par octet.
Le protocole UDP (User Datagram Protocol) est complètement opposé au protocole TCP. Il fournit des services peu fiables, sans connexion et basés sur des datagrammes pour la couche application. « Peu fiable » signifie que le protocole UDP ne peut pas garantir que les données sont correctement transmises de l'expéditeur à la destination. Si les données sont perdues à mi-chemin ou si la destination détecte des erreurs de données lors de la vérification des données et les rejette, le protocole UDP notifie simplement l'application de l'échec de l'envoi. Par conséquent, les applications qui utilisent le protocole UDP doivent généralement gérer elles-mêmes la logique telle que la confirmation des données, la retransmission après expiration du délai, etc. Le protocole UDP est sans connexion, c'est-à-dire que les parties communicantes ne maintiennent pas une connexion durable, l'application doit donc spécifier clairement l'adresse du destinataire (adresse IP et autres informations) à chaque fois qu'elle envoie des données. Les services basés sur des datagrammes sont relatifs aux services basés sur des flux. Chaque datagramme UDP a une longueur et l'extrémité réceptrice doit lire tout son contenu en même temps avec cette longueur comme unité minimale, sinon les données seront tronquées.
Couche application
La couche application est responsable de la gestion de la logique de l'application.
La couche liaison de données, la couche réseau et la couche transport sont responsables de la gestion des détails de la communication réseau. Cette partie doit être à la fois stable et efficace, elles sont donc toutes implémentées dans l'espace du noyau. La couche application est implémentée dans l'espace utilisateur car elle est responsable de la gestion de nombreuses logiques, telles que le transfert de fichiers, la requête de nom et la gestion du réseau. Si la couche application est également implémentée dans le noyau, cela rendra le noyau très volumineux. Bien sûr, il existe également quelques programmes serveur qui sont implémentés dans le noyau, de sorte que le code n'a pas besoin de basculer entre l'espace utilisateur et l'espace noyau (principalement la copie de données), ce qui améliore considérablement l'efficacité du travail. Cependant, ce type de code est complexe à mettre en œuvre, pas assez flexible et pas facile à transplanter.
Ping est une application, pas un protocole. Comme mentionné précédemment, il utilise les messages ICMP pour détecter les connexions réseau et constitue un outil essentiel pour déboguer l'environnement réseau.
Le protocole telnet est un protocole de connexion à distance qui nous permet d'effectuer des tâches à distance localement.
Le protocole OSPF (Open Shortest Path First) est un protocole de mise à jour de routage dynamique utilisé pour la communication entre les routeurs afin de s'informer mutuellement de leurs informations de routage.
Le protocole DNS (Domain Name Service) permet la conversion des noms de domaine des machines en adresses IP.
Les protocoles (ou programmes) de la couche application peuvent ignorer la couche transport et utiliser directement les services fournis par la couche réseau, tels que les programmes ping et les protocoles OSPF. Les protocoles (ou programmes) de la couche application peuvent généralement utiliser à la fois les services TCP et les services UDP, tels que le protocole DNS. Nous pouvons visualiser tous les protocoles de couche application bien connus et les services de couche de transport qu'ils peuvent utiliser via le fichier /etc/services.
L'idée derrière le protocole à cinq couches : la couche supérieure protège les détails de la couche inférieure et utilise uniquement les services qu'elle fournit. Haute cohésion et faible couplage, chaque couche se concentre sur sa fonction, et il y a peu de dépendance sur la relation entre les couches.
Les paquets de données ont des formats différents à chaque couche. Ils sont appelés segments, datagrammes et trames de haut en bas. Les données sont transmises de la couche d'application à travers la pile de protocoles, et chaque couche s'ajoute. l'en-tête correspondant du protocole de couche est finalement encapsulé dans une trame et envoyé au support de transmission. Lorsqu'il atteint le routeur ou l'hôte de destination, l'en-tête est supprimé et remis au demandeur de couche supérieure. Ce processus est appelé encapsulation, transmission, séparation et décentralisation.
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!