Site A.T.L.A.N.T.I.C-83
COURS = Comprendre internet (Chapitre_5) - VERSION: 1.0 (M.A.J: 19/06/10)
- AUTEUR(s): Bernard GIACOMONI
Ecran large mobile
Retour
sommaire cours

V.MECANISMES DES SERVICES RESEAU:


V.1.NOTION DE PROCESSUS LOGICIEL:


Pour être utilisable, votre ordinateur doit être équipé d'un certain nombre de PROGRAMMES INFORMATIQUES (navigateurs, traitements de textes, etc.). Cet programmes sont enregistrés dans des fichiers sur des supports de masse (disque dur, clef USB, etc...). Ces fichiers contiennent donc les instructions et les données qui constituent le CODE EXECUTABLE du programme.


Pour utiliser ce programme, il est nécessaire, avant d'en lancer l'exécution, de copier son code exécutable dans la mémoire vive de l'ordinateur, puis de lui attribuer un PROCESSEUR capable de l'exécuter. C'est le système d'exploitation qui réalise ces opération lorsqu'il reçoit une requète de lancement d'un programme provenant soit d'un utilisateur (double clic sur le lien d'un fichier exécutable), soit d'un autre programme en cours d'utilisation.


Rien n'empêche de faire plusieurs copies du code exécutable d'un programme en mémoire vive et de lancer simultanément l'exécution de chacune ces copies (il suffit de disposer de suffisamment de processeurs ou de disposer d'un système d'exploitation capable de partager le processeur entre les différentes copies). A un instant donné, plusieurs copies (ou instances) d'un programme donné peuvent donc être en cours d'exécution dans la même machine: vous pouvez vérifier vous même qu'il est possible de lancer simultanément plusieurs instances de votre navigateur ou de la calculette, (si vous êtes sous windows), et que chaque instance est utilisable.


Chaque instance en cours d'exécution d'un programme donné constitue un PROCESSUS LOGICIEL (notion à ne pas confondre avec la notion de PROCESSEUR, qui désigne le circuit intégré qui exécute les logiciels). Par la suite, nous utiliserons le terme processus pour désigner un programme en cours d'utilisation, car cela allège beaucoup la rédaction.

V.2.NOTION DE PROTOCOLE DE COMMUNICATION:


