• Aucun résultat trouvé

Master Miage Réseau. La couche Application

N/A
N/A
Protected

Academic year: 2022

Partager "Master Miage Réseau. La couche Application"

Copied!
116
0
0

Texte intégral

(1)

La couche Application

2007-2008

Réseau

(2)

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

(3)

Applications réseau : terminologie

Processus: programme qui s’exécute sur un host

Dans le même host, deux processus communiquent en utilisant les mécanismes

IPC (définis par le système d’exploitation)

InterProcess Communication

Deux processus tournant dans des hosts différents communiquent via un

protocole de couche application

Agent utilisateur (user agent): processus

s’interfaçant avec

l’utilisateur “en haut” et le réseau “en bas”

Implante le protocole de couche application

Web: navigateur

E-mail: utilitaire de mail (Mozilla, Outlook, …)

Flux audio/video: media player

(4)

Le paradigme Client-serveur

Une appli réseau a deux

morceaux: client et serveur application transport

network data link

physical

application transport

network data link

physical

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

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

(5)

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

protocole commun d'échange des infos

gestion des participants.

Ex.

1999 Napster (info centralisé)

2000 Gnutella (décentralisé)

2002 bit torrent

(fractionnement fichiers)

(6)

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)

(7)

Besoins en services de transport des applications courantes

Application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games financial apps

Data loss no loss no loss

loss-tolerant loss-tolerant loss-tolerant loss-tolerant no loss

Bandwidth elastic

elastic elastic

audio: 5Kb-1Mb video:10Kb-5Mb same as above few Kbps up elastic

Time Sensitive no

no no

yes, 100’s msec yes, few secs yes, 100’s msec yes and no

(8)

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?

(9)

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

(10)

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

Serveur exécutant un serveur Web

Apache Mac avec

Netscape Navigator

http re

quest

http request http resp

onse

http r

esponse

(11)

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

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

aparté

(12)

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

temps

(contient du texte, et des références à 10

images jpeg )

(13)

Suite de l’exemple http

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)

6. Les étapes 1 à 5 sont répétées pour chaque objet JPEG

4. Le serveur http ferme la connexion TCP

temps

Connexion non persistante

Combien de connexions TCP sont-elles nécessaires ?

(14)

Connexions non-persistantes, persistantes

Non-persistante

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

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

Non-persistante (close)

http/1.0: le serveur parse la requête, répond, ferme la connexion TCP

2

La connexion TCP

La requête/transfert d’objet

La plupart des navigateurs ouvrent des connexions

parallèles multiples

Combien de RTT pour la page web précédente ?

(15)

Format des messages http : request

Deux types de messages http : request, response

Le message http de request :

ASCII (format lisible)

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) request line

3 champs

Header lines Carriage return,

line feed indicates end

of message

URL requise Méthode

(HEAD, POST,

GET) Version du protocole

Non persistante Netscape

(16)

En-tête HTTP (1.1)

requêtes

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.

(17)

En-tête HTTP 1.1

Options des Requêtes

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.

(18)

Format des messages http : response

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 ...

status line (3 champs)

header lines

Data

(ex : Fichier html demandé)

Version du protocole Status code status phrase

(19)

En-tête HTTP (1.1):

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

(20)

En-tête réponses HTTP (1.1)

Options

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.

(21)

Interaction utilisateur-serveur : authentification

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 serveur

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 time

(22)

Cookies : gardien d’état

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 serveur

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

cookie- specific

action

cookie- specific

action

(23)

GET conditionnel : cache côté client

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 serveur

http request msg

If-modified-since:

<date>

http response

HTTP/1.0 304 Not Modified

objet modifiénon

http request msg

If-modified-since:

<date>

http response

HTTP/1.1 200 OK

<data>

objet modifié

(24)

Cache Web (serveur proxy)

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

But : satisfaire la reqûete client sans invoquer le serveur d’origine

client

Proxy server

client

http req uest

http request http r

esponse

http r

esponse

http request http re

sponse

origin server origin server

(25)

Pourquoi les caches Web ?

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

origin servers

public Internet

institutional

network 10 Mbps LAN

1.5 Mbps access link

institutional cache

(26)

HEAD http://www.inria.fr/index.fr.html

Quel est l’effet de cette commande (sous linux) ?

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 requête 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)

(27)

Exercices II

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 remplaçant également dans le host

Identifiez vous le cookie ?

(28)

Exercices III

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 

d2VibWFzdGVyOnpycW1d2VibWFzdGVyOnpycW1  qui est encodage (en base 64) de login:mdp

(29)

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 (2nd temps)

(30)

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)

(31)

Authentification

(au niveau application)

Gérée par le serveur (au niveau http)

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

(32)

Htaccess

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

(33)

.htaccess

