13
Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-Ardenne Reproduction et diffusion interdites sans l'accord écrit de l'auteur 1/13 ARCHITECTURE D'INTERNET OSI ET TCP/IP Pour expliquer de manière détaillée la mise en réseau d'ordinateurs, il convient d'utiliser des termes dont la signification est précisé dans le domaine de la transmission de donnée et ce, même si des professionnels de l'informatique ne maîtrisent pas tous les termes techniques utilisés dans le domaine de la gestion de réseau. Comme toujours, la langue écrite et orale diffèrent (ou même ne sont pas nécessairement compatibles). Bien que des descriptions et explications puissent faciliter la compréhension de ce jargon, la signification de certains termes n'en demeure pas moins ambiguë. L'établissement d'un cadre commun de référence s'avère dès lors nécessaire afin de garantir une bonne compréhension de la terminologie utilisée dans ce domaine. Un modèle d'architecture développé par l'Organisation Internationale de Normalisation (ISO : International Standards Organization) est souvent utilisé pour décrire la structure et les fonctions des protocoles de transmission de données. Ce modèle d'architecture, appelé Modèle de référence de l'Interconnexion de Systèmes Ouverts (OSI : Open Systems Interconnect Reference Model), fournit un cadre de référence commun permettant d'expliquer correctement les transmissions de données. Les termes définis au moyens de ce modèle ne posent aucun problème de compréhension et sont utilisés par les spécialistes de la transmission de données, en fait, il s'avère pratiquement impossible de traiter de la transmission de données sans utiliser la terminologie OSI. Le modèle de référence OSI comporte sept couches, définissant les différentes fonctions des protocoles de transmissions de données. Chaque couche du modèle OSI représente une fonction exécutée lorsque les données sont transférées entre deux applications coopérantes sur un réseau intermédiaire. La figure 1 représente chaque couche en fonction de son nom et en fournit une brève description fonctionnelle. L'analyse de cette figure montre que les protocoles peuvent être comparés aux blocs d'un immeuble que l'on pose les uns au-dessus des autres. C'est la raison pour laquelle, cette structure est souvent appelée pile ou pile de protocoles. Une couche ne correspond pas à la spécification d'un protocole, elle définit une fonction de transmission de données, qui peut être exécutée par un nombre quelconque de protocoles. Par conséquent, chaque couche peut contenir plusieurs protocoles, chacun fournissant un service utile à la fonction de cette couche. Exemple : un protocole de transfert de fichiers et un protocole de courrier électronique fournissent tous deux des services utilisateurs et sont partie intégrante de la couche Application. ! Couche Application comporte les programmes d'applications utilisant le réseau " Couche Présentation standardise la présentation des données destinées aux applications # Couche Session gère les sessions entre applications $ Couche Transport assure la détection et la correction d'erreur bout en bout % Couche Réseau gère les connexions au travers du réseau pour les couches supérieures & Couche Liaison assure la transmission des données sur la liaison physique Couche Physique définit les caractéristiques physiques du matériel réseau Figure 1 Modèle de référence OSI

OSI ET TCP/IP - tesenca.comtesenca.com/Sites/SAV/Menus/02-Formations/Cours/TCP-IP/A01_cours02... · osi et tcp/ip Pour expliquer de manière détaillée la mise en réseau d'ordinateurs,

  • Upload
    hathuy

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 1/13

ARCHITECTURED'INTERNET

OSI ET TCP/IPPour expliquer de manière détaillée la mise en réseau d'ordinateurs, il convient d'utiliser des termesdont la signification est précisé dans le domaine de la transmission de donnée et ce, même si desprofessionnels de l'informatique ne maîtrisent pas tous les termes techniques utilisés dans ledomaine de la gestion de réseau. Comme toujours, la langue écrite et orale diffèrent (ou même nesont pas nécessairement compatibles). Bien que des descriptions et explications puissent faciliter lacompréhension de ce jargon, la signification de certains termes n'en demeure pas moins ambiguë.L'établissement d'un cadre commun de référence s'avère dès lors nécessaire afin de garantir unebonne compréhension de la terminologie utilisée dans ce domaine.

Un modèle d'architecture développé par l'Organisation Internationale de Normalisation (ISO :International Standards Organization) est souvent utilisé pour décrire la structure et les fonctions desprotocoles de transmission de données. Ce modèle d'architecture, appelé Modèle de référence del'Interconnexion de Systèmes Ouverts (OSI : Open Systems Interconnect Reference Model), fournitun cadre de référence commun permettant d'expliquer correctement les transmissions de données.Les termes définis au moyens de ce modèle ne posent aucun problème de compréhension et sontutilisés par les spécialistes de la transmission de données, en fait, il s'avère pratiquement impossiblede traiter de la transmission de données sans utiliser la terminologie OSI.

Le modèle de référence OSI comporte sept couches, définissant les différentes fonctions desprotocoles de transmissions de données. Chaque couche du modèle OSI représente une fonctionexécutée lorsque les données sont transférées entre deux applications coopérantes sur un réseauintermédiaire. La figure 1 représente chaque couche en fonction de son nom et en fournit une brèvedescription fonctionnelle. L'analyse de cette figure montre que les protocoles peuvent être comparésaux blocs d'un immeuble que l'on pose les uns au-dessus des autres. C'est la raison pour laquelle,cette structure est souvent appelée pile ou pile de protocoles.

Une couche ne correspond pas à la spécification d'un protocole, elle définit une fonction detransmission de données, qui peut être exécutée par un nombre quelconque de protocoles. Parconséquent, chaque couche peut contenir plusieurs protocoles, chacun fournissant un service utile àla fonction de cette couche. Exemple : un protocole de transfert de fichiers et un protocole decourrier électronique fournissent tous deux des services utilisateurs et sont partie intégrante de lacouche Application.

