Master Miage 2010-2011 Réseau. La couche Application



Documents pareils
L3 informatique TP n o 2 : Les applications réseau

Couche application 1

Serveurs de noms Protocoles HTTP et FTP

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Outils de l Internet

Réseaux. 1 Généralités. E. Jeandel

Protocoles Applicatifs

Couche application. La couche application est la plus élevée du modèle de référence.

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Application Web et J2EE

Administration réseau Résolution de noms et attribution d adresses IP

Chapitre : Les Protocoles

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

Étude de l application DNS (Domain Name System)

(structure des entêtes)

Dans l'épisode précédent

Protection des protocoles

SERVEUR HTTP Administration d apache

Cours CCNA 1. Exercices

L3 informatique Réseaux : Configuration d une interface réseau

Domain Name System. Schéma hiérarchique. Relation

18 TCP Les protocoles de domaines d applications

Quelques protocoles et outils réseaux

Master Miage Réseau. La couche Application

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Applications. Applications. Le système de nommage d Internet: Domain Name System. Applications. service de noms

Mr. B. Benaissa. Centre universitaire Nâama LOGO

1 Introduction Propos du document Introduction De HTTP 1.0 à HTTP

Domain Name System. F. Nolot

Internet Le service de noms - DNS

Services Réseaux - Couche Application. TODARO Cédric

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

Introduction. Adresses

Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée

L identité numérique. Risques, protection

Plan. Programmation Internet Cours 3. Organismes de standardisation

Introduction aux Technologies de l Internet

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

Travaux Pratiques Introduction aux réseaux IP

Introduction à HTTP. Chapitre HTTP 0.9

La couche Applicatiopn

Le service de nom : DNS

Protocole applicatif. Quel est le service de transport nécessaire à une application? Besoin en service de transport

Le protocole HTTP. 10 minutes pour comprendre. HTTP/0.9 - Lacunes et limitations HTTP/1.0 HTTP/1.1

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Domain Name System ot ol F. N 1

L annuaire et le Service DNS

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Algorithmique et langages du Web

Architectures web/bases de données

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

Tous les logiciels cités dans ce document sont des marques déposées de leurs propriétaires respectifs

Administration Système & Réseau. Domain Name System Historique & Concepts Fonctionnalités & Hiérarchie Requêtes & Base de donnée DNS

SSH, le shell sécurisé

Les commandes relatives aux réseaux

La couche transport. La couche Transport. La couche Transport et Internet. Cours Réseau Esial 2ème. 5. La couche transport TCP/UDP et les applications

Les serveurs. UE 103b. Guillaume Burel.

DNS. Olivier Aubert 1/27

Guide de connexion Wi-Fi sur un hotspot ADP Télécom

Réseaux Locaux. Objectif du module. Plan du Cours #3. Réseaux Informatiques. Acquérir un... Réseaux Informatiques. Savoir.

Hébergement de site web Damien Nouvel

Cisco Certified Network Associate

Présentation du modèle OSI(Open Systems Interconnection)

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Domain Name Service (DNS)

Les services usuels de l Internet

DIFF AVANCÉE. Samy.

Master d'informatique 1ère année Réseaux et protocoles

Architectures en couches pour applications web Rappel : Architecture en couches

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Couche Session M1 Info Z. Mammeri - UPS 1. Concept de session

Proxy et reverse proxy. Serveurs mandataires et relais inverses

La VOIP :Les protocoles H.323 et SIP

Daniel POULIN DRT 3808 (version 2010) Faculté de droit, Université de Montréal

Résolution de noms. Résolution de noms

«Cachez-moi cette page!»

Nommage et adressage dans Internet

Les Content Delivery Network (CDN)

Présentation Internet

Cours 4: TCP/IP Applications et Services

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

1 LE L S S ERV R EURS Si 5

Réseaux et protocoles Damien Nouvel

Exemple d application: l annuaire DNS Claude Chaudet

Culture informatique. Cours n 9 : Les réseaux informatiques (suite)

Proxies,, Caches & CDNs

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Le service FTP. M.BOUABID, Page 1 sur 5

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Développement Web. Les protocoles

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Transcription:

Master Miage Réseau La couche Application

