Fonctions de chaque couche dans le modèle TCP/IP
Les différentes fonctions de chaque couche du modèle TCP/IP sont énumérées ci-dessous.
Couche d'accès au réseau
Les fonctions de la couche d'accès au réseau sont indiquées ci-dessous :
- Il s'agit de la couche inférieure du modèle TCP/IP et elle comprend toutes les fonctionnalités de la couche physique et de la couche liaison de données du modèle de référence OSI.
- Elle caractérise donc les protocoles, le matériel et les médias à utiliser pour la communication.
- Les paquets de données provenant de la couche Internet sont transmis à cette couche pour être envoyés à leur destination sur un support physique.
- La tâche principale de cette couche est de combiner les octets de données en trames et de fournir un mécanisme pour la transmission des trames de données IP sur le support physique.
- Le protocole PPP (Point to Point) est utilisé pour établir une liaison point à point sur des lignes louées. Il est également déployé pour fournir une connectivité entre l'utilisateur final et les fournisseurs de services Internet via des modems. Il permet également d'attribuer des adresses IP sur des liaisons PPP.
- La plupart des utilisateurs finaux préfèrent une liaison Ethernet qui fonctionne uniquement avec le protocole de liaison de données Ethernet. C'est ainsi qu'est créé le PPP sur Ethernet qui permet d'envoyer les trames de données encapsulées à l'intérieur de trames Ethernet.
- PPPoE établit initialement un tunnel entre les périphériques réseau de l'utilisateur final, comme le routeur et le routeur du FAI. Ensuite, le routeur envoie des trames PPP sur ce tunnel, qui fonctionne comme une liaison point à point entre les routeurs. Grâce à cette technologie, les données sont désormais transmises sur les réseaux WAN.
- PPP utilise également le processus d'authentification pour vérifier la responsabilité de l'utilisation des données avec les ISP. Les méthodes comprennent le protocole d'authentification par mot de passe (PAP) et le protocole d'authentification par poignée de main de canal (CHAP).
Couche Internet
- La deuxième couche en partant du bas est la couche Internet.
- Une fois que les données sont segmentées par TCP ou UDP en ajoutant les en-têtes correspondants dans le paquet de données, elles sont envoyées à la couche inférieure pour la suite de la communication.
- L'hôte de destination auquel le paquet de données est destiné peut se trouver dans un autre réseau dont le chemin peut être atteint en passant par différents routeurs. Il incombe à la couche Internet d'attribuer les adresses logiques et d'acheminer efficacement les paquets de données vers le réseau de destination.
- La couche Internet (IP) est le protocole le plus populaire qui est utilisé pour effectuer cette tâche.
Protocole Internet
L'objectif de ce protocole est d'acheminer les paquets de données vers la destination selon les informations contenues dans l'en-tête du paquet en suivant un ensemble de protocoles.
En ajoutant un en-tête qui contient l'adresse IP de la source et de la destination, le segment reçu de TCP ou UDP est converti en PDU appelé paquet. Lorsque le paquet arrive au routeur, il regarde l'adresse de destination dans l'en-tête et transmet le paquet en conséquence au routeur suivant pour atteindre la destination.
Comprenons cela à l'aide d'un exemple :
Dans la figure ci-dessous, lorsque l'hôte A veut communiquer avec l'hôte B, il n'utilisera aucun protocole de routage car les deux sont dans la même plage de réseau et ont les adresses IP du même ensemble.
Mais si l'hôte A veut envoyer un paquet à l'hôte C, le protocole lui permet de découvrir que l'hôte de destination appartient à un autre réseau. Le format ci-dessus va donc consulter la table de routage pour trouver l'adresse du prochain saut pour atteindre la destination.
Dans ce cas, l'hôte A atteindra l'hôte C via les routeurs A, B et C. Comme le routeur C est directement connecté à un réseau de destination via un commutateur, le paquet est livré à l'hôte C.
Le routeur obtient toutes les informations relatives au routage à partir des champs de l'en-tête IP. La couche réseau de TCP/IP (couche liaison de données) sera responsable de la livraison de bout en bout des paquets de données.
Flux de paquets dans le protocole Internet

En-tête IPV4