! Couche Applicationcomporte les programmes d'applicationsutilisant le réseau

" Couche Présentationstandardise la présentation des donnéesdestinées aux applications

# Couche Sessiongère les sessions entre applications

$ Couche Transportassure la détection et la correction d'erreur bouten bout

% Couche Réseaugère les connexions au travers du réseau pourles couches supérieures

& Couche Liaisonassure la transmission des données sur laliaison physique

' Couche Physiquedéfinit les caractéristiques physiques dumatériel réseau

Figure 1 Modèle de référence OSI

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 2/13

ARCHITECTURED'INTERNET

Chaque protocole communique avec son homologue. Un homologue correspond à mise en œuvredu même protocole dans la couche équivalente d'un système à distance; le protocole de transfert defichiers local est l'homologue du protocole de transfert de fichiers du système à distance. Latransmission de données entre homologues doit être standardisée de manière à garantir unetransmission sans problème. Autrement dit, chaque protocole ne prend en charge que lestransmissions avec son homologue; il ne tient pas compte de la couche située au-dessus ou endessous de lui.

Puisque la transmission de données entre une application locale et une application équivalente àdistance requiert l'utilisation de chaque couche, il convient dès lors de déterminer une conventiondécrivant le mode de transmission de données entre les différentes couches d'un même ordinateur.Pour le transfert de données sur un réseau sous-jacent, les couches supérieures dépendent descouches inférieures. Les données descendent la pile en passant d'une couche à l'autre, jusqu'à cequ'elles soient transmises sur le réseau au moyen des protocoles de la couche Physique. Al'extrémité distante, les données remontent la pile jusqu'à l'application réceptrice. Il n'est pasnécessaire que les différentes couches connaissent le fonctionnement des couches situés au-dessus ou au-dessous d'elles; elles doivent uniquement savoir comment leur passer les données. Lalocalisation des fonctions de transmission de données du réseau dans différentes couches permetde réduire les conséquences inhérentes aux modifications technologiques apportées à l'ensembledes protocoles. De nouvelles applications peuvent être ajoutées à l'ensemble des protocoles. Denouvelles applications peuvent être ajoutées sans devoir modifier pour autant le réseau physique;vous pouvez ajouter un nouveau matériel de réseau sans devoir réécrire de logiciel d'application.

Bien que le modèle OSI s'avère utile, les protocoles TCP/IP ne correspondent pas exactement à sastructure. Par conséquent, dans notre exposé de TCP/IP, nous utilisons les couches du modèle OSIde la manière suivante :

Couche Application Dans la hiérarchie de protocole, la couche application correspondau niveau où sont localisées les opérations du réseau accessibles àl'utilisateur. Dans ce texte, une application TCP/IP représente touteopération de réseau exécutée au-dessous de la couche Transport :ceci inclus, toutes les opérations avec lesquelles l'utilisateurdialogue ainsi que les autres opérations de ce niveau quel'utilisateur ne connaît pas obligatoirement.

Couche Présentation Pour que les applications coopérantes puissent échanger desdonnées, elles doivent utiliser la même représentation de données.Dans le modèle OSI, cette couche fournit les sous programmes deprésentation de données. Cette fonction est intégrée dans lesapplications.

Couche Session A l'instar de la couche Présentation, la couche Session n'existe passous la forme d'une couche séparée dans la hiérarchie du protocoleTCP/IP. La couche Session OSI gère les sessions (connexions)antre les applications coopérantes. Dans TCP/IP, cette fonction estsouvent exécutée au niveau de la couche Transport; le termesession n'est pas utilisé. Pour TCP/IP, les termes socket et portsont utilisés pour décrire le chemin par l'intermédiaire duquel lesapplications coopérantes communiquent.

Couche Transport La plus grande partie de notre exposé sur TCP/IP traite desprotocoles utilisés au niveau de la couche Transport. Cette couchedu modèle de référence OSI garantit que le récepteur reçoit lesdonnées telles qu'elles ont été envoyées. Dans TCP/IP, le protocolede contrôle de transmission (TCP : Transmission Control Protocol)exécute cette fonction. Toutefois, TCP/IP proposent un deuxièmeservice au niveau de la couche Transport : le service datagramme(UDP : User Datagram Protocol) qui n'offre pas de tests de fiabilitéde bout en bout.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 3/13

ARCHITECTURED'INTERNET

Couche Réseau La couche Réseau gère les connexions sur le réseau et isole lesprotocoles de la couche supérieure des détails du réseau sous-jacent. Le protocole Internet (IP) – qui isole les couchessupérieures du réseau sous-jacent, gère l'adressage et transmet lesdonnées – est généralement décrit comme étant la couche Réseaude TCP/IP.

Couche Liaison de données La couche Liaison de données garantit la fiabilité de la transmissiondes données sur le réseau physique sous-jacent. TCP/IP créerarement des protocoles localisés dans la couche Liaison dedonnées. La plupart des RFC associés à la couche Liaison dedonnées expliquent comment IP peut utiliser les protocoles deliaison de données.

Couche Physique La couche Physique définit les caractéristiques du matérielnécessaire à l'acheminement du signal de transmission dedonnées. Des éléments tels que les niveaux de tension ainsi que lenombre et la localisation des broches de l'interface sont définis auniveau de la couche Physique. Exemples de standard au niveau dela couche Physique : connecteurs d'interface tels que RS232C etV.35 ainsi que les standards pour le câblage du réseau local telsque IEEE802.3. TCP/IP ne définissent aucun standard matérielparticulier – ils utilisent les standards existants.

