La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ingénierie des réseaux - Chapitre 2 : La Couche Application 1 Master 1 SIGLIS Ingénierie des réseaux Stéphane Tallard Chapitre 2 – La Couche Application.

Présentations similaires


Présentation au sujet: "Ingénierie des réseaux - Chapitre 2 : La Couche Application 1 Master 1 SIGLIS Ingénierie des réseaux Stéphane Tallard Chapitre 2 – La Couche Application."— Transcription de la présentation:

1 Ingénierie des réseaux - Chapitre 2 : La Couche Application 1 Master 1 SIGLIS Ingénierie des réseaux Stéphane Tallard Chapitre 2 – La Couche Application Master 1 SIGLIS

2 Ingénérie des réseaux2 Présentation du cours Ce cours s’appuie sur le cours réseau donnée à l’ University of California, Los Angeles (UCLA) par Deborah Estrin et Roozbeh Mottagi; lui-même basé sur « Computer Networking: A Top Down Approach, 5th edition par Jim Kurose, Keith Ross”

3 Ingénierie des réseaux - Chapitre 2 : La Couche Application3 Plan du Chapitre Master 1 SIGLIS 2.1 Principes des applications réseau 2.2. Web et HTTP 2.3 FTP 2.4 Courrier électronique  SMTP, POP3, IMAP 2.5 DNS 2.7. Programmation Socket avec TCP 2.8 Programmation Socket avec UDP

4 Ingénierie des réseaux - Chapitre 2 : La Couche Application4 Les objectifs du cours Master 1 SIGLIS Aspects conceptuels et internes des protocoles des applications réseau modèles de services de la couche transport paradigme client serveur paradigme peer-to-peer Apprendre sur les protocoles en examinant des protocoles populaires de la couche application HTTP FTP SMTP / POP3 / IMAP DNS Programmer une application réseau La bibliothèque des Sockets

5 Ingénierie des réseaux - Chapitre 2 : La Couche Application5 Quelques applications réseau Master 1 SIGLIS Web Messagerie instantanée Remote login Partage de fichiers P2P Jeux en réseau multiutilisateurs Streaming vidéo Voix sur IP Conférence Vidéo en temps réel Grid computing (calcul distribué sur un réseau d’ordinateurs)

6 Ingénierie des réseaux - Chapitre 2 : La Couche Application6 Pour créer une application réseau Master 1 SIGLIS Il faut écrire des programmes qui: fonctionnent sur différents systèmes communiquent à travers le réseau Ex : Les serveurs Web communiquent avec des navigateurs Une application réseau ce sont : une application qui tourne sur une machine qui émet une application qui tourne sur une machine qui reçoit des applications dans le cœur du réseau qui ne sont pas vues par l’utilisateur final.

7 Ingénierie des réseaux - Chapitre 2 : La Couche Application7 Chapitre 2 : La couche Application Master 1 SIGLIS 2.1 Principes des applications réseau 2.2. Web et HTTP 2.3 FTP 2.4 Courrier électronique  SMTP, POP3, IMAP 2.5 DNS 2.7. Programmation Socket avec TCP 2.8 Programmation Socket avec UDP 

8 Ingénierie des réseaux - Chapitre 2 : La Couche Application8 Architectures applicatives Master 1 SIGLIS Client – Serveur Peer-to-Peer (P2P) Hybride Client Serveur / P2P

9 Ingénierie des réseaux - Chapitre 2 : La Couche Application9 Architecture Client Serveur Master 1 SIGLIS Le serveur Toujours sur un hôte Adresse IP permanente Des fermes de serveurs pour répondre à la charge (scaling) Les clients Communiquent avec le serveur Peuvent être connectés par intermittence Peuvent avoir une adresse IP dynamique Ne communiquent pas entre eux.

10 Ingénierie des réseaux - Chapitre 2 : La Couche Application10 Architecture P2P Master 1 SIGLIS Les systèmes finaux communiquent directement Les pairs sont connectées par intermittence et peuvent changer d’adresse IP Exemple : Gnutella

11 Ingénierie des réseaux - Chapitre 2 : La Couche Application11 Hybride client serveur /P2P Master 1 SIGLIS Skype Application P2P de voix sur IP Une serveur centralisé est utilisé pour stocker et rechercher les adresses des utilisateurs Il y a une connexion directe entre les clients et pas à travers un serveur Le flux de communication met en jeu les utilisateurs du réseau Messagerie instantanée Discussion entre deux utilisateurs en P2P Un service centralisé détecte la présence des utilisateurs et leur localisation Au moment de la connexion l’adresse IP des utilisateurs est enregistrée Les utilisateurs contactent le serveur central pour trouver les adresses IP des amis.

12 Ingénierie des réseaux - Chapitre 2 : La Couche Application12 Les processus communiquent Master 1 SIGLIS Processus : se sont des programmes qui tournent sur un hôte Sur un même hôte, les processus communiquent en utilisant les services de communication inter processus définis par l’OS. Sur des hôtes différents, les hôtes communiquent en échangeant des messages. Le processus client initie la communication Le processus serveur attend qu’on le contacte Note: les applications P2P ont des processus client et des processus serveur.