Dans le domaine technologique, un PROTOCOLE DE COMMUNICATION est un ensemble de rêgles destinées à régir la communication entre deux entités (par exemple, deux hôtes d'un réseau). Ces rêgles peuvent concerner:
  • La représentation des informations échangées (codage, format).
  • Les mécanismes de transmission (adressage, séquencement et synchronisation des échanges, segmentation et réassemblage, etc.).
  • Les mécanismes de sécurisation de la transmission (contrôle de l'intégrité des données transmises, mécanismes d'acquittement, de signalisation ou de correction d'erreurs, etc.).


V.3.ADRESSAGE DES MACHINES HOTES D'UNE INTERCONNEXION DE RESEAUX:


Nous avons vu au chapitre précédent que les mécanismes d'ADRESSAGE PHYSIQUE présentaient les inconvénients d'être liés à la fois à la technologie de liaison utilisée et au composant matériel assurant la liaison. Ces deux caractéristiques les rendent inappropriés pour adresser des machines situées sur des réseaux interconnectés qui peuvent être de technologie différente et très éloignés dans l'espace.
De ce fait, il est nécessaire d'utiliser au niveau des services réseaux (et en particulier dans la couche OSI RESEAU) un autre système d'adressage non lié à la technologie de liaison, l'ADRESSAGE LOGIQUE.


V.4.ADRESSAGE DES PROCESSUS SUR UNE INTERCONNEXION DE RESEAUX:


Nous avons établi précédemment que la communication sur internet se déroulait toujours entre deux programmes informatiques en cours d'exécution, c'est à dire entre deux processus logiciels. Pour que ces processus puissent échanger des messages, il est nécessaire qu'ils disposent d'un moyen de s'identifier mutuellement sans ambiguïté sur le réseau. Il faut donc disposer d'un mécanisme d'identification des processus valide pour l'ensemble du réseau. L'adresse d'un processus sera donc constituée:
  • De l'ADRESSE LOGIQUE de la machine sur laquelle il s'exécute.
  • D'un identifiant interne à la machine appelé PORT RESEAU. Un port réseau est la plupart du temps un simple nombre entier naturel (entier positif).
REMARQUES:
  • Les PORTS RESEAU sont attribués aux processus lorsque ceux-ci en ont besoin pour ouvrir une communication réseau. Lorsque la communication est terminée, ils peuvent être réattribués à un autre processus en fonction des besoins. Un port réseau est donc une entité éphémère (de même, d'ailleurs, que les processus).
  • Si un processus communique simultanément avec plusieurs autres processus, il peut se voir attribuer plusieurs ports de communication. De ce fait, si un numéro de port permet d'identifier un processus, l'inverse n'est pas vrai.


V.5.LA SUITE DE PROTOCOLES TCP-IP:


V.5.1.GENERALITES:

TCP-IP est en fait une suite de deux protocoles:
  • Le protocole I.P. (Internet Protocol), qui correspond à la couche 3 du modèle OSI (routage de paquets sur une interconnexion de réseaux).
  • Le protocole T.C.P. (Transmission Control Protocol), qui correspond à la couche 4 du modèle OSI (transport de messages constitués de plusieurs segments sur un réseau).
L'ensemble correspond aux mécanismes du NIVEAU DES SERVICES RESEAUX défini au chapitre précédent. TCP-IP, qui était à l'origine un protocole « propriétaire », c'est à dire lié à un constructeur particulier (XEROX), est petit à petit devenu un standard, en particulier sur internet, en particulier grâce au bon niveau de sécurité qu'il permet d'obtenir.

V.5.2.ADRESSAGE D'UN PROCESSUS SOUS TCP-IP:

TCP-IP inclue un mécanisme d'identification des processus basé sur un couple de données:
  • La première de ces données permet d'identifier la machine dans laquelle le processus s'exécute: c'est l'ADRESSE LOGIQUE, communément appelée ADRESSE IP. Vous avez certainement rencontré ce type d'adresse, qui se note le plus souvent sous la forme de quatre nombres séparés par des points (Exemple: 94.23.63.201 est l'adresse IP du serveur hébergeant le site de l'association ATLANTIC). Il est important de se souvenir que la donnée d'une adresse IP permet de repérer sans ambiguité une machine connectée sur internet.
  • La deuxième donnée est un simple nombre entier naturel, que l'on nomme NUMERO DE PORT. Un PORT du protocole TCP définit un « point d'accès » à un processus logiciel à l'intérieur d'une machine donnée. Contrairement à l'adresse IP, il s'agit donc d'une donnée valable localement. A l'intérieur d'une même machine, l'attribution des numéros de ports est contrôlée par le système d'exploitation. Deux ports ne peuvent donc avoir le même numéro. De ce fait, à un instant donné, un numéro de port permet d'identifier sans ambiguïté un des processus actifs d'une machine.
Le couple {ADRESSE-IP + Numéro de PORT TCP} définit donc sans ambiguité un processus donnée tournant sur une machine connectée à internet. Il constitue un système d'adressage des processus valable sur tout l'espace du web et depuis n'importe quel point de cet espace.


REMARQUES:
  • En fait, une adresse IP repère non pas une machine, mais une des connexions physiques de cette machine sur le réseau. Une machine peut donc avoir plusieurs adresses IP, si elle est connectée à plusieurs réseaux. En revanche, une adresse IP correspond à une connexion et une seule.
  • De même, un processus donné peut déclarer plusieurs ports (correspondant à plusieurs services que ce processus peut offrir). Ces ports auront des numéros différents. En revanche, un numéro de port correspond à un processus local et un seul.
  • Le couple [ADRESSE LOGIQUE+NUMÉRO DE PORT] est appelé SOCKET par les développeurs (mot anglais que l'on peut traduire par «support de connexion »).
  • Un PORT n'existe que pendant le temps où le processus qui l'a déclaré existe. Dès qu'un processus est terminé, le système d'exploitation élimine tous les ports que ce processus a déclaré et peut réallouer leurs numéros à d'autres ports dès l'instant que d'autres processus en font la demande.
  • Il existe actuellement deux versions d'adressage IP, appelées respectivement IP-V4 et IP-V6. Une adresse IP-V4 est représentée par un groupe de 4 octets (c'est à dire 32 bits) alors qu'une adresse IP-V6 en comprend 16 (128 bits). L'IP-V6 permet donc de disposer de beaucoup plus de capacité d'adressage, alors que la capacité de l'IP-V4 commence à être insuffisante pour les besoins du web. Cependant, l'IP-V4 constitue encore l'adressage de base sur internet et le constituera sûrement encore pendant quelques années.


Le schéma suivant représente le mécanisme TCP-IP d'adressage des processus sur internet:


Adressage des processus


COMMENTAIRES:

  • Le schéma ci-dessus représente deux machines connectées à internet (machines A et B). Le reste du réseau internet est volontairement représenté par un «nuage», car on n'a pas besoin de connaître sa structure interne.
  • La machine A est connectée à internet par deux points de connexion physique différents. Ces connexions sont repérées par les adresses IP 192.43.127.78 et 201.85.67.22. La machine B est connectée à internet par une seule connexion physique, dont l'adresse IP est 177.28.76.43.
  • Dans la machine A s'exécute le processus logiciel A1. Celui-ci a déclaré 3 ports, de numéros 5110, 5300 et 4203. Le processus A1 est en cours de communication sur les sockets [192.43.127.78 + 5110], [192.43.127.78 + 5300], [201.85.67.22 + 5300], et [201.85.67.22 + 4203]. On peut supposer que chacun des trois ports ouverts par le processus A1 correspond à un service particulier que ce processus peut offrir.
  • Dans la machine B s'exécutent les processus logiciel B1 et B2. Le processus B1est en cours de communication sur son port 5300, via l'adresse IP 177.28.76.43 (donc, sur le socket réseau [177.28.76.43+5300]). Il communique également sur le socket [177.28.76.43+6000].
  • Pour envoyer un message vers le port 5110 du processus A1, un processus s'exécutant sur la machine B devra donc utiliser soit le socket [192.43.127.78, 5110], soit le socket [201.85.67.22, 5110].

V.5.3.PROTOCOLE TCP ET MECANIQUE DE TRANSMISSION « PAR PAQUETS »:

V.5.3.1.JUSTIFICATION:

Lorsqu'un processus du niveau des services applicatifs doit transmettre un message à un processus distant, il utilise des mécanismes du niveau des services réseau: sur internet, ces mécanismes sont ceux qui supportent la suite de protocoles TCP-IP.
Cette activation se traduit par le lancement de logiciels accompagné de la fourniture des données à transmettre. Celles-ci sont parfois très volumineuses: elles peuvent, par exemple, correspondre au contenu d'un fichier photographique de plusieurs méga-octets. Si de tels volumes de données pouvaient être transmis en un seul bloc sur internet, occupant ainsi certains segments de média pendant plusieurs secondes, ils bloqueraient pendant cette durée les transmissions en provenance d'autres machine, y compris les messages courts ou urgents. Le résultat en termes de rendement serait catastrophique.
De ce fait, le protocole TCP inclue un mécanisme qui segmente les messages volumineux en PAQUETS de dimensions plus modestes (moins de 65536 octets).


V.5.3.2.PRINCIPES DE FONCTIONNEMENT:

Ce procédé permet d'intercaler sur le média des paquets appartenant à différents messages. Ainsi, un message court M2 peut être transmis sans attendre la fin d'un autre message M1, même si celui-ci est en cours de transmission, en intercalant ses paquets dans les paquets de M1:


Segmentation en paquets


Ce mécanisme de segmentation implique la mise en oeuvre d'un mécanisme de réassemblage des paquets chez le récepteur. Pour contrôler ce procédé, éviter les erreurs (perte de paquets, mauvais réassemblage, etc.) ou recommencer la transmission si nécessaire, un certain nombre d'octets de de service sont ajoutés aux données de chaque paquet:
  • Un « numéro de séquence » qui permet de repérer l'ordre de chaque paquet dans le message).
  • Le numéro de port du destinataire.
  • Et d'autres paramètres qu'il est inutile de détailler ici...
Ces octets de service sont nommés «enveloppe TCP». En résumé, à la « sortie » des mécanismes TCP:
un MESSAGE application => Une suite de PAQUETS Un PAQUET = [ Un SEGMENT DE MESSAGE] + [une ENVELOPPE TCP (octets de service)]

V.5.3.3.MECANISMES DE SECURISATION:

Le protocole TCP de transmission par paquets est très sécurisé. En effet, la réception de chaque paquet par le destinataire donne lieu à l'envoi d'un message d'acquittement vers l'émetteur. Ce mécanisme, associé à la gestion des numéros de séquences, permet à l'émetteur de s'assurer que ces paquets ont bien été transmis, ou bien, en cas de dysfonctionnement, de répéter les envois défectueux. Le récepteur d'un paquet doit donc pouvoir identifier son émetteur durant toute la durée de la transmission. De ce fait, on dit que TCP est un protocole de transport en MODE CONNECTE.


L'avantage de TCP est la grande sécurisation des échanges de données. L'inconvénient est que l'on ne peut garantir la durée d'une transmission. De ce fait, TCP possède une variante non sécurisée, sans mécanisme de segmentation ni d'acquittement, le sous-protocole Unconnected Datagram Protocol (U.D.P). Certaines applications réseau n'exigeant pas une grande sécurité de transmission ou bien assurant elles-même cette sécurité, utilisent U.D.P. plutôt que TCP.


V.5.4.PROTOCOLE IP ET ROUTAGE INTER-RESEAUX:

Nous avons vu que, d'un point de vue physique, INTERNET était constitué par l'interconnexion de différentes DORSALES à haut débit. Chacune de ces dorsale, qui constitue un sous-réseau, peut utiliser des solutions technologiques qui lui sont propres. De ce fait, les modalités de transmission des informations (codage, protocole de liaison entre les hôtes, etc.) peuvent être totalement différentes d'une dorsale à l'autre. Il en est de même en ce qui concerne les réseaux locaux raccordés à internet. De ce fait, le passage d'un sous-réseau à un autre par un point d'interconnexion nécessite un travail de transcodage des informations.


D'autre part, les systèmes d'adressage physique entre les hôtes d'un réseau dépendent aussi de la technologie utilisée. Il peuvent donc être différents et incompatibles d'un réseau à l'autre. Un hôte donné ne peut donc pas, en utilisant le mécanisme d'adressage propre à la technologie de son réseau, adresser des informations à un hôte d'un réseau différent. TCP-IP résoud le problème en utilisant un mécanisme de ROUTAGE INTER-RESEAUX, supporté par des équipements d'interconnexion appelés ROUTEURS. Les routeurs sont équipés de logiciels mettant en oeuvre le mécanisme de routage du protocole IP (Internet Protocol), dont voici la description sommaire:


Routage inter-reseaux


COMMENTAIRES:

Le schéma ci-dessus représente l'interconnexion de deux réseaux locaux par l'intermédiaire d'un routeur.


A chaque point de connexion d'un hôte, l'adresse physique et l'adresse logique de la connexion sont représentées par les symbôles AP1 (adresse physique 1), AL1 (adresse logique 1), AP2, AL2, etc...


A l'intérieur de chaque réseau local, les hôtes peuvent communiquer entre eux en utilisant les adresses physiques (ex: à l'intérieur du réseau R1, tous les hôtes sont repérés par leurs adresses physiques AP1, AP2, AP3. Ils peuvent donc communiquer en utilisant ces adresses, par les mécanismes du niveau gestion du lien physique). En revanche, les hôtes du réseau R1 ne peuvent pas forcément connaître les adresses physiques du réseau R2. En effet, ces adresses dépendent des composants de liaison dont la gestion ne dépend pas forcément de l'administrateur de R1. De plus, le format de ces adresses, dépendant de la technologie de liaison employée pour R2, n'est pas forcément compatibles avec les mécanismes de liaison disponibles sur R1.


Un hôte de R1 ne peut donc pas utiliser l'adresse physique d'un hôte de R2 pour lui adresser des données. En revanche, il peut utiliser son adresse logique, qui ne dépend pas de la technologie de liaison et qui est valable sur tout l'ensemble des réseaux interconnectés. Le mécanisme est le suivant:
  • L'hôte de R1 expédie sur le média de R1 un message contenant l'adresse logique du destinataire (ex: AL4) et l'adresse physique du routeur sur le réseau R1 (AP7).
  • Le routeur reconnaît son adresse physique dans l'enveloppe de la couche liaison des trames. Il récupère alors (dans l'enveloppe de la couche réseau) l'adresse logique du destinataire (AL4).
  • Le routeur maintient en permanence une table de correspondance (TABLE DE ROUTAGE) entre les adresses physiques et les adresses logiques de chaque réseau, grâce à un protocole particulier appelé A.R.P. (Adress Resolution Protocol). Il est donc capable de déterminer quelle adresse physique correspond à l'adresse logique AL4 (c'est à dire AP4). Il remplace donc dans les trames l'adresse physique AP7 par AP4, puis il émet le message sur le réseau R2.
  • L'hôte d'adresse physique AP4 est donc en mesure de recevoir ce message, puisqu'il est bien adressé à son adresse physique.
  • S'il existait plusieurs routeurs entre l'émetteur et le destinataire, chaque routeur intermédiaire, constatant que le destinataire n'est pas dans sa table de routage, adresserait le message au routeur suivant, jusqu'à ce que le réseau du destinataire soit atteint.