(Restriction d'accès par nom)

En tête :

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

(34)

.htaccess

(Restriction d'accès par domaine)

Interdiction (autorisation) totale

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.

(35)

FTP: File Transfer Protocol

Transfère des fichiers d’un/vers un hôte distant

Modèle client/serveur

client: côté qui initie le transfert (de/vers le distant)

serveur: hôte distant

ftp: RFC 959

serveur ftp : port 21

file transfer FTP server userFTP

interface

clientFTP

Système de fichiers local

Système de fichiers distant utilisateur

sur host

(36)

ftp: connexions séparées pour le contrôle et les data

Le client ftp contacte le serveur ftp sur le port 21, en spécifiant TCP comme protocole de transport

Deux connexions TCP parallèles sont ouvertes :

Contrôle : échange des

commandes et réponses entre le client et le serveur

“contrôle hors bande”

Données : fichier de données du/vers le serveur

Le serveur ftp maintient un “état”: le répertoire courant, l’authentification lors de la connexion

clientFTP FTP

server

TCP control connection port 21

TCP data connection port 20

(37)

Les commandes ftp sont envoyées comme du texte ASCII sur le canal de contrôle

Que font les commandes suivantes ?

open, user, pwd, cd, lcd, get, recv, mget, put, send, mput, status

Un peu d'aide :

Sur miage03, lancer le client ftp miage03$ftp

help : liste des commandes ftp>? nom-commande

Ouvrir une connexion avec ftp.lip6.fr en login anonyme : rapatrier le rapport LIP6 le plus récent (/lip6/reports/……

…….)

Ftp sécurisé (sftp) le lip6 accepte-t-il le ftp sécurisé ?

Quelles commandes sont disponible avec le sftp

(38)

Courrier électronique

Trois composants majeurs :

user agents

Serveurs de mail

SMTP : Simple Mail Transfer Protocol

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

user mailbox outgoing message queue

servermail

agentuser

agentuser

agentuser servermail

agentuser agentuser

servermail

agentuser

SMTP SMTP SMTP

(39)

Les serveurs de mail

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

servermail

agentuser

agentuser

agentuser servermail

agentuser agentuser

servermail

agentuser

SMTP SMTP SMTP

(40)

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

(41)

Analyse des interactions smtp

S: 220 miage03.miage.u-paris10.fr ESMTP Sendmail ...

C: HELO miage03.miage.u-paris10.fr

S: 250 ... Hello miage03…, pleased to meet you

C: MAIL FROM: <[email protected]>

S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]>

S: 250 user1@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: .

S: 250 Message accepted for delivery C: QUIT

S: 221 miage03.miage.u-paris10.fr closing connection

Ouverture

(handshaking)

fermeture transfert

(42)

Comparaison smtp - http

Échange d’informations

Connexions persistantes

Interactions de type commande/réponse et status codes en ASCII

smtp

Mode push

l’utilisateur envoie de

l’information et la connexion TCP est ouverte par l’émetteur de l’information

Messages (entête & corps) en ASCII 7-bits

Qq strings non permises dans les msg (CRLF.CRLF)

http

Mode pull

l’utilisateur retire de

l’information et la connexion TCP est ouverte par le

récepteur de l’information

(43)

(Dans le champs “Data”)

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

Ligne de blanc

!

É, è, â, ç et autres

?

(44)

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

From: [email protected] To: [email protected]

Subject: Picture of yummy crepe.

MIME-Version: 1.0

Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data ...

...

...base64 encoded data

Nature du contenu méthode utilisée pour coder les données (base64, quoted-printable

encoding, …) Version MIME

Données codées

(45)

Les types MIME

Content-Type: type/subtype; parameters

Texte

Exemples de sous-types : plain, html

Image

Exemples de sous-types : jpeg, gif

Audio

Exemples de sous-types : basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding)

Vidéo

Exemples de sous-types : mpeg, quicktime

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

(46)

Exemple de type Multipart

From: [email protected] To: [email protected]

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--

typesous-type délimiteur

1er objet : texte

2ème objet : image

(47)

Protocoles d’accès mail

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.

agentuser

Serveur SMTP émetteur agentuser

SMTP SMTP POP3 ou IMAP

Serveur SMTP récepteur

Retrait uniquement chargemen, t en SMTP

(48)

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

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

S: +OK POP3 server ready C: user alice

S: +OK

C: pass hungry

S: +OK user successfully logged on

(49)

HTTP et SMTP

HTTP: Hotmail , Yahoo! Mail, etc

L’utilisateur peut organiser sa

hiérarchie de classeurs sur le serveur (~ IMAP)

agentuser

Serveur SMTP émetteur agentuser

HTTP SMTP HTTP

Serveur SMTP récepteur

Retrait

&

chargemen t en HTTP

(50)

L'en-tête

(à analyser)

From - Wed Dec 07 15:07:55 2005 X-UIDL: 1094468282.5273

X-Mozilla-Status: 0003

X-Mozilla-Status2: 00000000 Return-Path: < @yahoo.fr>

Received: from hermes.u-paris10.fr ([unix socket]) by hermes.u-paris10.fr (Cyrus v2.2.10) with LMTPA;

Wed, 07 Dec 2005 15:06:17 +0100 X-Sieve: CMU Sieve 2.2

Received: from localhost (hermes [127.0.0.1]) by hermes.u-paris10.fr (Postfix) with ESMTP id 547C0283DD for <[email protected]>;

Wed, 7 Dec 2005 15:06:16 +0100 (CET)