Applications et protocoles de couche application Application (réseau): processus répartis qui communiquent Tournent dans les hosts dans l espace utilisateur Échangent des messages pour réaliser la fonction de l application Ex : email, ftp, Web Protocoles : couche Application Un morceau d une application Définit les messages échangés par les appli. et les actions à réaliser Utilise les services de communication fournis par les protocoles de couche inférieure (TCP, UDP) application transport network data link physical application transport network data link physical application transport network data link physical 2 Agent utilisateur (user agent): processus s interfaçant avec l utilisateur en haut et le réseau en bas qui implante le protocole de couche application. Ex Web: navigateur

Le paradigme Client-serveur 3 Une appli réseau a deux morceaux: client et serveur Client: Initie le contact avec le serveur ( parle en 1er ) Demande un service Web: client implanté dans le navigateur; e-mail: dans l utilitaire de mail application transport network data link physical request reply Serveur: Fournir les services demandés aux clients Ex : le serveur Web envoie la page Web demandée, le serveur de mail délivre le courrier application transport network data link physical

4 Le paradigme pair à pair (pi2pi) Un terminal est pair car il peut être à la fois client et à la fois serveur (tt le monde est sur un pied d'égalité). Ex. Download de fichier tout en laissant dispo le téléchargement sur son terminal. Pour échange de fichiers Pour calculs (xtreme web) Impose Ex. protocole commun d'échange des infos gestion des participants. 1999 Napster (info centralisé) 2000 Gnutella (décentralisé) 2002 bit torrent (fractionnement fichiers)

5 Unicast et Multicast Un terminal est pair car il peut être à la fois client et à la fois serveur (tt le monde est sur un pied d'égalité). Ex. Download de fichier tout en laissant dispo le téléchargement sur son terminal. Unicast : liason point à point Multicast : diffusion (la plus efficace possible) de 1 emetteur vers plusieurs récepteur. Broadcast : emission vers tous les membre d'un même réseau Anycast : technique de couche 3

De quel service de transport une application a-t-elle besoin? Perte de données Certaines appli (ex, audio) tolèrent des pertes D autres (ex transfert fichiers) nécessitent un transfert fiable à 100% Délai Certaines appli (ex, téléphonie Internet, jeux interactifs) nécessitent des délais faibles pour être efficaces Bande passante Certaines appli (ex, multimedia) nécessitent un montant minimum de BP pour être efficace D autres ( appli élastiques ) fonctionnent quelque soit la BP dont elles disposent (email, Web, transfert de fichiers) 6

Les services des protocoles de transport Internet Service TCP: Orientée-connexion: connexion entre le client et le serveur Transport fiable entre processus émetteur et récepteur Contrôle de flux : l émetteur n engorge pas le récepteur Contrôle de congestion : étranglement de l émetteur quand le réseau est surchargé Ne fournit pas : garantie de délai, garantie d un minimum de bande passante Service UDP: Transfert de données non fiables entre processus émetteur et récepteur Ne fournit pas : établissement de connexion, fiabilité, contrôle de flux, contrôle de congestion, garanties de délai et de bande passante Pourquoi y a-t-il un UDP? 7

8 Protocoles de couche application API: Application Programming Interface Définit l interface entre l application et les couches transport Ex : socket (prise) API Internet Deux processus communiquent en envoyant des données sur la socket et en lisant les données de la socket Comment un processus identifie-t-il l autre processus avec lequel il veut communiquer? adresse IP de l host sur lequel tourne l autre processus numéro de port - permet à l host récepteur de déterminer à quel processus local le message doit être délivré plus de détails plus tard

9 Le Web: le protocole http http: HyperText Transfer Protocol Protocole de couche application de l application WWW Modèle client/serveur client: navigateur qui demande, reçoit et affiche des objets Web (fichier html, image JPEG, GIF, applet java, ). Le navigateur est aussi le user agent serveur: serveur Web qui envoie les objets en réponse aux requêtes http1.0: RFC 1945 http1.1: RFC 2616 PC avec IE Mac avec Netscape Navigator http request http response http request http response Serveur exécutant un serveur Web Apache

10 Le protocole http : plus de détails http: service de transport TCP Le client initie une connexion TCP (crée une socket) vers le serveur, en utilisant le n de port 80 Le serveur accepte les connexions TCP du client Les messages http (APDU) sont échangés entre le navigateur (client http) et le serveur Web (serveur http) La connexion TCP est fermée http est stateless Le serveur ne maintient aucune information sur les requêtes des clients aparté Les protocoles qui maintiennent un état sont complexes! Historique (état) à maintenir Si le serveur/client tombe, leurs états respectifs peuvent être incohérents, et doivent être réconciliés

Un exemple http Soit un utilisateur qui saisit l URL www.someschool.edu/somedepartment/home.index 1a. Le client http initie la connexion TCP to serveur http (processus) sur la machine www.someschool.edu. Le port 80 est le numéro par défaut de ce serveur http (ce processus). 2. Le client http envoie un request message http (contenant l URL) sur la socket TCP 1b. Le serveur http de la machine www.someschool.edu est en attente sur la connexion TCP au port 80. Il accepte la connexion, et notifie le client 3. Le serveur http reçoit le message, forme le response message contenant l objet demandé (somedepartment/home.index), émet le message sur la socket 11 (contient du texte, et des références à 10 images jpeg ) temps

Suite de l exemple http 12 5. Le client http reçoit le msg de réponse contenant le fichier html, affiche le html. En parsant le fichier html, il trouve les 10 références d objets JPEG (liens) 4. Le serveur http ferme la connexion TCP temps 6. Les étapes 1 à 5 sont répétées pour chaque objet JPEG Connexion non persistante Combien de connexions TCP sont-elles nécessaires?

Connexions non-persistantes, persistantes 13 Non-persistante (close) http/1.0: le server parse la requête, répond, ferme la connexion TCP Combien de RTTs pour aller chercher l objet requis? La plupart des navigateurs ouvrent des connexions parallèles multiples La plupart des navigateurs ouvrent des connexions parallèles multiples Persistante (keep alive) Par défaut pour http/1.1 Sur la même connexion TCP : le serveur parse la requête, répond, parse la nvlle requête, Il fermera la connexion après son inutilisation durant un certain temps (configurable) Avec pipeline : Le client envoie une requête dès qu il rencontre une référence Sans pipeline : possible, pas le mode par défaut de 1.1. Le client envoie une requête après avoir reçu la réponse de la requête précédente

14 Format des messages http : request Deux types de messages http : request, response Le message http de request : ASCII (format lisible) request line 3 champs Header lines Carriage return, line feed indicates end of message Méthode (HEAD, POST, GET) URL requise GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection:close User-agent: Mozilla/4.0 Accept-language:fr (extra carriage return, line feed) Version du protocole Non persistante Netscape

En-tête HTTP (1.1) requêtes 15 Méthodes GET Pour demander une ressource est sans effet sur la ressource. HEAD Ne demande que des informations sur la ressource, sans demander la ressource. POST Utilisée lorsqu'une requête modifie la ressource. OPTIONS Permet d'obtenir les options de communication d'une ressource ou du serveur en général. CONNECT Permet d'utiliser un proxy comme un tunnel de communication. TRACE Demande au serveur de retourner ce qu'il a reçu. But test et diagnostic sur la connexion.

En-tête HTTP 1.1 Options des Requêtes 16 Host Site Web concerné par la requête (serveur hébergeant plusieurs sites à même adresse IP). Obligatoire HTTP 1.1 Referer URI du document avec lien sur la ressource demandée. User-Agent Logiciel utilisé pour se connecter. Connection Précise si la connexion est persistante (Keep Alive) ou non (close) Accept types MIME acceptés par le client (/txt/html par exemple). Accept-Charset encodages de caractères acceptés. Accept-Language langues acceptées.

17 Format des messages http : response status line (3 champs) header lines Data (ex : Fichier html demandé) Version du protocole Status code status phrase HTTP/1.1 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Accept-Ranges: bytes Content-Language: fr Content-Length: 6821 Content-Type: text/html ETag: "ab010-2adf-3d202062 Last-Modified: Mon, 22 Jun 1998 data data data data data...

En-tête HTTP (1.1): Statuts Le chiffre des centaines représente une classe de réponses. 1xx Information 2xx Succès 3xx Redirection 4xx Erreur du client 5xx Erreur du serveur Exemples 200 OK Requête réussie, l objet demandé est dans le message 301 Moved Permanently L objet demandé a été déplacé, sa nouvelle localisation figure dans ce message (Location:) 400 Bad Request Message de requête non compris par le serveur 404 Not Found Doument demandé non trouvé sur le serveur 505 HTTP Version Not Supported 18

En-tête réponses HTTP (1.1) Options 19 Date Moment auquel le message est généré. Server Modèle du serveur HTTP qui répond à la requête. Content-Length Taille en octets de la ressource. Content-Type type MIME de la ressource. Expires date après laquellle la ressource devrait être considérée obsolète Last-Modified Date de dernière modification de la ressource.

Interaction utilisateur-serveur : authentification 20 Authentification : contrôle d accès au contenu du serveur Autorisation : généralt nom, mot de passe Sans état : le client doit présenter son autorisation à chaque requête authorization: ligne d entête à chaque requête Si pas authorization: le serveur refuse l accès, et utilise le message de status code 401 WWW authenticate: client usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization: <cred> usual http response msg usual http request msg + Authorization: <cred> usual http response msg serveur time

Cookies : gardien d état 21 Le serveur génère un n d identification, qu il mémorise et qu il utilise pour : L authentification Le stockage des préférences de l utilisateur Le serveur envoie le cookie au client dans un message response Set-cookie: 1678453 Le client présente le cookie dans ses requêtes futures cookie: 1678453 client usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg serveur cookiespecific action cookiespecific action

GET conditionnel : cache côté client 22 But : Ne pas envoyer l objet si le client a une version à jour dans son cache Client: spécifie la date de la version cachée dans la requête http If-modified-since: <date> Serveur : la réponse ne contient pas d objet si la version cachée est à jour : HTTP/1.0 304 Not Modified client http request msg If-modified-since: <date> http response HTTP/1.0 304 Not Modified http request msg If-modified-since: <date> http response HTTP/1.1 200 OK <data> serveur objet non modifié objet modifié

23 Cache Web (serveur proxy) But : satisfaire la reqûete client sans invoquer le serveur d origine L utilisateur utilise un navigateur : le Web accède au cache web Le client envoie toutes les requêtes http au cache web L objet est dans le cache: le cache l envoie Sinon le cache demande l objet au serveur d origine, puis l envoie au client client client http request http response http request http response Proxy server http request http response origin server origin server

Pourquoi les caches Web? 24 Hypothèse : le cache est proche du client (par ex., dans le même réseau) Réduction des temps de réponse (la réponse vient plus vite puisqu elle vient de moins loin) Réduction du trafic sur le réseau Pas de génération de trafic pour aller chercher la réponse sur un site éloigné Quelle différence de temps institutional network public Internet 1.5 Mbps access link 10 Mbps LAN origin servers institutional cache

Exercices I HEAD http://www.inria.fr/index.fr.html 25 Quel est l effet de cette commande (sous linux)? Dans l'uri quel est le chemin du fichier et l'@ du serveur? Quel est le type et la version du serveur HTTP distant? Quel type de connexion supporte-t-il? Connectez vous avec un telnet à l'inria (sur le port 80) et tapez la requête HTTP équivalent à cette commande. Modifiez la pour avoir l'ensemble des données de la page / Télécharger une image contenue dans cette page Modifiez le champs Accept-langage:en.Le texte est-il en anglais? (et en remplaçant fr par en dans URI première question)

Exercices II 26 Même chose avec Nanterre? telnet www.u-paris10.fr 80 GET / HTTP/1.1 Host: www.u-paris10.fr Connection:close Essayez de vous connecter en remplaçant www.u-paris10.fr par ksup.u-paris10.fr dans le telnet Essayez de vous connecter en le remplaçant également dans le host Identifiez vous le cookie? Qu'indentifiez vous de plus? Qu'est ce qu'une URL (cas particulier d'un URI)?

Exercices III 27 L'URL est : http://www.blabla.fr/unfichier.html Quel est le terminal (host)? Quel est le chemin du fichier? Donner la version de votre requete HTTP (contenu GET et Host) Vérifier avec http://guilde.jeunes-chercheurs.org/guilde/index.html Et si vous essayiez d'aller à (avec votre navigateur) http://postes.smai.emath.fr/2002/index.php Avec telnet Quel va devoir être votre réponse? Authorization: BASIC cg9zdgvzonaymday qui est encodage (en base 64) de login:mdp

Web et http Execution du code 28 Sur Terminal (géré par le navigateur) Reception d'hmtl -> affichage Reception de code Applets (jvm), javascript (navigateur) Sur serveur pages statiques pages dynamiques : html généré à la volée par scripts (php) par des pgm (cgi-bin ou jsp) portée des variables valable pour une requête

Les «sessions» WEB Définition Session : Connexion d'une durée indéfinie (bornée) entre un utilisateur et un correspondant (généralement un serveur). Elle nécessite l'échange de messages entre les deux parties Principe d'une session : Permet de conserver des informations sur un internaute tout au long de sa visite sur un site. Pour lui donner l'impression d'une seule connexion. Contraintes d'une session Identifier l'utilisateur alors que http est «stateless» Associer à l'utilisateur certaines valeurs Associer à l'utilisateur espace mémoire (2 nd temps) 29

Les «sessions» WEB Identification de la connexion Dans les cookies. Dans l'url (présente sous la forme session=xxx). Dans l'url (forme variable précise gérée par utilisateur). Sauvegarde des infos Dans la base de données du site (ou fichier) pour associer des informations à cette session. Info rémanentes. Dans l'espace mémoire associé à la session. Passage des valeurs Par les URI (?valeur) La session (valables tout le temps) 30

Authentification (au niveau application) Gérée par le serveur (au niveau http) 31 htaccess avec serveur Apache Mot de passe, Adresse IP Contrôle l'accès à la page elle-même Aucun fichier html renvoyé si mauvaise identification Gérée par la session (au niveau html) Fichier html renvoyé Contrôle d'accès à partir d'une page web Gestion par l'application

Htaccess 32 Redirections des pages d'erreurs URL rewritting Réécriture des Index des répertoires Restriction d'accès pour un répertoire et son arborescence 2 fichiers Gestion des authentification :.htaccess Gestion des mots de passe :.htpasswd Syntaxe du.htaccess (pour authentification) En tête Authentification par login Authentification par @IP ou par domaine

En tête :.htaccess (Restriction d'accès par nom) 33 AuthType Basic - Authentification de type basique les mots de passe circulent en clair sur le réseau (encodés en base64) AuthUserFile /chemin/absolu/sur/serveur/.htpasswd - N.B. Le nom.htpasswd peut être changé AuthName ''Le message mis pour l'utilisateur'' Activation service (autorisation nécessaire pour methode get et post) <LIMIT GET POST> require valid user </LIMIT> Fichier mots de passe (clair ou crypté MD5) login:nom

.htaccess (Restriction d'accès par domaine) Interdiction (autorisation) totale 34 deny from all (allow from all) Interdiction @ IP (Autorisation plage @ IP) deny from 192.168.1.2 (allow from 192.168.2) Interdiction (autorisation) domaine deny from microsoft.com (allow from.fr) Ordre sur les traitements order deny allow Traite d'abord refus puis autorisations L'appliquer aux méthodes GET & POST (avec balise limit) Appliquer à un fichier balise <file nom> encapsulant config. des restrictions Modification des accès pour sous répertoire Nouveau fichier htaccess pour tout le sous rep.

Trois composants majeurs : user agents Serveurs de mail SMTP : Simple Mail Transfer Protocol Courrier électronique User Agent Appelé parfois mail reader Composer, éditer, lire les messages Ex de user agent GUI : Eudora, Outlook, Netscape Messenger Ex de user agent non GUI : elm, mail, pine Les messages sortants et entrants sont stockés sur le serveur mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server outgoing message queue user mailbox user agent user agent user agent 35

Les serveurs de mail 36 Trois éléments Les mailbox qui contiennent les messages entrants (encore non lus) des utilisateurs La file des messages sortants (qui doivent être expédiés) Le protocole SMTP entre serveurs de mail pour envoyer les messages Modèle client/serveur Sur le serveur de mail S, le client SMTP s occupe de l expédition du mail Sur le même serveur de mail S, le serveur SMTP s occupe de la réception du mail mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent

Protocoles d accès mail 37 user agent SMTP SMTP POP3 ou IMAP Serveur SMTP émetteur Serveur SMTP récepteur user agent Retrait uniquement, chargement en SMTP SMTP: livraison/stockage au serveur récepteur Protocole d accès mail : pour le retrait du mail POP: Post Office Protocol [RFC 1939] Autorisation (agent<->serveur) et retrait IMAP: Internet Mail Access Protocol [RFC 1730] Plus de caractéristiques (plus complexe) Manipulation de messages stockés sur le serveur.

38 Courrier électronique : smtp [RFC 821] Utilise tcp pour transférer de façon fiable un message d un client vers un serveur, port 25 Transfert direct : du serveur émetteur vers le serveur récepteur Trois phases de transfert Ouverture Transfert de messages Fermeture Interaction de forme commande/réponse Commandes : texte ASCII HELO, MAIL, FROM, RCPT TO, DATA, QUIT Réponses : status code et phrase Les messages doivent être en ASCII 7-bits

Analyse des interactions smtp 39 S: 220 miage03.miage.u-paris10.fr ESMTP Sendmail... C: HELO Ouverture mon_ordi.miage.u-paris10.fr (handshaking) S: 250... Hello mon_ordi, pleased to meet you C: MAIL FROM: <login@miage03.miage.u-paris10.fr> S: 250 login@miage03.miage.u-paris10.fr... Sender ok C: RCPT TO: <login2@miage05.miage.u-paris10.fr> S: 250 login2@miage03.miage.u-paris10.fr... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Je simule un user agent qui dialogue avec le MTA C:. transfert S: 250 Message accepted for delivery fermeture C: QUIT S: 221 miage03.miage.u-paris10.fr closing connection

Format des messages [RFC 822] (Dans le champs Data ) 40 RFC 821: standard smtp RFC 822: standard du format des messages texte Format des lignes d entête construites par le user agent To: From: Subject: différent des commandes. Smtp! pas le même TO, FROM! Format du corps du message Caractères ASCII Entête Corps É, è, â, ç et autres? Ligne de blanc

41 Les extensions multimédia MIME: Multimedia Mail Extension, RFC 2045, 2056 Règles d encodage des données non-ascii 7 bits Des lignes supplémentaires dans l entête du message déclarent le contenu de type MIME Version MIME méthode utilisée pour coder les données (base64, quoted-printable encoding, ) Nature du contenu Données codées From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data

42 Les types MIME Content-Type: type/subtype; parameters Texte Exemples de sous-types : plain, html Vidéo Exemples de sous-types : mpeg, quicktime Image Exemples de sous-types : jpeg, gif Audio Exemples de sous-types : basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding) Application Autres données qui doivent être traitées par un user agent avant d être lisibles Exemples de sous-types : msword, octet-stream Multipart Différents types de contenus Délimiteurs pour les différencier

Exemple de type Multipart 43 From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data --98766789-- type sous-type délimiteur 1er objet : texte 2ème objet : image

44 POP3 (RFC 1939) Connexion TCP user agent - serveur sur le port 110 Phase d autorisation Commandes du client : user: déclare le nom pass: password Réponses du serveur +OK -ERR Phase de transaction, client: list: liste les n de messages retr: recherche de message par n dele: delete quit S: +OK POP3 server ready C: user alice S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server signing off

45 HTTP et SMTP user agent HTTP SMTP HTTP user agent Serveur SMTP émetteur Serveur SMTP récepteur HTTP: Hotmail, Yahoo! Mail, etc L utilisateur peut organiser sa hiérarchie de classeurs sur le serveur (~ IMAP) Retrait & chargement en HTTP

Exemple d interaction SMTP 46 Sur miage03, envoyer un mail sur miage03 en mode verbose miage03%mail -v user1@miage03.miage.u-paris10.fr Après le subject taper sur Entree puis saisir message à la fin du message Ctrl D Consultation /var/mail/user1 Ce qui s affiche suite à la saisie de votre message est l échange entre le client SMTP et le serveur SMTP (théoriquement) Refaire la manipulation avec telnet miage03.miage.u paris10.fr 25 1) Classiquement 2) Changeant return path 3) Réécrire l'en tête.