V.5.5.TCP-IP ET LE MODELE CLIENT-SERVEUR:

V.5.5.1.RAPPELS SUR LE MODELE CLIENT-SERVEUR ET CONSEQUENCES:

Nous avons vu que sur internet, la communication fonctionnait suivant le modèle CLIENT-SERVEUR, dont nous rappellerons les particularités suivantes:
  • Lors d'une transaction entre client et serveur, c'est toujours le client qui prend contact avec le serveur et non l'inverse.
  • Chaque client, en fonction de ses besoins, établit un contact avec le serveur afin de lui adresser une demande de service appelée REQUETE. Lorsque le serveur a satisfait cette requète, le client peut rompre le contact et il n'est pas nécessaire que le serveur conserve une trace de lui;
De ce qui précède, on peut déduire qu'un client peut être une entité ephémère: un processus est lancé dans une machine, ce processus établit le contact avec le processus serveur, demande un service, puis romp le contact et disparaît. En revanche, le processus serveur doit être une entité durable, car il faut qu'il reste à l'écoute des demandes des clients sur ses différents ports.


De ce fait, la machine supportant le serveur doit impérativement posséder à tout moment une adresse logique unique et fixe sur le réseau: dans le cas contraire, aucun client ne pourrait la contacter. En revanche, un client n'a besoin de posséder une adresse logique que durant la transaction avec le serveur. Celui-ci aura alors besoin de cette adresse pour lui renvoyer les messages nécessaires à la transaction). L'adresse du client peut donc être envoyée au serveur uniquement au moment de la prise de contact. Elle peut varier à chaque transaction.