La terminologie du modèle de référence OSI s'avère d'un précieux secours lorsqu'il s'agit de décrireTCP/IP; mis pour en maîtriser les moindres recoins, nous devons utiliser un modèle d'architecture serapprochant de la structure de TCP/IP. La section suivante aborde en détail le modèle de protocoleque nous allons utiliser pour décrire TCP/IP.

Architecture des protocoles TCP/IPEtant donné qu'il n'existe pas d'accord général concernant la description de TCP/IP à l'aide d'unmodèle dont le nombre de couches est inférieur à celui du modèle OSI, en l'occurrence 7. La plupartdes description de TCP/IP définissent une architecture de protocole comportant trois à cinq niveaufonctionnels. Le modèle à quatre niveaux illustré sur la figure 2 est basé sur les trois couches(Application, machine hôte à machine hôte et Accès réseau) du modèle de protocole DOD proposédans le volume 1 du DDN Protocol Handbook, en y ajoutant une couche Internet séparée. Cemodèle offre une représentation graphique correcte des différentes couches dans la hiérarchie desprotocoles TCP/IP.

Comme dans le modèle OSI, les données sont transmises de haut en bas dans la pile lors de leurenvoi sur le réseau, et de bas en haut dans la pile lors de leur réception à partir du réseau. Lastructure à quatre couches de TCP/IP est représentée conformément à la procédure de traitementde données lorsque celles-ci parcourent la pile du protocole de haut en bas, à partir de la coucheApplication jusqu'au réseau physique sous-jacent. Chaque couche de la pile ajoute des informationsde contrôle de manière à garantir une transmission des données correcte. Ces informations decontrôle portent le nom d'en-tête puisqu'elles précèdent les données à transmettre. Chaque couchetraite toutes les informations provenant de la couche directement située au-dessus d'elle commeétant des données et place son propre en-tête devant ces informations. Cette procédure d'ajout desinformations de transmission au niveau de chaque couche s'appelle l'encapsulation (cette procédureest illustrée plus loin). Lorsque des données sont reçues, la procédure opposée est exécutée.Chaque couche retire son en-tête avant de transmettre les données à la couche supérieure. Au furet à mesure que les informations remontent la pile, les informations provenant d'une coucheinférieure sont interprétées comme étant à la fois un en-tête et des données.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 4/13

ARCHITECTURED'INTERNET

$ Couche Applicationcomporte les applications et processus utilisantle réseau

% Couche Transport Hôte à Hôteassure les services de transmission dedonnées bout en bout

& Couche InternetDéfinit le datagramme et prend en charge leroutage des données

' Couche Accèscomporte les routines permettant d'accéder auxréseaux physiques

Figure 2 Couches constitutives de l'architecture de Protocol de TCP/IP

Chaque couche possède ses propres structures de données indépendantes. Conceptuellement, unecouche n'est pas sensible aux structures de données qu'utilisent les couches situées sous ou au-dessus d'elle. En réalité, les structures de données d'une couche sont conçues de manière àgarantir une parfaite compatibilité avec les structures utilisées par les autres couches afin d'assurerune transmission plus efficace des données. De plus, une structure de données et une terminologiespécifique à chaque couche ont été définies de manière à la décrire.

La figure 4 illustre les termes qu'utilisent les différentes couches de TCP/IP pour faire référence àdes données transmises. Les applications utilisant TCP font références aux données comme étantdes trains de données (streams), alors que les applications utilisent le protocole datagramme (UDP :User Datagram Protocol) y font référence comme étant un message. Dans TCP les données sontappelées segment tandis que dans UDP, la structure de donnée correspond à un paquet. La coucheInternet représente toutes les données sous la forme de blocs appelés datagramme. TCP/IP utilisentplusieurs types différents de réseaux sous-jacents, il se peut que chacun d'entre eux utilise uneterminologie différente pour décrire la transmission de données. La plupart des réseaux fontréférences aux données transmises comme étant des paquets ou des trames. Chacun de cestermes fait référence à la même chose, des données à transmettre. Les termes varient en fonctionde la représentation des données entre les différentes couches du modèle.

Données

Données

Données

Données

En-tête

En-tête

En-tête

En-tête

En-tête En-tête

Envoi Réception

Couche Application

Couche Transport

Couche Internet

Couche Accès

Figure 3 Couches constitutives de l'architecture de Protocol de TCP/IP

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 5/13

ARCHITECTURED'INTERNET

A présent, étudions de manière plus approfondie la fonction de chaque couche, en progressant de lacouche Accès réseau à la couche Application.

Couche Accès réseauLa couche Accès réseau correspond à la première couche dans la hiérarchie des protocoles TCP/IP.Les protocoles de cette couche fournissent au système les moyens nécessaires lui permettant detransmettre des données vers d'autres machines périphériques directement connectées sur leréseau. Elle définit l'utilisation du réseau afin de transmettre un datagramme IP. Contrairement auxprotocoles de haut niveau, les protocoles de la couche Accès réseau doivent connaîtreimpérativement les caractéristiques techniques du réseau sous-jacent (sa structure de paquet, sonadressage, …) de manière à structurer correctement les données à transmettre afin de respecter lescontraintes inhérentes au réseau.

La couche Accès réseau de TCP/IP peut intégrer les fonctions des trois couches inférieures dumodèle de références OSI (Réseau, Liaison de données et Matériel).

FlotCouche Application

Couche Transport

Couche Internet

Couche Accès

Segment

Datagramme

Trame

Message

Paquet

Datagramme

Trame

TCP UDP

Figure 4 Structures de données