DNS: Domain Name System 47 Humains: bcp d identifications: N sécu, nom, passeport, CI Hosts & routeurs Internet : Adresse IP (32 bit) - utilisée pour adresser les datagrammes nom, (hostname) ex, miage03.miage.u-paris10.fr - utilisé par les humains Annuaire Internet : Correspondance adresse IP nom? et Domain Name System Une BD distributée implantée en une hiérarchie de plusieurs serveurs de noms Un protocole d application qui utilise UDP sur le port 53: host, routeurs, serveurs de nom communiquent pour la résolution de noms (= traduction adresse/nom et nom/adresse) À noter: fonction intrinsèque à Internet (core Internet), implantée en protocole d application Complexité au bord réseau (network s edge )

Les serveurs DNS (serveurs de noms) 48 Pourquoi le DNS n est-il pas centralisé? Un seul point de panne Maintenance Volume du trafic Accès distant à une BD centralisée Ne résiste pas à l échelle! Aucun serveur ne possède tous les mappings nom-@ip Serveur de noms local Chaque ISP, compagnie a un serveur de noms local (default) Un host interroge tjs en 1er le serveur de noms local Serveur de noms autorité Chaque host a son @IP et nom enregistrés sur un tel serveur Gnlt : serveur de noms local Fait la traduction nom/@ pour cet host Serveur de noms racine