Au moment de l'établissement du contact du client avec le serveur, celui-ci a besoin de connaître le numéro de port sur lequel on peut établir la communication avec ce serveur. Ce numéro de port doit donc rester disponible en permanence. En revanche, le numéro de port du processus client peut être créé uniquement au début de la transaction et transmis au serveur lors de l'établissement du contact avec celui-ci.


V.5.5.2.CAS DE TCP-IP ET DU WEB:

TCP-IP permet la communication suivant un modèle CLIENT-SERVEUR. En effet:
  • Lors de l'ouverture d'une communication, un processus donné peut être déclaré CLIENT ou SERVEUR.
  • Un processus déclaré CLIENT peut communiquer uniquement avec un SERVEUR.
  • Un SERVEUR peut traiter simultanément plusieurs CLIENTS.
Lorsqu'un processus se déclare en tant que SERVEUR TCP, il se met immédiatement en attente de DEMANDES DE CONNEXION d'éventuels CLIENTS TCP. Lorsqu'il détecte une telle demande, il renvoie à ce client un message d'acceptation, en utilisant l'adresse IP et le numéro de port trouvé dans la demande de connexion. La communication entre le client et son serveur peut alors se dérouler, jusqu'à la survenue d'un message de déconnexion de la part du client. Après déconnexion, le serveur perd toute trace du client, et celui-ci devra se reconnecter pour pouvoir de nouveau communiquer avec le serveur. Plusieurs clients peuvent être connectés simultanément au même serveur.


