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.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:
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:
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:
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.