49 Serveur racine (Root name servers) Contacté par le serveur de noms local qui ne peut pas faire une résolution Contacte le serveur de noms d autorité s il ne sait pas faire la résolution Le serveur d autorité est censé avoir l information exacte puisqu un host est tjs enregistré auprès d un tel serveur Récupère la réponse et la transmet au serveur local Questions : http://www.root servers.org/ Combien y a-t-il de root servers? Où sont-ils?

50 Serveur racine (Root name servers) a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 serveurs root

51 L host miage03.miage.uparis10.fr veut l @ IP de www.wia.org 1. Il contacte son serveur DNS local 2. Le serveur DNS local contacte le serveur root, si nécessaire 3. Le serveur root contacte le serveur d autorité, si nécessaire Un exemple simple 2 5 serveur DNS local serveur root 3 4 serveur d autorité 1 6 host miage03.miage.u-paris10.fr www.wia.org

52 Le serveur root Ne connaît pas les serveurs d autorité de tous les hosts! Connaît un serveur intermédiaire : qui contacter pour trouver le serveur d autorité Requêtes récursives Le serveur DNS A envoie une demande au serveur DNS B qui la prend en charge, et interroge C, qui à son tour prend la requête en charge etc. La réponse reviendra à A Exemple DNS plus réaliste 1 host miage03.miage.u-paris.fr 2 7 serveur DNS local (A) 8 serveur root (B) 3 6 serveur intermédiaire (C) 4 5 serveur d autorité (D) www.wia.org