Les utilisateurs ignorent souvent la couche Accès réseau. La conception de TCP/IP cache lesfonctions des couches inférieures. Les protocoles les mieux connus (IP, TCP, UDP, …)correspondent à des protocoles de niveau supérieur. A mesure que de nouveaux matériels sontcommercialisés, le développement de nouveaux protocoles d'Accès réseau s'avère nécessaire afinque les réseaux TCP/IP puissent les utiliser. Par conséquent, il existe de nombreux protocolesd'accès, un pour chaque standard de réseau physique.

Les fonctions qui sont exécutées à ce niveau comprennent l'encapsulation des datagrammes dansles trames transmises par le réseau et la mise en correspondance des adresses IP avec lesadresses physiques qu'utilise le réseau. L'une des grandes forces de TCP/IP réside dans le fait queson plan d'adressage permet d'identifier précisément chaque machine hôte connectée à Internet.Cette adresse IP doit être convertie en l'adresse appropriée du réseau physique sur lequel ledatagramme est transmis.

Vous trouverez ci-après deux exemples de RFC définissant les protocoles de la couche Accèsréseau :

• RFC 826, Protocole de résolution d'adresse (ARP : Address Resolution Protocol),établissant la correspondance entre les adresses IP et les adresses Ethernet.

• RFC 894, Standard pour la transmission des datagrammes IP sur les réseaux Ethernet,spécifiant la procédure d'encapsulation des datagrammes IP en vue de les transmettre surles réseaux Ethernet.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 6/13

ARCHITECTURED'INTERNET

Couche InternetLa couche située au-dessus de la couche Accès réseau dans la hiérarchie du protocole correspondà la couche Internet. Le protocole Internet, RFC 791, constitue le cœur de TCP/IP et est le protocolele plus important de la couche Internet. IP fournit le service de transmission de paquets de base surlequel les réseaux TCP/IP sont construits. Tous les protocoles, figurant dans les couches au-dessuset en-dessous d'IP, utilisent le protocole Internet pour transmettre des données. Toutes les donnéesde TCP/IP traversent IP, entrant et sortant, indépendamment de leur destination finale.

Protocole Internet

Le protocole internet constitue la pierre angulaire du réseau Internet. Ses fonctions incluent :

• la définition du datagramme, qui est l'unité de base des transmission sur Internet;• la définition du plan d'adressage Internet;• la circulation de données entre la couche Accès réseau et la couche Transport machine hôte

à machine hôte;• l'acheminement des datagrammes vers les ordinateurs à distance;• la fragmentation et le réassemblage des datagrammes.

Avant de procéder à la description détaillée de ces fonctions, étudions d'abord quelques-unes decaractéristiques d'IP, IP est avant tout un protocole orienté non connexion. En d'autres termes, IPn'échange aucune information de connexion de bout en bout avant de transmettre les données. Enrevanche, un protocole orienté connexion échange des informations de contrôle avec le système àdistance afin de vérifier qu'il est prêt à recevoir les données avant de les envoyer. Dès que lemessage d'établissement de connexion est reçu avec succès, on dit que les systèmes ont établi uneconnexion. Le protocole Internet délègue aux protocoles des autres couches le soin d'établir laconnexion s'ils requièrent un service orienté connexion.

IP dépend également des protocoles des autres couches pour garantir la détection éventuelled'erreurs et leur correction. Le protocole Internet est parfois taxé d'être un protocole peu fiablepuisqu'il contient uniquement un total de contrôle d'en-tête (header cheksum) permettent de vérifierl'en-tête et est dépourvu de tout code de vérification des données (code de détection d'erreurs et decorrection). Cela ne veut pas dire pour autant qu'il s'agisse d'un protocole peu fiable – au contraire.IP est un protocole fiable permettant de transmettre avec exactitude vos données à destination duréseau connecté; cependant, il ne vérifie pas si les données ont été ou non reçues correctement.Les protocoles des autres couches de l'architecture TCP/IP permettent d'effectuer cette vérificationlorsqu'elle s'avère nécessaire.

Datagramme

Les protocoles TCP/IP ont été développés pour transmettre des données sur ARPANET, qui étaitalors un réseau à commutation de paquets. Un paquet correspond à un bloc de données, contenantles informations nécessaires à sa transmission, à l'instar d'une lettre sous enveloppe sur laquellel'adresse du destinataire est précisée. Un réseau à commutation de paquets utilise les informationsd'adressage contenues dans le paquet pour transférer des paquets d'un réseau physique vers unautre, en les acheminant vers leur destination finale. Chaque paquet est transmis sur le réseauindépendamment des autres paquets.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 7/13

ARCHITECTURED'INTERNET

Le protocole Internet transmet le datagramme en utilisant l'adresse de destination contenue dans lecinquième mot de l'en-tête. L'adresse de destination est une adresse IP standard de 32 bitspermettant d'identifier le réseau de destination et la machine hôte connectée à ce réseau. Sil'adresse de destination correspond à l'adresse d'une machine hôte connectée au réseau local, lepaquet est transmis directement vers la destination. Dans le cas contraire, le paquet est alorstransmis vers une passerelle afin d'être transmis à la machine hôte. Les passerelles sont despériphériques qui transfèrent les paquets entre les différents réseaux physiques. L'acheminement ouroutage correspond à la sélection de la passerelle à utiliser pour la transmission de données. IPdétermine le routage approprié pour chaque paquet.

Acheminement des datagrammes

