INF3270-Chap2-Couche_Applications-3s

INF3270-Chap2-Couche_Applications-3s - Chapitre 2 Couche...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Chapitre 2 Couche applications Redouane Zidane UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 1 Objectif Comprendre l’aspect conceptuel et l’implantation des applications réseau Paradigme client-server Paradigme peer-to-peer Examiner les protocoles populaires de la couche application HTTP FTP SMTP / POP3 / IMAP DNS Programmer des applications réseau Les sockets Matériel basé sur la référence J.F Kurose and K.W. Ross UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 2 Quelques applications réseau (1) E-mail W eb Messagerie instantanée Accès à distance Partage de fichiers P2P “Streaming” vidéo Téléphonie IP Vidéo conférence IPTV Jeux en réseau UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 3 1 Quelques applications réseau (2) (Wired Magazine, Août 2010) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 4 Quelques applications réseau (3) (Wired Magazine, Août 2010) “ You wake up and check your email on your bedside iPad — that’s one app. During breakfast you browse Facebook, Twitter, and The New York Times — three more apps. On the way to the office, you listen to a podcast on your smartphone. Another app. At work, you scroll through RSS feeds in a reader and have Skype and IM conversations. More apps. At the end of the day, you come home, make dinner while listening to Pandora, play some games on Xbox Live, and watch a movie on Netflix’s streaming service. You’ve spent the day on the Internet — but not on the Web. And you are not alone.” UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 5 Sommaire Applications P2P Introduction aux applications réseau Programmation des sockets avec TC Web et HTTP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 6 2 Architectures application Client-serveur Peer-to-peer (P2P) Hybride (client-serveur et P2P) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 7 Architecture client-serveur Serveur: Propose les services demandés par le client Exemple : Le serveur Web envoie les pages Web demandées Client: Initie le contact avec le serveur client/serveur Demande un service Exemple: W eb: le client est implanté dans le navigateur E-mail: dans le « mail reader » UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 8 Architecture P2P Pas de serveur Hôtes clients communiquent directement Hôtes connectés de façon intermittente UQAM - Session Autome 2011 peer-peer R Zidane - INF3270 - Téléinformatique 9 3 Architecture hybride Skype Application voix sur IP P2P Serveur centralisé Son rôle: Trouver l’adresse du hôte appelé Connexion client-client: Directe (pas à travers le serveur) Messagerie instantanée « chat » entre deux utilisateurs est P2P Service centralisé Détection et localisation de la présence du client Utilisateur enregistre son adresse IP au niveau du serveur central quand il se connecte Utilisateur contacte le serveur central pour trouver l’adresse IP du « buddy » UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 10 Applications réseau: Le processus application transport réseau liaison Les entités communicantes sont des processus Un processus est un programme qui s’exécute sur un hôte physique Deux processus s’exécutant sur deux hôtes différents communiquent en s'échangeant des messages avec un protocole de couche application application transport réseau liaison Processus émetteur/récepteur Le processus suppose qu'il existe une infrastructure de transport endessous UQAM - Session Autome 2011 physique R Zidane - INF3270 - Téléinformatique application transport réseau liaison physique 11 Applications réseau: Les sockets Porte d'entrée d'un processus Interface entre la couche application et la couche transport d'un hôte Le développeur contrôle toute la partie application des sockets ; il n'a que peu de contrôle sur la partie transport (choix du protocole et éventuellement ajustement de quelques paramètres) Socket = API Internet UQAM - Session Autome 2011 Hôte ou serveur Hôte ou serveur processus controlé par dévelopeur apps processus socket socket TCP avec buffers, variables Internet TCP avec buffers, variables controlé par OS R Zidane - INF3270 - Téléinformatique 12 4 Applications réseau: Adressage du processus Comment un processus identifie-t-il un processus distant pour communiquer? Nom ou adresse de l'hôte distant Adresse IP de l’hôte distant : 32 bits qui identifient de manière unique l'interface qui connecte l'hôte à l'Internet L’identificateur inclut les deux entités Adresse IP et numéro de port associé au processus Exemple de numéros de port Identifiant du processus récepteur chez l'hôte distant Numéro de port : permet de différencier les différents processus locaux auxquels le message doit être transmis UQAM - Session Autome 2011 Serveur HTTP: 80 Serveur Mail: 25 Pour envoyer une requête HTTP au serveur info.uqam.ca Adresse IP: 132.208.137.76 Numéro de port: 80 R Zidane - INF3270 - Téléinformatique 13 Protocole application Définit : Le type des messages échangés Requête, réponse La syntaxe des différents types de messages Certains protocoles application sont spécifiés dans des RFCs (domaine public) Ex: HTTP Champs du message La sémantique des champs Signification des informations qui y sont contenues D’autres sont propriétaires Ex: Skype, téléphonie IP Les règles pour déterminer quand et comment un processus envoie des messages et y répond UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 14 Quel est le service de transport nécessaire à une application? (1) 4 types de besoins au niveau des applications en termes de : Perte de données Bande passante Délai Sécurité UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 15 5 Quel est le service de transport nécessaire à une application? (2) Perte de données Certaines applications nécessitent une fiabilité à 100% Courrier électronique (SMTP) Transfert de fichiers (FTP) Accès distant (Telnet) Transfert de documents Web (HTTP) Applications financières D'autres peuvent tolérer des pertes Applications multimédia : audio/vidéo UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 16 Quel est le service de transport nécessaire à une application? (3) Bande passante (Throughput ) Certaines applications (ex : multimédia) requièrent une bande passante minimale Téléphonie sur Internet : si la voix est codée à 32 Kbps, les données doivent être transmises à ce débit Applications multimédia D’autre utilisent la bande passante disponible (applications élastiques) Courrier électronique, transfert de fichiers, accès distant, Web Plus il y a de bande passante, meilleure est la qualité de service UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 17 Quel est le service de transport nécessaire à une application? (4) Délai Certaines applications nécessitent un délai de bout-en-bout faible (moins de quelques centaines de ms) Applications temps réel interactives : Téléphonie IP Télévision IP Téléconférence Jeux en réseau Pour les application non temps réel, un délai court est préférable, mais pas de contrainte forte UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 18 6 Quel est le service de transport nécessaire à une application? (5) Sécurité Encryptage, authentification, intégrité des données, etc… UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 19 Besoin en service de transport Application Pertes Tbande passante Transfert de fichiers e-mail Web Audio/video temps réel Sans pertes Sans pertes Sans pertes Tolérant Audio/video clips Jeux interactifs Messagerie instantanée Tolérant Tolérant Sans pertes élastique no élastique no élastique no audio: 5kbps-1Mbps oui, 100’s msec video:10kbps-5Mbps idem oui, qques secs quelques kbps oui, 100’s msec élastique Oui et non UQAM - Session Autome 2011 Délais R Zidane - INF3270 - Téléinformatique 20 Services proposés 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 Transfert de données non fiable Ne propose pas Contrôle de Congestion: réduit le débit de l’émetteur quand le réseau est congestionné de connexion de fiabilité de contrôle de flot de contrôle de congestion de garantie de délai de bande passante Ne propose pas: de garantie de délai, de bande passante minimale UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 21 7 Applications Internet: Protocoles application et protocoles de transport Application Protocole applicatif Protocole de transport e-mail Accès distant Web Transfert de fichiers “streaming multimedia” SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (ex: Youtube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) TCP TCP TCP TCP TCP or UDP Téléphonie IP UQAM - Session Autome 2011 En général UDP R Zidane - INF3270 - Téléinformatique 22 Sommaire Applications P2P Introduction aux applications réseau Programmation des sockets avec TCP Web et HTTP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 23 Le Web et le protocole HTTP Le jargon Page Web Contient des “objets” Un objet peut être un fichier HTML, une image JPEG, une applet Java, un fichier audio, et… La page Web contient Une page HTML de base Des objets référencés Chaque objet est adressé par une URL Exemple URL: www.uqam.ca/Dept_abc/image.gif Nom d’hôte UQAM - Session Autome 2011 Chemin d’accès R Zidane - INF3270 - Téléinformatique 24 8 Le protocole HTTP (1) HTTP: HyperText Transfer Protocol Couche application Web Modèle client/serveur PC exécutant Explorer Client : le browser, qui demande, reçoit, affiche les objets Web Serveur : le serveur Web, qui envoie les réponses aux requêtes http1.0 : RFC 1945 http1.1 : RFC 2068 UQAM - Session Autome 2011 Serveur exécutant Apache server Mac exécutant Navigator R Zidane - INF3270 - Téléinformatique 25 Le protocole HTTP (2) Service de transport TCP HTTP est « sans état » Le client initie une connexion TCP (crée une socket) avec le serveur, port 80 Le serveur accepte la connexion TCP du client Les messages HTTP sont échangés entre le navigateur (client HTTP) et le serveur Web La connexion TCP est fermée Le serveur ne maintient aucune information au sujet des requêtes précédentes des clients UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 26 Exemple de requête/réponse HTTP Si un utilisateur entre l’URL www.info.uqam.ca/Departement_abc/index.html 1a. Le client HTTP initie une connexion TCP au serveur HTTP sur le site www.info.uqam.ca Le port 80 est choisi par défaut 2. Le client HTTP envoie les requêtes HTTP (contenant des URLs) par les sockets TCP temps UQAM - Session Autome 2011 1b. Le serveur HTTP du site www.info.uqam.ca attend une connexion TCP sur le port 80. Il “accepte” la connexion et l’annonce au client 3. Le serveur HTTP reçoit le message de requête, génère le message de réponse contenant l’objet requis (Departement_abc/index.html ) et l’envoie sur une socket R Zidane - INF3270 - Téléinformatique 27 9 Exemple de requête/réponse HTTP temps 5. Le client HTTP reçoit la réponse contenant le fichier HTML et l’affiche. En décodant le fichier, le navigateur trouve les URLs référencées 4. Le serveur HTTP ferme la connexion TCP 6. Les étapes 1-5 sont répétées pour chaque URL référencée UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 28 Connexions persistantes et non-persistantes HTTP non-persistant HTTP/1.0 HTTP persistant Par défaut dans HTTP/1.1 Le serveur interprète les requêtes, répond et ferme la connexion TCP 2 RTTs sont nécessaires pour lire chaque objet Exemple: page contenant 1 fichier HTML 10 images JPEG Une seule connexion TCP est ouverte vers le serveur Le client envoie la requête de tous les objets requis dès qu’ils sont référencés dans le HTML Un RTT pour tous objets référencés RTT = Round-Trip Time UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 29 Exemple de connexion HTTP non-Persistante Temps de réponse Un RTT pour initier une connexion TCP Un RTT pour la requête HTTP Temps de transmission du fichier total = 2RTT+transmit time Initie une connexion TCP RTT requête HTTP RTT Temps de transmission du fichier Fichier reçu temps UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique temps 30 10 Types de méthode HTTP GET : Requête permettant de demander un document spécifique (la page Web) POST Requête pour que le serveur accepte les données de la requête et retourne certaines informations (exemple de “search”) HEAD Requête pour une information d’en-tête d’un document spécifique Comme GET mais sans le contenu PUT Requête de remplacement du contenu d’un document du serveur avec les données du client UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 31 Format du message HTTP: Requête (1) Deux types de message: requête, réponse Message de requête HTTP: ASCII Ligne de requête (commandes GET, POST, HEAD) GET /somedir/page.html HTTP/1.1 Host: www.info.uqam.ca Lignes User-agent: Mozilla/4.0 d’entête Connection: close Accept-language:fr Le retour chariot indique la fin du message UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 32 Format du message HTTP: Requête (2) Ligne de requête Lignes d’entête Ligne blanche Données ou corps de la requête UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 33 11 Format du message HTTP: Réponse Ligne d’état (protocole Code de statut Message de statut) Lignes d’entête Données, ex: le fichier HTML HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data ... UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 34 Code de réponse HTTP Dans la première ligne de la réponse serveur->client Quelques exemples de codes: 200 OK La requête a réussi et l’objet demandé est à la suite 301 Moved Permanently L’objet demandé a changé définitivement de place, son nouvel emplacement est donné dans la suite du message 400 Bad Request La requête est erronée 404 Not Found Le document demandé n’est pas disponible sur le serveur 505 HTTP Version Not Supported UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 35 Les cookies Plusieurs sites Web utilisent des cookies Ce que les cookies fournissent Liste des achats Recommandations Trace des préférences de l’utilisateur Publicité ciblée Quatre composantes: Utilité et vie privée Permet aux sites d’apprendre sur les habitudes de l’utilisateur Peut fournir aux sites l’adresse e-mail et le nom 1.Ligne d’entête cookie dans la réponse HTTP 2.Ligne d’entête cookie dans la requête HTTP 3.Fichier cookie stocké dans la machine de l’utilisateur et géré par le navigateur 4.Fichier cookie stocké dans la base de données du site Web UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 36 12 Interaction entre le client et le serveur Cookie client ebay 8734 serveur Requête http normale Réponse http + Fichier cookie ebay 8734 amazon 1678 une entrée Set-cookie: 1678 Requête http + cookie: 1678 Réponse http UQAM - Session Autome 2011 Serveur Amazon crée un ID 1678 pour l’utilisateur Crée Action accès spécifique au cookie R Zidane - INF3270 - Téléinformatique Base de données 37 Caches Web / Serveur proxy Objectif : satisfaire la requête du client sans utiliser le serveur initial Serveur distant Configuration du browser pour qu'il pointe vers le cache Le client envoie toutes ses requêtes HTTP vers le cache Web Si l’objet est dans le cache, il est envoyé au client Sinon, le cache le demande du serveur initial puis l’envoie au client UQAM - Session Autome 2011 Serveur proxy client client Serveur distant R Zidane - INF3270 - Téléinformatique 38 GET conditionnel Objectif : ne pas envoyer un objet que le client a déjà dans son cache client serveur Problème : les objets contenus Requête http dans le cache peuvent être If-modified-since: Objet <date> obsolètes non Réponse http modifié client: spécifie la date de la HTTP/1.0 304 Not Modified copie cachée dans la requête http If-modified-since: <date> serveur: la réponse est vide si la copie cachée est à jour HTTP/1.0 304 Not Modified UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique Requête http If-modified-since: <date> Réponse http HTTP/1.1 200 OK -<data> Objet modifié 39 13 Intérêt du cache Web Hypothèse : le cache est proche du client Réduction du temps de réponse Réduction du débit vers les serveurs distants Serveurs distants Réseau Internet Lien d’accès 1.5 Mbps Réseau d’entreprise LAN 100Mb/s Cache d’entreprise UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 40 Sommaire Applications P2P Introduction aux applications réseau Programmation des sockets avec TCP Web et HTTP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 41 FTP: Protocole de transfert de fichiers Interface Client utilisateur FTP FTP Utilisateur sur un hôte Transfert de fichiers Système de fichiers local Serveur FTP Système de fichiers distant Transfert de fichiers vers / depuis un hôte distant Modèle client / serveur Client : côté qui initie le transfert (vers ou depuis l'hôte distant) Serveur : Hôte distant ftp : RFC 959 Serveur FTP : port 21 UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 42 14 FTP: Connexions séparées pour le contrôle et les données Les client FTP contacte le serveur FTP sur le port 21, en spécifiant TCP comme protocole de transport Ouverture de 2 connexions TCP parallèles Contrôle : échange des commandes et des réponses entre le client et le serveur “contrôle hors-bande” Données : fichiers de données vers / depuis l'hôte distant UQAM - Session Autome 2011 Connexion contrôle TCP port 21 Client FTP Connexion données TCP port 20 serveur FTP Le serveur FTP maintient un "état” Répertoire courant, authentification précédente Le serveur ouvre une nouvelle connexion données si transfert d’un deuxième fichier R Zidane - INF3270 - Téléinformatique 43 FTP: Commandes et réponses Exemple de commandes: Exemple de réponse Envoyées comme texte ASCII sur le canal de contrôle USER username PASS password Code de statut et message (comme HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can’t open data connection 452 Error writing file LIST renvoie la liste des fichiers du répertoire courant RETR filename récupère le fichier (get) STOR filename stocke le fichier sur l’hôte distant (put) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 44 Sommaire Applications P2P Introduction aux applications réseau Programmation des sockets avec TCP Web et HTTP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 45 15 Courrier électronique user agent 3 composantes principales Agents utilisateurs Serveurs de mail Simple mail transfer protocol serveur mail user agent SMTP serveur mail smtp “mail reader” Composition, édition, lecture des messages mail SMTP Les messages entrants et sortants sont stockés sur le serveur user agent serveur mail Ex : Eudora, Outlook, Netscape Messenger UQAM - Session Autome 2011 user agent SMTP Agent utilisateur user agent user agent File d’attente des messages sortants Boîte de courrier de l’utilisateur R Zidane - INF3270 - Téléinformatique 46 Courrier électronique: Serveur de mails user agent Serveurs de mail La boîte aux lettres contient les serveur mail messages entrants de l'utilisateur File d'attente de messages mail sortants (à envoyer) Protocole smtp entre les serveurs SMTP de mail pour l'envoi des messages Client : server de mail émetteur Serveur : serveur de mail récepteur user agent SMTP serveur mail user agent SMTP user agent serveur mail user agent user agent UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 47 Courrier électronique: SMTP [RFC 2821] Utilise TCP pour transférer des messages mail de façon fiable, du client vers le serveur, en utilisant de port 25 Transfert direct entre le serveur émetteur et le serveur récepteur 3 phases de transfert «handshaking» (établissement de la connexion) Transfert des messages Fermeture de la connexion Interaction Commande / réponse Commande : texte ASCII Réponse : code de statut + phrase UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 48 16 Exemple d’interaction SMTP S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <[email protected]> 250 [email protected].. Sender ok RCPT TO: <[email protected]> 250 [email protected] ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Do you like ketchup? How about pickles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 49 Exemple d’interaction SMTP Vous pouvez essayer par curiosité d’établir une connexion avec un serveur mail telnet nom de serveur 25 Noter réponse 220 du serveur Essayer les commandes HELO, MAIL FROM, RCPT TO, DATA, QUIT Ces commandes vous permettent d’envoyer des mails sans le client (reader) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 50 Format des messages Protocole pour échanger des messages mail Entête RFC 822 : standard pour le format de messages textuels : Lignes d'en-tête, ex : To : From : Subject : Ligne blanche Données différentes des commandes SMTP ! Corps du message le “message”, caractères ASCII uniquement UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 51 17 Format de message: Extensions multimédia MIME : multimedia mail extension, RFC 2045, 2056 Lignes supplémentaires dans l'en-tête du message pour déclarer un contenu de type MIME Version MIME Méthode utilisée pour encoder les données Type, sous-type des données multimédia Déclaration de paramètres Données codées UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 52 Type MIME Content-Type: type/subtype; paramaters Texte Ex de sous-types : plain, html Vidéo Ex de sous-types : mpeg, quicktime Image Ex de sous-types : jpeg, gif Application D'autres données doivent être traitées par le reader avant d'être "visibles" Ex de sous-types : msword, octet-stream Audio Ex de sous-types : basic (8bit mu-law encoded), 32kadpcm (32 kbps coding) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 53 Protocoles d’accès au mail SMTP SMTP user agent serveur mail expéditeur POP IMAP user agent serveur mail destinataire SMTP : livraison/stockage chez le serveur en réception Protocoles d'accès mail : lire des mails depuis le serveur POP : Post Office Protocol [RFC 1939] Autorisation (agent <-->server) et téléchargement IMAP : Internet Mail Access Protocol [RFC 1730] Manipulation de messages stockés sur le serveur HTTP : Hotmail , Yahoo! Mail, etc. UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 54 18 Sommaire Introduction aux applications réseau Web et HTTP Applications P2P Programmation des sockets avec TCP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 55 DNS: Domain Name System Hôtes, routeurs Adresse IP (32 bits) “nom” : www.google.com Q: Comment associer les adresses et les noms ? UQAM - Session Autome 2011 Domain Name System Base de données distribuées implantée dans une hiérarchie de serveurs de noms Protocole application hôtes, routeurs, serveurs de noms communiquent pour effectuer la recherche d’adesse IP et l’associer au nom R Zidane - INF3270 - Téléinformatique 56 Serveurs de nom DNS Services DNS Association nom/adresse IP Host aliasing Mail server aliasing Répartition de la charge Une série d’adresses IP pour un même nom canonique UQAM - Session Autome 2011 Pourquoi pas de DNS centralisé? Tolérance aux pannes (Si le DNS “crashe”, tout l'Internet aussi !) Volume de trafic Délais de réponse Maintenance (Mises à jour) R Zidane - INF3270 - Téléinformatique 57 19 Base de données distribuée et hiérarchique Serveurs DNS racine Serveurs DNS ca Serveurs DNS com Serveurs DNS Uqam.ca Serveurs DNS Serveurs DNS yahoo.com amazon.com UQAM - Session Autome 2011 Serveurs DNS edu Serveurs DNS Serveurs DNS poly.edu umass.edu R Zidane - INF3270 - Téléinformatique 58 Serveurs TLD et “Authoritative” Serveurs Top-level domain (TLD) Responsable pour com, org, net, edu, etc, et des domaines de pays ca, uk, fr, jp. Mis à jour (maintenance) par des organisations telles que: universités, etc… Serveurs de noms “Authoritative” Serveurs DNS fournissant une association “authoritative” de nom de domaine et adresse IP pour des serveurs d’organisation (ex., Web, mail) Mis à jour (maintenance) par des fournisseurs de service UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 59 DNS: Serveurs de noms racine Contactés par les serveurs de noms locaux qui n'arrivent pas à associer le nom à une adresse IP Leur rôle: Contactent le serveur de nom "authoritative" si la correspondance nom/adresse IP n'est pas connue Obtiennent la correspondance Renvoient la correspondance au serveur de noms local a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD e NASA Mt View, CA f Internet Software C. Palo Alto, j Verisign, ( 21 locations) k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) CA (and 36 other locations) 13 serveurs de noms racine dans le monde b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 60 20 Résolution de noms (1) Serveur DNS racine La machine hôte à info.uqam.ca veut obtenir l’adresse IP de stanford.edu 2 3 Serveur DNS edu 4 5 Serveur DNS local dns.uqam.ca Requête itérative 1 Le serveur contacté répond avec le nom du serveur à contacter 8 6 7 Serveur DNS “authoritative” dns.stanford.edu Hôte Info.uqam.ca stanford.edu UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 61 Résolution de noms (2) Serveur DNS racine 2 Requête récursive Le serveur contacté participe à la résolution d’adresse 3 7 6 Serveur DNS edu Serveur DNS local dns.uqam.ca 1 5 4 8 Hôte Serveur DNS “authoritative” dns.stanford.edu Info.uqam.ca stanford.edu UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 62 Cache DNS Une fois qu'un serveur de noms (quelconque) apprend une nouvelle correspondance nom/adresse IP, il stocke cette correspondance dans son cache Les données du cache expirent (disparaissent) après un certain temps Les mécanismes de mise à jour et de notification à sont développés par l'IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 63 21 Type d’enregistrements DNS DNS: Base de données distribuées stockant des enregistrements de noms de domaines appelés “Resource Records” (RR) Type=CNAME Type=A fait correspondre un nom d'hôte à une adresse IPv4 de 32 bits Type=NS définit les serveurs DNS de ce domaine UQAM - Session Autome 2011 Spécifie que le nom de domaine est un alias d’un autre nom de domaine appelé « canonical » www.ibm.com alias de www.ibm.com.cs186.net Type=MX définit les serveurs de courriel pour ce domaine R Zidane - INF3270 - Téléinformatique 64 Exemple d’enregistrements DNS Démo en classe UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 65 R Zidane - INF3270 - Téléinformatique 66 Requête DNS UQAM - Session Autome 2011 22 Réponse DNS (1) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 67 Réponse DNS (2) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 68 Sommaire Applications P2P Introduction aux applications réseau Programmation des sockets avec TCP Web et HTTP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 69 23 Architecture P2P Pas de serveur Hôtes clients communiquent directement peer-peer Hôtes connectés de façon intermittente Quelques exemples: BitTorrent Kazaa Skype UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 70 Distribution de fichiers: Client-Serveur vs P2P Question : Combien de temps ça prend pour distribuer un fichier depuis un serveur vers N usagers (“peers”)? us: débit en amont du serveur Serveur us u1 d1 u2 ui: débit en amont du “peer” I d2 Fichier, taille F dN uN UQAM - Session Autome 2011 di: débit en aval du “peer” i Réseau (avec capacité abandante) R Zidane - INF3270 - Téléinformatique 71 Distribution de fichiers: Server-Client Serveur serveur envoie séquentiellement N copies: F us dN Temps: NF/us client i prend un temps F/di pour télécharger Temps de distribution de F à N clients avec l’approche client/serveur uN u1 d1 u2 d 2 Réseau (avec capacité abandante) = dcs = max { NF/us, F/min(di) } i Augmente de façon linéaire (pour grand N) UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 72 24 Distribution de fichiers: P2P Serveur serveur envoie une copie F temps: F/us us client i prend un temps F/di pour télécharger NF bits au total sont téléchargés u1 d1 u2 d2 Réseau (avec capacité abandante) dN uN Débit de téléchargement: us + Σui dP2P = max { F/us, F/min(di) , NF/(us + Σui) } i UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 73 Exemple: Client-serveur vs P2P Temps Minimum de distribution (heures) minimum Distribution Time Client avec débit en amont = u, F/u = 1 heure, us = 10u, dmin ≥ us 3.5 P2P Client-Server 3 2.5 2 1.5 1 0.5 0 0 5 10 15 20 25 30 35 N UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 74 Exemple d’application P2P: Skype Skype Application “peer-to-peer” propriétaire Appels téléphoniques Messagerie Instantanée Transfert de fichiers Skype clients (SC) Skype login server Composantes Supernode (SN) Skype client (SC) Super Nodes (SN) Rôle de relai Utilisé comme intermédiaire entre deux clients si l’un ou les deux clients se trouvent derrière un routeur “NAT” Login server (LS) Stocke le profil des utilisateurs Fournit la fonction d’authentification UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 75 25 Utilisation de relais Problème Quand un des deux ou les deux clients sont connectés à un routeur “NAT” Le NAT empêche un “peer” de l’extérieur d’initier un appel vers un “peer” avec NAT Solution: Les deux “peers” sont connectés à un SN (relai) Chaque “peer” initie une session avec son relai Les “peers” peuvent maintenant communiquer à travers les relais UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 76 Sommaire Applications P2P Introduction aux applications réseau Programmation des sockets avec TCP Web et HTTP FTP Courrier électronique SMTP, POP3, IMAP DNS UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 77 Programmation avec les sockets But: Apprendre comment créer des applications client/serveur qui communiquent au moyen de sockets Socket socket Introduite dans BSD4.1 UNIX en 1981 Utilisée par les applications Utilise le paradigme client/serveur Deux types de service de transport via les sockets: Service non fiable (UDP) Service fiable (TCP) UQAM - Session Autome 2011 Une interface (sorte de “porte”) au niveau du poste local, créée par l’application, contrôlée par le système par laquelle des processus peuvent à la fois envoyer et recevoir des messages vers/depuis d’autres processus R Zidane - INF3270 - Téléinformatique 78 26 Programmation Sockets avec TCP Socket: Une porte entre les processus d’application et le protocole de transport (UDP ou TCP) Service TCP: Transfert fiable d’octets d’un processus vers un autre processus Contrôlé par le developpeur d’application processus Contrôlé par le système d’exploitation TCP avec buffers, variables processus socket socket TCP avec buffers, variables internet Contrôlé par le système d’exploitation Client ou serveur Client ou serveur UQAM - Session Autome 2011 Contrôlé par le developpeur d’application R Zidane - INF3270 - Téléinformatique 79 Programmation Sockets avec TCP Le client doit contacter le serveur Le processus du serveur doit d’abord être démarré Le serveur doit avoir créé une socket (porte) qui accueille les requêtes client Le client contacte le serveur en: Créant localement une socket TCP Spécifiant l’adresse IP et le numéro de port du processus du serveur Quand le client crée la socket: le TCP du client établi une connexion avec le TCP du serveur UQAM - Session Autome 2011 Quand il est contacté par le client, le TCP du serveur crée une nouvelle socket pour permettre au processus du serveur de communiquer avec le client Permet au serveur de communiquer avec plusieurs clients Utilise les numéros de port source pour distinguer les clients (plus de détails dans le chapitre 3-couche transport) Processus client Processus serveur socket Ecoute socket Client socket Connexion R Zidane - INF3270 - Téléinformatique 80 Interaction des sockets client/server avec TCP Serveur (démarré sur hostname) Client Créer une socket, port=x, pour requête entrante: socketEcoute= ServerSocket() TCP Attendre une connexion d’un client connection setup socketConnexion = socketEcoute.accept() Lire la requête depuis socketConnexion Écrire la réponse à socketConnexion Fermer socketConnexion UQAM - Session Autome 2011 Créer une socket, Connecter à hostname, port=x socketClient = Socket() Envoyer requête en utilisant socketClient Lire réponse depuis socketClient Fermer socketClient R Zidane - INF3270 - Téléinformatique 81 27 Programmation Sockets avec TCP Exemple d’application clientserveur UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique Flux sortant entreeDepuisServeur 2) Le serveur lit la ligne depuis la socket 3) Le serveur converti la ligne en majuscule, l’envoie au client 4) Le client lit et affiche la ligne modifiée depuis la socket (flux entreeDepuisServeur) entreeDepuisClient Flux entrant Processus Client sortieVersServeur 1) Le client lit une ligne depuis l’entrée standard (flux entreeDepuisClient) , l’envoie au serveur via une socket (flux sortieVersServeur) Écran Clavier Flux entrant socketClient Socket TCP Vers la Depuis la From To couche couche transport transport transport transport layer layer 82 Exemple: Client Java (TCP) (1) import java.io.*; import java.net.*; class ClientTCP { public static void main(String argv) throws Exception { String phrase; String phraseModifiee; Créer le flux d’entrée BufferedReader entreeDepuisUtilisateur = new BufferedReader(new InputStreamReader(System.in)); Créer la socket client, la connecter au serveur Socket socketClient = new Socket("hostname", 6789); DataOutputStream sortieVersServeur = new DataOutputStream(socketClient.getOutputStream()); Créer le flux de sortie attaché à la socket UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 83 Exemple: Client Java (TCP) (2) BufferedReader entreeDepuisServeur = new BufferedReader(new InputStreamReader(socketClient.getInputStream())); Créer le flux de sortie attaché à la socket phrase = entreeDepuisUtilisateur.readLine(); Envoyer la ligne au serveur sortieVersServeur.writeBytes(phrase + '\n'); Lire ligne depuis serveur phraseModifiee = entreeDepuisServeur.readLine(); System.out.println(“RECU DU SERVEUR: " + phraseModifiee); socketClient.close(); } } UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 84 28 Exemple: Serveur Java (TCP) (1) import java.io.*; import java.net.*; class ServeurTCP { public static void main(String argv) throws Exception { String phraseClient; String phraseMajuscule; Créer une socket d’écoute sur le port 6789, ServerSocket socketEcoute = new ServerSocket(6789); while(true) { Attendre une connexion d’un client Socket socketConnexion = socketEcoute.accept(); Créer le flux d’entrée attaché à la socket BufferedReader entreeDepuisClient = new BufferedReader(new InputStreamReader(socketConnexion.getInputStream())); UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 85 Exemple: Serveur Java (TCP) (2) Créer le flux de sortie attaché à la socket DataOutputStream sortieVersClient = new DataOutputStream(socketConnexion.getOutputStream()); Lire la ligne depuis la socket phraseClient = entreeDepuisClient.readLine(); phraseMajuscule = phraseClient.toUpperCase() + '\n'; Écrire au client sortieVersClient.writeBytes(phraseMajuscule); } } } UQAM - Session Autome 2011 Fin de la boucle While, Redémarrer et attendre une nouvelle connexion R Zidane - INF3270 - Téléinformatique 86 Programmation Sockets avec TCP Démo en classe UQAM - Session Autome 2011 R Zidane - INF3270 - Téléinformatique 87 29 ...
View Full Document

This note was uploaded on 12/13/2011 for the course INF 3270 taught by Professor Redouane during the Fall '11 term at Université du Québec à Montréal.

Ask a homework question - tutors are online