53 Requêtes itératives vs requêtes récursives Reqête récursive C est le serveur contacté qui fait la résolution, pas le serveur demandeur Quid de la charge? Requête itérative Le serveur contacté (B) renvoie le nom du prochain serveur à contacter (C), et c est le serveur demandeur (A) qui s en charge (donc A contacte C) On peut mixer les 2 Cf schéma serveur DNS local (A) 1 host miage03.miage.u-paris.fr 2 8 serveur root (B) 3 4 7 Requête itérative serveur intermédiaire (C) 5 6 serveur d autorité (D) www.wia.org

Cache DNS 54 Optimiser les applications Les applications (ftp, smtp, http) utilisent le DNS pour la résolution de noms Ex : mail to : toto@yahoo.com ou http://webdev.u-paris10.fr Le temps de réponse de l appli est augmenté du temps de résolution (interrogations successives de serveurs) Quand un serveur connaît une résolution (après avoir interrogé les autres serveurs), il la stocke dans un cache (mémoire locale) Une entrée du cache est supprimée après timeout ttl Lors d une demande de résolution, le serveur DNS commence par regarder son cache

Enregistrements DNS 55 DNS: BD distribuée stockant des resource records (RR) format d un RR : (name, value, type,ttl) Type=A name est le hostname value est l @ IP Type=NS name est le domaine (ex u- paris10.fr) value est l @ IP serveur d autorité pour ce domaine Durée de vie dans le serveur name est l alias pour le nom canonique (réel) www.wia.org est en réalité exchange.wia.org value est le nom canonique Type=CNAME Type=MX value est le nom d un serveur de mail dont l alias est name