Les passerelles Internet sont généralement (et plus exactement) référencées comme étant desrouteurs IP puisqu'elles utilisent le protocole Internet pour acheminer les paquets entre les réseaux.Dans le jargon traditionnel de TCP/IP, il n'existe que deux types de machines périphériques deréseau, les passerelles et les machines hôtes. Les passerelles transmettent les paquets entreréseaux, tandis que les machines hôtes non. Toutefois, si une machine hôte est connectée àplusieurs réseaux (appelée une machine hôte multiconnectée), elle peut transmettre des paquetsentre les réseaux. Lorsqu'une machine hôte multiconnectée transmet des paquets, sonfonctionnement est alors identique à celui d'une passerelle et elle est utilisée comme une passerelle.La terminologie actuelle en vigueur dans le domaine de la transmission de données établit parfoisune distinction entre passerelles et routeurs IP.

La figure 5 illustre l'utilisation des passerelles pour transmettre les paquets. Les machines hôtes (ousystèmes terminaux) traitent les paquets à travers les quatre couches de protocoles, tandis que lespasserelles, (ou systèmes intermédiaires) traitent les paquets jusqu'à la couche Internet au sein delaquelle la voie de routage des données est déterminée.

ApplicationTransportInternet

Accès réseauInternet

Accès réseauInternet

Accès réseau

ApplicationTransportInternet

Accès réseau

Réseau A Réseau B Réseau C

Passerelle G1 Passerelle G2

Hôte C1Hôte A1

Figure 5 Routage à travers les passerelles

Les système peuvent uniquement transmettre des paquets destinés à d'autres périphériquesconnectés au même réseau physique. Les paquets de la machine hôte A1, destinés à la machinehôte C1, sont transmis à travers les passerelles G1 et G2. La machine hôte A1 transmet d'abord lepaquet à la passerelle G1, avec laquelle elle partage le réseau A. La passerelle G1 transmet lepaquet à G2 sur le réseau B. La passerelle G2 transmet alors le paquet directement à destination deC1, puisqu'ils sont tous deux connectés au réseau C. La machine hôte A1 ne connaît pas lespasserelles installées après G1. Elle envoie les paquets destinés aux deux réseaux C et B à cettepasserelle locale et dépend alors de celle-ci pour garantir la transmission correcte des paquets lelong du chemin jusqu'à leurs destinations. De même, la machine hôte C1 transmettra ses paquets àla passerelle de G2 afin d'atteindre une machine hôte reliée au réseau A, ainsi qu'une machine hôtedu réseau B.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 8/13

ARCHITECTURED'INTERNET

La figure 6 illustre un autre type d'acheminement des données. Cette figure insiste sur le fait que lesréseaux physiques sous-jacents sur lesquels le datagramme est transmis peuvent être différents,voire même incompatible. La machine hôte A1 du réseau à jeton achemine le datagramme à traversla passerelle G1, pour atteindre la machine hôte C1 du réseau Ethernet. La passerelle G1 transmetles données sur le réseau X.25 à destination de la passerelle G2 afin de les transmettre à C1. Ledatagramme traverse trois réseaux physiquement différents, mais arrive finalement intact sur C1.

Token Ring

A1

G1

C1

X.25

Ethernet

G2

Figure 6 Réseaux, passerelles et hôtes

Fragmentation des datagrammes

Puisqu'un datagramme est acheminé sur différents réseaux, il est parfois nécessaire que le moduleIP d'une passerelle divise le datagramme en éléments de plus petite taille. Il se peut qu'undatagramme provenant d'un réseau soit trop long pour être transmis en un seul paquet sur un autreréseau. Cette procédure est appliquée uniquement lorsqu'une passerelle interconnecte des réseauxphysiques différents.

Chaque type de réseau se caractérise par une unité de transfert maximale (MTU : MaximumTransmission Unit), qui correspond au plus grand paquet que celui-ci puisse transférer. Si lalongueur du datagramme provenant d'un réseau est supérieure à la MTU de l'autre réseau, il estalors nécessaire de diviser le datagramme en fragments de plus petite taille afin de permettre latransmission des données. Cette procédure s'appelle la fragmentation. Imaginez un traintransportant un chargement d'acier. Chaque wagon peut transporter plus d'acier que ne le peuventles camions sur les autoroutes; chaque wagon est dès lors déchargé sur plusieurs camions. Al'instar de la différence physique qui existe entre une voie de chemin de fer et une autoroute, unréseau Ethernet diffère physiquement d'un réseau X.25; IP doit fragmenter les paquets Ethernetrelativement longs en plusieurs paquets de plus petite taille avant de pouvoir les transmettre sur unréseau X.25.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 9/13

ARCHITECTURED'INTERNET

Le format de chaque fragment est identique à celui de tout datagramme normal. Le deuxième motde l'en-tête contient les informations permettant de reconnaître chaque fragment de datagramme etfournit les informations relatives à la procédure de réassemblage des différents fragments en undatagramme original. Le champ Identification indique à quel datagramme le fragment appartient, etle champ Décalage de la fragmentation (Fragmentation Offset) précise à quelle partie dudatagramme correspond ce fragment. Le champ Drapeaux (Flags) possède un éléments binaire"More Fragments Bit" qui indique à IP s'il a assemblé tous les fragments du datagramme.

Transmission des datagrammes à la couche Transport

Lorsqu'IP reçoit un datagramme, adressé à la machine hôte locale, il doit alors transmettre la partiedonnées du datagramme au protocole approprié de la couche Transport. Cette opération estexécutée en utilisant le numéro du protocole contenu dans le troisième mot de l'en-tête dudatagramme. Chaque protocole de la couche Transport possède un numéro de protocole unique quipermet à IP de le reconnaître.