Les hôtes internet qui offrent des services permanents, tels que l'accès à des sites web, le téléchargement de fichier ou la messagerie électronique sont déclarés en tant que SERVEURS (serveur web, serveurs de messagerie, etc.), alors que les logiciels des usagers fonctionnent en tant que CLIENTS (votre navigateur est un CLIENT WEB, outlook est un CLIENT DE MESSAGERIE, etc.).


V.5.6.ATTRIBUTION DES ADRESSES I.P. AUX HOTES D'INTERNET:

V.5.6.1.ATTRIBUTION DES ADRESSES IP AUX POSTES CLIENTS:

En vertu des remarques exprimées plus haut, les hôtes internet abritant uniquement des logiciels CLIENTS ne sont obligés de disposer d'une adresse IP valable sur le net que durant leur connexion à un SERVEUR. En dehors de ces périodes, elle leur est inutile. Une adresse IP leur est fournie par leur Fournisseur d'Accès Internet (F.A.I.) lors de leur connexion à celui-ci.
Dès que le poste client s'est vu attribuer cette adresse IP par son F.A.I, il devient visible sur le net comme n'importe quel hôte, et ceci, jusqu'à ce qu'il se déconnecte de son F.A.I. Il peut donc dialoguer sur le net en utilisant TCP-IP, et même, à la rigueur, lancer un serveur chez lui.
Une fois le client déconnecté, il perd son adresse IP et le F.A.I. peut réattribuer celle-ci à un autre hôte. Un client change donc d'adresse IP chaque fois qu'il se connecte (ou reconnecte) à son F.A.I.