Received: from web26915.mail.ukl.yahoo.com (web26915.mail.ukl.yahoo.com [217.146.177.82]) by hermes.u-paris10.fr (Postfix) with SMTP id 1BB6628456 for <[email protected]>;

Wed, 7 Dec 2005 15:05:47 +0100 (CET)

Received: from [195.101.108.232] by web26915.mail.ukl.yahoo.com via HTTP; Wed, 07 Dec 2005 14:59:06 CET

(51)

Sur miage03, envoyer un mail sur miage03 en mode verbose

miage03%mail -v [email protected]

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.

(52)

Configuration Mailer agent

Ouvrir Thunderbird

Faites Fichier -> Nouveau -> Compte

Créez le avec des valeurs bidon

Que signifient dans paramètres de comptes les champs :

Nom

Adresse electronique

Nom (serveur sortant)

Nom (serveur entrant)

Quels va être le serveur SMTP à remplir

(53)

DNS: Domain Name System

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 et nom ?

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”)

(54)

Les serveurs DNS (serveurs de noms)

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 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!

(55)

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 ?

(56)

Serveur racine (Root name servers)

b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA e NASA Mt View, CA

f Internet Software C. Palo Alto, CA

i NORDUnet Stockholm k RIPE London

m WIDE Tokyo 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

13 serveurs root

(57)

Un exemple simple

L’host miage03.miage.u-

paris10.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

host

miage03.miage.u-paris10.fr www.wia.org

serveur root

serveur d’autorité

serveur DNS local 1

2 3 4

5

6

(58)

Exemple DNS plus réaliste

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

host

miage03.miage.u-paris.fr

1

2 3

4 5

6

serveur intermédiaire (C)

7

8

serveur DNS local (A)

serveur root (B)

serveur d’autorité (D)

www.wia.org

(59)

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 miage03.miage.u-paris.frhost

www.wia.org

serveur root (B)

serveur DNS local (A) 1

2 3 4

5 6

serveur d’autorité (D) serveur intermédiaire (C)

7

8

Requête itérative

(60)

Cache DNS

Optimiser les applications

Les applications (ftp, smtp, http) utilisent le DNS pour la résolution de noms

Ex : mail to : [email protected] 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

(61)

Enregistrements DNS

DNS: BD distribuée stockant des “resource records” (RR)

Type=NS

name est le domaine (ex u- paris10.fr)

value est l’@ IP serveur d’autorité pour ce domaine

format d’un RR : (name, value, type,ttl)

Type=A

name est le hostname

value est l’@ IP

Type=CNAME

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=MX

value est le nom d’un serveur de mail dont l’alias est name

Durée de vie dans le

serveur

(62)

Les messages du protocole DNS (DNS-PDU)

Protocole DNS : messages de requête et réponse, dans le même format de message

Entête de message

Identification : n° sur 16 bits pour la requête, la réponse utilise le même n°

Drapeaux (flags)

1 bit : req. (0) ou rép. (1)

1 bit : si récursion voulue

1 bit : si récursion disponible

1 bit : si réponse vient de serveur d’autorité

Autres champs d’entête : nb d’occurrences des 4 types de champs “data”

(63)

Les messages du protocole DNS (DNS-PDU)

Le nom recherché et le type de question posée sur ce nom Les RRs fournis en réponse aux questions Les RRs provenant de

serveurs d’autorité

Information complémentaire

(64)

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

u-paris10 est le nom de 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

(65)

L’arborescence des noms

ar pa

co m

ed u

go

v int mi

l

ne t

or

g ae .. fr ..

Racine non nommée

no ao tu c ho

st 2

host2.tuc.noao.edu

u- pa ris 10mi ag e0 3

miage03.miage.u-paris10.fr Domaines

de top niveau

Domaines de 2ème niveau

Domaines génériques Domaines

géographiques

Domaine spécifique pour obtenir des noms à partir d ’@

(66)

La gestion des noms de domaines

Qui gère les noms de domaine ?

Qui décide des noms de domaine ?

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

(67)

Relation domaine - serveur DNS

Chaque élément de l’arborescence (domaine, sous- domaine, …, 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

Références

Documents relatifs

Serveur en gestion multi--clients clients en en mode connecté. mode

◮ Réponse : message transmis par un serveur à un client suite à l’exécution d’une opération, contenant le résultat

Cliquez ici pour telecharger le

– Comment casser la relation forte entre client et serveur, comment rendre le client indépendant du serveur pour l'appel.

Le client met en place une connexion SSL dans sa connexion TCP Le serveur fait de mˆeme (connexion sur son port 443). Le proxy est reli´e au client et au serveur par deux

Interface de connexion (socket) utilisée pour TCP dans l’UNIX Interface de connexion (socket) utilisée pour TCP dans l’UNIX Un serveur : un numéro de port fixé.. Côté

Or cette configuration manuelle peut être fastidieuse pour un nombre important de périphériques car pour chaque machine il faut entrer manuellement l'adresse IPv4, le masque

Elle PEUT être utilisée dans une demande d'autorisation comme indication au serveur qu'un type de tunnel spécifique est désiré, mais le serveur n'est pas obligé de suivre ce