13 Ingénierie des réseaux - Chapitre 2 : La Couche Application13 Les sockets Master 1 SIGLIS Socket = Connecteur réseau Les processus reçoivent /envoient des messages à travers la couche réseau La socket est une interface sur les services transport définis par l’OS: Quand il émet le processus utilise les services de transport définis par l’OS La couche de transport de l’OS convoie le message vers l’OS du processus recevant. L’API permet : Le choix du protocole de transport Le paramétrage de la communication

14 Ingénierie des réseaux - Chapitre 2 : La Couche Application14 Identifier les processus Master 1 SIGLIS Pour recevoir les messages, mes processus doivent avoir un identifiant Un hôte doit avoir une adresse IP 32-bits unique Question: est ce que l’adresse de l’hôte sur lequel tourne le processus suffit à identifier le processus ?

15 Ingénierie des réseaux - Chapitre 2 : La Couche Application15 Identifier les processus Master 1 SIGLIS Pour recevoir les messages, les processus doivent avoir un identifiant Un hôte doit avoir une adresse IP 32-bits unique Question: est ce que l’adresse de l’hôte sur lequel tourne le processus suffit à identifier le processus ? Réponse : Non plusieurs processus peuvent tourner sur le même hôte

16 Ingénierie des réseaux - Chapitre 2 : La Couche Application16 Identifier les processus Master 1 SIGLIS Pour recevoir les messages, les processus doivent avoir un identifiant Un hôte doit avoir une adresse IP 32-bits unique Question: est-ce que l’adresse de l’hôte sur lequel tourne le processus suffit à identifier le processus ? Réponse: Non plusieurs processus peuvent tourner sur le même hôte Les identifiants réseau contiennent non seulement l’adresse IP mais aussi le numéro de port Le port désigne le processus destinataire Exemple de numéros de port: Serveur HTTP: 80 Serveur de mail : 25 Pour envoyer un message HTTP au serveur portail.univ- pau.fr : Adresse IP : Numéro de port : 80

17 Ingénierie des réseaux - Chapitre 2 : La Couche Application17 Un protocole de la couche application définit Master 1 SIGLIS Le type des messages échangés Ex: requête, réponse La syntaxe des messages Les champs contenus dans les messages La façon dont les champs sont délimités La sémantique des messages La signification des informations dans les champs Les règles qui décrivent quand et comment les processus envoient et répondent aux messages Les protocoles du domaine public: Sont définis dans des RFCs (Request For Comments) Permettent l’interopérabilité Ex: HTTP, SMTP Il existe des protocoles propriétaires : Ex: Skype.

18 Ingénierie des réseaux - Chapitre 2 : La Couche Application18 Exigences sur les services de transport Master 1 SIGLIS Perte de données Des applications (ex: audio) peuvent tolérer des pertes Des applications (ex: transfert de fichier, telnet) ont besoin d’un transfert de données 100% fiable Bande passante: Des application demandent un minimun de bande passante (ex: téléphonie internet). Des applications (applications « élastiques ») font avec la bande passante disponible (ex: courrier électronique). Performance Des applications (ex: téléphonie internet, jeux interactifs ) demandent des temps de réponse corrects

19 Ingénierie des réseaux - Chapitre 2 : La Couche Application19 Exigences sur les services de transport Master 1 SIGLIS ApplicationPerte de donnéesBande passanteSensible au temps Transfert de fichierPas de perteélastiqueNon Pas de perteélastiqueNon Documents WebPas de perteélastiqueNon Audio-video temps réel Tolérant à la perteAudio : 5kbps- 1Mbps. Vidéo 10kbps – 5Mbps. Oui, ~ 100 ms Audio-vidéo stockéTolérant à la perteAudio : 5kbps- 1Mbps. Vidéo 10kbps – 5Mbps. Oui, quelques secondes Jeux interactifsTolérant à la perteQuelques KbsOui, ~ 100 ms Messagerie instantanée Pas de perteélastiqueOui et non

20 Ingénierie des réseaux - Chapitre 2 : La Couche Application20 Les services de protocoles de transport Internet Master 1 SIGLIS Service TCP Orienté connexion : un négociation est requise entre les processus client et les processus serveur Transport fiable entre les processus émetteur et récepteur Contrôle de flux: l’émetteur ne doit pas submerger le receveur Contrôle de congestion: l’émetteur doit ralentir lorsque le réseau est chargé Ne garantit pas : ni la performance, ni un minimum de bande passante. Service UDP Transfert de données non fiable entre l’émetteur et le récepteur Ne fournit pas: négociation, fiabilité, contrôle de flux, performance, bande passante Question: à quoi sert UDP ?

21 Ingénierie des réseaux - Chapitre 2 : La Couche Application21 Applications Internet: protocole application et protocole transport Master 1 SIGLIS ApplicationProtocole Couche Application Protocole couche transport sous jacent SMTPTCP Accès terminal distantTelnetTCP WebHTTPTCP Transfert de fichierFTPTCP Streaming multimédiaPropriétaire (ex : Realnetworks) TCP ou UDP Téléphonie InternetPropriétaire (Realnetworks) (ex : Vonage, Dialpad) Typiquement UDP Réponse: UDP est principalement utilisé pour le streaming