- Version : L'IPV4 a le numéro de version 4.
- Longueur de l'en-tête : Il indique la taille de l'en-tête.
- Champ DS : Le champ DS signifie champ de services différenciés et est déployé pour construire les paquets.
- Longueur totale : Elle désigne la taille de l'en-tête plus la taille du paquet de données.
- Identification : Ce champ est utilisé pour la fragmentation des paquets de données et pour l'attribution de chaque champ, ce qui permet de reconstituer le paquet de données original.
- Drapeaux : Utilisé pour indiquer la procédure de fragmentation.
- Décalage des fragments : Il indique le numéro du fragment et l'hôte source qui les utilise pour réorganiser les données fragmentées dans le bon ordre.
- Heure de départ : Ce paramètre est défini à l'extrémité de l'hôte source.
- Protocole : Il indique le protocole utilisé pour la transmission des données. Le protocole TCP porte le numéro 6 et le protocole UDP le numéro 17.
- Somme de contrôle de l'en-tête : Ce champ est utilisé pour la détection des erreurs.
- Adresse IP source : Il enregistre l'adresse IP de l'hôte final source.
- Adresse IP de destination : Il enregistre l'adresse IP de l'hôte de destination.
Nous en parlerons en détail dans nos prochains tutoriels.
Couche de transport
- Il s'agit de la troisième couche en partant du bas. Elle est responsable du transfert global des données et permet d'établir une connectivité logique de bout en bout entre l'hôte source et l'hôte de destination et les périphériques d'un réseau.
- Deux protocoles sont utilisés pour effectuer ces tâches :
- Le premier est le protocole de contrôle de transmission (TCP), qui est un protocole basé sur la connexion et fiable.
- Le second est le protocole de datagramme utilisateur (UDP), qui est un protocole sans connexion.
- Avant d'explorer ces deux protocoles en profondeur, nous allons discuter du concept de NUMÉRO DE PORT qui est utilisé par ces deux protocoles.
Numéro de port
Dans un réseau, un dispositif hôte peut envoyer ou recevoir du trafic de plusieurs sources en même temps.
Dans une telle situation, le système ne reconnaîtra pas à laquelle des applications appartiennent les données. Les protocoles TCP et UDP résolvent ces problèmes en mettant un numéro de port dans leurs en-têtes. Les protocoles de la couche application bien connus se voient attribuer un numéro de port compris entre 1 et 1024.
Du côté source, un numéro de port aléatoire est attribué à chaque session TCP ou UDP. L'adresse IP, le numéro de port et le type de protocole utilisé en combinaison forment un socket à la fois du côté source et du côté destination. Comme chaque socket est exclusif, plusieurs hôtes peuvent envoyer ou recevoir du trafic dans le même intervalle de temps.
Ci-dessous indique le numéro de port qui est attribué à plusieurs protocoles de la couche application correspondant au protocole de la couche transport.
Protocole d'application (Protocole de transport) : Numéro de port
- HTTP (TCP) : 80
- HTTPS (TCP) : 443
- FTP contrôle (TCP) : 21
- FTP données (TCP) : 20
- SSH (TCP) : 22
- Telnet (TCP) : 23
- DNS (TCP, UDP) : 53
- SMTP (TCP) : 25
- TFTP (UDP) : 69
Session multiple utilisant un numéro de port

TCP
- Chaque fois que la couche application a besoin de faire circuler un flux important de trafic ou de données, elle l'envoie à la couche transport dans laquelle le TCP effectue toutes les communications de bout en bout entre les réseaux.
- Le TCP établit d'abord un processus de poignée de main à trois voies entre la source et la destination, puis il divise les données en petits morceaux appelés segments, et inclut un en-tête dans chaque segment avant de les transmettre à la couche Internet.
La figure ci-dessous montre le format de l'en-tête TCP.

- Handshake à trois voies : Il s'agit du processus déployé par TCP pour établir une connexion entre l'hôte source et l'hôte de destination dans le réseau. Il est utilisé pour effectuer une transmission de données fiable. Il déploie les indicateurs SYN et ACK des bits de code de l'en-tête TCP pour effectuer cette tâche. Il assure une communication fiable en effectuant un accusé de réception positif avec retransmission et est également connu sous le nom de PAR. Le système utilisant le PAR retransmettra le segment de données jusqu'à ce qu'il reçoive l'ACK. Lorsque le récepteur rejette les données, l'expéditeur doit retransmettre les données jusqu'à ce qu'il reçoive l'ACK positif du récepteur.
Le handshaking à trois voies se déroule en trois étapes, qui sont les suivantes :
- Étape 1 : L'hôte source A veut établir une connexion avec l'hôte de destination B, il transmet un segment avec le SYN et le numéro de séquence, qui indique que l'hôte A veut initier une session de communication avec l'hôte B et avec quel numéro de séquence il est défini dans ce segment.
- Étape 2 : L'hôte B répond à la demande de l'hôte A avec SYN et ACK dans le bit de signal. ACK indique la réponse du segment reçu et SYN indique le numéro de séquence.
- Étape 3 : L'hôte A accuse réception de la réponse de l'hôte B et les deux établissent une connexion sécurisée entre eux, puis commencent à transmettre des données.
Comme décrit dans la figure ci-dessous, dans le processus de poignée de main à trois voies, l'hôte source envoie d'abord un en-tête TCP à l'hôte de destination en activant le drapeau SYN. En réponse, il reçoit en retour le drapeau SYN et le drapeau d'accusé de réception. L'hôte de destination pratique le numéro de séquence reçu plus 1 comme numéro d'accusé de réception.
TCP IP prend en charge le modèle client-serveur du système de communication.
Processus de la poignée de main à trois voies

