Anass KHANNOUS
khannous@ensat.ac.ma
Filière GSTR2 2020/2021
Objectifs de ce cours
Connaître (se rappeler) le modèle Client/Serveur
(90% des applications de l’Internet)
3
Internet
Un réseau de réseaux, un réseau public mondial
Un ensemble de logiciels et de protocoles
Basé sur l’architecture TCP/IP
Fonctionne majoritairement en mode Client/Serveur
Le Web n’est qu’une des multiples applications d’Internet
Offre un ensemble de services (e-mail, transfert de fichiers,
connexion à distance, WWW, …)
Une somme « d’inventions » qui s’accumulent
• mécanismes réseau de base (TCP/IP)
• gestion des noms et des adresses
• des application et des protocoles spécialisés 4
Internet
Un ensemble de sous-réseaux indépendants et hétérogènes
qui sont interconnectés (organisation hiérarchique)
5
Le Modèle OSI
Le modèle OSI a été défini par l'Internatinal Standardization
Organisation (ISO).
Vise à normaliser les communications entre ordinateur
Présente la circulation des données dans un réseau
Ce modèle se décompose en 7 couches:
Application, Présentation, Session, Transport, Réseau, Liaison
et Physique.
Les services de chaque couche peuvent interagir uniquement
avec les services des couches contigües.
6
Le Modèle OSI
7 Application
Messages
6 Présentation
Segments
5 Session
Datagrammes 4 Transport
Paquets 3 Réseau
Liaison de
Trames 2
Données
Bits 1 Physique
8
Le Modèle TCP/IP
TCP/IP est l'architecture réseau la plus répandue.
Le modèle est fondé sur OSI où 04 couches sont présentées :
Application, Transport, Réseau et Liaison.
TCP/IP représente d'une certaine façon l'ensemble des règles
de communication sur Internet et se base sur la notion
d’adressage IP
Les fonctions essentielles du TCP/IP sont :
• Le fractionnement des messages en paquets.
• L'utilisation d'un système d'adresses .
• L'acheminement des données sur le réseau (routage).
• Le contrôle des erreurs de transmission de données . 9
Le Modèle TCP/IP
Lorsqu’on écrit un programme qui tourne
sur réseau, on programme à la couche
Application
Pratiquement, le programmeur
d’applications réseaux n’est pas concerné
par les protocoles de la couche Transport
(TCP et UDP)
Ce sont les bibliothèque de classes utilisés
qui assurent la communication avec les
couches inférieurs (transport et routage)
10
Le Modèle TCP/IP - Exemple
11
Les Protocoles
Un protocole est un ensemble de règles qui définissent
comment se produit une communication dans un réseau
• Un protocole joue le rôle d'un pilote (Driver). Un pilote
permet au matériel de communiquer avec le système
Un pilote c'est le protocole de communication entre le
matériel et le système.
• Pour communiquer, deux personnes doivent parler une
langue commune. En informatique, la langue de
communication s'appelle le protocole
Un service peut faire l’objet de l’implémentation d'un
protocole.
12
Exemples de Protocoles
Les protocoles applicatifs sont des protocoles spécialisés dans la
communication de certaines données ou la réalisation
d’opérations spécifiques.
• HTTP : Hypertext Transfert Protocol, protocole de transfert
hypertexte (c’est le protocole du Web)
• FTP : File Transfert Protocol, protocole de transfert de fichiers
• SMTP : Simple Mail Transfert Protocol, protocole de transfert
d’email entre deux boites aux lettres.
• POP : Post Office Protocol, Protocol du « bureau de poste »,
permettant de récupérer les emails stockés dans une boite aux
lettres
13
Exemples de Protocoles
• DNS : Domain Name System, est le service informatique
distribué utilisé pour traduire les noms de domaine Internet
(adresses symboliques) en adresse IP.
• DHCP : Dynamic Host Configuration Protocol, c’est un
protocole réseau de configuration dynamique et automatique
des paramètres IP d’une station
• IPsec : Internet Protocol Security, est un ensemble de
protocoles utilisant des algorithmes permettant le transport de
données sécurisées sur un réseau IP, utilisé dans le cas de
connexions sur des réseaux VPN.
14
Le Protocole TCP
TCP = Transmission Control Protocol
Le protocole TCP c’est un protocole responsable de garantir
l’envoie des données entre deux applications (Ex: Récupération
des emails POP)
Ce mode de communication est appelé : Mode Connecté
Permet une connexion de type Point à Point fiable et sécurisé
Il permet de signaler la présence d’erreurs d’envoie.
L’inconvénient c’est qu’il offre de moins bonnes performances
En utilisant la notion de port, plusieurs applications sur la
même machine peuvent utiliser TCP en même temps.
15
Le Protocole UDP
UDP = User Datagram Protocol
Ce mode de communication est appelé : Mode non connecté
Le protocole UDP assure une communication non garantie
entre deux applications sur un réseau par envoie des paquets
indépendants (Ex: vidéo streaming)
L’ordre de livraison n’est pas important et non garantie.
Chaque paquet est indépendant de l’autre
Ce protocole offre de bonnes performances en terme de
rapidité
Il est pratiquement réservé à des tâches peu importants
16
TCP vs UDP
17
Le Protocole IP
IP = Internet Protocol
Le protocole IP est le protocole de la couche réseau du TCP/IP
Responsable du routage et de contrôle dans les réseaux connecté
Permet également l’échange de datagrammes en mode non
connecté
Une succession de paquets provenant d’un même bloc de
données ne suivent pas forcément le même chemin
IP s’utilise conjointement soit avec TCP ou UDP
18
L’adresse IP
Une adresse IP est le numéro qui identifie chaque ordinateur
connecté à Internet
C’est l'interface avec le réseau de tout matériel informatique
(routeur, imprimante)
Il existe des adresses IP de version 4 et de version 6
19
Les ports
Il existe une connexion physique unique entre deux ordinateurs
communiquant l’un avec l’autre, mais plusieurs applications
(ou protocoles) se partagent la même liaison physique pour la
transmission des données
Les ports sont utilisés pour distinguer les données propriétaires
à chaque processus ou application
Chaque machine sous IP possède quelques 65 535 ports,
de 1 à 1024 sont des ports réservés aux services fondamentaux
de 1025 jusqu'au 49151 sont des ports enregistrés
de 49152 jusqu’au 65 535 sont les ports dynamiques ou privés
20
Les ports
Quelque port sont réservés à des services bien spécifié (Ex :
HTTP (80), FTP (21), SMTP (25), …). Ces ports sont appelles
(Well Known Ports).
22
Système de Transmission Numérique
23
Système de Transmission Numérique
Un signal numérique est donc un signal qui présente un
nombre finis d’état, généralement deux états (on dit qu’il est
binaire : avec un état haut que l’on assimile à 1 (un) et un état
bas que l’on assimile habituellement à 0 (zéro)).
Exemple la séquence
numérique suivante
110001110110
24
Exercice 1
25
Réponse
26
Exercice 2
27
Réponse
1ère génération
31
Client/Serveur :
Evolution : Architectures décentralisées - 1980
2ème génération
32
Client/Serveur :
Evolution : Architectures ExtraNet - 2010
32
Client/Serveur : Architecture 2-tier
34
Client/Serveur : Architecture 3-tier
35
Client/Serveur : Architecture N-tier
36
Serveur
Définition
34
Serveur (Logiciel)
Définition
Le terme SERVEUR fait référence à tout processus qui reçoit une
demande de service (requête) venant d'un client via un réseau,
traite cette demande et renvoie le résultat (réponse) au
demandeur (le CLIENT).
Exemple
Courrier Courrier
entrant sortant
41
Client/Serveur : Définitions 2/3
Comment identifier un service ?
• Un site peut offrir plusieurs services. Chacun de ces
services est fourni sur un port de communication
virtuel identifié par un numéro.
Ex. FTP: Port 21, TELNET : Port 23.
Quelle est l'API utilisée dans le développement des
applications ?
• L'API (Application Program Interface) la plus
utilisée est l'API Sockets.
42
Client/Serveur : Définitions 3/3
Le client et le serveur ne sont pas identiques, ils forment un
système coopératif :
• les parties client et serveur de l'application peuvent
s'exécuter sur des systèmes identiques ou différents
(hétérogènes/Multiplateformes)
• une même machine peut implémenter les côtés client ET
serveur de l'application
• un serveur peut répondre à plusieurs clients
simultanément
• Un client peut, en général, utiliser plusieurs connexions
vers des serveurs différents ou identiques en même temps. 43
Exemple d'application client/serveur
Hébergement d’un site web
Serveurs: Web et FTP
44
Exemple d'application client/serveur
protocole HTTP
45
Les applications client/serveur : Exemple
46
Exemple d'application client/serveur
Protocole FTP
Client FTP (4 champs à renseigner: @ Serveur, Port, Login, Mot de passe ).
Port 21 : pour la création de connexion/canal de contrôle.
Port 20 : pour la création d’un canal d’échange de données
47
Communications inter-processus
Processus :
• une entité communicante
• un programme qui s'exécute sur un hôte d'extrémité
Communications inter-processus locales :
• communications entre des processus sur un même hôte
• communications régies par le système d'exploitation (tubes
UNIX, mémoire partagée, …)
Communications inter-processus distantes :
• les processus s'échangent des messages à travers le réseau
selon un protocole de la couche applications
• nécessite une infrastructure de transport sous-jacente
Protocole applicatif Vs Application
Le protocole applicatif définit :
• le format des messages échangés entre les processus
émetteur et récepteur
• les types de messages : requête, réponse, …
• l'ordre d'envoi des messages
Ne pas confondre le protocole et l'application !
• Exemple d’Application Web : constitué d ’un
ensemble de documents (format HTML), accessibles
via un navigateur Web (Client), hébergés au niveau
d’un serveur Web à qui on demande ces documents,
en respectant les règles du protocole (HTTP)
Client/Serveur : Les acteurs
Une architecture client-serveur est composée de deux
programmes interagissant : le serveur qui propose des services
et le client qui les consomme.
Caractéristiques principales du client :
• Consommateurs de services
• Proactif : à l’origine de la commande
Caractéristiques du serveur :
• Fournisseur de services
• Réactif: Répond à la demande de ses clients
• Traitement de plusieurs clients simultanément
• Contrôle d’accès
50
Client/Serveur : Le fonctionnement
Le logiciel serveur
• Joue un rôle passif
• Attend des requêtes provenant des logiciels clients.
• Dès qu'il reçoit une requête, il parcourt ses contenus pour
trouver l'élément demandé puis le retourne au logiciel client qui
l'a demandé.
Le client
• préparer une requête à adresser vers un serveur.
• Lorsque la requête est lancée, un « message » est acheminé vers
le serveur à consulter.
• Attend ensuite la réponse du serveur
51
Client/Serveur : Avantages
Unicité de l’information : toutes les données sont stockées sur
un même serveur ;
Meilleure sécurité et intégrité : simplification des contrôles
de sécurité ;
Mise à jours centralisé aussi bien des données et logiciels ;
Meilleure fiabilité : En cas de panne, seul le serveur fait
l’objet d’une réparation ;
Facilité d’évolution : architecture évolutive, il est très facile
de rajouter ou d’enlever des clients ou des serveurs.
Hétérogénéité : indépendant des plates-formes matérielles et
logiciels
52
Client/Serveur : Inconvénients
Un coût d’exploitation élevé (bande passante, câbles,
ordinateurs surpuissants) ;
En cas de panne du serveur, plus aucun client n’a accès
aux Informations ;
Si trop de clients veulent communiquer avec le serveur, ce
dernier risque de ne pas supporter la charge ;
...
53
Le Middleware
C'est un ensemble de services logiciels construits au dessus
d'un protocole de transport afin de permettre l'échange de
requête/ réponse entre le client et le serveur de manière
transparente.
55
Interface de programmation réseau (API)
Les sockets
56
Les modes de communication 1/6
Mode non connecté
57
Les modes de communication 2/6
Mode non connecté
Caractéristiques :
• pas d’établissement préalable d’une connexion ;
• Les requêtes successives sont indépendantes ;
• pas de préservation de l’état entre les requêtes ;
• adapté aux applications pour lesquelles les réponses
aux requêtes des clients sont courtes (un message) ;
• mode d'échange par message ;
• protocole de transport utilisé : UDP (Pas de garanties
particulières).
58
Les modes de communication 3/6
Mode non connecté
Contraintes :
• le client doit avoir accès à l’adresse du serveur: (@ IP et N° port)
• le client doit indiquer son adresse à chaque requête (pas de
liaison permanente), car pour répondre à chaque client, le
serveur doit en récupérer l’adresse.
59
Les modes de communication 4/6
Mode connecté
60
Les modes de communication 5/6
Mode connecté
Caractéristiques :
• établissement préalable d’une connexion (circuit virtuel) :
le client demande au serveur s'il accepte la connexion ;
• le serveur préserve l'état du client entre deux requêtes ;
• fiabilité assurée par le protocole (TCP) (ordre, contrôle de
flux);
• un serveur peut répondre aux demandes de service de
plusieurs clients : les requêtes arrivées et non traitées sont
stockées dans une file d’attente ;
• adapté aux échanges ayant une certaine durée (plusieurs
messages).
61
Les modes de communication 6/6
Mode connecté
Contraintes :
• le client doit avoir accès à l’adresse du serveur (adresse IP,
n° de port).
62
Processus serveur itératif
Serveur itératif :
• traite séquentiellement les requêtes
• adapté aux requêtes qui peuvent s'exécuter rapidement
• souvent utilisé en mode non connecté
63
Processus serveur concurrent
Serveur concurrent :
• le serveur accepte les requêtes puis les "délègue" à un
processus fils (traitement de plusieurs clients)
• souvent utilisé en mode connecté
64
Service avec ou sans état(s)
Service avec états (mode connecté) :
• le serveur conserve localement un état pour chacun des clients
connectés : informations sur le client, les requêtes
précédentes, …
69
Les sockets : UDP
70
Les sockets : Points communs
71
Les sockets : Généralités 1/3
Une socket est une « entité » qui permet à deux processus de
communiquer :
• Les deux processus n'ont pas besoin d'être sur la même
machine
Les sockets proposent une communication bidirectionnelle.
La création d'une socket entre deux processus :
• crée un « tuyaux » persistant virtuel entre les deux
processus si la communication est orientée connexion
• crée un mécanisme d'envoi de message simplifié si la
communication entre les deux processus est orientée
sans connexion
72
Les sockets : Généralités 2/3
Les sockets sont des portes d'entrées/sorties vers le
réseau (la couche transport),
Une communication est identifiée de façon unique par
un couple de deux sockets,
Une socket est identifié par une adresse de transport qui
permet d'identifier les processus de l'application
concernée,
Une adresse de transport = une adresse IP (identifie le
serveur ou l'hôte dans le réseau) + un numéro de port
(identifie l'application).
73
Les sockets : Généralités 3/3
Principe de fonctionnement en 3 phases (illustration ci-
dessous avec TCP) :
1) le serveur crée une "socket serveur" (associée à un port) et se met en attente.
75
Questions de compréhension
76