22 Ingénierie des réseaux - Chapitre 2 : La Couche Application22 Un texte ici Master 1 SIGLIS 2.1 Principes des applications réseau 2.2. Web et HTTP 2.3 FTP 2.4 Courrier électronique  SMTP, POP3, IMAP 2.5 DNS 2.7. Programmation Socket avec TCP 2.8 Programmation Socket avec UDP 

23 Ingénierie des réseaux - Chapitre 2 : La Couche Application23 Web et HTTP Master 1 SIGLIS Du vocabulaire: Une page Web contient des objets Des objets peuvent être des fichiers HTML, des images JPEG, des applet Java, des fichiers audio Des pages Web sont constitués d’un fichier HTML de base qui peut référencer plusieurs autres objets Chaque objet est adressable via une URL Exemple: Nom de l’hôte Chemin

24 Ingénierie des réseaux - Chapitre 2 : La Couche Application24 Le protocole HTTP Master 1 SIGLIS HTTP : Hypertext Transfert Protocol C’est le protocole de la couche application du Web Conçu sur le modèle du client serveur Le client : le navigateur qui envoie des requêtes, reçoit et affiche des objets Web. Le serveur : Le serveur Web envoie des objets en réponse à des requêtes. Requête HTTP Réponse HTTP Requête HTTP Réponse HTTP PC + Navigateur Web Mac + Navigateur Web Serveur + Serveur Web (Apache, Tomcat, …)

25 Ingénierie des réseaux - Chapitre 2 : La Couche Application25 Le protocole HTTP Master 1 SIGLIS HTTP utilise TCP Le client initie une connexion TCP (création d’une socket) sur le serveur, port 80 Le serveur accepte une connexion TCP du client Des messages HTTP sont échangés entre le navigateur (client HTTP) et le serveur Web (server HTTPP) La connexion TCP est fermée HTTP est « stateless » Le contenu des requêtes passées est perdu C’est au serveur de maintenir l’ état de l’interaction

26 Ingénierie des réseaux - Chapitre 2 : La Couche Application26 Connexions HTTP Master 1 SIGLIS HTTP non persistant Un objet au plus est envoyé sur une connexion TCP HTTP/1.0 utilise de l’HTTP non persistant HTTP persistant Plusieurs objets peuvent être envoyés sur une connexion unique entre le client et le serveur HTTP/1/1 utilise des connexions persistantes par défaut.

27 Ingénierie des réseaux - Chapitre 2 : La Couche Application27 Http non persistant Master 1 SIGLIS L’utilisateur entre : 1a. Le navigateur initie une connexion TCP au serveur HTTP 2. Le client HTTP envoie une requête HTTP (contenant l’url dans la socket de connexion TCP). 5. Le client HTTP reçoit le message de réponse contenant le fichier HTML et affiche l’HTML. En analysant le fichier html, il trouve 10 objets jpeg référencés. 6. Les étapes 1 à 5 sont répétées pour chacun des 10 objets jpeg. 1b. Le serveur HTTP est en attente de la connexion TCP sur le port 80. Le serveur accepte la connexion, et notifie le client.www.univ-pau.fr 3. Le serveur HTTP reçoit le message de requête, forme le message de réponse contenant l’objet demandé (un fichier html) et renvoie le message dans sa socket. 4. Le serveur ferme la connexion TCP temps

28 Ingénierie des réseaux - Chapitre 2 : La Couche Application28 Http non persistant : Evaluation du temps de réponse Master 1 SIGLIS RTT (Round Trip Time): Le temps entre l’envoi d’une requête et l’arrivée de la réponse. Le temps de réponse: Un RTT pour initier la connexion TCP Un RTT pour transférer le fichier Html Le temps de transmission du fichier Total = 2RTT + temps de transmission Initialisation de la connexion TCP Demande du fichier HTML Fichier reçu RTT Temps de transmission du fichier Temps

29 Ingénierie des réseaux - Chapitre 2 : La Couche Application29 Inconvénient du HTTP non persistant Master 1 SIGLIS Pour une pages qui référence n objets il faut initier n+1 connexions (1 fois pour le fichier html lui-même, n fois pour chaque objet) Le serveur doit réserver puis libérer une zone mémoire à chaque connexion L’initiation de la connexion est coûteuse en temps Les navigateurs ouvrent des connexions TCP en parallèle pour télécharger les n objets.   

30 Ingénierie des réseaux - Chapitre 2 : La Couche Application30 HTTP Persistant Master 1 SIGLIS Optimisation: le server laisse la connexion ouverte après avoir envoyé la réponse La connexion est réutilisée pour les messages HTTP envoyés depuis/vers le même client. On gagne les temps d’initiation de la connexion On diminue le trafic réseau On diminue la charge HTTP persistant sans pipelining Les clients envoient une nouvelle requête seulement quand la réponse précédente a été reçue HTTP persistant avec pipelining C’est le mode par défaut en HTTP/1.1 Le client envoie des requêtes aussitôt qu’il rencontre un objet référencé