Segmentation des données
- C'est l'une des caractéristiques du protocole TCP. La couche application envoie à la couche transport un grand nombre de données à transmettre à la destination. Mais la couche transport limite la taille des données à envoyer en une seule fois. Cela se fait en divisant les données en petits segments.
- Pour reconnaître la séquence des segments de données, un numéro de séquence est utilisé dans l'en-tête TCP et décrit le numéro d'octet de l'ensemble du segment de données.
Contrôle du débit
- L'hôte source envoie les données dans un groupe de segments. L'en-tête TCP comportant un bit de fenêtre est utilisé pour déterminer le nombre de segments qui peuvent être envoyés à un moment donné. Il est utilisé pour éviter le trafic insignifiant à l'extrémité de la destination.
- Au début de la session, la taille de la fenêtre est minuscule, mais au fur et à mesure que le trafic augmente, la taille de la fenêtre peut devenir énorme. L'hôte de destination peut ajuster la fenêtre en fonction du contrôle du flux. La fenêtre est donc appelée fenêtre glissante.
- La source ne peut transmettre que le nombre de segments autorisés par la fenêtre. Afin d'envoyer plus de segments, elle attendra d'abord un accusé de réception de l'extrémité réceptrice une fois qu'elle aura reçu l'ACK, puis elle pourra augmenter la taille de la fenêtre en fonction de ses besoins.
- Dans la figure ci-dessous, l'hôte de destination augmente la taille de 500 à 600 puis à 800 après avoir renvoyé l'ACK à l'hôte source.
Livraison fiable et reprise sur erreur
- Une fois que le dernier segment de la fenêtre décidée est reçu par la destination, celle-ci doit envoyer un ACK à l'extrémité source. L'indicateur ACK est placé dans l'en-tête TCP et le numéro ACK est placé comme le numéro de séquence de l'octet suivant présumé. Si la destination ne reçoit pas les segments dans le bon ordre, elle ne renverra pas l'ACK à la source.
- Cela explique à la source que quelques segments ont été mal placés pendant la transmission et qu'elle retransmettra tous les segments.
- Dans la figure ci-dessous, il a été illustré que lorsque la source n'a pas reçu l'ACK pour le segment avec le numéro SEQ 200, alors elle retransmet les données et après avoir reçu l'ACK, elle envoie la séquence suivante du segment de données en fonction de la taille de la fenêtre.
Livraison commandée :
- Le TCP assure la livraison séquentielle des données à la destination. Il livre les données dans l'ordre dans lequel il les reçoit de la couche application pour les livrer à l'hôte de destination. Ainsi, pour maintenir la livraison ordonnée, il utilise un numéro de séquence pendant la transmission des segments de données.
Terminaison de la connexion :
- Lorsque la transmission des données entre la source et la destination est terminée, le TCP conclut la session en envoyant les drapeaux FIN et ACK et utilise une poignée de main à quatre voies pour la fermer.
Fenêtre glissante TCP et livraison fiable

User Datagram Protocol (UDP)
Il s'agit d'un protocole non fiable et sans connexion pour la transmission de données. Dans ce protocole, contrairement au TCP, il ne génère pas de drapeau ACK, donc l'hôte source n'attendra pas de réponse de l'extrémité de destination et transmettra les données sans délai et en attendant l'ACK.
Dans un scénario en temps réel, UDP est utilisé car l'abandon des paquets de données est préféré à l'attente des paquets pour la retransmission. Il est donc très utilisé dans les jeux, la vidéo en ligne, le chat, etc. où l'accusé de réception des données n'est pas une préoccupation. Dans ces scénarios, la vérification et la correction des erreurs ont lieu au niveau de la couche application.
En-tête UDP

