Introduction à TCP/IP
Généralités
Un réseau est constitué d’un ensemble d’ordinateurs et de périphériques interconnectés par différents liens de communication, capables d’échanger des données en temps réel ou quasi-réel. Chaque élément d’un réseau est appelé nœud.
L’Internet (Interconnected Network) n’est pas un réseau au sens classique du terme, il n’y a rien qui puisse ressembler à une énorme multinationale qui fournirait des services dans tous les continents. En fait, l’Internet est une connexion anarchique de réseaux appartenant à divers propriétaires et de différents types. Le mode opératoire de l’Internet est très simple, des réseaux sont reliés par des programmes inter réseaux. Tout hôte de l’Internet qui souhaite faire tourner une application Internet est supposé abriter une instance de ce programme. Les applications accèdent en général au programme Internet à travers un programme de transport TCP ou UDP.
Les données qui transitent sur le réseau sont fragmentées en tronçons appelés paquets. Chacun est manipulé individuellement et mentionne les adresses d’origine et de destination. Le paquet est emballé pour traverser le réseau dans lequel il est apparu puis déballé et acheminé par un programme Internet suivant un autre type d’encapsulation. En d’autres termes, à l’intérieur de chaque réseau, les nœuds utilisent la technologie spécifique de leur réseau (Ethernet, X.25, …). Le logiciel d’interconnexion de la couche réseau encapsule ces spécificités et offre un service commun à tous les applicatifs, faisant apparaître l’ensemble de ces réseaux disparates comme un seul et unique réseau.
Principe des couches et protocoles
Pour réduire la complexité de conception, les réseaux sont organisés en série de couches ou niveaux, chacune étant construite sur la précédente. Le nombre de couches, leur nom et leur fonction varie d’un réseau à un autre. Cependant, dans chaque type de réseau, l’objet de chaque couche est d’offrir certains services aux couches plus hautes, en leur épargnant les détails de la mise en œuvre de ces services.
La couche N d’une machine gère la conversation avec la couche N d’une autre machine. Les règles et conventions pour cette conversation sont connues sous le nom de protocole de la couche N. En réalité, aucune donnée n’est transférée directement d’une couche N d’une machine à la couche N d’une autre machine mais chaque couche passe les données et les contrôles à la couche immédiatement inférieure, jusqu’à la plus basse. Entre chaque paire de couches adjacentes, on trouve une interface. L’interface définit les opérations élémentaires et les services que la couche inférieure offre à la couche supérieure. TCP/IP est un des langages utilisés dans les réseaux. Le terme TCP/IP n’est pas limité à l’expression Transport Control Protocol / Internet Protocole. TCP/IP recouvre toute une famille de protocoles comme UDP (User Datagram Protocol), Telnet, FTP (File Transfer Protocol), http (HyperText Transfer Protocol) …
Les architectures OSI et TCP/IP
Le modèle OSI
Principe général
Le modèle OSI (Open System Interconnexion) a été développé en 1978 par l’ISO (International Standard Organization) afin que soit défini un standard utilisé dans le développement de système ouvert. Les réseaux s’appuyant sur le modèle OSI parlent le même langage, ils utilisent des méthodes de communication semblables pour échanger des données. Le modèle OSI a sept couches : la couche physique, la couche liaison de données, la couche réseau, la couche transport, la couche session, la couche présentation, et la couche application.
Les principes ayant conduit aux sept couches sont les suivantes :
– Une couche ne peut être créée que quand un niveau différent d’abstraction est nécessaire.
– Chaque couche doit fournir une fonction bien définie.
– Les fonctions de chaque couche doivent être choisies en pensant à la définition de protocoles normalisés internationaux.
– Les caractéristiques d’une couche doivent être choisies pour qu’elles réduisent les informations transmises entre les couches.
– Le nombre de couches doit être suffisamment grand pour éviter la cohabitation dans une même couche de fonctions très différentes et suffisamment petit pour éviter que l’architecture ne devienne difficile à maîtriser.
Rôles des couches
La couche physique s’occupe de la transmission des bits de façon brute sur un circuit de communication. Les bits peuvent être encodés sous forme de 0 ou de 1 ou sous forme analogique. Elle fait intervenir des interfaces mécaniques et électriques sur le média utilisé. La couche liaison de données prend les données de la couche physique et fournit ses services à la couche réseau. Les bits reçus sont groupés en unité logique appelée trame. Les fonctions de contrôle de flux et d’erreurs y sont éventuellement assurées avec un contrôle d’accès au support. La couche réseau gère la connexion entre les différents nœuds du réseau. Il comporte trois fonctions principales : le contrôle de flux, le routage et l’adressage. La couche transport effectue des contrôles supplémentaires à la couche réseau. Elle réalise le découpage des messages en paquets pour la couche réseau. Elle doit également gérer les ressources de communication en gérant un contrôle de flux ou un multiplexage. C’est l’ultime niveau qui s’occupe de l’acheminement de l’information. Le rôle de la couche session est de fournir aux entités de présentation les moyens nécessaires à l’organisation et à la synchronisation de leur dialogue. Elle a pour but d’ouvrir et de fermer des sessions entre les utilisateurs et possède par conséquent des fonctionnalités nécessaires à l’ouverture, à la fermeture et au maintien de la connexion. L’insertion de points de synchronisation est recommandée ; ils permettent, en cas de problèmes, de disposer d’un point précis à partir duquel l’échange pourra redémarrer. Pour que deux systèmes puissent se comprendre, ils doivent utiliser le même système de représentation des données, et cette tâche est assurée par la couche présentation. Elle se charge donc de la syntaxe des informations, de la représentation des données transférées entre applications. Quant à la couche application, elle fournit les fonctions nécessaires aux applications utilisateurs qui doivent accomplir des tâches de communication. Elle intègre les logiciels qui utilisent les ressources du réseau.
Le modèle TCP/IP
Dans les années 70, la défense américaine, DOD (Department Of Defense), devant le foisonnement de machines utilisant des protocoles de communication différents et incompatibles, décide de définir sa propre architecture. Cette architecture TCP/IP est à la source de l’Internet. Contrairement au modèle OSI, le modèle TCP/IP ne comporte que quatre couches : la couche accès réseau, la couche Internet, la couche transport et la couche application. Les deux principaux protocoles définis sont : TCP et IP.
La couche accès réseau représente la connexion physique avec les câbles, les cartes réseau, les protocoles d’accès au réseau… La couche Internet doit fournir une adresse logique pour l’interface physique. Cette couche fournit un mappage entre l’adresse physique et l’adresse logique grâce aux protocoles ARP (Address Resolution Protocol) et RARP (Reverse Address Resolution Protocol). Quant à ICMP (Internet Control Message Protocol), il s’occupe des problèmes et diagnostics associés au protocole IP. Cette couche gère également le routage des paquets entre les hôtes. La couche transport définit la connexion entre deux hôtes. Deux protocoles sont associés à cette couche, le TCP et l’UDP. TCP est responsable du service de transmission fiable avec la fonction de détection et de correction d’erreurs. UDP est quant à lui, un protocole peu fiable, il est spécialement utilisé dans les applications n’exigeant pas la fiabilité de TCP, comme dans les applications temps réel. La couche application renferme les protocoles d’application fournissant des services à l’utilisateur. Elle interface donc les applications utilisateurs avec la pile de protocole TCP/IP.
INTRODUCTION GENERALE |