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