56 L espace des noms Nom : miage03.miage.u-paris10.fr se lit de droite à gauche : fr puis u-paris10 puis miage puis miage03 Hiérarchie de domaines fr est le nom de domaine top level u-paris10 est le nom de domaine (sous-domaine du domaine fr) Un domaine est partitionné en sous-domaines, eux-mêmes partitionnés en sous-domaines etc 700 domaines «top-level» en 2 groupes : générique et pays Les visualiser : http://www.iana.org/domain-names.htm

57 La gestion des noms de domaines Qui gère les noms de domaine? http://www.verisign.fr/ Qui décide des noms de domaine? http://www.icann.org/ Où enregistrer un nom de domaine? Affectation d un nom de domaine top-level et 2ème niveau par l ICANN qui délègue, par ex, pour.fr, à l AFNIC http://www.afnic.asso.fr Les noms de domaines (autres que top-level) sont sous la responsabilité du site demandeur

58 Relation domaine - serveur DNS Chaque élément de l arborescence (domaine, sousdomaine,, host) a un RR associé L arborescence des noms est divisée en zones 1 serveur d autorité par zone (serveur primaire) Par sécurité, redondance des serveurs DNS, donc plusieurs serveurs pour une zone (serveurs secondaires) Un serveur secondaire d une zone peut se trouver dans une autre zone Toute machine avec accès Internet n est pas forcément enregistrée dans le DNS Ex : miage03 Conséquence : nom inconnu du monde extérieur