- Port source : Il classe les informations du paquet de l'extrémité source qui a une taille de 16 bits.
- Port de destination : Il a également une taille de 16 bits et sert à classer le type de service de données au nœud de destination.
- Longueur : Il indique la taille globale du datagramme UDP. La taille maximale du champ de longueur peut être la taille globale de l'en-tête UDP lui-même.
- Somme de contrôle : Il enregistre la valeur de la somme de contrôle évaluée par l'extrémité source avant la transmission. S'il ne contient aucune valeur, tous ses bits sont mis à zéro.
Applications UDP
- Il fournit des datagrammes, il est donc approprié pour le tunnelage IP et le système de fichiers réseau.
- Simple d'utilisation, il est donc utilisé dans le DHCP et le protocole de transfert de fichiers triviaux.
- Le fait qu'il soit apatride le rend efficace pour les applications de médias en continu comme la télévision sur IP.
- Convient également à la voix sur IP et aux programmes de diffusion en temps réel.
- Il soutient le multicast, il est donc approprié pour les services de diffusion tels que Bluetooth et le protocole d'information de routage.
Couches d'application
(i) Il s'agit de la couche supérieure du modèle TCP/IP.
(ii) Il exécute toutes les tâches de la couche session, de la couche présentation et de la couche application du modèle TCP/IP.
(iii) Il combine les fonctions d'interface avec diverses applications, de codage et de traduction des données et permet aux utilisateurs de communiquer avec divers systèmes de réseau.
Les protocoles de la couche application les plus courants sont définis ci-dessous :
1) TELNET
Il s'agit du protocole d'émulation de terminal. Il permet généralement d'accéder à des applications distantes. Le serveur telnet qui agit en tant qu'hôte lance une application de serveur telnet pour établir une connexion avec l'hôte distant connu sous le nom de client telnet.
Une fois la connexion établie, elle est présentée au système d'exploitation du serveur telnet. Les personnes situées du côté serveur utilisent leur clavier et leur souris pour opérer et accéder à l'hôte distant via TELNET.
2) HTTP
Il s'agit du protocole de transfert hypertexte. C'est la base du World Wide Web (WWW). Ce protocole est utilisé pour échanger l'hypertexte entre différents systèmes. Il s'agit d'un type de protocole demande-réponse.
Par exemple, un navigateur Web comme Internet Explorer ou Mozilla agit comme un client Web et l'application qui tourne sur le PC hébergeant le site Web agit comme un serveur Web.
Ainsi, le serveur qui fournit les ressources telles que les fichiers HTML et les autres fonctions demandées par le client renvoie au client un message de réponse dont la ligne de message contient les données relatives à l'état d'achèvement et les données demandées.
Les ressources HTTP sont reconnues et positionnées sur le réseau par des localisateurs de ressources uniformes (URL) déployant des méthodes d'identification de ressources uniformes (URI) HTTP et https.
3) FTP
Il s'agit du protocole de transfert de fichiers. Il est utilisé pour partager ou transférer des fichiers entre deux hôtes. L'hôte qui exécute l'application FTP se comporte comme le serveur FTP tandis que l'autre se comporte comme le client FTP.
L'hôte client qui demande le partage de fichiers doit s'authentifier auprès du serveur pour accéder aux données. Une fois autorisé, il peut accéder à tout type de fichiers du serveur, envoyer ou recevoir des fichiers.
4) SMTP
Simple mail transport protocol est un exercice pour envoyer des e-mails. Lorsque nous configurons l'hôte pour envoyer des e-mails, nous utilisons SMTP.
5) DNS
Chacun des appareils hôtes d'un réseau possède une adresse logique unique appelée adresse IP. Comme nous l'avons déjà vu, les adresses IP sont constituées d'un grand nombre de chiffres et ne sont pas faciles à mémoriser. Lorsque nous tapons une adresse web sur un navigateur web tel que Google.com, nous demandons en fait un hôte ayant une adresse IP.
Mais il n'est pas nécessaire de mémoriser l'adresse IP de la page Web que nous demandons, car le DNS (serveur de noms de domaine) associe un nom à chaque adresse IP logique et le stocke.
Ainsi, lorsque nous tapons dans le navigateur pour une page Web, il envoie la requête DNS à son serveur DNS pour faire correspondre l'adresse IP au nom. Une fois qu'il a obtenu l'adresse, une session HTTP est construite avec l'adresse IP.
6) DHCP
Chacun des appareils hôtes d'un réseau a besoin d'une adresse IP pour communiquer avec les autres appareils du réseau. Il obtient cette adresse par configuration manuelle ou en utilisant un protocole de configuration dynamique de l'hôte (DHCP). Si vous utilisez le protocole DHCP, une adresse IP sera automatiquement attribuée à l'hôte.
Supposons qu'un réseau soit composé de 10 000 dispositifs hôtes. Il est alors très difficile d'attribuer manuellement une adresse IP à chaque hôte et cela prend du temps. Nous utilisons donc le protocole DHCP pour attribuer une adresse IP et d'autres informations aux périphériques hôtes connectés, comme le masque de sous-réseau ou la passerelle IP.
Les programmes de test de logiciels travailleront sur cette couche du modèle TCP/IP, car elle permet aux utilisateurs finaux de tester les différents services et d'utiliser ces services.
Conclusion.
Nous avons vu les différents protocoles utilisés à chaque couche du modèle TCP/IP pour effectuer les tâches associées à la couche et leurs avantages dans un système de communication.
Tous les protocoles définis ci-dessus ont leur propre signification et des rôles différents dans le test et l'application des outils logiciels.