31 Ingénierie des réseaux - Chapitre 2 : La Couche Application31 Visualisation du trafic pour charger une page avec Firebug Master 1 SIGLIS Firebug est un plugin Firefox qui permet (entre autres) de voir l’activité du browser Les requêtes envoyées et leur type (ici des GET) Le code retour L’adresse du serveur La taille de l’objet L’adresse IP du serveur et le port Les requêtes envoyées: on voit que les requêtes sont envoyées en parallèle : on est en HTTP 1.1 Nombre total de requêtes Taille totale des objets Durée totale

32 Ingénierie des réseaux - Chapitre 2 : La Couche Application32 Message de requête HTTP Master 1 SIGLIS Deux types de message HTTP : request, response Le message de requête HTTP est en ASCII GET /somedir/page.html HTTP/1.1 HOST : User-agent : Mozilla /6.0 Connection : keep-alive Accept-language : fr Type de la requête : ici GET CR LF indique la fin de la ligne Ligne d’entête

33 Ingénierie des réseaux - Chapitre 2 : La Couche Application33 Message de réponse HTTP Master 1 SIGLIS Ligne de statut Lignes d’entêtes Données : ici le fichier html demandé

34 Ingénierie des réseaux - Chapitre 2 : La Couche Application34 Message de requête HTTP: forme générale Master 1 SIGLIS Note: sp = space Dans le cas d’une request, permet d’uploader un fichier.

35 Ingénierie des réseaux - Chapitre 2 : La Couche Application35 Visualiser l’échange avec Firebug (1) Master 1 SIGLIS Affichage des entêtes Que reconnaissez vous ?

36 Ingénierie des réseaux - Chapitre 2 : La Couche Application36 Visualiser l’échange avec Firebug (2) Master 1 SIGLIS Visualisation des données

37 Ingénierie des réseaux - Chapitre 2 : La Couche Application37 Les différents types de méthode Master 1 SIGLIS HTTP/1.0 GET POST : pour les formes html HEAD Demander au serveur de renvoyer uniquement l’entête HTTP/1.1 GET, POST, HEAD PUT Upload d’un fichier DELETE Détruire un fichier spécifié dans le field URL

38 Ingénierie des réseaux - Chapitre 2 : La Couche Application38 Les codes de status HTTP Master 1 SIGLIS Le code de statut est dans la première ligne de la réponse. Quelques codes :  200 OK Requête traitée avec succès  301 Moved Permanently Document déplacé de façon permanente  400 Bad Request La syntaxe de la requête est erronée  404 Not Found Ressource non trouvée  505 HTTP Version not supported Version HTTP non gérée par le serveur

39 Ingénierie des réseaux - Chapitre 2 : La Couche Application39 Jouons un peu avec Master 1 SIGLIS Ouvre une connexion TCP sur le port 80 (serveur HTTP par défaut). Tout ce qui est tapé est envoyé à sur le port 80www.univ-pau.fr Il s’agit d’une requête HTTP valide. Terminez là en tapant deux fois sur entrée. Faites le et regardez le message de réponse envoyé par le server HTTP.

40 Ingénierie des réseaux - Chapitre 2 : La Couche Application40 Caches Web (serveur proxy) Master 1 SIGLIS Objectif : répondre à la requête du client sans accéder au serveur initial client Serveur Proxy Serveur  Ferme de serveurs Web Exemple: L’architecture réseau de Wikipedia Les objets html (fichiers html, Images, …) sont hébergés sur des serveurs Web Des serveurs proxy, optimisés pour la gestion du cache, stockent les fichiers qu’ils voient passer Quand un poste client demande un objet, le proxy serveur regarde si il possède l’objet, si oui il le renvoie Si non il envoie la requête à la ferme de serveurs. On tente d’éviter d’accéder à la ferme de serveurs Requête HTTP Réponse HTTP Requête HTTP Réponse HTTP Requête HTTP Réponse HTTP Requête HTTP Réponse HTTP Requête HTTP Réponse HTTP 

41 Ingénierie des réseaux - Chapitre 2 : La Couche Application41 Stratégie d’optimisation: une étude de cas Master 1 SIGLIS Hypothèses Taille moyenne des objets : bits Fréquence moyenne des requêtes http des navigateurs clients vers les serveurs web = 15req/s Temps d’accès du routeur institutionnel à un des serveurs Web et retour vers le routeur : 2s Conséquences Utilisation du LAN = 15% (15 req/s * 100Kb/req)/(10Mbps) Utilisation du lien d’accès = 100 % (15 req/s * 100Kb/req) / 1,5 M) Délai total = Délai Internet + Délai du lien d’accès + Délai sur le LAN = 2s + minutes + milliseconds Internet public Serveurs Initiaux Liaison 1,5 Mbps Réseau local à 10Mbs  c.f. ch 1 p.35  2s 