Exercices Le fichier /etc/resolv.conf Quel est le rôle de ce fichier? Le fichier /etc/hosts? Les commandes nslookup, host et dig En ligne (sous Linux ou DOS) ou sur le web nslookup http://www.webreference.com/cgi-bin/nslookup.cgi http://www.dnsstuff.com dig http://www.netliner.com/noc.html 59 Que font ces commandes?

Exercices II Quel sont les noms des serveurs canoniques de : Google? www.u-paris10.fr? Hotmail? mail.voila.fr? lemonde.fr? Combien y a-t-il de serveurs pour google.com, hotmail.com et yahoo.com? Y'a-t-il une différence avec google.fr, hotmail.fr yahoo.fr? Comment répartissent-ils leurs charge? Des offres promotionnelles de FAI proposent aux usagers d'obtenir leur propre nom de domaine. Comment font-ils 60

61 Auto-évaluation (vrai ou faux) Si un message de requête HTTP utilise l entête Accept-language:fr et que le serveur a uniquement une version anglaise de l objet, alors il envoie le message d erreur 404 Document Not Found Un serveur peut utiliser les cookies pour déterminer l adresse postal d un utilisateur sans son consentement Le Web envoie des objets multiples dans une page Web dans un message MIME multipart Avec un client POP3, les classeurs mail de l utilisateur sont conservés sur le serveur de mail

Auto-évaluation (vrai ou faux) 62 Un client mail peut envoyer des messages e-mail sur HTTP plutôt que SMTP Si un client POP3 n envoie pas la commande dele, les copies des messages que le client a chargés reste sur le serveur de mail Avec SMTP, il est possible d envoyer de multiples messages e-mail sur la même connexion TCP Les recherches dans le DNS impliquent souvent une combinaison de requêtes récursives et itératives Une université ne peut pas choisir le même nom de serveur pour le serveur web et le serveur de messagerie.

63 Auto-évaluation (vrai ou faux) Avec des connexions non-persistantes entre un navigateur et un serveur Web, il est possible d acheminer deux requêtes HTTP distinctes dans un seul segment TCP (une seule PDU) L entête Date: dans un message de réponse HTTP indique la date de dernière modification de l objet A un seul site correspond un seul serveur Le dns ne sert à rien si on veut équilibrer les charges sur internet. Lors du 11 septembre 2001 les personnes qui se connectaient à un proxy bénéficiaient de plus d informations que ceux qui se connectaient directement aux sites d information.