version imprimable

Transcription

version imprimable
Client/Serveur protocoles internet
Introduction
Fabien Rico ([email protected])
Olivier Glück
Univ. Claude Bernard Lyon 1
séance 1
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
1 / 29
Remerciement/Bibliographie
Remerciements
Les transparents sont tous basés sur le cours d’Olivier Glück (au point
qu’il est co-auteur).
Certains d’entre eux sont issus sur des supports de cours de :
I
I
I
Olivier Aubert (LYON 1)
Olivier Fourmaux (UPMC)
Bénédicte Le Grand (UPMC)
Des figures sont issues des livres cités en bibliographie.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
2 / 29
Remerciement/Bibliographie
Bibliographie
« Réseaux », 4ième édition, Andrew Tanenbaum, Pearson Education,
ISBN 2-7440-7001-7
« La communication sous Unix », 2ième édition, Jean-Marie Rifflet,
Ediscience international, ISBN 2-84074-106-7
« Analyse structurée des réseaux », 2ième édition, J. Kurose et K.
Ross, Pearson Education, ISBN 2-7440-7000-9
« TCP/IP Illustrated Volume 1, The Protocols », W. R. Stevens,
Addison Wesley, ISBN 0-201-63346-9
« TCP/IP, Architecture, protocoles, applications », 4ième édition, D.
Comer, Dunod, ISBN 2-10-008181-0
Internet. . .
I
I
http ://www.w3.org/
http ://www.rfc-editor.org/ (documents normatifs dans TCP/IP)
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
3 / 29
Remerciement/Bibliographie
Plan du cours
Introduction/Rappel sur les réseaux ;
Connexion à distance (telnet/rlogin/rsh/ssh/X11/RDP/VNC)
Applications de transfert de fichiers (FTP/STFP/FTPS/TFTP)
Accès aux fichiers distants (NFS/SMB)
Gestion d’utilisateurs distants (NIS/LDAPS)
DNS : un annuaire distribué
La messagerie électronique (SMTP/POP/IMAP)
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
4 / 29
Protocoles applicatifs
Application et protocoles applicatifs
Applications communicantes
Serveur
de Fichiers
Échangent des données.
NF
S
Serveur
LDAP
AP
LD
Programmes présents sur différentes
machines proposant ou utilisant des
services.
Web
mail
HT
TP
NFS
Par ex : pages web, mails, informations
systèmes, fichiers, . . .
Besoin d’un standard de
communication : le protocole applicatif.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
Internet
SMTP
Les différents services peuvent être
fournis ou demandé par des logiciels
différents.
Serveur
Mail
Client
Web
séance 1
5 / 29
Protocoles applicatifs
Protocole applicatif
Protocole applicatif
Définie les échanges entre applications afin de rendre un service
déterminé.
Masque les différences entre applications.
Dernière couche du modèle OSI (couche application).
S’appuie sur les services du protocole de couche inférieure.
On distingue l’application et le protocole applicatif
Les applications (cliente, serveur ou les deux) implémentent le
protocole applicatif ;
le protocole est le contrat entre le les parties cliente et serveur ;
une interface (API) permet au protocole applicatif d’utiliser les
services de bout-en-bout fournis par un protocole de transport
sous-jacent.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
6 / 29
Protocoles applicatifs
Application réseaux : le jargon
Un processus est un programme qui s’exécute sur un hôte.
Deux processus communiquent grâce à des outils de « communication
interprocessus »
I
I
pipe, fifo , socket locale pour les processus sur un même hôte.
socket sur des hôtes distants.
Un agent utilisateur est une interface entre l’utilisateur et
l’application réseau
I
I
I
Web : browser comme firefox, internet explorer, opera, . . .
E-mail : MUA (Mail User Agent) comme thunderbird, outlook, eudora,
...
streaming audio/video : vlc, real player, media player, . . .
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
7 / 29
Protocoles applicatifs
La couche application (du modèle OSI)
La couche application
I
I
Gère les logiciels utilisateurs (applications) en s’appuyant sur les
services de bout en bout définis dans les couches de niveau inférieur.
Repose généralement sur le modèle Client/Serveur (modèle
requête/réponse) supporte les environnements hétérogènes.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
8 / 29
Protocoles applicatifs
Paradigme client-serveur
Serveur
Client
Initie le contact avec le
serveur (« parle en premier »)
Fait une requête (i.e. une
demande) au serveur.
Exemple :
I
I
pour le web, le client est
implanté dans le browser ;
pour les mails, c’est l’agent
utilisateur mais aussi le
serveur mail lorsqu’il doit
transmettre un message.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
Propose les services demandés
par le client.
Effectue les actions
demandées et envoie le
résultat.
Exemple :
I
I
Le serveur web lit et/ou
recalcule la page demandée
et l’envoie au client.
Le serveur mail (lorsqu’il
recoit un mail) écrit le mail
dans sa file de messages
arrivés et envoie un accusé
réception.
séance 1
9 / 29
Protocoles applicatifs
Questions
Quel sont en générale les clients et serveurs présents sur l’ordinateur
d’un particulier ?
Donnez une configuration classique pour le pare-feu d’une · · · box.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
10 / 29
Service de transport
Quel service de transport ?
Socket = interface entre le processus applicatif et le protocole de
transport
I
I
Côté émetteur : l’application envoie des messages par la porte
De l’autre côté de la porte, le protocole de transport doit déplacer les
messages à travers le réseau, jusqu’à la porte du processus récepteur
De nombreux réseaux (dont Internet) fournissent plusieurs protocoles
de transport
I
I
I
Lequel choisir lorsqu’on développe une application ?
Étude des services fournis par chaque protocole
Sélection du protocole qui correspond le mieux aux besoins de
l’application
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
11 / 29
Service de transport
Quel service de transport ?
Faut-il choisir le train ou l’avion pour faire Paris/Nice ?
I
tout dépend des critères du voyageur (rapidité, confort, sécurité, prix,
arrivée en centre ville, consomation, . . .)
3 types de besoins au niveau des applications :
I
I
I
fiabilité du transfert (S’autorise t-on à perdre quelques données ? Dans
quelle proportion ?)
bande passante (Quelle est la taille minimale du tuyau de
communication ?)
délai : latence et gigue (variation du délai)
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
12 / 29
Service de transport
Quel service de transport ?
Fiabilité du transfert
I
Certaines applications nécessitent une fiabilité à 100
F
F
F
F
F
I
D’autres peuvent tolérer des pertes (loss-tolerant applications) :
F
F
I
courrier électronique (SMTP) ;
transfert de fichiers (FTP) ;
accès distant (Telnet) ;
transfert de documents Web (HTTP) ;
applications financières.
applications multimédia : audio/vidéo (la perte d’une faible quantité de
données n’induit qu’une petite irrégularité dans l’écoute ou la vision du
document) ;
mise à jour d’informations (capteurs).
D’autres enfin préfèrent ou doivent corriger leurs pertes elles même :
F
F
applications bas niveau (DHCP) ;
applications nécessitant de très fortes optimisations (NFS).
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
13 / 29
Service de transport
Quel service de transport ?
Bande passante
I
Certaines applications requièrent une bande passante minimale :
F
F
I
téléphonie sur Internet : si la voix est codée à 32 Kbps, les données
doivent être transmises et reçues à ce débit ;
applications multimédia.
D’autres utilisent la bande passante disponible (applications
élastiques) :
F
F
courrier électronique, transfert de fichiers, accès distant, Web ;
plus il y a de bande passante, mieux c’est !
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
14 / 29
Service de transport
Quel service de transport ?
Délai (contraintes temporelles)
I
Certaines applications nécessitent un délai de bout-en-bout faible
(moins de quelques centaines de ms) comme les applications temps réel
interactives :
F
F
F
F
I
Certaines applications ne demandent pas un délai court mais la gigue
doit être corrigée comme les application temps réel non interactives :
F
F
I
téléphonie sur Internet ;
environnements virtuels ;
téléconférence ;
jeux en réseau
streaming ;
synchronisation du temps.
Pour les applications non temps réel, un délai court est préférable, mais
pas de contrainte forte
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
15 / 29
Service de transport
Quel service de transport ?
Application
Transfert de fichiers
e-mail
Pages Web
Audio/vidéo
sans cache local
Audio/vidéo
enregistré localement
Jeux interactifs
Applis financières
c O.Glück & F.Rico (U.C.B.L.)
Pertes
sans perte
sans perte
sans perte
tolérant
tolérant
Bande passante
élastique
élastique
élastique
audio : 5Kb-1Mb
vidéo : 10Kb-5Mb
idem
Sensibilité temp.
Non
Non
Non
Oui, 100’s ms
sur la gigue
Oui, quelques s
tolérant
sans perte
quelques Kbps
élastique
Oui, 100’s ms
Oui et non
Client/Serveur
séance 1
16 / 29
Service de transport
Services proposés dans Internet
Service TCP :
Service UDP :
orienté connexion : connexion
nécessaire entre le client et le
serveur ;
transport fiable entre le processus
émetteur et récepteur ;
contrôle de flot : l’émetteur ne
submerge pas le récepteur ;
contrôle de congestion : réduit le
débit de l’émetteur quand le réseau
est congestionné ;
ne propose pas :
I
I
de garantie de délai,
de bande passante minimale.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
transfert de données non
fiable ;
ne propose pas :
I
I
I
I
I
I
de connexion,
de fiabilité,
de contrôle de flot,
de contrôle de
congestion,
de garantie temporelle,
de bande passante ;
beaucoup plus simple que
TCP (UDP=IP) donc plus
rapide ;
pas de limitation du débit.
séance 1
17 / 29
Service de transport
Principales applications internet
Application
e-mail
Accès distant
Web
Transfert de fichiers
Streaming multimedia
Serveur Fichiers
Voix sur IP
c O.Glück & F.Rico (U.C.B.L.)
Protocole applicatif
SMTP [RFC 821,2821]
telnet [RFC 854]
HTTP [RFC 2068,2616]
FTP [RFC 959]
propriétaire
NFS
propriétaire
Client/Serveur
Protocole de transport
TCP
TCP
TCP
TCP
TCP ou UDP
TCP ou UDP
En général UDP
séance 1
18 / 29
Service de transport
Principales applications Internet
SNMP
25
UDP
pr.
=1
7
=6
pr.
pr.=1
DNS
53
TCP
ICMP
SMTP
p.
21
p. 23
p.
po
rt
80
TELNET
p.
FTP
8
7/6 . 16
p
p. 6
HTTP
IP
BOOTP
···
Numéro de port
dans
l’entête
TCP
Identifiant de protocol
dans l’entête IP
ARP
RARP
Tous les ports sont sur
http ://www.iana.org/assignments/port-numbers
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
19 / 29
Les outils
Ça ne marche pas !
Pour mettre en place ou réparer une application réseaux vous disposez :
Outils d’écoute sur le réseau pour voir ce qui est envoyé.
Clients simples pour tester un service.
Outils de connexion à distance pour effectuer une manipulation à
distance.
Historique d’évènements (Log) et mode de debuggage.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
20 / 29
Les outils
Écoute sur le réseau
Pourquoi ?
Ce qu’on envoie n’est pas toujours ce qu’on croit.
Les paquets n’arrivent pas toujours.
Le service peut être défaillant
Outils :
wireshark
tcpdump
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
21 / 29
Les outils
Exemple :
Que vous apprend le logiciel wireshark par rapport au service ldap :
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
22 / 29
Les outils
Exemple :
Que vous apprend le logiciel wireshark par rapport au service telnet :
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
23 / 29
Les outils
Client simple
Pourquoi ?
Il faut tester chaque service.
Les applications qu’on utilise donnent des informations de haut
niveau.
Permet d’avoir des informations fiables.
Outils :
ping pour tester la connectivité ;
telnet pour ouvrir une connexion tcp ;
selon le serveur qu’on doit contacter ldapsearch , mysql, ftp , . . .
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
24 / 29
Les outils
Exemple :
Quel est l’erreur ?
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
25 / 29
Les outils
Exemple :
Quel est l’erreur ?
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
26 / 29
Les outils
Outils de connexion à distance
Pourquoi ?
Vérifier les configurations.
Deux machines différentes n’ont pas le même environnement.
Outils :
telnet
ssh
RDP (Bureau à distance)
voir le cours suivant.
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
27 / 29
Les outils
Historique d’évènement
Pourquoi ?
Détails sur ce qui arrive.
Analogie avec le debuggage d’un programme.
Voir les effets de ce que vous faites.
Outils :
/var/log /...
outils d’administrations → observateur d’évènement
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
28 / 29
Les outils
Exercice
c O.Glück & F.Rico (U.C.B.L.)
Client/Serveur
séance 1
29 / 29

Documents pareils