42 Ingénierie des réseaux - Chapitre 2 : La Couche Application42 Stratégie d’optimisation: mise à niveau matérielle Master 1 SIGLIS Une solution pour améliorer les performances Augmenter la bande passante sur la liaison d’accès : 1,5 Mbps  10 Mbps Conséquences Utilisation du LAN = 15% (15 req/s * 100Kb/req)/(10Mbps) Utilisation du lien d’accès = 15 % (15 req/s * 100Kb/req) / 10 Mbps) Délai total = Délai Internet + Délai du lien d’accès + Délai sur le LAN = 2s + millisecondes + millisecondes Mais la mise à niveau est souvent coûteuse Liaison 10 Mbps Internet public Serveurs Initiaux Réseau local à 10Mbs   2s

43 Ingénierie des réseaux - Chapitre 2 : La Couche Application43 Stratégie d’optimisation: Installation d’un cache Master 1 SIGLIS Internet public Serveurs Initiaux Réseau local à 10Mbs Ajout d’un cache Hypothèse le taux de requête qui peuvent être satisfaites par le cache est de 0.4 Si l’activité est < 0.8, le temps de transfert est de 0.01s. Conséquences 40 % des requêtes peuvent être satisfaites presque instantanément 60 % des requêtes satisfaites par les serveurs initiaux Utilisation de la liaison d’accès est réduite à 60% : (15 req/s * 0.6 * 100Kb/req) / 1,5 M) Délai total = Délai Internet + Délai du lien d’accès + Délai sur le LAN Liaison 1,5 Mbps Avec cache Sans cache Délai internet0s2s Délai liaison accès 0s0.01 Délai LAN0.01 Délai moyen : (0.4 * 0.01s) + (0.6 * 2.02s) Mais l’installation est beaucoup moins chère que la mise à niveau d’une liaison à 10 Mgbs 2s