Cette brève description vous permet de constater qu'IP exécute plusieurs fonctions importantes. Ace stade, il serait illusoire de croire que les datagrammes, les passerelles; l'acheminement, lesadresses IP et toutes les autres fonctions qu'exécute IP ne recellent plus aucun secret pour vous. Aprésent, pousuivons notre étude en passant à l'autre protocole de la couche Internet de TCP/IP.

Le Protocole ICMP : Internet Control Message ProtocolUne partie de IP correspond au protocole ICMP (Internet Control Message Protocol) défini dans leRFC792. Ce protocole est une partie intégrante de la couche Internet et utilise la fonction detransmission de datagramme IP pour envoyer ses messages, ICMP envoie des messages quiréalisent les fonctions suivantes de contrôle, de détection des erreurs, et de transmissiond'informations pour TCP/IP :

Contrôle de flux

Lorsque les datagrammes arrivent trop rapidement afin d'être traités, la machine hôte de destinationou une passerelle intermédiaire renvoie un message de congestion de la source ICMP à l'émetteur.Ce message indique à la source de suspendre temporairement l'envoi de datagrammes.

Détection de destinations inaccessibles

Lorsqu'une destination s'avère inaccessible, le système qui détecte le problème envoie un messageDestination inaccessible à la source du datagramme. Si la destination inaccessible est un réseau ouune machine hôte, le message est alors envoyé via une passerelle intermédiaire. En revanche, si ladestination est un port inaccessible, la machine hôte de destination envoie le message.

Redirection des voies

Une passerelle envoie le message de redirection ICMP afin d'indiquer à une machine hôte d'utiliserune autre passerelle, probablement parce que l'autre passerelle constitue un meilleur choix. Cemessage peut être uniquement utilisé si la machine hôte source est connectée au même réseau queles deux passerelles. Reportez-vous à la figure 6 pour mieux comprendre cette restriction. Si unemachine hôte reliée au réseau X.25 envoie un datagrammme à Gl, Gl peut éventuellement redirigercette machine hôte vers G2, parce que les machines hôtes Gl et G2 sont connectées au mêmeréseau. Par contre, si une machine hôte du réseau à jeton envoie un datagramme à Gl, la machinehôte ne peut être redirigée vers G2 parce que G2 n'est pas connectée au réseau à jeton.

Vérification des machines hôtes à distance

Une machine hôte peut envoyer le message d'echo ICMP pour constater si le protocole Internet dusystème à distance est opérationnel. Lorsqu'un système reçoit un message d'écho, il renvoie lemême paquet à la machine hôte source. La commande ping utilise ce message.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 10/13

ARCHITECTURED'INTERNET

Couche TransportLa couche protocole située juste au-dessus de la couche Internet correspond à la couche Transportmachine hôte à machine hôte. Généralement, on utilise le nom abrégé Couche Transport. Les deuxprotocoles les plus importants de la couche Transport sont : le protocole de contrôle de latransmission (TCP) et le protocole de datagramme utilisateur (UDP). TCP assure un service detransmission de données fiable avec une détection et une correction d'erreurs de bout en bout. UDPoffre un service de transmission de datagrammes sans connections. Les deux protocolestransmettent des données entre la couche Application et la couche Internet. Les développeursd'applications peuvent choisir le service répondant au mieux aux besoins de leurs applicationsspécifiques.

Protocole UDP : User Datagram Protocol

Le protocole UDP permet aux applications d'accéder directement à un service de transmission dedatagrammes, tel que le service de transmission qu'offre IP. De cette manière, les applicationspeuvent échanger des messages au travers du réseau avec un surcoût minimum, dû au protocole.

