Introduction aux Réseaux et Bases de...
Transcript of Introduction aux Réseaux et Bases de...
INSTITUT SUPERIEUR DE GESTION DE TUNIS
Introduction aux Réseaux et Bases de Routage
Kaouther Nouira
2011-2012
2
Résumé
Ce cours a pour objectif de présenter les concepts et les technologies de base liés aux
réseaux.
Ce cours participe à la formation de nos étudiants de première année Licence Fondamentale
en Informatique de Gestion pour la Certification Cisco Networking Academy (CCNA). C’est
pour cette raison que le plan et la plupart des illustrations sont issus du cours en ligne CCNA
Exploration (module 1).
Les objectifs pédagogiques de ce cours sont :
Sensibiliser les étudiants sur l’importance des réseaux dans notre vie de tous les jours.
Comprendre la notion de communication.
Définir les modèles en couche (OSI et TCP/IP).
Définir le fonctionnement de chaque couche OSI.
Détailler les protocoles de la couche application et transport.
Ce cours s’étale sur le premier semestre de la première année Licence Fondamentale en
Informatique de Gestion à l’Institut Supérieur de Gestion de Tunis à raison de 1,5 heure de
cours par semaine.
3
Table des matières Chapitre 1: Introduction aux réseaux ....................................................... Erreur ! Signet non défini.
Introduction ................................................................................................................................. 7
Objectifs ....................................................................................................................................... 7
1.1 Communiquer dans un monde en réseau ............................................................................. 7
1.1.1 Adaptation des réseaux à notre mode de vie................................................................... 7
1.1.2 Exemples d’outils de communication .............................................................................. 9
1.1.3 Adaptation des réseaux à notre mode d’apprentissage .................................................. 10
1.1.4 Adaptation des réseaux à notre travail.......................................................................... 10
1.1.5 Adaptation des réseaux dans le monde de loisir ............................................................ 10
1.2 Communication ................................................................................................................. 11
1.2.1 Qu’est ce que la communication................................................................................... 11
1.2.2 Qualité des communications ........................................................................................ 11
1.3 Réseau en tant que plateforme.......................................................................................... 12
1.3.1 Eléments d’un réseau .................................................................................................. 12
1.3.2 Les réseaux multiples................................................................................................... 13
1.3.3 Réseaux convergents ................................................................................................... 13
1.4 Architecture réseau........................................................................................................... 14
1.4.1 La tolérance aux pannes............................................................................................... 14
1.4.2 L’évolutivité ................................................................................................................ 17
1.4.3 La qualité des services ................................................................................................. 17
1.4.4 La sécurité................................................................................................................... 18
Chapitre 2: Communication sur un réseau ................................................................................... 19
Introduction ............................................................................................................................... 19
Objectifs ..................................................................................................................................... 19
2.1 La plateforme pour la communication .................................................................................... 19
2.1.1 Les éléments de communication ...................................................................................... 19
2.1.2Communication des messages .......................................................................................... 20
2.1.3 Composants du réseau .................................................................................................... 21
2.1.4 Périphérique finaux et leur rôle sur le réseau.................................................................... 21
2.1.5 Périphériques intermédiaires et leur rôle sur le réseau...................................................... 22
2.1.6 Supports réseau .............................................................................................................. 22
2.2 Réseaux locaux, Réseaux étendus et Interréseaux ................................................................... 23
2.2.1 Réseaux locaux ............................................................................................................... 23
4
2.2.2 Réseaux étendus ............................................................................................................. 24
2.2.3 Interréseau (Internet, Réseau de réseaux) ........................................................................ 25
2.2.4 Représentation du réseau................................................................................................ 25
2.3 Les protocoles ....................................................................................................................... 26
2.3.1 Règles qui régissent les communications .......................................................................... 26
2.3.2 Protocoles réseau ........................................................................................................... 26
2.3.3 Suite de protocoles et normes de l’industrie ..................................................................... 26
2.3.4 Interaction de protocoles ................................................................................................ 26
2.3.5 Protocoles indépendants de la technologie....................................................................... 27
2.4 Utilisation des modèles en couche.......................................................................................... 28
2.4.1 Avantages de l’utilisation d’un modèle en couche ............................................................. 28
2.4.2 Modèles de protocoles et modèles de référence............................................................... 28
2.4.3 Modèle TCP/IP ................................................................................................................ 29
2.4.4 Processus de communication........................................................................................... 29
2.4.5 Unité de données de protocole et encapsulation .............................................................. 30
2.4.6 Processus d’envoi et de réception .................................................................................... 30
2.4.7 Le modèle OSI ................................................................................................................. 30
2.4.8 Comparaison des modèles OSI et TCP/IP .......................................................................... 31
2.5 Adressage de réseau .............................................................................................................. 32
2.5.1 Adressage dans le réseau................................................................................................. 32
2.5.2 Acheminement des données jusqu’au périphérique final................................................... 32
Chapitre 3: Fonctionnement et protocoles des couches applicatives ............................................ 34
Introduction ............................................................................................................................... 34
Objectifs ..................................................................................................................................... 34
3.1 Application : l’interaction entre les réseaux............................................................................. 35
3.1.1 Modèle OSI et TCP/IP ...................................................................................................... 35
3.1.2 Logiciels de la couche application..................................................................................... 37
3.1.3 Applications utilisateurs, services et protocoles de la couche application ........................... 37
3.1.4 Fonctions du protocole de couche application .................................................................. 38
3.2 Utilisation des applications et des services .............................................................................. 38
3.2.1 Modèle client serveur...................................................................................................... 38
3.2.2 Serveurs ......................................................................................................................... 39
3.2.3 Services et protocoles de la couche application ................................................................ 39
3.2.4 Réseau et applications peer to peer (P2P)......................................................................... 39
5
3.3 Exemples de services et protocoles de la couche application.................................................... 41
3.3.1 Services et protocoles DNS (Domain Name System) .......................................................... 41
3.3.2 Services WWW et HTTP ................................................................................................... 43
3.3.3 Services de messagerie et protocoles SMTP et POP ........................................................... 45
3.3.4 Services de téléchargement de fichiers et le protocole FTP ................................................ 48
3.3.5 Service DHCP .................................................................................................................. 48
3.3.6 Services pear to pear et protocole Gnutella ...................................................................... 50
Chapitre 4 : Couche transport OSI ............................................................................................... 51
Introduction ............................................................................................................................... 51
Objectifs pédagogiques ............................................................................................................... 51
4.1 Rôle de la couche transport.................................................................................................... 52
4.1.1 Objectifs de la couche transport ...................................................................................... 52
Suivi des conversations individuelles ..................................................................................... 52
Segmentation des données .................................................................................................. 52
Reconstitution des segments ................................................................................................ 52
Identification des applications .............................................................................................. 52
4.1.2 Contrôle des conversations.............................................................................................. 53
Établissement d’une session ................................................................................................. 53
Acheminement fiable ........................................................................................................... 54
Livraison dans un ordre défini............................................................................................... 54
Contrôle du flux ................................................................................................................... 54
4.1.3 Prise en charge des communications fiables ..................................................................... 54
Détermination du besoin de fiabilité ..................................................................................... 54
4.1.4 TCP/UDP......................................................................................................................... 55
Protocole UDP (User Datagram Protocol) .............................................................................. 55
Protocole TCP (Transmission Control Protocol) ...................................................................... 56
4.1.5 Adressage de ports.......................................................................................................... 56
Identification des conversations ........................................................................................... 56
Utilisation du protocole TCP et du protocole UDP .................................................................. 57
Liens ................................................................................................................................... 57
4.1.6 Segmentation et reconstitution : diviser et conquérir ........................................................ 57
Les protocoles TCP et UDP traitent différemment la segmentation. ........................................ 58
4.2 Protocole TCP : des communications fiables ............................................................................ 58
4.2.1 Fiabilisation des conversations......................................................................................... 58
6
4.2.2 Processus serveur TCP ..................................................................................................... 59
4.2.3 Etablissement et fermeture d’une connexion TCP ............................................................. 60
4.3 Gestion des sessions TCP........................................................................................................ 62
4.3.1 Réassemblage des segments TCP ..................................................................................... 62
4.3.2 Reçu TCP avec fenêtrage ................................................................................................. 63
4.3.3 Retransmission TCP ......................................................................................................... 64
4.3.4 Contrôle de l’encombrement sur TCP – Réduction de la perte de segments........................ 65
4.4 Protocole UDP : des communications avec peu de surcharge ................................................... 67
4.4.1 UDP : faible surcharge contre fiabilité .............................................................................. 67
4.4.2 Réassemblage des datagrammes UDP .............................................................................. 68
4.4.3 Processus et requêtes des serveurs UDP........................................................................... 69
4.4.4 Processus des clients UDP................................................................................................ 69
7
Chapitre 1
Introduction aux réseaux
Introduction Ce chapitre présente la plateforme de réseau de données dont nos relations sociales et
commerciales sont de plus en plus dépendantes.
Ce chapitre sert de base à l’étude des services, des technologies et des problèmes rencontrés par les
professionnels des réseaux lorsqu’ils reçoivent élaborent et assurent la maintenance des réseaux.
Objectifs • décrire l’impact des réseaux sur notre vie de tous les jours ;
• décrire le rôle des réseaux de données dans les relations humaines ;
• identifier les éléments clés de n’importe quel réseau de données ;
• identifier les opportunités et les défis posés par la convergence des réseaux ;
1.1 Communiquer dans un monde en réseau
1.1.1 Adaptation des réseaux à notre mode de vie
Parmi les éléments essentiels à l’existence humaine, le besoin de communiquer arrive juste
après le besoin de survie.
Les méthodes dont nous nous servons pour partager idées et informations changent et
évoluent sans cesse. Au début, la seule et unique méthode qui existait était la conversation
face à face. Aujourd’hui, les découvertes en matière de support étendent sans cesse la
portée de nos communications (voir tableau 1).
Tableau 1 : Exemples de communications, leurs portées et leurs supports :
Type de communication Portée Support
Journaux Ville Papier
Radio Ville Ondes
Télévision Ville Ondes
Réseau local Bâtiment Câble
Internet Globe terrestre Câble
Satellites Univers Ondes
8
Les premiers réseaux de données se limitaient à échanger des informations reposant sur des
caractères entre des systèmes informatiques. Les réseaux modernes ont évolué pour prendre
en charge l’audio, la vidéo, l’image et le texte entre des périphériques de types différents.
La nature instantanée des communications sur Internet encourage la formation de
communités internationales. Ces communités favorisent à leurs tours des interactions
sociales pour lesquelles géographie et fuseaux horaires n’ont aucune importance (voir
figure1).
Figure 1 : Internet encourage la formation de communités internationales
La technologie constitue aujourd’hui le principal vecteur de changement au monde car elle
contribue à créer un univers dans lequel les frontières nationales, les distances et les limites
physiques perdent de leurs importances.
Comme Internet connecte des individus et favorise des communications informelles, il
constitue la plateforme permettant de :
Travailler,
Informer,
Enseigner, …
Il permet aussi de:
Connaitre les conditions météorologiques.
Déterminer le trajet le moins embouteillé en visualisant les vidéos du trafic routier
transmises par les Webcams.
Consulter votre compte bancaire et payer vos factures.
Recevoir et envoyer des courriels et passer des appels téléphoniques via Internet.
Rechercher des informations médicales.
Etc… (voir figure 2).
9
Figure 2 : Les réseaux de données offrent des services qui font partie intégrante de notre
mode de vie
1.1.2 Exemples d’outils de communication dans un réseau de données
L’apparition puis l’adoption généralisée d’Internet ont entraîné la création de nouvelles
formes de communication (voir figure 3) :
La messagerie instantannée,
Les blog ou réseaux sociaux,
Le Podcast.
Figure 3 : outils de communication
Messagerie instantanée :
La messagerie instantanée est une forme de communication temps réel entre 2 personnes
ou plus basée sur la saisie du texte développé à partir de services de conversation IRC
(Internet Relay Chat). La messagerie instantanée incorpore des fonctionnalités telles que le
transfert de fichiers et les communications vocales et vidéo.
Blogs :
Les blogs sont des pages web qui sont faciles à mettre à jour et à modifier (ex. Twitter,
Facebook, …).
Podcast :
Le podcast est un support audio qui permet aux utilisateurs d’enregistrer des données audio,
de les convertir en fichiers informatiques et de les placer sur un site web à partir duquel des
tiers peuvent le télécharger.
10
1.1.3 Adaptation des réseaux de données à notre mode d’apprentissage
Les cours dispensés à l’aide d’un réseau ou de ressources Internet sont souvent appelés
formation en ligne ou e-learning.
Les cours en ligne peuvent contenir des données audio et vidéo et être à la disposition des
participants où et quand ils le veulent.
Les groupes et forums de discussion en ligne permettent aux participants de collaborer avec
leurs formateurs et les autres participants.
1.1.4 Adaptation des réseaux de données à notre travail
Au début, les entreprises exploitaient les réseaux de données pour enregistrer et
gérer en interne des informations et des données.
Ces réseaux d’entreprises ont ensuite évolué pour permettre le transfert de
nombreux types de services à savoir les courriels, la vidéo, la messagerie et la
téléphonie. Parmi ces réseaux nous citons :
Les Intranets :
Des réseaux privés exclusivement utilisés par l’entreprise permettant de
communiquer avec les employés partout dans le monde ainsi que les succursales.
Les extranets :
Partie de l’Intranet d’une entreprise accessible par des utilisateurs externes tels que
fournisseurs, clients, etc… via le réseau Internet.
Le Télétravail :
Les employés à distance, appelés télétravailleurs, ont recours à des services d’accès à
distance sécurisés à partir de leurs domiciles ou lors de leurs déplacements. Le
réseau de données leur permet de travailler comme s’ils étaient sur site. Il est
également possible d’organiser des réunions et conférences virtuelles auxquelles les
personnes éloignées peuvent participer.
1.1.5 Adaptation des réseaux de données dans le monde de loisir
Explorer virtuellement des lieux.
Ecouter des artistes.
Jouer en ligne.
Vendre et acheter en ligne.
Se regrouper avec une communité internationale sur un sujet particulier.
11
1.2 Communication
1.2.1 Qu’est ce que la communication
Avant de communiquer, nous établissons des règles appelées aussi conventions ou
protocoles qui régissent la conversation. Ces règles doivent être respectées pour que
le message soit correctement transmis et compris.
Parmi les protocoles qui régissent nos communications pour qu’elles se déroulent
correctement nous citons :
L’identification de l’expéditeur et du destinataire.
Le recours à une méthode de communication convenue (face à face,
téléphone, lettre, …).
L’utilisation d’une langue et d’une syntaxe communes.
La vitesse et le rythme d’élocution.
La demande de confirmation de réception si le message est important.
1.2.2 Qualité des communications
La communication entre individus est réussie lorsque le sens du message compris par
le destinataire est identique au sens que l’expéditeur a voulu lui donner.
Dans le cas de réseaux de données, certains critères de base servent à en déterminer
le succès. Lorsqu’un message se déplace sur un réseau, plusieurs facteurs peuvent
l’empêcher d’atteindre son destinataire ou déformer le sens initial. Ces facteurs
peuvent être externes ou internes.
Les facteurs externes :
Les facteurs externes qui affectent la communication sont liés à la complexité du
réseau et au nombre de périphériques par lesquels le message doit transiter avant
d’atteindre sa destination finale. Parmi les facteurs externes :
La qualité du chemin d’accès.
Le nombre de fois où le message doit changer de forme.
Le nombre de fois où le message doit être redirigé ou redressé.
La quantité d’autres messages transmis simultanément sur le réseau.
Le délai alloué à une communication réussie.
Les facteurs internes
Les facteurs internes gênant la communication réseau sont liés à la nature même du
message. Parmi les facteurs internes affectant la réussite d’une communication sur le
réseau, nous citons :
La taille du message (les messages volumineux peuvent être interrompus).
La complexité du message.
12
L’importance du message (message à faible priorité peut être abandonné en
cas de surcharge du réseau).
Il importe donc d’anticiper et de contrôler les facteurs internes et externes pour
assurer le succès des communications réseau.
1.3 Réseau en tant que plateforme
1.3.1 Eléments d’un réseau
La figure 4 montre les éléments constituant le plus souvent un réseau à savoir :
Les périphériques,
Les supports,
Les règles de communication,
Le message.
Figure 4 : Eléments d’un réseau
Pour qu’un réseau soit opérationnel, il faut que les périphériques soient connectés.
Les connexions peuvent être câblées ou sans fil.
Les câbles peuvent être en cuivre et transmettent des signaux électriques ou en
fibres optiques et transmettent la lumière.
Câbles à base de cuivre :
Câble téléphonique à paire torsadée.
Câble coaxial.
Câble à paires torsadées non blindées (UTP).
Les fibres optiques :
fin filament de verre ou de plastique qui véhicule des signaux lumineux.
Le réseau offre certains services aux applications informatiques présentes. Les
périphériques connectés les uns aux autres sont régis par des règles / protocoles
(voir tableau 1).
13
Tableau 1 : Pour chaque service il y a des protocoles
Les protocoles sont des règles utilisées par les périphériques en réseau pour
communiquer.
1.3.2 Les réseaux multiples
Les réseaux classiques de transfert de données téléphoniques, de radio, de télévision
ou informatiques intègrent tous leur propre version des quatre éléments de base
constituant les réseaux. Autrefois, chacun de ces services nécessitait une technologie
différente pour acheminer son signal de communication particulier. De plus, chaque
service utilisait son propre ensemble de règles et de normes pour assurer le succès
du transfert de son signal sur un support précis (voir figure 5).
Figure 5 : Les réseaux multiples
1.3.3 Réseaux convergents
Les progrès technologiques nous permettent aujourd’hui de réunir ces réseaux
disparates sur une même plateforme, une plateforme définie comme étant un réseau
convergent (voir figure 6).
14
Figure 6 : Le réseau convergent
Aujourd’hui, la norme en matière de réseau est un ensemble de protocoles appelés
TCP/IP (Transmission Control Protocol/ Internet Protocol). C’est en effet le protocole
TCP/IP qui définit les mécanismes de formatage, d’adressage et de routage utilisés.
1.4 Architecture réseau
L’architecture doit prendre en considération les caractéristiques suivantes :
La tolérance aux pannes.
L’évolutivité.
La qualité des services.
La sécurité.
1.4.1 La tolérance aux pannes
Comme des millions d’utilisateurs attendent d’Internet qu’il soit constamment disponible, il
faut une architecture réseau conçue et élaborée pour tolérer les pannes. Un réseau tolérant
aux pannes est un réseau qui limite l’impact des pannes du matériel et des logiciels et qui
peut être rétabli rapidement quand des pannes se produisent. De tels réseaux dépendent de
liaisons, ou chemins, redondantes entre la source et la destination d’un message. En cas de
défaillance d’une liaison (voir figure 7), les processus s’assurent que les messages sont
instantanément routés sur une autre liaison et ceci de manière totalement transparente
pour les utilisateurs aux deux extrémités. Aussi bien les infrastructures physiques que les
processus logiques qui dirigent les messages sur le réseau sont conçus pour prendre en
charge cette redondance. Il s’agit d’une caractéristique essentielle des réseaux actuels.
15
Figure 7 : La tolérance aux pannes
Les réseaux à commutation de circuit
De nombreux réseaux à commutation de circuit, tels que les réseaux téléphoniques, (voir
figure 8) donnent la priorité au maintien des connexions sur les circuits existants aux dépens
des requêtes de nouveaux circuits. Dans ce genre de réseaux orientés connexions, une fois
qu’un circuit a été établi, il demeure connecté même si aucune communication n’a lieu entre
les personnes à chaque extrémité de l’appel, et les ressources sont réservées jusqu’à ce que
l’une des parties mette fin à l’appel. Étant donné que la capacité à créer de nouveaux circuits
n’est pas illimitée, il est parfois possible de recevoir un message indiquant que tous les
circuits sont occupés et que l’appel ne peut être établi.
Figure 8 : Réseau téléphonique
Réseaux à commutation de paquets sans connexion
Dans leur quête d’un réseau capable de supporter la perte d’un nombre important de points
de transmission et de commutation, les premiers concepteurs d’Internet ont reconsidéré les
recherches préalables sur les réseaux à commutation de paquets. L’idée de base pour ce
type de réseaux est qu’un message peut être décomposé en de multiples blocs de message.
Les blocs individuels contenant des informations d’adressage indiquent le point d’origine
ainsi que la destination finale (voir Figure 9). Grâce à ces informations intégrées, les blocs de
message, appelés paquets, peuvent être envoyés sur le réseau en empruntant des chemins
variés avant d’être réassemblés pour recomposer le message d’origine une fois parvenus à
destination.
16
Figure 9 : Réseaux à commutation de paquets
Utilisation des paquets
Au sein du réseau même, les périphériques n’ont pas accès au contenu des paquets
individuels. Seule l’adresse de la destination finale et le prochain périphérique sur le chemin
vers cette destination leur sont indiqués. Aucun circuit réservé n’est établi entre l’expéditeur
et le destinataire. Chaque paquet est envoyé d’un emplacement de commutation à un autre
de façon indépendante. À chaque emplacement, une décision de routage est prise pour
déterminer le chemin qui sera emprunté pour transmettre le paquet vers sa destination
finale. Si un chemin précédemment utilisé n’est plus disponible, la fonction de routage peut
choisir dynamiquement le meilleur chemin suivant disponible. Comme les messages sont
fragmentés au lieu d’être envoyés sous forme de message unique complet, il est possible de
retransmettre sur un chemin différent les quelques paquets qui pourraient s’être perdus en
cas de défaillance. Dans bien des cas, le périphérique de destination ignore les défaillances
ou modifications de routages qui sont intervenues.
Réseaux à commutation de paquets sans connexion
Les chercheurs du DoD « American Department of Defence » ont compris qu’un réseau à
commutation de paquets sans connexion disposait des capacités requises pour prendre en
charge une architecture réseau résiliente et tolérante aux pannes. Dans ce type de réseau, il
est inutile de réserver un circuit unique de bout en bout. Chaque morceau du message peut
être envoyé sur le réseau par l’intermédiaire de n’importe quel chemin disponible. Des
paquets contenant des morceaux de messages provenant de sources différentes peuvent
emprunter simultanément le même réseau. Ceci résout le problème des circuits sous -utilisés
ou actifs car toutes les ressources disponibles peuvent être utilisées simultanément pour
livrer des paquets à leur destination finale. Parce qu’il permet d’utiliser dynamiquement les
chemins redondants sans intervention de l’utilisateur, Internet est devenu un moyen de
communication tolérant aux pannes et extensible.
Réseaux orientés connexions
Bien que les réseaux à commutation de paquets sans connexion répondent aux besoins du
DoD et continuent à constituer l’infrastructure de base d’Internet aujourd’hui, un système
orienté connexion comme le système téléphonique à commutation de circuit présente
quelques avantages. Étant donné que les ressources des divers emplacements de
commutation ont pour vocation de fournir un nombre précis de circuits, la qualité et la
17
cohérence des messages transmis sur un réseau orienté connexion peuvent être garanties.
En outre, le fournisseur du service peut facturer la période de temps pendant laquelle la
connexion est active aux utilisateurs du réseau, ce qui est un autre avantage. Pouvoir
facturer aux utilisateurs les connexions actives sur le réseau est un élément essentiel de
l’industrie des services de télécommunication.
1.4.2 L’évolutivité
Un réseau extensible est en mesure de s’étendre rapidement afin de prendre en charge de
nouveaux utilisateurs et applications sans que cec i n’affecte les performances du service
fourni aux utilisateurs existants (voir figure 10).
Figure 10 : Le réseau Internet est un réseau évolutif
Si Internet est capable de s’étendre au rythme que nous connaissons sans que ceci n’ait
d’impact sérieux sur ses performances au niveau des utilisateurs individuels, c’est grâce à la
conception des protocoles et des technologies sous-jacentes sur lesquels il repose. En fait,
Internet est un ensemble de réseaux privés et publics interconnectés disposant d’une
structure en couches hiérarchisées pour les services d’adressage, de désignation et de
connectivité (voir figure 11).
Figure 11 : L’évolutivité du réseau Internet
1.4.3 La qualité des services
Assurer le niveau de qualité de service requis en gérant les retards et les paramètres de
perte de paquets sur un réseau devient la clé du succès d’une solution destinée à garantir la
18
qualité d’une application de bout en bout. Garantir la qualité de service exige donc tout un
ensemble de techniques de gestion de l’utilisation des ressources réseau. Pour continuer à
assurer une haute qualité de service aux applications qui l’exigent, il convient de donner la
priorité aux types de paquets de données devant être livrés par préférence à d’autres types
de paquets pouvant être retardés ou abandonnés (voir figure 12).
Figure 12 : Qualité des services
1.4.5 La sécurité
Des mesures de sécurités prises sur un réseau doivent :
Empêcher la communication non autorisée ou le vol d’information.
Empêcher toute modification non autorisée des informations.
Prévenir les dénis (indisponibilité) des services.
Pour atteindre ces objectifs il faut :
Assurer la confidentialité.
Garantir l’intégrité des données.
Assurer la disponibilité.
19
Chapitre 2
Communication sur un réseau
Introduction De plus en plus, ce sont les réseaux qui nous relient. Les personnes communiquent en ligne depuis
n’importe où. Une technologie efficace et fiable permet au réseau d’être disponible n’importe quand
et n’importe où. Alors que notre réseau humain continue de s’étendre, la plateforme qui relie ce
réseau et le prend en charge doit également se développer.
Dans ce cours, l’accent sera mis sur la plateforme qui nous permet de communiquer de manière
rapide, fiable, sûre et économique.
Objectifs • expliquer les avantages que présente l’utilisation d’un modèle en couches pour décrire une
fonctionnalité réseau.
• décrire le rôle de chaque couche dans deux modèles de réseau reconnus : le modèle TCP/IP
et le modèle OSI.
• expliquer les avantages que présente l’utilisation d’un modèle en couches pour décrire une
fonctionnalité réseau.
• décrire le rôle de chaque couche dans deux modèles de réseau reconnus : le modèle TCP/IP
et le modèle OSI.
2.1 La plateforme pour la communication
2.1.1 Les éléments de communication La communication démarre avec un message, qui doit être envoyé d’un individu ou d’un
périphérique à un autre. Les personnes échangent des idées par de nombreuses méthodes de
communication différentes. Toutes ces méthodes ont en commun trois éléments. Le premier de ces
éléments est la source du message, ou l’expéditeur. Les sources d’un message sont les personnes, ou
les périphériques électroniques, qui doivent envoyer un message à d’autres individus ou
périphériques. Le deuxième élément de communication est la destination ou le destinataire du
message. La destination reçoit le message et l’interprète. Un troisième élément, appelé canal, est
constitué par le support qui fournit la voie par laquelle le message peut se déplacer depuis la source
vers la destination (voir figure 1).
20
Figure 1 : Les éléments de communication
2.1.2Communication des messages En théorie, une communication pourrait être transmise à travers un réseau depuis une source vers
une destination sous forme d’un flux continu et volumineux de bits.
Ce qui implique :
Un encombrement de la bande passante et aucun autre périphérique ne serait en mesure
d’envoyer ou de recevoir des messages au cours de ce temps.
Un retard de transmission.
En outre, si la transmission échoue, tout le message doit être retransmis.
En pratique, il existe une meilleure approche, qui consiste à diviser les données en petits blocs.
Cette division présente deux avantages principaux (voir figure 2) :
1. De nombreuses conversations différentes peuvent s’entremêler sur le réseau (le
multiplexage).
2. La segmentation peut augmenter la fiabilité des communications réseau. Les différentes
parties de chaque message n’ont pas besoin de parcourir le même chemin. Si un chemin
particulier devient encombré ou défaillant, les blocs du message peuvent être adressés à la
destination via un autre chemin.
Si une partie du message ne parvient pas à sa destination, seules les parties manquantes
doivent être transmises à nouveau.
Figure 2 : segmentation et multiplexage
Exemple de segmentation :
Si nous avons une lettre de 100 pages à envoyer en paquets de 1 page chacun. Nous aurons donc à
préparer 100 enveloppes sur lesquels nous mettons l‘adresse du destinataire ainsi que l’adresse
source. Les enveloppes peuvent parcourir des chemins différents. Le destinataire va recevoir et
21
ouvrir 100 enveloppes. Pour les rassembler, les lettres doivent être numérotées. De même pour les
segments, qui doivent être étiquetés (voir figure 3).
Exemple de multiplexage :
Le facteur ne distribue pas que les enveloppes de cette lettre mais peut avoir d’autres lettres à
distribuer.
Figure 3 : étiquetage des segments
2.1.3 Composants du réseau Les composants du réseau sont :
Périphériques,
Supports,
Services et processus.
Nous savons déjà que les périphériques et les supports représentent les composants physiques du
réseau.
Les services constituent le programme de communication appelés logiciels, qui sont exécutés sur les
périphériques réseau.
Exemple : service d’hébergement de messagerie, service d’hébergement Web, …
Les processus fournissent les fonctionnalités qui dirigent et déplacent les messages à travers le
réseau.
2.1.4 Périphérique finaux et leur rôle sur le réseau Les périphériques finaux forment l’interface entre le réseau humain et le réseau de communication.
Exemple :
PC.
PC portable.
Imprimente réseau.
Téléphone VoIP.
Caméra de surveillance.
22
Dans le réseau, les périphériques finaux sont appelés hôtes. Un périphérique hôte constitue soit la
source soit la destination d’un message.
Pour qu’il soit possible de distinguer entre les hôtes, chaque hôte situé sur un réseau est identifié par
une adresse. Dans les réseaux modernes, un hôte peut agir comme un client, un serveur, ou les deux.
Le logiciel installé sur l’hôte détermine son rôle sur le réseau.
Les serveurs sont des hôtes qui possèdent un logiciel installé leur permettant de fournir des
informations et des services (ex : courriel ou page Web) à d’autres hôtes sur le réseau.
Les clients sont des hôtes qui possèdent des logiciels installés leur permettant d’afficher les
informations obtenues à partir du serveur.
2.1.5 Périphériques intermédiaires et leur rôle sur le réseau Les périphériques intermédiaires fournissent la connectivité et travaillent en arrière plan afin de
garder le flux de données à travers le réseau.
Ces périphériques connectent soit les hôtes individuels au réseau, soit plusieurs réseaux afin de
former des interréseaux.
Parmi ces périphériques :
Périphériques d’accès au réseau (concentrateurs, commutateurs, points d’accès sans fil).
Périphériques interréseau (routeurs).
Périphériques de sécurité (pare feu).
Les processus qui s’exécutent sur les périphériques intermédiaires remplissent ces fonctions :
Régénérer et retransmettre des signaux de données.
Gérer les informations indiquant les chemins.
Indiquer aux autres périphériques les erreurs et les échecs de communication.
Diriger les données vers d’autres chemins en cas d’échec de liaison.
Classifier et diriger des messages en fonction des priorités.
Autoriser ou refuser le flux de données selon des paramètres de sécurité.
2.1.6 Supports réseau
Fil de cuivre.
Fibre optique de verre ou de plastique.
Transmission sans fil.
Le codage du signal qui doit se produire afin de transmettre le message diffère selon le type de
support.
Sur les fils métalliques les données sont codées en impulsions électriques.
Sue les fibres optiques les données sont codées en impulsions de lumière dans des plages de
lumière infrarouges ou visibles.
23
Dans la transmission sans fil, des modèles d’ondes électromagnétiques illustrent les différentes
valeurs de bits.
Tous les supports réseau ne possèdent pas les mêmes caractéristiques et ne conviennent pas pour le
même objectif (voir tableau 1).
Paires torsadées Câble coaxial Fibre optique Sans fil
Sensible aux
interférences
électromagnétiques
protection aux
interférences
électromagnétiques
satisfaisante
Insensible aux
interférences
électromagnétiques
Sensible aux interférences
électromagnétiques
Pas chère Pas chère Trop chère Modérément chère
Débit de 10 à 100 MB/s
avec une longueur de
100 mètres
Débit 100MB/s si distance
<1Km
Sur plusieurs centaines de
kilomètres les vitesses
sont de l’ordre de
100kbits/s
Peut atteindre 160
Gbit/s sur une
liaison en fibre
optique de
4 000 Km
Débit >11 Mb/s
Amplification après
plusieurs dizaines de
kilomètres
Amplification chaque 2 ou
9 kilomètres
Pas d’amplification Amplification
généralement après une
vingtaine ou une
cinquantaine de mètres
dans des lieux fermés à
plusieurs centaines de
mètres en environnement
ouvert.
Tableau 1 : caractéristiques des supports réseau
Les critères de chois d’un support réseau sont :
La distance sur laquelle les supports peuvent transporter correctement un signal.
L’environnement dans lequel les supports doivent être installés.
La quantité de données et le débit de la transmission.
Le coût des supports de l’installation.
La fibre optique est utilisée dans le câblage sous-marin pour relier les continents.
2.2 Réseaux locaux, Réseaux étendus et Interréseaux
2.2.1 Réseaux locaux Les infrastructures réseau peuvent considérablement varier selon :
24
La taille de la zone couverte.
Le nombre d’utilisateurs connectés.
Le nombre de types de services disponibles.
Un réseau qui s’étend sur une zone géographique unique et fournit des services d’une structure
organisationnelle commune est appelé réseau local ou Local Area Network (LAN) (voir figure 4).
En règle générale, un réseau local est administré par une organisation unique (Ex : entreprise,
Compus, …).
Figure 4 : Réseau local
2.2.2 Réseaux étendus Lorsqu’une entreprise ou une organisation dispose d’emplacements différents séparés par
d’importantes distances géographiques elles ont recours à des fournisseurs de service de
communication qui leurs offrent des connexions de leurs réseau via des réseaux régionaux pouvant
parcourir de longues distances (voir figure 5).
Ces réseaux qui connectent les réseaux locaux sont appelés réseaux étendus ou Wide Area Network
(WAN).
Figure 5 : Réseau étendu
25
2.2.3 Interréseau (Internet, Réseau de réseaux) De plus des LAN et des WAN qui ont des avantages au sein des entreprises, le réseau Internet
propose d’autres types de communication :
L’envoi d’un courriel à un ami se trouvant dans un autre pays.
L’accès à des informations ou à des produits se trouvant sur un site Web.
La messagerie instantanée avec une connaissance qui se trouve dans une autre ville.
Le réseau Internet est un maillage international de réseaux interconnectés (voir figure 6).
La garantie d’une communication efficace à travers es divers infrastructures du réseau nécessite
l’application de technologie et de protocoles cohérents.
Figure 6 : Interréseau
2.2.4 Représentation du réseau Comme tout autre langage, le langage propre au réseau utilise un ensemble de symboles pour
représenter les différents périphériques finaux, périphériques réseau et supports (voir figure 7).
Figure 7 : Représentations du réseau
En plus de ces représentations, il ya des termes importants qu’il faut retenir :
La carte réseau : C’est un adaptateur de réseau local fournit la connexion physique entre un hôte et
un périphérique réseau.
26
Port physique : Connecteur ou prise sur un périphérique réseau.
Interface : Ports spécialisés sur un périphérique réseau qui se connectent à des réseaux individuels.
Les ports sur un routeur sont appelés interfaces réseau.
2.3 Les protocoles
2.3.1 Règles qui régissent les communications Toutes les communications face à face ou à travers un réseau sont régies par des règles appelées
protocoles.
Ces protocoles sont spécifiques aux caractéristiques de la conversation.
Dans nos conversations quotidiennes, les règles que nous utilisons pour communiquer face à face ou
à travers un appel téléphonique ou des lettres ne sont pas nécessairement identiques.
De même pour la communication sur un réseau vu l’ensemble des applications et des services qui
veulent communiquer.
Donc la nécessité d’une communication entre différents hôtes nécessite l’interaction de nombreux
protocoles. Ce groupe de protocole est appelé suite de protocoles. Cette suite est implémentée sur
chaque hôte et périphérique réseau.
2.3.2 Protocoles réseau La suite des protocoles réseau décrivent des processus tels que :
Le format ou la structure du message.
La méthode selon laquelle des périphériques réseau partagent des informations sur des
chemins avec d’autres réseaux.
Comment et à quel moment des messages d’erreur et systèmes sont transférés entre des
périphériques.
La configuration et l’arrêt des sessions de transfert de données.
2.3.3 Suite de protocoles et normes de l’industrie L’utilisation de normes dans l’enveloppement et l’implémentation de protocoles garantit que les
produits provenant de différents fabricants peuvent fonctionner ensemble pour créer des
communications efficaces.
2.3.4 Interaction de protocoles L’interaction entre un serveur Web et un navigateur Web constitue un exemple de l’utilisation d’une
suite de protocoles dans des communications réseau (voir figure 8). Cette interaction utilise plusieurs
protocoles dans le processus d’échange d’informations :
Protocole d’application (HTTP).
Protocole de transfert (TCP).
Protocole interréseau (IP).
Protocole d’accès au réseau.
27
Figure 8 : Interaction de protocoles
HTTP : est un protocole qui régit la manière selon laquelle un serveur Web et un navigateur Web
(Client Web) interagissent. Le protocole HTTP décrit le contenu et la mise en forme des requêtes et
des réponses échangées entre le client Web et le serveur Web.
TCP : représente le protocole de transport qui gère les conversations individuelles entre le serveur
Web et le client Web. Le protocole TCP divise les messages HTTP en parties de plus petites tailles,
appelées segments, pour les envoyer à l’hôte de destination.
IP : est responsable de la récupération des segments formatés à partir du protocole TCP, de leur
encapsulation en paquets, de l’affectation des adresses appropriées et de la sélection du meilleur
chemin vers l’hôte de destination.
Les protocoles d’accès réseau : décrivent deux fonctions principales :
1. La gestion de liaisons de données.
2. La transmission physique des données sur les supports.
Les protocoles de gestion de liaisons de données prennent les paquets depuis le protocole IP et les
formatent pour les transmettre à travers les supports.
Les normes et les protocoles des supports physiques régissent la manière dont les signaux sont
envoyés à travers les supports.
2.3.5 Protocoles indépendants de la technologie En général, les protocoles n’indiquent pas comment remplir une fonction particulière. En indiquant
uniquement quelles fonctions sont requises pour une règle de communication spécifique mais pas
comment ces fonctions doivent être exécutées, l’implémentation d’un protocole particulier peut être
indépendante de la technologie.
Cela signifie qu’un ordinateur et tout autre périphérique (par exemple, des téléphones portables ou
des assistants numériques personnels) peut accéder à une page Web stockée sur n’importe quel type
de serveur Web qui utilise n’importe quel système d’exploitation, n’importe où sur Internet (voir
Figure 9).
28
Figure 9 : De nombreux types de périphériques peuvent communiquer ensemble en utilisant le
même protocole
2.4 Utilisation des modèles en couche
2.4.1 Avantages de l’utilisation d’un modèle en couche L’utilisation d’un modèle en couches :
Aide à la conception d’un protocole, car des protocoles qui fonctionnent à une couche
spécifique disposent d’informations définies à partir desquelles ils agissent, ainsi que d’une
interface définie par rapport aux couches supérieures et inférieures.
Il favorise la concurrence car des produits de différents fournisseurs peuvent fonctionner
ensemble.
Empêche que la modification de la technologie ou des fonctionnalités au niveau d’une
couche affecte des couches supérieure et inférieure.
Fournit un langage commun pour décrire des fonctions et des fonctionnalités réseau.
2.4.2 Modèles de protocoles et modèles de référence Il existe deux types de modèles de réseau de base (voir figure 10):
Les modèles de protocoles.
Les modèles de référence.
Figure 10 : Modèles de protocoles (TCP/IP) et modèles de référence (OSI)
29
Un modèle de protocole fournit un modèle qui correspond étroitement à la structure d’une suite de
protocoles particulière. Le modèle TCP/IP est un modèle de protocole car il décrit les fonctions qui
interviennent à chaque couche au sein de la suite TP/IP.
Un modèle de référence fournit une référence commune. Pour maintenir la cohérence dans tous les
types de protocoles et de services réseau. Un modèle de référence n’est pas destiné à être une
spécification d’implémentation. Le principal objectif d’un modèle de référence est d’aider à obtenir
une compréhension plus claire des fonctions et des processus impliqués.
Le modèle OSI constitue le modèle de référence le plus répandu. Il est utilisé par la conception de
réseaux de données.
2.4.3 Modèle TCP/IP Le premier modèle de protocole en couches pour les communications interréseau fut créé au début
des années 70 et est appelé modèle Internet. Il définit quatre catégories de fonctions qui doivent
s’exécuter pour que les communications réussissent. L’architecture de la suite de protocoles TCP/IP
suit la structure de ce modèle (voir figure 11). Pour cette raison, le modèle Internet est généralement
appelé modèle TCP/IP.
Figure 11 : Modèle TCP/IP
2.4.4 Processus de communication Le modèle TCP/IP décrit la fonctionnalité des protocoles qui constituent la suite de protocoles
TCP/IP.
Ces protocoles qui sont implémentés sur des hôtes émetteurs et récepteurs, interagissent pour
fournir une livraison de bout en bout sur un réseau.
Un processus de communication de données comprend ces étapes :
1. Création de données sur la couche application de l’hôte émetteur.
2. Segmentation et encapsulation des données lorsqu’elles descendent la pile de protocoles de
l’hôte émetteur.
3. Génération de données sur les supports au niveau de la couche d’accès au réseau de la pile.
4. Transport des données via l’interréseau.
5. Réception des données au niveau de la couche d’accès au réseau de l’hôte récepteur.
30
6. Décapsulation et assemblage des données lorsqu’elles remontent la pile de protocoles de
l’hôte récepteur.
7. Transmission de ces données à l’application de destination.
2.4.5 Unité de données de protocole et encapsulation Lorsque les données d’application descendent la pile de protocoles en vue de leur transmission sur le
support réseau, différent protocoles ajoutent des informations à chaque niveau. Il s’agit du processus
d’encapsulation (voir figure 12).
La forme qu’emprunte une donnée sur n’importe quelle couche est appelée unité de données de
protocoles.
Figure 12 : Unité de données de protocole et encapsulation
Au cours de l’encapsulation chaque couche suivante encapsule l’unité de donnée de protocole
qu’elle reçoit de la couche supérieure. A chaque étape du processus, une unité de données de
protocole possède un nom :
Données : unité de données de protocole au niveau de la couche application.
Segment : unité de données de protocole au niveau de la couche transport.
Paquet : unité de données de protocole au niveau de la couche interréseau.
Trame : unité de données de protocole au niveau de la couche accès au réseau.
Bits : unité de données de protocole utilisée lors de la transmission physique de données à travers le
support.
2.4.6 Processus d’envoi et de réception
2.4.7 Le modèle OSI En tant que modèle de référence, le modèle OSI (voir figure 13) fournit une liste exhaustive de
fonctions et de services qui peuvent intervenir à chaque couche. Il décrit également l’interaction de
chaque couche avec la couche directement supérieure ou inférieure.
31
Figure 13 : Le modèle OSI
Bien que le contenu de ce cours est structuré autour du modèle OSI, la discussion traitera
essentiellement les protocoles identifiés dans la pile du protocole TCP/IP.
2.4.8 Comparaison des modèles OSI et TCP/IP Les protocoles qui constituent la suite de protocoles TCP/IP peuvent être décrits selon les termes d u
modèle de référence OSI. Dans le modèle OSI, la couche d’accès réseau et la couche application du
modèle TCP/IP sont encore divisées pour décrire des fonctions discrètes qui doivent intervenir au
niveau de ces couches (voir figure 14).
Figure 14 : Comparaison entre les modèles OSI et TCP/IP
Les principaux parallèles entre les deux modèles de réseau se situent aux couches 3 et 4 du modèle
OSI. La couche 3 du modèle OSI, la couche réseau, est utilisée presque partout dans le monde afin de
traiter et de documenter l’éventail des processus qui interviennent dans tous les réseaux de données
pour adresser et acheminer des messages à travers un interréseau. Le protocole IP est le protocole
de la suite TCP/IP qui contient la fonctionnalité décrite à la couche 3.
32
La couche 4, la couche transport du modèle OSI, sert souvent à décrire des services ou des fonctions
générales qui gèrent des conversations individuelles entre des hôtes source et de destination. Au
niveau de cette couche, les protocoles TCP/IP Transmision Control Protocol (TCP) et User Datagram
Protocol (UDP) fournissent les fonctionnalités nécessaires.
La couche application TCP/IP inclut plusieurs protocoles qui fournissent des fonctionnalités
spécifiques à plusieurs applications d’utilisateur final. Les couches 5, 6 et 7 du modèle OSI sont
utilisées en tant que références pour les développeurs et les éditeurs de logiciels d’application, afin
de créer des produits qui doivent accéder aux réseaux pour des communications.
2.5 Adressage de réseau
2.5.1 Adressage dans le réseau Le modèle OSI décrit des processus de codage, de mise en forme, de segmentation et
d’encapsulation de données pour la transmission sur le réseau. Un flux de données envoyé depuis
une source vers une destination peut être divisé en parties et entrelacé avec des messages transmis
depuis d’autres hôtes vers d’autres destinations. À n’importe quel moment, des milliards de ces
parties d’informations se déplacent sur un réseau. Il est essentiel que chaque donnée contienne les
informations d’identification suffisantes afin d’arriver à bonne destination.
Il existe plusieurs types d’adresses qui doivent être incluses pour livrer correctement les données
depuis une application source exécutée sur un hôte à l’application de destination correcte exécutée
sur un autre. En utilisant le modèle OSI comme guide, nous apercevons les différents identificateurs
et adresses nécessaires à chaque couche.
2.5.2 Acheminement des données jusqu’au périphérique final Au cours du processus d’encapsulation, des identificateurs d’adresse sont ajoutés aux données
lorsque celles-ci descendent la pile de protocoles sur l’hôte source. Tout comme il existe plusieurs
couches de protocoles qui préparent les données à la transmission vers leur destination, il existe
plusieurs couches d’adressage pour garantir leur livraison (voir figure 15):
Couche transport (Couche 4).
Couche réseau (Couche 3).
Couche liaison de données (Couche 2).
Au niveau de la couche 4, les informations contenues dans l’en-tête d’unité de données de protocole
identifient le processus ou le service spécifique s’exécutant sur le périphérique hôte de destination
qui doit intervenir sur les données en cours de livraison.
Chaque application ou service est représenté(e) au niveau de la couche 4 par un numéro de port. Un
dialogue unique entre des périphériques est identifié par une paire de numéros de port source et de
destination de la couche 4, qui représentent les deux applications qui communiquent. Lors de la
réception des données sur l’hôte, le numéro de port est examiné pour déterminer quel processus ou
application constitue la destination correcte des données.
Les protocoles de la couche 3 ont été principalement conçus pour déplacer des données depuis un
réseau local vers un autre réseau local au sein d’un interréseau. Tandis que les adresses de la
33
couche 2 sont uniquement utilisées pour communiquer entre des périphériques sur un réseau local
unique, les adresses de la couche 3 doivent inclure des identificateurs qui permettent aux
périphériques réseau intermédiaires de localiser des hôtes sur différents réseaux. Dans la suite de
protocoles TCP/IP, chaque adresse hôte IP contient des informations sur le réseau où se trouve
l’hôte.
À la limite de chaque réseau local, un périphérique réseau intermédiaire, généralement un routeur,
décapsule la trame pour lire l’adresse hôte de destination contenue dans l’en-tête du paquet, l’unité
de données de protocole de la couche 3. Les routeurs utilisent la partie d’identificateur de réseau de
cette adresse pour déterminer le chemin à utiliser afin d’atteindre l’hôte de destination. Une fois le
chemin déterminé, le routeur encapsule le paquet dans une nouvelle trame et l’envoie vers le
périphérique final de destination. Lorsque la trame atteint sa destination finale, les en-têtes de trame
et de paquet sont supprimés et les données sont transmises à la couche 4 supérieure.
L’adresse physique de l’hôte, est contenu dans l’en-tête de l’unité de données de protocole de la
couche 2, appelée trame. La couche 2 est chargée de la livraison des messages sur un réseau local
unique. L’adresse de couche 2 est unique sur le réseau local et représente l’adresse du périphérique
final sur le support physique. Dans un réseau local qui utilise Ethernet, cette adresse est appelée
adresse MAC (Media Access Control). Lorsque deux périphériques finaux communiquent sur le
réseau Ethernet local, les trames échangées entre eux contiennent les adresses MAC de destination
et source. Une fois qu’une trame a été correctement reçue par l’hôte de destination, les informations
sur l’adresse de couche 2 sont supprimées lors de la décapsulation des données et de leur
déplacement vers le haut de la pile de protocoles, à la couche 3.
Figure 15 : phénomène d’adressage par couche
34
Chapitre 3 :
Fonctionnement et protocoles des couches
applicatives
Introduction La plupart d’entre nous utilisons Internet via le Web, les services de messagerie et les programmes
de partage de fichiers. Ces applications, ainsi que de nombreuses autres, constituent l’interface
humaine entre l’utilisateur et le réseau sous-jacent et nous permettent d’envoyer et de recevoir des
informations avec une relative facilité. Un professionnel des réseaux doit savoir dans quelle mesure
une application est capable de formater, de transmettre et d’interpréter les messages envoyés et
reçus via le réseau.
Le modèle Open System Interconnection (OSI) permet de visualiser plus facilement les mécanismes
sous-jacents de la communication via le réseau (voir figure 1). Ce chapitre porte sur le rôle d’une
couche, la couche application, et de ses composants :
1. applications,
2. services,
3. protocoles.
Nous examinerons comment ces trois éléments permettent une communication robuste via le
réseau d’informations.
Figure 1 : La couche applicative du modèle OSI
Objectifs Dans ce chapitre, vous apprendrez à :
décrire comment les fonctions des trois couches supérieures du modèle OSI fournissent des
services de réseau aux applications destinées à l’utilisateur final ;
décrire comment les protocoles de la couche application TCP/IP fournissent les services
spécifiés par les couches supérieures du modèle OSI ;
35
définir comment les utilisateurs se servent de la couche application pour communiquer via le
réseau d’informations ;
décrire le fonctionnement d’applications TCP/IP très courantes, telles que le Web et le
courrier électronique et les services associés;
expliquer comment, grâce aux protocoles, les services exécutés sur un type de périphérique
peuvent envoyer des données vers de nombreux périphériques réseau différents et recevoir
des données de ces périphériques ;
3.1 Application : l’interaction entre les réseaux
3.1.1 Modèle OSI et TCP/IP Le modèle de référence OSI est une représentation abstraite en couches servant de guide à la
conception des protocoles réseau. Il divise le processus de réseau en sept couches logiques, chacune
comportant des fonctionnalités uniques et se voyant attribuer des services et des protocoles
spécifiques.
Dans ce modèle, les informations sont transmises d’une couche à l’autre, en commençant au niveau
de la couche application sur l’hôte émetteur (voir figure 2), puis en descendant dans la hiérarchie
jusqu’à la couche physique, pour ensuite transiter sur le canal de communication vers l’hôte de
destination, où les informations remontent la hiérarchie jusqu’à la couche application.
Figure 2 : Transmission de l’information d’une couche à l’autre selon le modèle OSI
La couche application (couche 7) est la couche supérieure des modèles OSI et TCP/IP. Elle est la
couche qui sert d’interface entre les applications que nous utilisons pour communiquer et le réseau
sous-jacent via lequel nos messages sont transmis. Les protocoles de couche application sont utilisés
pour échanger des données entre les programmes s’exécutant sur les hôtes source et de destination.
Il existe de nombreux protocoles de couche application et de nouveaux protocoles sont
constamment en cours de développement.
Bien que la suite de protocoles TCP/IP ait été développée avant la définition du modèle OSI, les
fonctionnalités des protocoles de couche application TCP/IP s’intègrent à la structure des trois
couches supérieures du modèle OSI (voir figure 3):
La couche application,
36
La couche présentation,
La couche session.
Figure 3 : Correspondance entre modèle OSI et TCP/IP
La couche présentation
La couche présentation remplit trois fonctions principales :
1. codage et conversion des données de la couche application afin que les données issues du
périphérique source puissent être interprétées par l’application appropriée sur le
périphérique de destination ;
2. compression des données de sorte que celles-ci puissent être décompressées par le
périphérique de destination ;
3. chiffrement des données en vue de leur transmission et déchiffrement des données reçues
par le périphérique de destination.
Couche session
Comme l’implique le nom de la couche session, les fonctions s’exécutant au niveau de cette couche
permettent un dialogue entre les applications source et de destination. La couche session traite
l’échange des informations pour initier et maintenir un dialogue et pour redémarrer les sessions
interrompues ou inactives pendant une longue période.
Les protocoles de couche application TCP/IP les plus connus sont ceux permettant l’échange
d’informations entre les utilisateurs. Ces protocoles spécifient les informations de format et de
contrôle nécessaires à un grand nombre de fonctions courantes de communication via Internet. Voici
certains de ces protocoles TCP/IP :
Le protocole DNS (Domain Name Service) est utilisé pour traduire les adresses Internet en
adresses IP.
Le protocole HTTP (Hypertext Transfer Protocol) est utilisé pour transférer les fichiers qui
constituent les pages du Web.
Le protocole SMTP (Simple Mail Transfer Protocol) est utilisé pour transférer les courriels et
les pièces jointes.
37
Le protocole Telnet, protocole d’émulation de terminal, est utilisé pour permettre un accès
distant aux serveurs et aux périphériques réseau.
Le protocole FTP (File Transfer Protocol) est utilisé pour le transfert interactif de fichiers
entre les systèmes.
3.1.2 Logiciels de la couche application Les fonctions associées aux protocoles de couche application permettent au réseau des utilisateurs
de faire une interface avec le réseau de données sous-jacent. Lorsque l’utilisateur ouvre un
navigateur Web ou une fenêtre de messagerie instantanée, une application est lancée et le
programme est placé dans la mémoire du périphérique, où il est exécuté. Chaque programme en
cours d’exécution chargé sur un périphérique est nommé processus.
La couche application comprend deux formes de programmes ou processus logiciels permettant
d’accéder au réseau : les applications et les services.
Applications orientées réseau
Les applications sont les programmes logiciels qui permettent aux utilisateurs de communiquer sur le
réseau. Certaines applications destinées à l’utilisateur final sont orientées réseau, à savoir qu’elles
implémentent les protocoles de couche application et sont capables de communiquer directement
avec les couches inférieures de la pile de protocoles. Les clients de messagerie et les navigateurs
Web sont des exemples de ces types d’applications.
Services de couche application
D’autres programmes peuvent nécessiter l’assistance des services de couche application (par
exemple, le transfert de fichiers ou la mise en file d’attente de tâches d’impression réseau). Bien que
transparents pour l’utilisateur, ces services constituent les programmes qui établissent l’interface
avec le réseau et préparent les données à transférer.
Chaque application ou service réseau utilise des protocoles qui définissent les normes et les formats
de données à utiliser. Sans protocoles, le réseau de données ne disposerait d’aucune méthode
commune pour formater et transmettre les données.
3.1.3 Applications utilisateurs, services et protocoles de la couche
application Comme mentionné précédemment, la couche application utilise des protocoles implémentés au sein
d’applications et de services. Alors que les applications permettent aux utilisateurs de créer des
messages et que les services de couche application établissent une interface avec le réseau, les
protocoles fournissent les règles et les formats qui régissent la manière dont les données sont
traitées. Ces trois composants peuvent être utilisés par le même programme exécutable et peuvent
même porter le même nom. Par exemple, « Telnet » peut faire référence à l’application, au service
ou au protocole.
Dans le modèle OSI, les applications qui interagissent directement avec les utilisateurs sont
considérées comme étant au sommet de la pile. De même que toutes les couches au sein du modèle
OSI, la couche application fait appel aux fonctions des couches inférieures pour terminer le processus
de communication. Au sein de la couche application, les protocoles indiquent quels messages sont
38
échangés entre les hôtes source et de destination, la syntaxe des commandes de contrôle, le type et
le format des données transmises et les méthodes appropriées de notification et de correction des
erreurs.
3.1.4 Fonctions du protocole de couche application Les protocoles de couche application sont utilisés par les périphériques source et de destination
pendant une session de communication. Pour que les communications aboutissent, les protocoles de
couche application implémentés sur les hôtes source et de destination doivent correspondre (voir
figure 4).
Figure 4 : Correspondance des protocoles de la couche application
Les protocoles établissent des règles cohérentes pour échanger des données entre les applications et
les services chargés sur les périphériques concernés.
Ils indiquent la manière dont les données figurant dans les messages sont structurées et le type des
messages envoyés entre les hôtes source et de destination. Ces messages peuvent être des requêtes
de services, des reçus, des messages de données, des messages d’état ou des messages d’erreur. Les
protocoles définissent également les dialogues au niveau des messages et assurent qu’un message
envoyé reçoit la réponse prévue et que les services appropriés sont invoqués lorsque se produit un
transfert de données.
3.2 Utilisation des applications et des services
3.2.1 Modèle client serveur Lorsque l’utilisateur tente d’accéder aux informations situées sur son périphérique, qu’il s’agisse d’un
PC, d’un ordinateur portable, d’un assistant numérique personnel, d’un téléphone portable ou autre
périphérique connecté au réseau, les données peuvent ne pas être stockées sur ce périphérique.
Dans ce cas, une requête d’accès aux informations doit être adressée au niveau du périphérique sur
lequel résident les données.
Dans le modèle client/serveur, le périphérique demandant les informations est nommé client et celui
répondant à la demande est nommé serveur. Les processus client et serveur sont considérés comme
faisant partie de la couche application. Le client commence l’échange en demandant des données au
serveur, qui répond en envoyant un ou plusieurs flux de données au client. Les protocoles de couche
application décrivent le format des requêtes et des réponses entre clients et serveurs. Outre le
transfert de données effectif, cet échange peut également nécessiter des informations de contrôle,
telles que l’authentification de l’utilisateur et l’identification d’un fichier de données à transférer.
39
3.2.2 Serveurs Dans un contexte général de réseau, un périphérique qui répond à des requêtes émanant
d’applications clientes opère en tant que serveur. Un serveur est généralement un ordinateur qui
contient des informations à partager avec de nombreux systèmes clients. Par exemple, les pages
Web, les documents, les bases de données, les images, les fichiers vidéo et les fichiers audio peuvent
tous être stockés sur un serveur et transmis à des clients demandeurs.
Dans un réseau client/serveur, le serveur exécute un service, ou processus, parfois nommé démon de
serveur (voir figure 5).
3.2.3 Services et protocoles de la couche application Les serveurs comportent généralement plusieurs clients demandant des informations en même
temps. Par exemple, un serveur peut comporter de nombreux clients demandant à se connecter à ce
serveur (voir figure 5). Ces requêtes de client individuelles doivent être traitées simultanément et
séparément pour que le réseau fonctionne correctement. Les processus et les services de la couche
application sont assistés par les fonctions des couches inférieures pour gérer correctement les
conversations multiples.
Figure 5: Plusieurs clients se connectent au même serveur
3.2.4 Réseau et applications peer to peer (P2P)
Modèle Peer to Peer
Outre le modèle de réseau client/serveur, il existe également un modèle Peer to Peer. Le réseau Peer
to Peer implique deux formes différentes : la conception de réseau Peer to Peer et les applications
Peer to Peer (P2P). Les deux formes comportent des caractéristiques similaires mais, dans les faits,
fonctionnent très différemment.
Réseaux Peer to Peer
40
Dans un réseau Peer to Peer, au minimum deux ordinateurs sont connectés via un réseau et peuvent
partager des ressources (par exemple, des imprimantes et des fichiers) sans disposer de serveur
dédié (voir figure 6). Chaque périphérique final connecté (nommé homologue) peut opérer en tant
que serveur ou en tant que client. Un ordinateur peut remplir le rôle d’un serveur pour une
transaction et d’un client pour une autre transaction. Les rôles de client et de serveur sont définis en
fonction de chaque requête.
Figure 6 : Réseaux Peer to Peer
Par exemple, un réseau domestique simple connectant deux ordinateurs qui partagent une
imprimante est un réseau Peer to Peer. Chaque utilisateur peut configurer son ordinateur pour
partager des fichiers, exécuter des jeux en réseau...
Applications Peer to Peer
Figure 7 : Messagerie instantanée est une application P2P
Une application Peer to Peer (P2P), contrairement à un réseau Peer to Peer, permet à un
périphérique d’opérer à la fois comme client et comme serveur au sein d’une même communication
(voir figure 7). Dans ce modèle, chaque client est un serveur et chaque serveur un client. Les deux
41
peuvent lancer une communication et sont considérés comme égaux dans le processus de
communication. Cependant, les applications P2P nécessitent que chaque périphérique final fournisse
une interface utilisateur et exécute un service en tâche de fond. Lorsque vous lancez une application
P2P spécifique, elle invoque l’interface utilisateur et les services en tâche de fond requis. Les
périphériques peuvent ensuite communiquer directement.
Les applications P2P peuvent être utilisées sur des réseaux Peer to Peer, des réseaux client/serveur
et via Internet.
3.3 Exemples de services et protocoles de la couche application
3.3.1 Services et protocoles DNS (Domain Name System) À présent que nous savons mieux comment les applications fournissent une interface à l’utilisateur
et permettent d’accéder au réseau, nous allons examiner certains protocoles spécifiques courants.
Comme nous allons le voir par la suite dans ce cours, la couche transport utilise un modèle
d’adressage nommé numéro de port. Les numéros de port identifient les applications et les services
de la couche application qui constituent la source et la destination des données. Les programmes
serveur utilisent généralement des numéros de port prédéfinis connus des clients. En examinant les
différents protocoles et services de couche application TCP/IP, nous nous référerons aux numéros de
port TCP et UDP normalement associés à ces services. Certains de ces services sont les suivants :
DNS (Système de noms de domaine) - Port TCP/UDP 53
HTTP (Hypertext Transfer Protocol) - Port TCP 80
SMTP (Simple Mail Transfer Protocol) - Port TCP 25
POP (Post Office Protocol) - Port UDP 110
Telnet - Port TCP 23
DHCP (Dynamic Host Configuration Protocol) - Port UDP 67
FTP (File Transfer Protocol) - Ports TCP 20 et 21
DNS
Sur les réseaux de données, les périphériques sont étiquetés par des adresses IP numériques, ce qui
leur permet de participer à l’envoi et à la réception de messages via le réseau. Cependant, la plupart
des utilisateurs mémorisent très difficilement ces adresses numériques. Pour cette raison, des noms
de domaine ont été créés pour convertir les adresses numériques en noms simples et explicites.
Sur Internet, ces noms de domaine (par exemple, www.cisco.com) sont beaucoup plus faciles à
mémoriser que leurs équivalents numériques (par exemple, 198.133.219.25, l’adresse numérique du
serveur de Cisco). De plus, si Cisco décide de changer d’adresse numérique, ce changement est
transparent pour l’utilisateur car le nom de domaine demeure www.cisco.com.
42
Figure 8 : Fonctionnement du protocole DNS
Le protocole DNS a été créé afin de permettre la résolution de nom pour ces réseaux. Le protocole
DNS utilise un ensemble distribué de serveurs pour convertir les noms associés à ces adresses en
numéros.
Le protocole DNS est un service client/serveur. Cependant, il diffère des autres services
client/serveur examinés dans ce cours. Les autres services utilisent un client qui constitue une
application (par exemple, un navigateur Web ou un client de messagerie) tandis que le client DNS
s’exécute en tant que service lui-même. Le client DNS, parfois nommé résolveur DNS, prend en
charge la résolution de noms pour nos autres applications réseau et pour les autres services qui en
ont besoin.
Un serveur DNS effectue la résolution des noms à l’aide du démon de nom, souvent appelé named
(name daemon).
Lorsqu’un client effectue une demande, le processus de démon de nom du serveur examine d’abord
ses propres enregistrements pour voir s’il peut résoudre le nom (voir figure 8). S’il ne peut pas
résoudre le nom à l’aide de ses enregistrements stockés, il contacte d’autres serve urs pour résoudre
le nom (voir figure 9).
La requête peut être transmise à plusieurs serveurs, ce qui peut nécessiter un délai supplémentaire
et consommer de la bande passante. Lorsqu’une correspondance est trouvée et retournée au
serveur demandeur d’origine, le serveur stocke temporairement dans le cache l’adresse numérique
correspondant au nom.
Si ce même nom est de nouveau demandé, le premier serveur peut retourner l’adresse en utilisant la
valeur stockée dans son cache de noms. La mise en cache réduit le trafic réseau de données de
43
demandes DNS et les charges de travail des serveurs situés aux niveaux supérieurs dans la hiérarchie.
Le service client DNS sur les PC Windows optimise les performances de la résolution de noms DNS en
stockant également en mémoire les noms déjà résolus.
Le protocole DNS utilise un système hiérarchique pour créer une base de données afin d’assurer la
résolution de noms. La hiérarchie ressemble à une arborescence inversée dont la racine se situe au
sommet et les branches en dessous (Figure 9).
Figure 9 : Hiérarchie des serveurs DNS
Les différents domaines de premier niveau représentent le type d’organisation ou le pays d’origine.
Voici des exemples de domaines de premier niveau :
.au : Australie
.co : Colombie
.com : entreprise ou industrie
.jp : Japon
.org : organisme à but non lucratif
3.3.2 Services WWW et HTTP Lorsqu’une adresse Web (ou URL Uniform Resource Locator) est tapée dans un navigateur Web, ce
dernier établit une connexion au service Web s’exécutant sur le serveur à l’aide du protocole HTTP.
Les URL sont les noms que la plupart des utilisateurs associent aux adresses Web.
44
Figure 10 : Fonctionnement du protocole HTTP
Par exemple, http://www.cisco.com/index.html est une adresse URL qui se réfère à une ressource
spécifique : une page Web nommée index.html située sur le serveur cisco.com (voir figure 10).
Les navigateurs Web sont les applications clientes que les ordinateurs utilisent pour se connecter au
Web et accéder aux ressources stockées sur un serveur Web. Comme avec la plupart des processus
serveur, le serveur Web s’exécute en tant que service en tâche de fond et met différents types de
fichiers à la disposition de l’utilisateur.
Pour accéder au contenu Web, les clients Web établissent des connexions au serveur et demandent
les ressources voulues. Le serveur retourne les ressources et, à la réception de ces ressources, le
navigateur interprète les données et les présente à l’utilisateur.
Les navigateurs peuvent interpréter et présenter de nombreux types de données, tels que des
données en texte clair ou HTML (Hypertext Markup Language), langage dans lequel sont conçues les
pages Web.
Pour mieux comprendre l’interaction entre le navigateur Web et le client Web, voyons comment une
page Web s’ouvre dans un navigateur. Cet exemple utilise l’adresse URL suivante :
http://www.cisco.com/index.html.
Le navigateur commence par interpréter les trois parties de l’adresse URL :
1. http (protocole ou modèle)
2. www.cisco.com (nom du serveur)
3. index.html (nom du fichier demandé).
45
Le navigateur fait ensuite appel à un serveur DNS pour convertir l’adresse www.cisco.com en une
adresse numérique, qu’il utilise pour se connecter au serveur. À l’aide des caractéristiques du
protocole HTTP, le navigateur envoie une requête GET au serveur et demande le fichier index.html.
En réponse, le serveur envoie le code HTML de cette page Web au navigateur. Enfin, le navigateur
déchiffre le code HTML et formate la page en fonction de sa fenêtre.
Le protocole HTTP constitue un protocole de requête/réponse. Lorsqu’un client (généralement un
navigateur Web) envoie une requête à un serveur, le protocole HTTP définit les types de messages
que le client utilise pour demander la page Web, ainsi que les types de messages que le serveur
utilise pour répondre. Les trois types de messages courants sont GET, POST et PUT.
GET est une requête cliente pour obtenir des données. Un navigateur Web envoie le message GET
pour demander des pages à un serveur Web.
Les requêtes POST et PUT sont utilisées pour envoyer des messages qui téléchargent des données
vers le serveur Web. Par exemple, lorsque l’utilisateur entre des données dans un formulaire
incorporé à une page Web, la requête POST comprend les données dans le message envoyé au
serveur.
Bien qu’il soit remarquablement flexible, le protocole HTTP n’est pas un protocole sécurisé. Les
messages POST téléchargent des informations vers le serveur dans un format de texte clair pouvant
être intercepté et lu. De même, les réponses du serveur (généralement, des pages HTML) ne sont pas
chiffrées.
Pour une communication sécurisée via Internet, le protocole HTTPS (HTTP Secure) est utilisé lors de
l’accès aux informations du serveur Web ou de leur publication. Le protocole HTTPS peut procéder à
l’authentification et au chiffrement pour sécuriser les données pendant qu’elles circulent entre le
client et le serveur.
3.3.3 Services de messagerie et protocoles SMTP et POP La messagerie électronique, le service de réseau le plus répandu, par sa simplicité et sa vitesse
d’exécution, a révolutionné la manière dont nous communiquons. Mais pour s’exécuter sur un
ordinateur ou autre périphérique final, une messagerie nécessite plusieurs applications et services.
Les protocoles POP (Post Office Protocol) et SMTP (Simple Mail Transfer Protocol), illustrés dans la
figure 11, sont deux exemples de protocoles de couche application. Tout comme le protocole HTTP,
ces protocoles définissent des processus client/serveur.
46
Figure 11 : Protocoles SMTP et POP
Lorsque l’utilisateur rédige un courriel, il fait généralement appel à une application connue sous le
nom d'agent de messagerie (MUA), ou client de messagerie. L’agent de messagerie permet l’envoi
des messages et place les messages reçus dans la boîte aux lettres du client, ces deux processus étant
des processus distincts.
Pour recevoir le courriel d’un serveur de messagerie, le client de messagerie peut utiliser le protocole
POP. L’envoi de courriel à partir d’un client ou d’un serveur implique l’utilisation de commandes et
de formats de messages définis par le protocole SMTP. Un client de messagerie fournit généralement
les fonctionnalités des deux protocoles au sein d’une application.
Processus de serveur de messagerie : MTA et MDA
Le serveur de messagerie opère deux processus distincts :
1. Agent de transfert des messages (MTA).
2. Agent de remise des messages (MDA).
Le processus MTA est utilisé pour transférer le courriel. Comme l’illustre la figure 12, l’agent de
transfert des messages reçoit des messages de l’agent de messagerie ou d’un autre agent de
transfert des messages sur un autre serveur de messagerie. En fonction de l’en-tête du message, il
détermine la manière dont un message doit être transmis pour arriver à destination. Si le message
est adressé à un utilisateur dont la boîte aux lettres réside sur le serveur local, le message est
transmis à l’agent de remise des messages (MDA). Si le message est adressé à un utilisateur ne se
situant pas sur le serveur local, l’agent de transfert des messages l’achemine vers l’agent de transfert
des messages du serveur approprié.
Dans la figure 12, l’agent de remise des messages (MDA) accepte un courriel d’un agent de transfert
des messages (MTA) et procède à la remise effective du courriel. L’agent de remise des messages
reçoit tous les messages entrants de l’agent de transfert des messages et les place dans la boîte aux
lettres des utilisateurs appropriés. Il peut également traiter les derniers aspects liés à la remise, tels
que l’analyse antivirus, le filtrage du courrier indésirable et la gestion des reçus. La plupart des
communications par courriel utilisent les applications MUA, MTA et MDA.
47
Figure 12 : Applications MUA, MTA et MDA
Un client peut être connecté à un système de messagerie d’entreprise, tel que Lotus Notes d’IBM,
Groupwise de Novell ou Exchange de Microsoft. Ces systèmes disposent souvent de leur propre
format de messagerie interne et leurs clients communiquent généralement avec le serveur de
messagerie à l’aide d’un protocole propriétaire.
Autre alternative : les ordinateurs ne disposant pas d’un agent de messagerie peuvent encore se
connecter à un service de messagerie sur un navigateur Web pour récupérer et envoyer des
messages de cette manière.
Comme indiqué précédemment, le courriel peut utiliser les protocoles POP et SMTP. Les protocoles
POP et POP3 (Post Office Protocol, version 3) sont des protocoles de remise du courrier entrant et
constituent des protocoles client/serveur standard. Ils transmettent le courriel du serveur de
messagerie au client de messagerie. L’agent de remise des messages (MDA) procède à une écoute
pour détecter le moment où un client se connecte à un serveur. Une fois qu’une connexion est
établie, le serveur peut remettre le courriel au client.
Par ailleurs, le protocole SMTP (Simple Mail Transfer Protocol) régit le transfert du courriel sortant du
client expéditeur au serveur de messagerie (MDA), ainsi que le transport du courriel entre les
serveurs de messagerie (MTA). Le protocole SMTP permet le transport du courriel sur des réseaux de
données entre différents types de logiciels serveur et client, ainsi que l’échange de courriel via
Internet.
Le format de message du protocole SMTP utilise un ensemble rigide de commandes et de réponses.
Ces commandes prennent en charge les procédures du protocole SMTP, telles que l’ouverture de
session, la transaction du courriel, le transfert du courriel, la vérification des noms de boîte aux
lettres, le développement des listes de diffusion et les échanges de début et de fin.
Certaines des commandes spécifiées dans le protocole SMTP sont les suivantes :
HELO : identifie le processus client SMTP pour le processus serveur SMTP.
48
MAIL FROM : identifie l’expéditeur.
RCPT TO : identifie le destinataire.
DATA : identifie le corps du message.
3.3.4 Services de téléchargement de fichiers et le protocole FTP Le protocole FTP (File Transfer Protocol) est un autre protocole de couche application couramment
utilisé. Il a été développé pour permettre le transfert de fichiers entre un client et un serveur. Un
client FTP est une application s’exécutant sur un ordinateur et utilisée pour extraire des fichiers d’un
serveur exécutant le démon FTP (FTPd).
Figure 13 : Fonctionnement du protocole FTP
Pour transférer les fichiers correctement, le protocole FTP nécessite que deux connexions s oient
établies entre le client et le serveur : une connexion pour les commandes et les réponses et une
autre pour le transfert même des fichiers (voir figure 13).
Le client établit la première connexion au serveur sur le port TCP 21. Cette connexion est utilisée
pour le trafic de contrôle et se compose de commandes clientes et de réponses serveur.
Le client établit la seconde connexion au serveur via le port TCP 20. Cette connexion est destinée au
transfert même des fichiers et est établie à chaque transfert de fichiers.
Le transfert de fichiers peut s’effectuer dans l’une des deux directions. Le client peut télécharger un
fichier à partir du serveur ou en direction du serveur.
3.3.5 Service DHCP Le service DHCP (Dynamic Host Configuration Protocol) permet aux périphériques d’un réseau
d’obtenir d’un serveur DHCP des adresses IP et autres informations. Il permet à un hôte d’obtenir
une adresse IP dynamiquement lorsqu’il se connecte au réseau. Le serveur DHCP est contacté et une
adresse est demandée. Le serveur DHCP choisit une adresse dans une plage d’adresses configurée
(nommée pool) et affecte cette adresse à l’hôte pour une durée définie.
Sur les réseaux locaux ou sur les réseaux dont les utilisateurs changent fréquemment, le protocole
DHCP est préférable. De nouveaux utilisateurs peuvent se présenter travaillant sur des ordinateurs
portables et nécessitant une connexion. D’autres peuvent disposer de nouvelles stations de travail
49
devant être connectées. Plutôt que de faire attribuer des adresses IP par l ’administrateur réseau à
chaque station de travail, il est plus efficace que les adresses IP soient attribuées automatiquement à
l’aide du protocole DHCP.
Le protocole DHCP vous permet d’accéder à Internet via des points d’accès sans fil dans des
aéroports ou des cafés. Lorsque vous pénétrez dans la zone, le client DHCP de votre ordinateur
portable contacte le serveur DHCP local via une connexion sans fil. Le serveur DHCP attribue une
adresse IP à votre ordinateur portable.
Les adresses attribuées via le protocole DHCP ne sont pas affectées aux hôtes définitivement mais
uniquement pour une durée spécifique. Si l’hôte est mis hors tension ou retiré du réseau, l’adresse
est retournée au pool pour être réutilisée.
Comme l’illustre la figure 14, dans la plupart des réseaux de taille moyenne à grande, le serveur
DHCP est généralement un serveur local dédié basé sur un PC.
Dans le cas des réseaux domestiques, il est généralement situé au niveau du fournisseur de services
Internet et un hôte sur le réseau domestique reçoit directement sa configuration IP du fournisseur de
services Internet.
Figure 14 : Position des serveurs DHCP dans le réseau
Sans le protocole DHCP, les utilisateurs doivent manuellement entrer l’adresse IP. Les adresses IP
étant des adresses dynamiques (temporairement attribuées) et non pas des adresses statiques
(définitivement attribuées), les adresses qui ne sont plus utilisées sont automatiquement retournées
au pool pour être réattribuées. Lorsqu’un périphérique configuré pour le protocole DHCP est mis
sous tension ou se connecte au réseau, le client diffuse un paquet DHCP DISCOVER pour identifier les
serveurs DHCP disponibles du réseau. Un serveur DHCP répond avec un paquet DHCP OFFER, à savoir
un message d’offre de bail qui indique une adresse IP attribuée, et autres informations.
Le serveur DHCP s’assure que toutes les adresses IP sont uniques (une adresse IP ne peut pas être
attribuée à deux périphériques réseaux différents en même temps). Le protocole DHCP permet aux
administrateurs réseau de reconfigurer aisément les adresses IP des clients sans devoir apporter de
modifications manuelles aux clients. La plupart des fournisseurs Internet utilisent un protocole DHCP
pour attribuer des adresses à leurs clients ne nécessitant pas d’adresse statique.
50
3.3.6 Services pear to pear et protocole Gnutella Vous avez appris que le protocole FTP constitue une méthode permettant d’obtenir des fichiers.
Voici maintenant un autre protocole d’application. Partager des fichiers via Internet est devenu très
courant. Avec les applications Peer to Peer basées sur le protocole Gnutella, les utilisateurs peuvent
mettre les fichiers situés sur leur disque dur à la disposition des autres utilisateurs pour que ces
derniers les téléchargent. Les logiciels clients compatibles avec le protocole Gnutella permettent aux
utilisateurs de se connecter aux services Gnutella via Internet et de localiser des ressources
partagées par d’autres homologues Gnutella pour y accéder.
De nombreuses applications clientes sont disponibles pour permettre aux utilisateurs d’accéder au
réseau Gnutella, parmi lesquelles : BearShare, Gnucleus, LimeWire, Morpheus, WinMX et XoloX
(reportez-vous à la capture d’écran de LimeWire présentée dans la figure 15).
Figure 15 : Capture d’écran de LimeWire
De nombreuses applications Peer to Peer n’utilisent pas de base de données centrale pour
enregistrer tous les fichiers disponibles sur les homologues. À la place, chaque périphérique du
réseau, lorsqu’il est interrogé, indique aux autres périphériques quels fichiers sont disponibles et
utilise le protocole et les services Gnutella pour prendre en charge la localisation des ressources.
Reportez-vous à la figure 16.
Figure 16 : Interrogation et réponse des homologues
51
Chapitre 4 :
Couche transport OSI
Introduction Les réseaux de données et Internet étayent le réseau humain en permettant aux individus de
communiquer de façon transparente et fiable, aussi bien à l’échelon local qu’au niveau international.
Nous pouvons, sur un même périphérique, utiliser des services aussi divers que les messageries
électroniques, le Web ou les messageries instantanées pour envoyer des messages et recevoir des
informations. Grâce aux applications de clients de messagerie, de navigateurs Internet et de clients
de messagerie instantanée, nous sommes en mesure d’envoyer et de recevoir des messages et des
informations par le biais d’ordinateurs et de réseaux.
Dans chacun de ces types d’applications, les données sont empaquetées, transportées et livrées au
démon du serveur approprié ou à l’application voulue sur le périphérique de destination. Le
processus décrit dans la couche transport OSI accepte des données provenant de la couche
application et les prépare pour les adresser à la couche réseau. La couche transport est globalement
responsable du transfert de bout en bout des données d’application.
Ce chapitre est consacré à l’étude du rôle de la couche transport dans le processus d’encapsulation
des données d’application en vue de leur utilisation par la couche réseau. La couche transport
remplit également d’autres fonctions :
elle permet à de nombreuses applications de communiquer sur le réseau au même moment,
sur un même périphérique ;
elle vérifie, si cela est nécessaire, que toutes les données sont reçues de façon fiable et dans
l’ordre par l’application voulue ;
elle utilise des mécanismes de gestion des erreurs.
Objectifs pédagogiques À l’issue de ce chapitre, vous serez en mesure d’effectuer les tâches suivantes :
Expliquer l’utilité de la couche transport.
Définir le rôle de la couche transport en matière de transfert, de bout en bout, de données
entre applications.
Décrire le rôle de deux protocoles utilisés par la couche transport TCP/IP, à savoir les
protocoles TCP et UDP.
Citer les principales fonctions de la couche transport, y compris en matière de fiabilité,
d’adressage de ports et de segmentation.
Expliquer comment les protocoles TCP et UDP gèrent, chacun, des fonctions clés.
Reconnaître les situations où l’utilisation des protocoles TCP ou UDP s’impose et fournir des
exemples d’applications utilisant chacun de ces protocoles.
52
4.1 Rôle de la couche transport
4.1.1 Objectifs de la couche transport Au niveau de la couche transport, chaque ensemble de blocs transitant entre une application source
et une application de destination est appelé une conversation.
La couche transport segmente les données et se charge du contrôle nécessaire au réassemblage de
ces blocs de données dans les divers flux de communication. Pour ce faire, il doit :
effectuer un suivi des communications individuelles entre les applications résidant sur les
hôtes source et de destination ;
segmenter les données et gérer chaque bloc individuel ;
réassembler les segments en flux de données d’application ;
identifier les différentes applications.
Suivi des conversations individuelles
Tout hôte peut héberger plusieurs applications qui communiquent sur le réseau. Chacune de ces
applications communique avec une ou plusieurs applications hébergées sur des hôtes distants. Il
incombe à la couche transport de gérer les nombreux flux de communication entre ces applications
(voir figure 1).
Segmentation des données
Chaque application crée un flux de données à envoyer vers une application distante ; ces données
doivent donc être préparées pour être expédiées sur le support sous forme de blocs faciles à gérer.
Reconstitution des segments
L’hôte recevant les blocs de données peut les diriger vers l’application appropriée. Il faut en outre
que ces blocs de données individuels puissent être réassemblés dans un flux de données complet
utile à la couche application.
Identification des applications
Pour que les flux de données atteignent les applications auxquelles ils sont destinés, la couche
transport doit identifier l’application cible. Pour cela, la couche transport affecte un identificateur à
chaque application. Les protocoles TCP/IP appellent cet identificateur un numéro de port. Chaque
processus logiciel ayant besoin d’accéder au réseau se voit affecter un numéro de port unique sur
son hôte. Ce numéro de port est inclus dans l’en-tête de transport afin de préciser à quelle
application ce bloc de données est associé.
En outre, les couches inférieures ignorent que plusieurs applications envoient des données sur le
réseau. Leur responsabilité se limite à livrer les données au périphérique approprié. La couche
transport trie ensuite ces blocs avant de les acheminer vers l’application voulue.
53
Figure 1 : Suivi de conversations
4.1.2 Contrôle des conversations Tous les protocoles de la couche transport ont des fonctions essentielles communes :
Segmentation et reconstitution. La plupart des réseaux limitent la quantité de données
pouvant être incluses dans une même unité de données de protocole. La couche transport
divise les données d’application en blocs de données d’une taille adéquate. Une fois ces
blocs parvenus à destination, la couche transport réassemble les données avant de les
envoyer vers l’application ou le service de destination.
Multiplexage de conversations. De nombreux services ou applications peuvent s’exécuter
sur chaque hôte sur le réseau. Une adresse, appelée port, est affectée à chacun de ces
services ou applications afin que la couche transport puisse déterminer à quel service ou
application les données se rapportent.
Dans le cadre des fonctions essentielles que sont la segmentation et la reconstitution des données, la
couche transport fournit, en plus des informations contenues dans les en-têtes :
des conversations avec connexion ;
un acheminement fiable ;
une reconstitution ordonnée des données ;
un contrôle du flux.
Établissement d’une session
La couche transport est en mesure d’orienter la connexion en créant des sessions entre les
applications. Ces connexions préparent les applications à communiquer entre elles avant le transfert
des données. Dans ces sessions, il est possible de gérer avec précision les données d’une
communication entre deux applications.
54
Acheminement fiable
Bien des circonstances peuvent entraîner la corruption ou la perte d’un bloc de données lors de son
transfert sur le réseau. La couche transport veille à ce que tous les blocs atteignent leur destination
en demandant au périphérique source de retransmettre les données qui ont pu se perdre.
Livraison dans un ordre défini
Étant donné que les réseaux fournissent une multitude de routes dont les délais de transmission
varient, il se peut que les données arrivent dans le désordre. En numérotant et en ordonnant les
segments, la couche transport s’assure que ces segments sont réassemblés dans le bon ordre.
Contrôle du flux
Les hôtes du réseau disposent de ressources limitées, par exemple en ce qui concerne la mémoire ou
la bande passante. Quand la couche transport détermine que ces ressources sont surexploitées,
certains protocoles peuvent demander à l’application qui envoie les données d’en réduire le flux. Le
contrôle du flux contribue à prévenir la perte de segments sur le réseau et à rendre inutiles les
retransmissions.
4.1.3 Prise en charge des communications fiables Souvenez-vous que la fonction première de la couche transport est de gérer les données
d’application des conversations entre hôtes. Cependant, des applications différentes ont des
exigences différentes pour leurs données, de sorte que des protocoles de transport différents ont été
développés afin de satisfaire ces exigences.
Un protocole de couche transport est en mesure d’assurer l’acheminement fiable des données. Dans
le contexte des réseaux, la fiabilité consiste à veiller à ce que chaque bloc de données envoyé par la
source parvienne à destination. Au niveau de la couche transport, les trois opérations de base en
matière de fiabilité consistent à :
effectuer le suivi des données transmises ;
accuser réception des données ;
retransmettre toute donnée n’ayant pas fait l’objet d’un reçu.
Ces processus assurant la fiabilité augmentent la surcharge des ressources du réseau du fait des
opérations de reçu, de suivi et de retransmission.
Il s’établit ainsi un compromis entre la valeur accordée à la fiabilité et la charge qu’elle représente
sur le réseau. Les développeurs d’appl ications doivent déterminer quel type de protocole de
transport est approprié en fonction des exigences de leurs applications. Au niveau de la couche
transport, il existe des protocoles qui précisent des méthodes choisies pour leur fiabilité (protocole
TCP) ou leur acheminement au mieux (protocole UDP). Dans le contexte des réseaux,
l’acheminement au mieux est considéré comme n’étant pas fiable car aucun reçu ne confirme que les
données sont arrivées à destination (voir figure 2).
Détermination du besoin de fiabilité
Certaines applications, comme les bases de données, les pages Web et les courriels, ont besoin que
toutes les données envoyées arrivent à destination dans leur état d’origine afin que ces données
soient utiles. Toute donnée manquante risque de corrompre la communication en la rendant
incomplète ou illisible. Cependant, ces applications sont conçues pour utiliser un protocole de
55
couche transport qui implémente la fiabilité. On considère que cette surcharge supplémentaire pour
le réseau est indispensable pour ces applications.
D’autres applications tolèrent mieux la perte de petites quantités de données. Si, par exemple, un ou
deux segments d’une lecture vidéo n’arrivent pas, cela ne fera que créer une interruption
momentanée du flux. Ceci pourra se traduire par une distorsion de l’image que l’utilisateur ne
remarquera peut-être même pas.
Imposer une surcharge pour garantir la fiabilité de cette application risquerait de réduire l’utilité de
l’application. L’image produite par une lecture vidéo en continu serait fortement dégradée si le
périphérique de destination devait rendre compte des données perdues et retarder la lecture en
continu le temps qu‘elles arrivent. Mieux vaut assurer un rendu aussi bon que possible de l’image à
l’aide des segments qui arrivent et renoncer à la fiabilité.
Figure 2 : Propriétés des protocoles
4.1.4 TCP/UDP Les deux protocoles de la suite de protocoles TCP/IP les plus couramment employés sont le protocole
TCP (Transmission Control Protocol) et le protocole UDP (User Datagram Protocol). Ces deux
protocoles gèrent les communications de nombreuses applications. Ce sont les fonctions spécifiques
implémentées par chaque protocole qui les différencient.
Protocole UDP (User Datagram Protocol)
Le protocole UDP est un protocole simple. Il présente l’avantage d’imposer peu de surcharge pour
l’acheminement des données. Les blocs de communications utilisés dans le protocole UDP sont
appelés des datagrammes. Ces datagrammes sont envoyés « au mieux » par ce protocole de couche
transport.
Le protocole UDP est notamment utilisé par des applications de :
Système de noms de domaine (DNS)
Lecture vidéo en continu
Voix sur IP (VoIP)
56
Protocole TCP (Transmission Control Protocol)
Le protocole TCP impose une surcharge pour accroître les fonctionnalités. Le protocole TCP spécifie
d’autres fonctions, à savoir la livraison dans l’ordre, l’acheminement fiable et le contrôle du flux.
Chaque segment du protocole TCP utilise 20 octets de surcharge dans l’en-tête pour encapsuler les
données de la couche application alors que chaque segment du protocole UDP n’ajoute sur 8 octets
de surcharge. Examinez le tableau comparatif à la figure 3.
Le protocole TCP est utilisé par des applications de :
Navigateurs Web
Courriel
Transfert de fichiers
Figure 3 : Entête TCP/UDP
4.1.5 Adressage de ports
Identification des conversations
Reprenons l’exemple précédent d’un ordinateur envoyant et recevant simultanément des courriels,
des messages instantanés, des pages Web et un appel de voix sur IP.
Pour différencier les segments et les datagrammes de chaque application, les protocoles TCP et UDP
utilisent chacun des champs d’en-tête identifiant ces applications de façon unique. Ces
identificateurs uniques sont les numéros de port.
Lorsqu’une application cliente envoie une requête à une application serveur, le port de destination
inclus dans l’en-tête est le numéro de port affecté au démon du service s’exécutant sur l’hôte
distant. Le logiciel client doit savoir quel numéro de port est associé au processus serveur sur l ’hôte
distant. Ce numéro de port de destination est configuré par défaut ou manuellement. Ainsi, quand
une application de navigateur Web envoie une requête à un serveur Web, le navigateur utilise le
protocole TCP et le port numéro 80. Ceci est dû au fait que le port 80 du protocole TCP est le port
affecté par défaut aux applications de service Web. De nombreuses applications courantes ont des
ports qui leur sont affectés par défaut.
57
Le port source d’un en-tête de segment ou de datagramme d’une requête de client est généré de
façon aléatoire. Du moment que le numéro de port n’entre pas en conflit avec d’autres ports utilisés
par le système, le client peut choisir n’importe quel numéro de port. Le numéro de port fait office
d’adresse de retour pour l’application envoyant la requête. La couche transport effectue le suivi du
port et de l’application à l’origine de la requête afin que la réponse, quand elle sera envoyée, soit
transmise à l’application appropriée. Le numéro de port de l’application envoyant la requête sert de
numéro de port de destination dans la réponse renvoyée depuis le serveur.
L'Internet Assigned Numbers Authority (IANA) attribue les numéros de ports. L’IANA est une agence
de normalisation responsable de l’affectation de diverses normes d’adressage.
Il existe différents types de numéros de ports :
Ports réservés (numéros 0 à 1023). Ces numéros sont réservés à des services et applications.
Ils sont généralement réservés à des applications de type HTTP (serveur Web), POP3/SMTP
(serveur de messagerie) et Telnet.
Ports inscrits (numéros 1024 à 49151). Ces numéros de ports sont affectés à des processus
ou applications d’utilisateurs. Ces processus sont essentiellement des applications
particulières qu’un utilisateur a choisi d’installer plutôt que des applications courantes qui
recevraient un port réservé.
Utilisation du protocole TCP et du protocole UDP
Certaines applications utilisent le protocole TCP et le protocole UDP. En effet, la faible surcharge du
protocole UDP permet au service DNS de gérer très rapidement de nombreuses requêtes de clients.
Parfois, cependant, l’envoi des informations demandées exige la fiabilité du protocole TCP. Dans ce
cas, le port réservé 53 est utilisé par les deux protocoles en association avec ce service.
Liens
Vous trouverez une liste des numéros de ports actuels sur le site :
http://www.iana.org/assignments/port-numbers
4.1.6 Segmentation et reconstitution : diviser et conquérir Dans un chapitre précédent, nous vous avons expliqué que les unités de données de protocole sont
élaborées en faisant transiter les données d’une application par divers protocoles afin de créer des
unités de données de protocole qui sont ensuite transmises sur le support. Une fois les données
parvenues sur l’hôte de destination, le processus est inversé jusqu’à ce que les données puissent être
communiquées à l’application.
Certaines applications transmettent de très importants volumes de données pouvant parfois
atteindre plusieurs gigaoctets. Transmettre l’ensemble de ces données en un envoi massif serait peu
pratique car aucun autre trafic ne pourrait être transmis sur le réseau pendant l’envoi de ces
données. De plus, l’envoi d’une grosse quantité de données peut prendre de plusieu rs minutes à
plusieurs heures. En outre, si une erreur se produisait, l’ensemble du fichier de données serait perdu
ou devrait être réexpédié. La mémoire tampon des périphériques réseau ne serait pas suffisante
pour stocker autant de données pendant leur transmission ou leur réception. La limite varie selon la
technologie réseau employée et le support physique particulier qui est utilisé.
58
Diviser les données d’application en blocs permet de s’assurer que les données sont transmises en
tenant compte des limites du support et que les données provenant d’applications différentes
peuvent faire l’objet d’un multiplexage sur le support.
Les protocoles TCP et UDP traitent différemment la segmentation.
Avec le protocole TCP, chaque en-tête de segment contient un numéro d’ordre. Ce numéro d’ordre
permet aux fonctions de la couche transport, au niveau de l’hôte de destination, de réassembler les
segments dans l’ordre de leur envoi. L’application de destination peut ainsi disposer des données
sous la forme exacte voulue par l’expéditeur.
Bien que les services utilisant le protocole UDP effectuent également un suivi des conversations
entre les applications, ils ne prêtent pas attention à l’ordre dans lequel les informations ont été
transmises ni au maintien de la connexion. Un en-tête UDP ne contient pas de numéro d’ordre. La
conception du protocole UDP est plus simple et produit moins de surcharge que le protocole TCP, de
sorte que le transfert de données est plus rapide.
Il se peut que les informations arrivent dans un ordre différent de celui dans lequel elles ont été
transmises car les différents paquets peuvent emprunter plusieurs chemins sur le réseau. Les
applications qui utilisent le protocole UDP doivent tolérer le fait que les données peuvent arriver
dans un ordre différent de celui dans lequel elles ont été envoyées.
4.2 Protocole TCP : des communications fiables
4.2.1 Fiabilisation des conversations La fiabilité est le principal élément différentiateur entre les protocoles TCP et UDP. La fiabilité des
communications TCP est assurée à l’aide de sessions avec connexion. Avant qu’un hôte utilisant le
protocole TCP n’envoie de données à un autre hôte, la couche transport initie un processus destiné à
établir une connexion avec la destination. Cette connexion rend possible le suivi d’une session, ou
d’un flux de communication, entre les hôtes. Ce processus veille à ce que chaque hôte soit notifié de
la communication et qu’il y soit prêt. Une conversation TCP complète exige l’établissement d’une
session entre les hôtes dans les deux directions.
Lorsqu’une session a été établie, la destination envoie des reçus à la source pour les segments qu’elle
reçoit. Ces reçus constituent l’élément de base de la fiabilité dans la session TCP. Quand la source
reçoit un reçu, elle sait que les données ont bien été livrées et qu’elle peut cesser d’en effectuer le
suivi. Si la source ne reçoit pas de reçu dans un délai prédéterminé, elle retransmet ces données vers
la destination.
La surcharge provoquée par l’utilisation du protocole TCP provient en partie du trafic réseau généré
par les reçus et les retransmissions. L’établissement des sessions crée une surcharge prenant la
forme d’un échange supplémentaire de segments. Une surcharge supplémentaire provoquée par la
nécessité d’effectuer un suivi des segments pour lesquels on attend un reçu et par le processus de
retransmission pèse également sur les hôtes individuels.
La fiabilité est assurée par le recours à des champs du segment TCP qui ont, chacun, une fonction
précise ainsi que l’illustre la figure 4.
59
Figure 4 : Les champs de l’entête TCP
Le numéro de port source (16 bits) contient le numéro de port de l’application source.
Le numéro de port destination (16 bits) contient le numéro de port de l’application
destination.
Le numéro d’ordre (32 bits) contient le nombre des bits envoyés plus 1.
Le numéro de reçu (32 bits) peut importe son contenu si le segment est un segment de
données. Et il contient le numéro du prochain bit à recevoir si le segment est un accuse de
réception.
Longueur d’E-T (4 bits) contient la longueur exacte de l’entête TCP du segment envoyé.
Indicateurs ou bits de code ou bits de contrôle (6 bits) est une séquence de bits indiquant le
type du segment envoyé.
Taille de fenêtre (16 bits) indique le nombre de segment à recevoir avant d’envoyer un
accusé de réception.
La somme de contrôle (16 bits) contient la somme de tous les octets de segments ce qui
permet de vérifier à la réception s’il ya eu erreur de transmission (c’est-à-dire changement
de bits).
4.2.2 Processus serveur TCP Chaque processus applicatif qui s’exécute sur le serveur est configuré par défaut, ou manuellement
par un administrateur système, pour utiliser un numéro de port. Deux services ne peuvent pas être
affectés au même numéro de port d’un serveur particulier au sein des mêmes services de la couche
transport. Il est impossible qu’une application de serveur Web et une application de transfert de
fichiers s’exécutant sur un hôte soient toutes deux configurées pour utiliser le même port. Quand
une application de serveur active est affectée à un port spécifique, on considère que ce port est
« ouvert » sur le serveur. Ceci signifie que la couche transport accepte et traite les segments adressés
à ce port. Toute demande entrante d’un client qui est adressée à l’interface de connexion correcte
est acceptée et les données sont transmises à l’application de serveur. De nombreux ports peuvent
être ouverts simultanément sur un serveur, chacun étant destiné à une application de serveur active.
60
Il est courant qu’un serveur fournisse plusieurs services simultanément, par exemple en tant que
serveur Web et en tant que serveur Messagerie.
Limiter l’accès au serveur aux seuls ports associés aux services et applications devant être accessibles
aux demandeurs autorisés est un moyen d’améliorer la sécurité sur le serveur.
La figure 5 illustre l’affectation typique de ports source et de destination dans des opérations
clients/serveurs TCP.
Figure 5 : affectation de ports source et destination
4.2.3 Etablissement et fermeture d’une connexion TCP Lorsque deux hôtes communiquent à l’aide de TCP, une connexion est établie avant que les données
ne puissent être échangées. Une fois la communication terminée, les sessions sont fermées et il est
mis fin à la connexion. Les mécanismes de connexion et de sessions permettent la fonction de
fiabilité de TCP.
L’hôte effectue un suivi de chaque segment de données au sein d’une session et échange des
informations sur les données reçues par chaque hôte grâce aux informations contenues dans l’en-
tête TCP.
Chaque connexion représente deux flux de communications, ou sessions, unidirectionnels. Pour
établir la connexion, l’hôte effectue une connexion en trois étapes. Les bits de contrôle de l’en -tête
TCP indiquent la progression et l’état de la connexion.
Dans les connexions TCP, l’hôte client initie la session auprès du serveur. Les trois étapes de
l’établissement d’une connexion TCP sont les suivantes (voir figure 6) :
1. Le client envoie au serveur un segment contenant un numéro d’ordre initial (SEQ) sous forme
de requête afin de commencer une session de communication.
2. Le serveur répond par un segment contenant un numéro de reçu (ACK) égal au numéro
d’ordre reçu plus 1, ainsi que son propre numéro d’ordre de synchronisation. Le numéro de
reçu permet au client de relier la réponse au segment d’origine envoyé au serveur.
3. Le client initiant la session répond par un numéro de reçu égal au numéro d’ordre reçu plus
un. Ceci achève le processus d’établissement de la connexion.
61
Pour comprendre le processus de connexion en trois étapes, il convient d’examiner les différentes
valeurs échangées par les deux hôtes. Dans l’en-tête du segment TCP se trouvent six champs de 1 bit
contenant des informations de contrôle (appelés bits de contrôle dans la figure 3 et indicateurs dans
la figure 4) qui servent à gérer les processus TCP. Il s’agit des champs :
URG : pointeur de données urgentes valide
ACK : champ de reçu valide
PSH : fonction de livraison des données sans attendre le remplissage des tampons (Push)
RST : réinitialisation de la connexion
SYN : synchronisation des numéros d’ordre
FIN : plus d’envoi de données par l’expéditeur
Ces champs sont appelés des indicateurs car la valeur de chaque champ n’est que de 1 bit et que,
donc, ils ne peuvent prendre que deux valeurs, à savoir 1 ou 0. Quand une valeur de bit est définie
sur 1, ceci indique le type d’informations de contrôle contenues dans le segment.
Exemples :
La séquence 010000 indique que ce segment est un accusé de réception (ACK).
La séquence 000010 indique que ce segment est une requête de synchronisation (SYN).
La séquence 010010 indique que ce segment est une requête de synchronisation (SYN) + est
un accusé de réception (ACK).
La séquence 000001 indique que ce segment est une requête de fin de session (FIN).
Figure 6 : Etablissement d’une connexion
Un processus en quatre étapes permet d’échanger les indicateurs pour mettre fin à une connexion
TCP (voir figure 7).
62
1. Le client envoie au serveur un segment contenant un numéro d’ordre (SEQ) sous forme de
demandant de fin de session.
2. Le serveur répond par un segment contenant un numéro de reçu (ACK) égal au numéro
d’ordre reçu plus 1 en attendant qu’il termine la réception des segments.
3. Une fois touts les segments sont reçus, le serveur envoie à son tour une demande de fin de
session.
4. Le client répond par un numéro de reçu égal au numéro d’ordre reçu plus un. Ceci achève le
processus de fin de connexion.
Figure 7 : Fermeture d’une connexion
4.3 Gestion des sessions TCP
4.3.1 Réassemblage des segments TCP
Réordonnancement des segments dans l’ordre de leur transmission
Quand des services envoient des données à l’aide du protocole TCP, il arrive que les segments
parviennent à destination dans le désordre. Pour que le destinataire puisse comprendre le message
d’origine, il faut que les données contenues dans ces segments soient réagencées dans leur ordre
d’origine. Pour cela, des numéros d’ordre sont affectés à l’en-tête de chaque paquet.
Lors de la configuration de la session, un numéro d’ordre initial, ou ISN, est défini. Ce numéro d’ordre
initial représente la valeur de départ des octets de cette session qui seront transmis à l’application
réceptrice. Lors de la transmission des données pendant la session, le numéro d’ordre est incrémenté
du nombre d’octets ayant été transmis. Ce suivi des octets de données permet d’identifier chaque
segment et d’en accuser réception individuellement. Il est ainsi possible d’identifier les segments
manquants.
Les numéros d’ordre des segments permettent la fiabilité en indiquant comment réassembler et
réordonnancer les segments reçus, ainsi que l’illustre la figure 8.
Le processus TCP récepteur place les données d’un segment dans une mémoire tampon de
réception. Les segments sont remis dans l’ordre correct et sont transmis à la couche application une
63
fois qu’ils ont été réassemblés. Tous les segments reçus dont les numéros d’ordre ne sont pas
contigus sont conservés en vue d’un traitement ultérieur. Puis ces segments sont traités quand les
segments contenant les octets manquants sont reçus.
Figure 8 : Réorganisation des segments TCP
4.3.2 Reçu TCP avec fenêtrage
Confirmation de la réception des segments
L’une des fonctions de TCP est de veiller à ce que chaque segment atteigne sa destination. Les
services TCP sur l’hôte de destination accusent réception des données reçues à l’application source.
Le numéro d’ordre et le numéro de reçu de l’en-tête du segment sont utilisés ensemble pour
confirmer la réception des octets de données contenus dans les segments. Le numéro d’ordre est le
nombre relatif d’octets qui ont été transmis dans cette session plus 1 (qui est le numéro du premier
octet de données dans le segment actuel). TCP utilise le numéro de reçu des segments renvoyés à la
source pour indiquer l’octet suivant de cette session que le récepteur s’attend à recevoir. C’est ce
que l’on appelle un reçu prévisionnel.
La source est informée que la destination a reçu tous les octets de ce flux de données jusqu’à l’octet
indiqué par le numéro de reçu, mais sans inclure ce dernier. L’hôte expéditeur est censé envoyer un
segment qui utilise un numéro d’ordre égal au numéro de reçu.
Souvenez-vous qu’en fait chaque connexion est composée de deux sessions unidirectionnelles. Les
numéros d’ordre et les numéros de reçu sont échangés dans les deux sens.
Dans l’exemple de la figure 9, l’hôte de gauche envoie des données à l’hôte de droite. Il envoie un
segment contenant 10 octets de données pour cette session et un numéro d’ordre égal à 1 dans l’en-
tête.
64
Figure 9 : échange des numéros d’ordre et des numéros de reçu
L’hôte récepteur sur la droite reçoit le segment au niveau de la couche 4 et détermine que le numéro
d’ordre est 1 et qu’il y a 10 octets de données. L’hôte renvoie alors un segment à l’hôte de gauche
pour accuser réception de ces données. Dans ce segment, l’hôte définit le numéro de reçu à 11 pour
indiquer que le prochain octet de données qu’il s’attend à recevoir dans cette session est l’octet
numéro 11.
Quand l’hôte émetteur sur la gauche reçoit ce reçu, il peut envoyer le segment suivant contenant des
données pour cette session commençant par l’octet numéro 11.
Dans notre exemple, si l’hôte émetteur devait attendre un reçu pour chaque ensemble de 10 octets
reçu, le réseau subirait une forte surcharge. Pour réduire la surcharge de ces reçus, plusieurs
segments de données peuvent être envoyés à l’avance et faire l’objet d’un reçu par un unique
message TCP en retour. Ce reçu contient un numéro de reçu basé sur le nombre total d’octets reçus
dans la session.
Prenons l’exemple d’un numéro d’ordre de début égal à 2001. Si 10 segments de 1000 octets chacun
étaient reçus, un numéro de reçu de 12001 serait renvoyé à la source.
La quantité de données qu’une source peut transmettre avant de devoir recevoir un reçu est appelée
la taille de fenêtre. La taille de fenêtre est un champ de l’en-tête TCP qui permet de gérer les
données perdues et le contrôle du flux.
4.3.3 Retransmission TCP
Traitement des pertes de segments
Tous les réseaux, même les mieux conçus, connaissent parfois des pertes de données. Le protocole
TCP fournit donc des méthodes de traitement de ces pertes de segments. Parmi elles se trouve un
mécanisme de retransmission des segments contenant des données sans reçu.
65
En général, un service sur l’hôte de destination utilisant le protocole TCP ne génère de reçu que pour
les séquences contiguës d’octets. Si un ou plusieurs segments sont manquants, seules les données
des segments qui complètent le flux donnent lieu à l’émission de reçus.
Par exemple, en cas de réception des segments dont les numéros d’ordre vont de 2001 à 4000 et de
6001 à 12000, le numéro du reçu sera 4001. Ceci s’explique par le fait que certains segments n’ont
pas été reçus entre les numéros d’ordre 4001 et 12000.
Quand le protocole TCP sur l’hôte source n’a pas reçu de reçu après un délai prédéterminé, il revient
au dernier numéro de reçu et retransmet les données depuis ce point.
Dans une implémentation TCP classique, un hôte peut transmettre un segment, placer une copie du
segment dans une file d’attente de retransmission et lancer un minuteur. Quand le reçu des données
est reçu, le segment est supprimé de la file d’attente. Si le reçu n’est pas reçu avant l’écoulement du
délai prévu, le segment est retransmis.
4.3.4 Contrôle de l’encombrement sur TCP – Réduction de la perte de
segments
Contrôle de flux
Le protocole TCP inclut également des mécanismes de contrôle de flux. Le contrôle de flux contribue
à la fiabilité des transmissions TCP en réglant le taux effectif de flux de données entre les deux
services de la session. Quand la source est informée que la quantité de données spécifiée dans les
segments a été reçue, elle peut continuer à envoyer plus de données pour cette session.
Ce champ Taille de fenêtre dans l’en-tête TCP précise la quantité de données pouvant être transmise
avant qu’il ne soit nécessaire de recevoir un reçu. La taille de fenêtre initiale est déterminée lors du
démarrage de la session.
Le mécanisme de retour d’information TCP règle le taux de transmission effectif des données sur le
flux maximum que le réseau et le périphérique de destination peuvent prendre en charge sans perte.
Le TCP s’efforce de gérer le taux de retransmission de façon à ce que toutes les données soient
reçues et que les retransmissions soient limitées au maximum.
La figure 10 présente une représentation simplifiée de la taille de fenêtre et des reçus. Dans cet
exemple, la taille de fenêtre initiale d’une session TCP représentée est définie à 3000 octets. Lorsque
l’expéditeur a transmis 3000 octets, il attend le reçu de ces octets avant de transmettre d’autres
segments de cette session.
Une fois que l’expéditeur a reçu le reçu du destinataire, il peut transmettre 3000 octets
supplémentaires.
Pendant le délai d’attente de réception du reçu, l’expéditeur n’enverra pas de segment
supplémentaire pour cette session. Quand le réseau est encombré ou que les ressources de l’hôte
récepteur subissent une forte pression, le délai peut augmenter. Plus ce délai s’allonge, plus le taux
de transmission effectif des données de cette session diminue. La diminution du taux de transfert des
données contribue à réduire les conflits d’utilisation des ressources.
66
Figure 10 : Taille des fenêtres et reçus
Réduction de la taille de fenêtre
L’utilisation de tailles de fenêtres dynamiques permet également de contrôler le flux de données.
Quand les ressources réseau sont soumises à de fortes contraintes, le protocole TCP peut réduire la
taille de fenêtre afin d’imposer l’envoi plus fréquent de reçus pour les segments reçus. Ceci a pour
effet de ralentir le taux de transmission car la source attend des reçus des données plus fréquents.
L’hôte TCP destinataire envoie la valeur de la taille de fenêtre à l’expéditeur TCP afin de lui indiquer
le nombre d’octets qu’il est préparé à recevoir dans le cadre de cette session. Si la destination doit
ralentir le taux de communication parce que la mémoire tampon est limitée, elle peut envoyer une
valeur de taille de fenêtre plus petite à la source en l’intégrant à un reçu.
Comme l’illustre la figure 11, si un hôte récepteur subit un encombrement, il peut répondre à l’hôte
expéditeur avec un segment dont la taille de fenêtre est réduite. Ce graphique montre que l’un des
segments a été perdu. Dans cette conversation, le destinataire a changé le champ de fenêtre dans
l’en-tête TCP des segments renvoyés en le ramenant de 3000 à 1500. L’expéditeur a donc été obligé
de réduire la taille de fenêtre à 1500.
Quand un certain temps se sera écoulé sans perte de données ni contraintes excessives sur les
ressources, le destinataire pourra recommencer à augmenter la taille de fenêtre. Ceci réduit la
surcharge du réseau car un moins grand nombre de reçus doit être envoyé. La taille de fenêtre
continuera à augmenter jusqu’à ce que des données soient à nouveau perdues, ce qui entraînera une
réduction de la taille de fenêtre.
Ces augmentations et réductions dynamiques de la taille de fenêtre constituent un processus continu
dans le protocole TCP, processus qui détermine la taille de fenêtre optimale pour chaque session
TCP. Dans les réseaux très efficaces, les tailles de fenêtres peuvent augmenter beaucoup car les
données ne sont pas perdues. Sur les réseaux dont l’infrastructure sous-jacente est soumise à
beaucoup de contraintes, la taille de la fenêtre demeurera probablement réduite.
67
Liens
Vous pourrez trouver des informations détaillées sur les différentes fonctions de gestion de
l’encombrement du protocole TCP dans le document RFC 2581.
http://www.ietf.org/rfc/rfc2581.txt
Figure 11 : Réduction de la taille de fenêtre
4.4 Protocole UDP : des communications avec peu de surcharge
4.4.1 UDP : faible surcharge contre fiabilité Le protocole UDP est un protocole simple offrant des fonctions de couche transport de base. Il crée
beaucoup moins de surcharge que le protocole TCP car il est sans connexion et ne propose pas de
mécanismes sophistiqués de retransmission, de séquençage et de contrôle de flux.
Mais cela ne signifie pas que les applications utilisant le protocole UDP manquent toujours de
fiabilité. Cela signifie simplement que ces fonctions ne sont pas fournies par le protocole de la
couche transport et qu’elles doivent être implémentées à un autre niveau, le cas échéant.
Bien que le volume total de trafic UDP trouvé sur un réseau typique soit relativement faible, des
protocoles importants de la couche application utilisent le protocole UDP, notamment :
DNS (Domain Name System)
SNMP (Simple Network Management Protocol)
DHCP (Dynamic Host Configuration Protocol)
RIP (Routing Information Protocol)
TFTP (Trivial File Transfer Protocol)
Jeux en ligne
Certaines applications, comme les jeux en ligne ou la voix sur IP, peuvent tolérer la perte d’une
certaine quantité de données. Si ces applications utilisaient le protocole TCP, elles risqueraient d’être
confrontées à de longs délais pendant que le protocole TCP détecterait les pertes de données et
68
retransmettrait les données. Ces délais seraient plus préjudiciables à l’application que la perte d’une
petite quantité de données. Certaines applications, comme le système DNS, se contentent
simplement de répéter leur requête si elles ne reçoivent pas de réponse. Elles n’ont donc pas besoin
du protocole TCP pour garantir la livraison du message.
La faible surcharge qu’engendre le protocole UDP rend celui-ci très intéressant pour de telles
applications.
4.4.2 Réassemblage des datagrammes UDP Comme le protocole UDP n’utilise pas de connexion, les sessions ne sont pas établies avant que la
communication n’ait lieu comme c’est le cas avec le protocole TCP. Le protocole UDP est connu pour
être un protocole basé sur les transactions. En d’autres termes, quand une application doit envoyer
des données, elle les envoie tout simplement.
De nombreuses applications utilisant le protocole UDP envoient de petites quantités de données
pouvant tenir dans un seul segment. Cependant, certaines applications envoient des volumes de
données plus importants qui doivent être découpés en plusieurs segments. L’unité de données de
protocole UDP est appelée un datagramme, bien que les termes segment et datagramme soie nt
souvent utilisés l’un pour l’autre pour décrire une unité de données de protocole de la couche
transport.
Quand plusieurs datagrammes sont envoyés vers une destination, ils peuvent emprunter des
chemins différents et arriver dans le désordre. Le protocole UDP n’effectue pas de suivi des numéros
d’ordre comme le fait le protocole TCP. Il n’a en effet aucun moyen de réordonnancer les
datagrammes pour leur faire retrouver leur ordre de transmission d’origine. Consultez la figure 12.
Le protocole UDP se contente donc de réassembler les données dans l’ordre dans lequel elles ont été
reçues, puis de les transmettre à l’application. Si l’application attache une grande importance à
l’ordre des données, elle devra identifier l’ordre correct des données et déterminer leur mode de
traitement.
Figure 12 : Le protocole UDP n’effectue pas de suivi des numéros d’ordre
69
4.4.3 Processus et requêtes des serveurs UDP Comme c’est le cas avec des applications basées sur le protocole TCP, des numéros de ports réservés
sont affectés aux applications serveur basées sur le protocole UDP. Quand ces applications ou
processus s’exécutent, ils ou elles acceptent les données correspondant au numéro de port attribué.
Quand le protocole UDP reçoit un datagramme destiné à l’un de ces ports, il transmet les données
applicatives à l’application appropriée d’après son numéro de port.
4.4.4 Processus des clients UDP Comme c’est le cas avec le protocole TCP, la communication entre le client et le serveur est initiée
par une application cliente qui demande des données à un processus serveur. Le processus client
UDP sélectionne un numéro de port aléatoire dans une plage dynamique de numéros de ports et il
l’utilise comme port source pour la conversation. Le port de destination est généralement le numéro
de port réservé affecté au processus serveur.
Le choix aléatoire des numéros de ports source présente également un avantage en matière de
sécurité. Quand il existe un modèle prévisible de sélection du port de destination, il est plus facile
pour un intrus de simuler un accès à un client en tentant de se connecter au numéro de port le plus
susceptible d’être ouvert.
Étant donné que le protocole UDP ne crée pas de session, dès que les données sont prêtes à être
envoyées et que les ports sont identifiés, il peut créer le datagramme et le soumettre à la couche
réseau pour son adressage et son envoi sur le réseau.
Souvenez-vous qu’une fois qu’un client a choisi le port source et le port de destination, la même
paire de port est utilisée dans l’en-tête de tous les datagrammes utilisés dans la transaction. Quand
des données sont renvoyées du serveur vers le client, les numéros de port source et de port de
destination sont inversés dans l’en-tête du datagramme.