Cours : Rappels sur l'interconnexion de réseau et le protocole TCP/IP

1 Le modèle client – serveur

1.1 Introduction

 
 
Le modèle de communication client – serveur est un modèle de communication asymétrique. D'un côté, le serveur ouvre un service et attend des requêtes provenant de clients. Pour chacune de ces requêtes, le serveur effectue un traitement puis renvoie une réponse. De l'autre côté, le client émet des requêtes, puis attend la réponse du serveur. Le client et le serveur étant placés sur des machines différentes, la communication entre ces deux entités s'effectue par messages.

1.2 Les différents types de serveur

 
 
Il est possible de caractériser un serveur selon deux critères :
Définition : Serveur itératif
Un serveur itératif est un serveur qui ne peut traiter qu'une seule requête client à la fois. Il est composé d'un processus unique qui effectue les opérations de réception de requêtes, de traitement de requêtes et d'émission des réponses.
Définition : Serveur parallèle
Un serveur parallèle est un serveur qui peut traiter plusieurs requêtes client à la fois. Il est composé d'un processus père qui effectue les opérations de réception de requêtes et pour chaque requête reçue, d'un processus fils qui effectue le traitement de la requête et l'émission de la réponse.
Définition : Serveur sans état
Un serveur sans état est un serveur qui ne conserve aucune informations sur les requêtes en cours de traitements. C'est un serveur sans mémoire qui en cas de panne, repart "à zéro".
Définition : Serveur à états
Un serveur à état est un serveur qui conserve, sur un support non volatile, des informations sur les requêtes en cours de traitements. C'est un serveur à mémoire qui en cas de panne, peut restaurer une partie de son état au moment de la panne et reprendre des requêtes en cours.

2 L'interconnexion de réseau

 
 
L’interconnexion de réseaux a pour but d’interconnecter entre eux des réseaux hétérogènes. Le but recherché est de créer un réseau virtuel qui masque complètement les réseaux physiques empruntés. Une machine M1 dialoguant avec une machine M2 passe par différents réseaux physiques sans en avoir conscience. Le masquage des réseaux physiques empruntés suppose de disposer de deux éléments :
  • Il faut un adressage des différentes machines appartenant au réseau virtuel construit indépendamment de l’adressage physique particulier à chaque réseau traversé : C’est l’adressage IP.
  • Il faut un protocole de trans port de bout en bout permettant d’acheminer les données d’une machine M1 vers la machine M2 à travers le réseau virtuel : c’est la pile de protocoles TCP/IP.

2.1 L’adressage IP dans le réseau virtuel

 
 
Dans le réseau virtuel, une machine est désignée par une adresse que l’on appelle l’adresse IP. Une adresse IP est un entier 32 bits divisé en deux parties : une partie adresse du réseau et une partie adresse de la machine dans le réseau. Comme le montre la figure ci-dessous, il existe trois classes d’adresse IP, la classe A, le la classe B, et la classe C, qui permettent chacune d’adresser plus ou moins de machines dans un réseau. On associe à une adresse IP une notation que l’on appelle la notation décimale pointée qui associe à chacun des octets composant l’entier de 32 bits sa valeur décimale séparé par un point. 
Définition : Adresse IP
Une adresse IP est un entier 32 bits divisé en deux parties : une partie adresse du réseau et une partie adresse de la machine dans le réseau. Elle permet de désigner une machine dans l’interconnexion de réseau. On associe à une adresse IP une notation que l’on appelle la notation décimale pointée qui associe à chacun des octets composant l’entier de 32 bits sa valeur décimale séparé par un point. Exemple : 128.163.10.12.

Fig 1 : L’adressage IP
 
 
À chaque adresse IP, correspond un nom symbolique formé de caractères alphanumériques. La composition du nom symbolique repose sur la notion de domaine. Le domaine correspond à un groupe géographique (fr, jp) ou institutionnel (com , mil, edu). Le nom symbolique d’une machine est alors formé de son nom suivi de l’ensemble des domaines auxquels elle appartient, chaque élément étant séparés par un point. Ainsi la machine fermi.cnam.fr correspond à la machine de nom fermi dans le domaine cnam, appartenant lui-même au domaine fr. Le nom symbolique est utilisé pour désigner une machine parce qu’étant composés de caractères alphanumériques, il est plus aisément manipulable par un être humain. Ce nom symbolique ne correspond à rien pour le réseau virtuel et doit être converti en l’adresse IP correspondante. Cette conversion s’effectue grâce à des serveurs de nom et s’appelle la résolution de noms. Enfin lors de la traversée des réseaux physiques, l’adresse IP doit être reconvertie vers l’adresse physique du réseau, par exemple l’adresse ethernet pour un réseau de type Ethernet. Cette conversion de l’adresse IP vers l’adresse physique s'appelle la résolution d’adresses.
Définition : Nom symbolique
À chaque adresse IP, correspond au nom symbolique formé de caractères alphanumériques. La composition du nom symbolique repose sur la notion de domaine. Le domaine correspond à un groupe géographique (fr, jp) ou institutionnel (com , mil, edu). Le nom symbolique d'une machine est alors formé de son nom suivi de l'ensemble des domaines auxquels elle appartient, chaque élément étant séparés par un point. Exemple : fermi.cnam.fr.

Fig 2 : L’adressage dans l’interconnexion de réseau

2.2 La couche de protocoles TCP/IP

 
 
La figure 3 ci-dessous représente la couche de protocoles pour l’interconnexion de réseaux, cette couche de protocoles étant couramment appelée couche de protocole TCP/IP. La couche IP correspond au niveau réseau. Elle permet de faire un adressage de machine à machine par le biais des adresses IP de chacune des machines. La communication au niveau de la couche IP est une communication en mode minimal, c’est-à-dire en mode non connecté et sans fiabilité : il n’y a pas de garantie de bon transfert des datagrammes IP, lesquels sont acheminés indépendamment les uns des autres. La remise peut être faite dans le désordre, il peut y avoir perte de datagrammes ainsi que des duplications. 
Fig 3 : La pile de protocoles TCP/IP
 
 
La couche supérieure UDP/TCP correspond au niveau transport. A ce niveau, l’adressage s’effectue d’applications à applications par le biais de la notion de port. Un port est un entier de 16 bits qui permet de désigner une application à travers le réseau. Pour chacun des protocoles transport, il existe des ports. Parmi ces ports, certains sont réservés aux applications courantes du réseau. Par exemple le port UDP 513 correspond à l’application who. Le port TCP 21 correspond à l’application ftp tandis que le port TCP 23 correspond à l’application telnet.
Définition : Port
Le port est un entier de 16 bits permettant d’adresser une application sur la couche de protocole TCP/IP.
 
 
Le protocole UDP est en protocole transport non fiable basé sur IP. Les datagrammes UDP sont acheminés indépendamment les uns des autres, il s’ensuit qu’il peut y avoir perte de datagrammes, duplication de datagrammes et la remise n’est pas forcément effectuée selon l’ordre d’émission. Le protocole TCP/IP, au contraire est un protocole de transport fiable orienté connexion, également basé sur IP. Avant l’échange des données, une connexion est établie entre les deux entités communicantes : cette connexion est fiable : il ne peut pas y avoir de perte de messages, il n'y a pas de duplication et la remise s’effectue dans l’ordre d’émission.
Communication inter processus sur le réseau Rappels sur l'interconnexion de réseau et le protocole TCP/IP