UDP est un protocole de datagramme sans connexion, peu fiable. (Comme précisé plus haut, «peufiable» signifie simplement que le protocole ne comprend aucune technique permettant de vérifierque l'autre extrémité du réseau a correctement réceptionnée les données). Sur votre ordinateur,UDP transmet correctement les données. Il utilise les 16 éléments binaires du port source et du portde destination contenus dans le premier mot de l'en-tête du message, afin de transmettre lesdonnées aux processus d'applications appropriés. La figure 7 illustre le format du message UDP.

Port source Port de destinationLongueur Total de contrôle

Données commencent ici ...

Bits

0 16 31

Figure 7 Format du message UDP

Pour quelles raisons les développeurs d'applications choisissent-ils UDP comme service detransmission de données ? Un certain nombre de raisons justifie ce choix. Si vous ne transmettezqu'une faible quantité de données, le coût inhérent à la création de connexions et au maintien detransmissions fiables s'avère probablement supérieur au travail dû à la retransmission de la totalitédes données. Dans ce cas, UDP constitue le choix le plus judicieux comme protocole de la coucheTransport. Les applications satisfaisant à un modèle du type "interrogation-réponse" peuventégalement utiliser UDP. La réponse peut être utilisée comme étant un accusé de réception positif àl'interrogation. Si une réponse n'est pas reçue dans un certain intervalle de temps, l'applicationenvoie simplement une autre interrogation. De plus, d'autres applications disposent de leurs proprestechniques de transmissions de données fiables et ne requièrent pas l'utilisation de ce service duprotocole de la couche Transport. Imposer une autre couche d'accusé de réception à l'un de cestypes d'applications s'avère totalement inefficace.

Protocole de contrôle de la transmission

Puisque TCP vérifie si les données sont correctement transmises sur le réseau et si elles le sontdans l'ordre approprié, les applications qui requièrent dès lors l'utilisation du protocole de transportpour garantir une transmission des données fiable utilisent alors ce protocole. TCP est un protocolefiable, orienté connexion, à flot d'octets. Dans les paragraphes suivants, nous allons préciser lasignification de ces différents termes - fiable, orienté connexion et flot d'octets.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 11/13

ARCHITECTURED'INTERNET

L'utilisation d'un mécanisme appelé accusé de réception positif avec la retransmission (PAR:Positive Acknowlegment with Retransmission) permet à TCP de garantir des transmissions fiables.Un système utilisant PAR envoie à nouveau les données, à moins que le système à distance ne luirenvoie un message précisant que les données sont arrivées correctement. L'unité utilisée pourl'échange de données entre modules TCP coopérants est appelée segment. Chaque segmentcontient un total de contrôle que le destinataire utilise pour vérifier que les données n'ont pas étéendommagées pendant leur transmission. Si le segment de données est reçu en parfait état, lerécepteur renvoie un accusé de réception positif à l'émetteur. Dans la négative, le récepteur éliminece segment de données. Après un délai d'attente déterminé, le module TCP d'envoi retransmet lessegments pour lesquels aucun accusé de réception positif n'a été reçu.

TCP est un protocole orienté connexion. Il établit une connexion logique de bout en bout entre 2machines hôtes communicantes. Une information de contrôle, appelée «Poignée de main»(handshake), est échangée entre les 2 extrémités de manière à établir un dialogue avant deprocéder à la transmission des données. TCP active la fonction de contrôle d'un segment en mettantà 1 le bit approprié du champ Drapeaux (Flags) du quatrième mot de l'en-tête du segment.

TCP utilise un mécanisme de poignée de main mettant en œuvre trois échanges de segment:«Three-way handshake». La figure 8 illustre la structure la plus simple du mécanisme de poignée demain (Three-way handshake). La machine hôte A établit la connexion en envoyant d'abord à lamachine hôte B un segment contenant la séquence de bits "numéros de la séquence desynchronisation" (SYN). Ce segment indique à la machine hôte B que A souhaite établir uneconnexion et lui précise le numéro de séquence que A va utiliser comme numéro d'initialisation de latransmission de ses segments. (Les numéros de séquence sont utilisés pour conserver l'ordre desdonnées). La machine hôte B répond à A en lui renvoyant un segment contenant l'accusé deréception (ACK) et les bits SYN. Le segment de B accuse réception de la bonne transmission dusegment de A et indique à A quel numéro de séquence la machine hôte B va devoir utiliser. Enfin, lamachine hôte A envoie un segment accusant réception de la transmission du segment de B ettransmet alors les premières données.

Hôte A Hôte B

SYN

SYN, ACK

ACK, données

Le transfert dedonnées acommencé

Figure 8 Mécanisme de poignée de main à trois contacts

Une fois cet échange terminé, le TCP de la machine hôte A constate que le TCP à distance est actifet est prêt à recevoir les données. Après avoir établi la connexion, les données sont transmises. Dèsque les transferts de données entre modules coopératifs sont terminés, ils échangent alors unepoignée de main de type Three-way handshake dont les segments contiennent le bit "Plus aucunedonnée à transmette" (appelé le bit FIN) pour indiquer la fin de la connexion. L'échange de donnéesbout en bout assure la connexion logique entre les deux systèmes.

TCP se représente les données qu'il envoie sous la forme d'un flot continu d'octets et non sous laforme de paquets indépendants. Par conséquent, TCP veille à maintenir l'ordre dans lequel lesoctets ont été transmis et reçus. Les champs "Numéro de séquence" et "Numéro de l'accusé deréception" de l'en-tête du segment TCP prennent en charge le suivi des octets.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 12/13

ARCHITECTURED'INTERNET

Le standard TCP n'exige pas que les octets de numérotation de départ de chaque systèmecorrespondent à un nombre déterminé; chaque système choisit le numéro qu'il va utiliser commeélément d'initialisation. Pour garantir un suivi correct du flot de données, il convient que chaqueextrémité de la connexion connaisse le numéro d'initialisation de l'autre extrémité. Les deuxextrémités de la connexion synchronisent les systèmes de numérotation au niveau de l'octet enéchangeant les segments SYN pendant la «poignée de main». Le champ «Numéro de la séquence»du segment SYN contient le numéro de séquence initiale (ISN), qui correspond au numérod'initialisation du système de numérotation des octets. Si vous utilisez le protocole standard, ISN estalors égal à 0.

Chaque octet de données est numéroté séquentiellement à partir du numéro ISN, de sorte que lenuméro de séquence du premier octet de données envoyé est le suivant: ISN + 1 (généralement 1).Le numéro de séquence contenu dans l'entête d'un segment de données permet d'identifier laposition séquentielle du premier octet de données d'un segment appartenant à un flot de donnéesdéterminé. Exemple : si le premier octet du flot de données portait le numéro de séquence 1(ISN=O) et que 4 000 octets de données ont déjà été transférés, la longueur du premier octet dedonnées du segment courant est alors 4 001 octets et le numéro de séquence correspond à 4 001.

Le segment d'accusé de réception (ACK) exécute deux fonctions - l'accusé de réception positif et lecontrôle de flux. L'accusé de réception indique à l'émetteur le nombre d'octets de données déjàreçus ainsi que le nombre d'octets de données que peut encore recevoir le récepteur. Le numéro del'accusé de réception correspond au numéro de séquence du dernier octet reçu à l'extrémité àdistance. Le protocole standard ne requiert pas l'envoi d'un accusé de réception pour chaquepaquet. Le numéro de l'accusé de réception correspond à un accusé de réception positif dont lenuméro est égal au nombre d'octets transmis. Exemple : si le numéro du premier octet transmis est1 et que 2 000 octets ont été reçus correctement, le numéro de l'accusé de réception est: 2 000.

Le champ Fenêtre contient le nombre d'octets que l'extrémité à distance peut recevoir. Si lerécepteur peut recevoir encore 6 000 octets, le champ Fenêtre est alors égal à 6 000 octets. Cechamp indique à l'émetteur qu'il peut poursuivre l'envoi de segments tant que le nombre totald'octets envoyés est inférieur au nombre d'octets que peut accepter le récepteur. Celui-ci procèdeau contrôle du flux d'octets provenant de l'émetteur en modifiant la taille de la fenêtre. Une fenêtrede taille nulle indique à l'émetteur d'interrompre la transmission jusqu'à ce qu'il reçoive une valeur defenêtre non nulle.

La figure 9 illustre un flot de données TCP commençant par un numéro de séquence d'initialisationégal à 0. Le récepteur a reçu 2 000 octets et en a accusé réception, de sorte que le numéro effectifde l'accusé de réception est 2 000. Le récepteur dispose également d'un espace en mémoiretampon suffisant pour stocker 6 000 octets de plus ; il a dès lors inséré une fenêtre correspondant à6 000 octets. L'émetteur transmet alors un segment de 1 000 octets commençant par le numéro deséquence 4 001. L'émetteur n'a reçu aucun accusé de réception pour les octets situés au-delà de 2001. Toutefois, il continue d'envoyer des données tant que la fenêtre peut les accepter. Si l'émetteurremplit la fenêtre et ne reçoit aucun accusé de réception concernant les données précédemmentenvoyées, il renvoie, après un certain délai, les données à partir d'un premier octet sans accusé deréception. A la figure 9, la retransmission devrait commencer à partir de l'octet 2 001, pour autantqu'aucun accusé de réception n'ait été reçu entre-temps. Cette procédure garantit que l'extrémité àdistance du réseau a réceptionné les données transmises.

TCP est aussi responsable de la transmission des données provenant du protocole IP à l'applicationappropriée. Un numéro de 16 bits, appelé numéro de port permet d'identifier l'application destinatricedes données. Les numéros des ports source et de destination sont contenus dans le premier mot del'en-tête du segment. La transmission correcte des données à destination et à partir de la coucheApplication constitue une partie importante des activités que les services de la couche Transportassurent.

Copyright © 2000-2002 Centre d'Enseignement A Distance du CNAM Champagne-ArdenneReproduction et diffusion interdites sans l'accord écrit de l'auteur 13/13

ARCHITECTURED'INTERNET

Données reçues

Fenêtre 6000

Segmenten cours

1 1001 2001 3001 4001 5001 6001 7001

Numéro deséquence initial 0

Numéro de l'accuséde réception 2000

Numéro deséquence 4001

Figure 9 Flots de données TCP

Couche ApplicationLa Couche Application constitue le sommet de l'architecture TCP/IP. Cette couche inclut tous lesprocessus qui utilisent les protocoles de la couche Transport pour transmettre des données. Il existede nombreux protocoles d'applications. La plupart assurent les services utilisateur ; les nouveauxservices sont toujours ajoutés au niveau de cette couche. Les protocoles d'applications les plusrépandus sont :

• TELNET, le protocole de terminal de réseau (Network Terminal Protocol), qui permetl'ouverture d'une session à distance sur un réseau.

• FTP, le protocole de transfert de fichiers (File Transfert Protocol), est utilisé pour le transfertde fichiers. Ce transfert est interactif.

• SMTP, le protocole de transfert de courrier (Simple Mail Transfer Protocol) est utilisé pour lecourrier électronique.

Bien que FTP, SMTP et TELNET soient les applications TCP/IP les plus souvent mises en œuvre,comme utilisateur ou administrateur système, vous en utiliserez souvent d'autres. Les applicationsTCP/IP suivantes sont également souvent utilisées :

• Le service DNS (Domain Name Service) - également appelé Name service. Cetteapplication établit la correspondance entre les adresses IP et les noms attribués auxmachines périphériques du réseau. DNS est décrit en détail dans ce livre.

• Le protocole RIP (Routing Information Protocol) - le routage est l'un des principaux élémentsdu fonctionnement de TCP/IP. Les systèmes en réseau utilisent RIP pour échanger desinformations concernant le routage des données. Le routage est également traité en détaildans ce livre.

• Le protocole NFS (Network File System) - ce protocole permet de partager des fichiers entredifférentes machines hôtes du réseau.

Certains protocoles, tels que TELNET et FTP, peuvent être utilisés uniquement si l'utilisateur aquelque connaissance du réseau. D'autres protocoles, tel que RIP, sont exécutés sans même quel'utilisateur ne s'en rende compte. Comme administrateur système, vous connaissez toutes cesapplications ainsi que l'ensemble des protocoles des autres couches de TCP/IP.

Les protocoles de la couche Transport (TCP et UDP) se trouvent sous la couche Application. Ils sontdirectement reliés à IP. Toutes les données, entrant et sortant du système traversent IP. IP transmetles données provenant des couches supérieures vers le réseau approprié et il transmet les donnéesprovenant du réseau vers le service de transport approprié. De plus, les services de transporttransmettent les données provenant de l'IP à l'application appropriée.

Nous regroupons tous les protocoles situés sous IP comme étant des protocoles d'Accès réseau.L'empilement de ces protocoles sur trois couches ne signifie pas l'utilisation d'une autre hiérarchie.Toutefois, lorsqu'il s'agit du réseau X.25, ces protocoles correspondent aux trois couches inférieuresde la hiérarchie OSI (Réseau, Liaison de données et Physique). Pour TCP/IP, ces protocoles sontconsidérés comme étant des protocoles d'Accès réseau.