44 Ingénierie des réseaux - Chapitre 2 : La Couche Application44 Get Conditional (1) Master 1 SIGLIS Objectif : ne pas renvoyer l’objet si le cache contient une version récente On se sert du cache local: le navigateur maintient un cache d’objets Le server n’insère pas l’objet dans la réponse si la copie est à jour : Les objets sont stockés dans le cache avec leur date de dernière modification (contenue dans l'entête ligne "Last-modified") Lorsque le navigateur voit passer une demande pour cet objet stocké dans le cache il envoie une requête "if-modified-since" avec la date stockée Si l'objet a été modifié le serveur renvoie l'objet Si l'objet n'a pas été modifié le serveur renvoie un code retour "not modified".

45 Ingénierie des réseaux - Chapitre 2 : La Couche Application45 Get Conditionnel (2) Master 1 SIGLIS Client Reponse http HTTP/ Not Modified CacheServer Vérifier si sample.html est dans le cache client Réponse : non GET /sample.html HTTP/1.1 Host: example.com HTTP/1.x 200 OK Via: The-proxy-name Content-Length: Expires: Tue, 27 Dec :25:11 GMT Date: Tue, 27 Dec :25:11 GMT Cache-Control: max-age=21600 Last-Modified: Wed, 01 Sep :24:52 GMT Etag: “4135cda4″ + Affichage Génération L’utilisateur clique sur le lien sample.html Stockage dans le cache local sample.html GET /sample.html HTTP/1.1 Host: example.com If-Modified-Since: Wed, 01 Sep :24:52 GMT If-None-Match: “4135cda4″ Comparaison des dates Recherche dans le cache local: on a l’objet en cache Affichage L’objet en cache est il toujours valide ?Réponse : Oui, l’objet est valide Lecture dans le cache local

46 Ingénierie des réseaux - Chapitre 2 : La Couche Application46 Chapitre 2 : La couche Application Master 1 SIGLIS 2.1 Principes des applications réseau 2.2. Web et HTTP 2.3 FTP 2.4 Courrier électronique  SMTP, POP3, IMAP 2.5 DNS 2.7. Programmation Socket avec TCP 2.8 Programmation Socket avec UDP 

47 Ingénierie des réseaux - Chapitre 2 : La Couche Application47 FTP : File Transfert Protocol Master 1 SIGLIS FTP Client FTP User Interface FTP Server Transfert de fichier Système de fichier local Système de fichier distant Transfert de fichier de/vers hôte distant Modèle client/server Client : côté qui initie le transfert Serveur : hôte distant Il existe des clients FTP gratuits ex:

48 Ingénierie des réseaux - Chapitre 2 : La Couche Application48 FTP: connexions de données et de contrôle Master 1 SIGLIS Serveur FTP Connexion de contrôle TCP port 21 Connexion de données TCP port 21 Client FTP Le client FTP contacte le serveur FTP sur le port 21. TCP est le protocole de transport utilisé. Le client est autorisé à ouvrir une connexion de contrôle. Le client utilise la connexion de contrôle pour naviguer dans les répertoires du serveur FTP. Quand le serveur reçoit une commande de transfert de fichier, le serveur ouvre une seconde connexion TCP Après avoir transféré le fichier, le serveur ferme la connexion de données. Le serveur ouvrira une autre connexion de données pour transférer un autre fichier Le serveur maintient un « état »: le répertoire courant qu’il est associe à l’utilisateur. Lorsque cet utilisateur se reconnectera, il sera placé dans ce répertoire : on évitera toutes les commandes de changement de répertoire.

49 Ingénierie des réseaux - Chapitre 2 : La Couche Application49 FTP : commande et réponses Master 1 SIGLIS Commandes FTP : elles sont envoyées en ascii sur le canal de contrôle Authentification USER PASS Navigation dans le répertoires de la machine distante LIST retourne une liste de fichiers CWD change de répertoire Transfert de fichier RETR rapatrie le fichier vers le client STOR envoie un fichier vers le serveur Exemples de codes de retour 331 Username OK password required 125 data connection already open; transfert starting 425 Can’t open data connection 452 Error writing file

50 Ingénierie des réseaux - Chapitre 2 : La Couche Application50 FTP : exemple de dialogue Master 1 SIGLIS Statut :R é solution de l'adresse de ftp.xxxxx.com Statut :Connexion à zzzzz.yyyyy.xxxx.www:21... Statut :Connexion é tablie, attente du message d'accueil... R é ponse : Welcome to Pure-FTPd [privsep] [TLS] R é ponse :220-You are user number 2 of 50 allowed. R é ponse :220-Local time is now 08:41. Server port: 21. R é ponse :220-This is a private system - No anonymous login R é ponse :220-IPv6 connections are also welcome on this server. R é ponse :220 You will be disconnected after 15 minutes of inactivity. Commande :USER R é ponse :331 User OK. Password required Commande :PASS ******* R é ponse :230 OK. Current restricted directory is / Commande :SYST R é ponse :215 UNIX Type: L8 Statut :Connect é Statut :R é cup é ration du contenu du dossier... Commande :PWD R é ponse :257 "/" is your current location Commande :TYPE I R é ponse :200 TYPE is now 8-bit binary Commande :PASV R é ponse :227 Entering Passive Mode (50,61,246,101,12,125) Commande :MLSD R é ponse :150 Accepted data connection R é ponse :226-Options: -a -l R é ponse :226 6 matches total Statut :Contenu du dossier affich é avec succ è s Commande :RETR xxxxrar R é ponse :150-Accepted data connection R é ponse : kbytes to download R é ponse :226-File successfully transferred R é ponse : seconds (measured here), Kbytes per second Statut :Transfert de fichier r é ussi, octets transf é r é s en 6 secondes

51 Ingénierie des réseaux - Chapitre 2 : La Couche Application51 Chapitre 2 : La couche Application Master 1 SIGLIS 2.1 Principes des applications réseau 2.2. Web et HTTP 2.3 FTP 2.4 Courrier électronique  SMTP, POP3, IMAP 2.5 DNS 2.7. Programmation Socket avec TCP 2.8 Programmation Socket avec UDP 

52 Ingénierie des réseaux - Chapitre 2 : La Couche Application52 Courrier électronique Master 1 SIGLIS Trois composant majeurs Agents utilisateur Serveur de mail SMTP : Simple Mail Transfer Protocol Agent Utilisateur lecteur de mail Composition, édition, lecture de messages Eudora, Outlook, Mozilla Thunderbird les messages entrants et sortants sont stockés sur le serveur Serveur de mail Agent Utilisateur Serveur de mail Agent Utilisateur S er ve ur d e m ail Agent Utilisateur SMTP Queue des messages sortants Boite aux lettres utilisateur SMTP

53 Ingénierie des réseaux - Chapitre 2 : La Couche Application53 Serveurs de mail Master 1 SIGLIS Serveurs de mail Les boîtes aux lettres contiennent les messages entrants pour l’utilisateur Les queues de message contiennent les messages sortants en attente d’envoi Le protocole SMTP est utilisé pour envoyer les messages entre serveurs de mail. Le protocole SMTP une partie client qui envoie des messages une partie serveur qui reçoit des messages Serveur de mail Agent Utilisateur Serveur de mail Agent Utilisateur S er ve ur d e m ail Agent Utilisateur SMTP Queue des messages sortants Boite aux lettres utilisateur SMTP

54 Ingénierie des réseaux - Chapitre 2 : La Couche Application54 SMTP [RFC 2821] Master 1 SIGLIS Utilise TCP pour transférer de manière fiable les messages du client au serveur sur le port 25 Le transfert est direct : du server envoyeur au serveur recevant Trois phases de transfert : serrage de main (« handshaking ») Transfert de messages Fermeture Interaction commande/réponse Commandes : texte Ascii Réponse : code de statut et phrase Les messages doivent être en ASCII 7-bits

55 Ingénierie des réseaux - Chapitre 2 : La Couche Application55 Scénario : Alice envoie un message à Bob Master 1 SIGLIS 1. Alice utilise un agent utilisateur pour composer un message à 2.Alice envoie le message à son serveur de mail : le message est placé dans la queue des messages 3.Le client SMTP ouvre une connexion TCP avec le serveur de mail de Bob. 4.Le client SMTP envoie le message d’Alice au dessus de la connexion TCP 5. Le serveur de mail de Bob place le message dans la boite de Bob. 6. Bob utilise l’agent utilisateur pour lire le message. Agent Utilisateur S er ve ur d e m ail Agent Utilisateur      

56 Ingénierie des réseaux - Chapitre 2 : La Couche Application56 Exemple d’une interaction SMTP Master 1 SIGLIS S : serveur C : Client

57 Ingénierie des réseaux - Chapitre 2 : La Couche Application57 SMTP Master 1 SIGLIS SMTP utilise des connexions persistantes : il utilise la même connexion pour envoyer plusieurs fichiers SMTP requiert que les messages (entête et corps) soient en ASCII 7-bits. SMTP utilise CRLF-CRLF pour déterminer la fin du message Comparaison avec HTTP: HTTP : pull - Le client demande au serveur SMTP : push - Le serveur envoie les messages au client Les deux ont des commandes et des réponses libellées en ASCII Les deux utilisent des codes de statut HTTP : chaque objet est encapsulé dans son propre message de réponse SMTP : plusieurs objets peuvent être envoyés dans un message multipart.

58 Ingénierie des réseaux - Chapitre 2 : La Couche Application58 Format des messages électroniques Master 1 SIGLIS SMTP : protocole pour échanger les s RFC 822 : standard pour les messages texte lignes d’entête To: From: Subject: Ce ne sont pas des commandes SMTP Corps Le message contient uniquement des caractères ASCII Entête Corps Ligne vide

59 Ingénierie des réseaux - Chapitre 2 : La Couche Application59 Format des message électroniques: extensions multimédia Master 1 SIGLIS MIME: Multimédia Mail Extension, RFC 2045, 2056 des lignes additionnelles dans l’entête du message déclarent les type du contenu MIME Version MIME Méthode utilisée pour encoder les données Type et sous type de la donnée multimédia Données encodées

60 Ingénierie des réseaux - Chapitre 2 : La Couche Application60 Protocoles d’accès aux mails Master 1 SIGLIS Agent Utilisateur Serveur de mail de l’envoyeur Serveur de mail du destinataire Agent Utilisateur SMTP Protocoles d’accès SMTP : livraison/stockage sur le serveur du receveur Protocoles d’accès aux mails : transfert depuis le serveur POP: Post Office Protocol [RFC 1939] autorisation (agent serveur ) et téléchargement IMAP: Internet Mail access Protocol [RFC 1730] davantage de fonctionnalités manipulations de messages stockés sur le serveur HTTP : gmail, Yahoo!Mail, etc…

61 Ingénierie des réseaux - Chapitre 2 : La Couche Application61 Protocole POP3 Master 1 SIGLIS Phase d’autorisation commandes client user : déclare le nom de l’utilisateur pass : mot de passe Réponses du serveur +OK -ERR Phase de transaction, client list liste les numéros de message retr : transfère les messages par numéro dele : destruction

62 Ingénierie des réseaux - Chapitre 2 : La Couche Application62 POP3 et IMAP Master 1 SIGLIS Davantage d’informations sur POP3 L’exemple précédent utilise le mode « download et delete » Bob ne peut pas relire ses mail si il change de client Le mode « download-and-keep » : copie les message sur des clients différents IMAP laisse tous les messages en un seul endroit : le serveur Permet à l’utilisateur d’organiser ses messages en dossiers IMAP conserve l’état de l’utilisateur à travers les sessions: conservation de noms des dossiers conservation des correspondances entre les identifiants de messages et les noms de dossiers

63 Ingénierie des réseaux - Chapitre 2 : La Couche Application63 Chapitre 2 : La couche Application Master 1 SIGLIS 2.1 Principes des applications réseau 2.2. Web et HTTP 2.3 FTP 2.4 Courrier électronique  SMTP, POP3, IMAP 2.5 DNS 2.7. Programmation Socket avec TCP 2.8 Programmation Socket avec UDP 

64 Ingénierie des réseaux - Chapitre 2 : La Couche Application64 DNS: Domain Name System Master 1 SIGLIS Les gens : des tas d’identifiants N°= sécurité sociale, nom, passeport, … Pour les hôtes et les routeurs Internet: les adresses IP sont utilisées pour convoyer les datagrammes les noms sont utilisés par les humains ex: Question: Comment mapper les adresses IP et les noms ? Réponse: Domain Name System (DNS) Base de données distribuée Implémentée en une hiérarchie de plusieurs serveurs de nom Un protocole de la couche application les hôtes, les routeurs, les serveurs de nom doivent communiquer pour résoudre les noms (traduction adresse/nom) Note: c’est une fonction du cœur d’Internet implémentée comme un protocole de la couche application

65 Ingénierie des réseaux - Chapitre 2 : La Couche Application65 DNS: Domain Name System Master 1 SIGLIS Les services DNS traduction du nom d’hôte vers l’adresse IP alias de nom : ex relay1.west-coast.enterprise.com -> {enterprise.com, Alias de serveurs de mail au lieu mta1010.mail.ukl.yahoo.com distribution de la charge pour les fermes de serveur un nom canonique est associé à un ensemble d’adresse IP Pourquoi ne pas centraliser le DNS ? introduit un point de défaillance généralisée: en cas d’erreur le réseau est paralysé volume du trafic distance au lieu d’installation Maintenance: comment réaliser les habituelles opérations de maintenance (mise à jour système, remplacement de périphériques …)

66 Ingénierie des réseaux - Chapitre 2 : La Couche Application66 DNS: Une base de données distribuée et hiérarchique Master 1 SIGLIS Serveurs DNS Racine Serveurs DNS com Serveurs DNS yahoo Serveurs DNS amazon Serveurs DNS edu Serveurs DNS gov Serveurs DNS org Serveurs DNS net Serveurs DNS fr pau.fr Serveurs DNS us Génériques Pays Serveurs Top Level Domain (TLD)

67 Ingénierie des réseaux - Chapitre 2 : La Couche Application67 DNS: Les serveurs de nom racine Master 1 SIGLIS ils sont contactés par le serveur de nom local lorsqu’il ne peut pas résoudre un nom Le serveur de nom racine contacte le serveur de nom autoritatif si la correspondance n’est pas trouvée obtient la correspondance retourne la correspondance au serveur de nom local IL y a 13 serveurs de nom racine

68 Ingénierie des réseaux - Chapitre 2 : La Couche Application68 Les serveurs autoritatifs et les serveurs TLD (Top-level domain) Master 1 SIGLIS Les serveurs de noms autoritatifs: tous les hôtes sont enregistrés dans une serveur de nom autoritatif Les serveur de nom racine savent trouver pour un nom, soit la correspondance soit le serveur de nom autoritatif qui va trouver la correspondance. Le serveurs de nom TLD gèrent les domaines génériques com, org, net,edu, etc, et les nom des pays uk, fr, can jp, …

69 Ingénierie des réseaux - Chapitre 2 : La Couche Application69 Exemple de résolution: surf.eurocom.fr recherche gaia.cs.umass.edu Master 1 SIGLIS surf.eurocom.fr Serveur de nom local dns.eurocom.fr Serveur de nom racine TLD DNS Server (xx.xx.xx.xx) gaia.cs.umass.edu (zz.zz.zz.zz)       Les requêtes sont itérées : Si le serveur connait le nom, il répond par la correspondance sinon il répond par l’adresse d’un serveur dont il pense qu’il a la réponse Serveur autoritatif dns.cs.umass.edu (yy.yy.yy.yy)   1: gaia.cs.umass.edu ? 2:Quel est le serveur TLD pour edu ? 3: le serveur pour edu est xx.xx.xx.xx 4: Quel est le serveur autoritatif pour gaia.cs.umass.edu ? 5: Le serveur autoritatif pour gaia.cs.umass.edu est yy.yy.yy.yy 6: gaia.cs.umass.edu ? 7: zz.zz.zz.zz

70 Ingénierie des réseaux - Chapitre 2 : La Couche Application70 DNS: Cacher et mettre à jour les enregistrements Master 1 SIGLIS Lorsqu’un serveur a appris une correspondance, il la cache les entrées du cache disparaissent après un certain temps (time out) Les serveurs TLD sont typiquement cachés dans les serveurs de nom locaux c’est pourquoi les serveurs de nom racine ne sont pas souvent visités. Les mécanismes de mise à jour et de notification sont conçus par l’IETF RFC 2136

71 Ingénierie des réseaux - Chapitre 2 : La Couche Application71 Enregistrements DNS Master 1 SIGLIS DNS : une base de données distribuée stockant des enregistrements de ressource (RR) RR (name,value, type, ttl) Type = A name est une nom d’hôte Value est adresse IP Type = NS name est un domain (ex foo.com) Value est le nom d’hôte du serveur de nom autoritatif pour ce domaine Type = CNAME Name est une nom d’alias pour un nom canonique (nom réel) est vraiment servereast.backup2.ibm.co mwww.ibm.com value est le nom canonique Type = MX value est le nom du serveur de mail associé à name

72 Ingénierie des réseaux - Chapitre 2 : La Couche Application72 Protocoles et messages DNS Master 1 SIGLIS Le protocole DNS est constitué de messages de requêtes, tous ayant des entêtes de message. Identification de la requête sur 16 bit La réponse reprend l’identification Le serveur peut alors rapprocher une réponse d’une requête envoyée Des flags query or reply recursivité désirée récursivité disponible la réponse est autoritative

73 Ingénierie des réseaux - Chapitre 2 : La Couche Application73 Protocoles et messages DNS Master 1 SIGLIS     1. Description du nom et du type pour une requête 2.Les RRs trouvés en réponse à une requête 3. Les enregistrements trouvés pour les serveurs autoritatifs 4.Information additionnelle


Télécharger ppt "Ingénierie des réseaux - Chapitre 2 : La Couche Application 1 Master 1 SIGLIS Ingénierie des réseaux Stéphane Tallard Chapitre 2 – La Couche Application."

Présentations similaires


Annonces Google