REMARQUE:
On estime qu'un poste informatique quelconque créant une connexion TCP-IP sur internet dispose d'une dizaine de minutes en moyenne avant de subir une attaque quelconque. Or, mener une telle attaque exige d'utiliser l'adresse IP du poste. Il n'est donc pas très raisonnable, même si l'on dispose d'un pare-feu et d'un anti-virus performant et à jour, de laisser son ordinateur connecté en permanence à internet: quelques déconnexions-reconnexions de temps à autres permettent de changer l'adresse IP du poste, ce qui complique considérablement le travail d'éventuels « hackers ».


V.5.6.2.ATTRIBUTION DES ADRESSES IP AUX POSTES SERVEURS:

En revanche, les postes abritant des logiciels serveurs doivent presque obligatoirement disposer d'adresses IP fixes (voir remarque ci-dessous). Il est donc difficile de connecter ces postes par l'intermédiaire de fournisseurs d'accès. De ce fait, les postes serveurs sont la plupart du temps reliés directement aux dorsales internet par des lignes dédiées.


REMARQUE:
En fait, il ne serait pas impossible de connecter un serveur par l'intermédiaire d'un fournisseur d'accès, à condition de pouvoir faire une mise à jour des systèmes de résolution de noms de domaines (D.N.S) à chaque fois que l'adresse IP du serveur change (voir les chapitres suivant).


L'attribution d'adresses IP permanentes sur internet est contrôlée par des organismes nationaux et internationaux de régulation. Chaque fournisseur d'accès dispose d'un certain nombre d'adresses disponibles pour les clients qui accèdent à internet par son intermédiaire. Ce nombre étant forcément limité, il est possible qu'à certaines heures de forte utilisation du réseau, votre F.A.I. n'ait plus d'adresse disponible: ceci peut expliquer certains refus de connexion ou même certaines déconnexions intempestives.


Retour accès cours Retour sommaire cours