Télécommunications et réseaux 1 (TER1)
Chapitre 2 : Étude de la couche « application »
Généralités
Terminologie
Processus : programme en cours exécution.
Les processus tournant sur deux machines différentes communiquent via un protocole de couche application.
Couche « application »
Agent utilisateur : interface entre utilisateur et le réseau.
Exemples :
- Web : navigateur web (IE, Firefox, ...)
- E-mail : client de messagerie (Thunderbird,
Outlook, ...)
Généralités
Modèle client-serveur
Caractéristiques d'un serveur : - il est initialement passif;
- il est à l'écoute, prêt à répondre aux requêtes envoyées par des clients ; - dès qu'une requête lui parvient, il la traite et envoie une réponse.
Caractéristiques d'un client :
- il est actif en premier (ou maître) ; - il envoie des requêtes au serveur ; - il attend et reçoit les réponses du serveur.
Réseau
Serveur Client 1
Client 2
Requête
Réponse
Couche « application »
Fournisseur de services Consommateur
de services
Généralités
Numéro de Port
Comment un processus identifie-t-il l’autre processus avec lequel il veut communiquer ?
Client
FF
Service transport
Identifier le poste client : adresse IP
Serveur
IIS
Identifier le poste serveur :
adresse IP
FZS FZ
FF: Firefox / FZ : Filezilla / IIS : serveur Web Microsoft
Identifier le processus
client : Numéro port
Identifier le processus
client : Numéro port
Couche « application »
Généralités
Liste de quelques numéros de port
http://fr.wikipedia.org/wiki/Liste_des_ports_logiciels
Couche « application »
Généralités
Couche « application »
De quel service de transport une application a-t-elle besoin ?
Fiabilité du transfert de données (Perte de données)
Certaines applications tolèrent des pertes (audio, vidéo)
D’autres nécessitent un transfert fiable à 100% (ex.: transfert de fichiers, e-mail)
Bande passante
Certaines applications nécessitent un minimum de BP pour être efficace (ex.: multimédia)
D’autres (“appli élastiques”) fonctionnent quelque soit la BP dont elles disposent (email, Web, transfert de fichiers)
Délai
Certaines applications nécessitent des délais faibles pour être efficaces (<100 ms /(ex. : téléphonie Internet, jeux interactifs).
Généralités
Couche « application »
Besoins en services de transport des applications courantes
Généralités
Couche « application »
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
Les services des protocoles de transport Internet
Généralités
Couche « application »
Protocoles applicatifs
Navigateur Web et HTTP
Couche « application »
Objectifs web
- Permettre la mise à disposition d'informations via des serveurs Web
- Autoriser les liens hypertextes entre informations situées sur des sites différents.
Serveur Web www.google.be
Serveur Web www.ebay.fr Client :
navigateur Web
Requête
Réponse Requête
Navigateur Web et HTTP
Couche « application »
Terminologie
Les pages Web contiennent des objets
Les objets peuvent être : fichier HTML, image JPEG, applet Java, fichier audio, ...
Une page Web est constituée d'un fichier HTML qui inclut plusieurs objets référencés
=> HTML(HyperText Markup Language) : un langage de description de documents qui permet d'inclure des liens
hypertextes
Navigateur Web et HTTP
Couche « application »
Terminologie
Chaque objet est adressable par une URL (Uniform Resource Locator)
Adresse du serveur Web
Dossier
http://www.csszengarden.com/001/zen-bg.jpg
Exemple :
Ressource : image jpeg
Navigateur Web et HTTP
Couche « application »
Langage HTML (1/2)
Langage de description de documents utilisés sur le web.
Quelques balises HTML :
<html>...</html>
<head>...</head>
<title>...</title>
<body>...</body>
<h1>...</h1>
<p>...</p>
<img src= « URL » />
<a href= « URL»> lien </a>
Navigateur Web et HTTP
Couche « application »
Langage HTML (2/2)
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Page de test</title>
</head>
<body>
<h1>Mon site Web</h1>
<hr />
<h3>MENU</h3>
<ul>
<li><a href="http://www.google.be">Google</a></li>
<li><a href="http://www.csszengarden.com/tr/francais/">zengarden</a></li>
<li><a href="http://www.amazon.fr">Amazon</a></li>
</ul>
<hr />
<img src="http://www.csszengarden.com/001/zen-bg.jpg"/>
</body>
Navigateur Web et HTTP
Couche « application »
Protocole HTTP (1/2)
=> un protocole d'échange de documents HTML HTTP (HyperText Transfer Protocol)
Modèle client/serveur
client: navigateur qui demande, reçoit et affiche des objets Web (fichier html, image JPEG, GIF, applet java, …).
serveur: serveur Web qui envoie les objets en réponse aux requêtes
Standards
HTTP1.0: RFC 1945
HTTP1.1: RFC 2616
Navigateur Web et HTTP
Couche « application »
Protocole HTTP (2/2)
HTTP : service de transport TCP
Le client initie une connexion TCP vers le serveur, port 80
Le serveur accepte les connexions TCP du client
Les messages http 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.
Navigateur Web et HTTP
Couche « application »
Exemple : chargement d'une page Web
Soit un utilisateur qui saisit l'URL suivante :
http://www.monSeveur.be/dossier/index.html (Contient du texte, et des références à 10 images jpeg)
1) Le client (Firefox) initie la connexion
TCP vers le serveur Web (Apache) sur la machine www.monServeur.be.
2) Le serveur web est en
attente sur la connexion TCP au port 80. Il accepte la
connexion.
3) Le client envoie une requête HTTP (contenant l’URL).
www.monServeur.be/dossier/index.
html 4) Le serveur web reçoit le
message, forme la réponse contenant l’objet demandé.
Navigateur Web et HTTP
Couche « application »
Exemple : chargement d'une page Web
5) Le client reçoit la réponse
réponse contenant le fichier html, affiche le html. En analysant le fichier html, il trouve les 10
références d’objets JPEG (liens)
Le serveur web ferme la connexion TCP
6) Les étapes 1 à 5 sont répétées pour chaque objet JPEG
=> connexion non persistante
Navigateur Web et HTTP
Couche « application »
Connexions non-persistantes, persistantes
HTTP/1.0: le serveur analyse la requête, répond, ferme la connexion TCP.
Maintient la connexion TCP.
Il fermera la connexion après son inutilisation durant un certain temps (configurable).
HTTP/ 1.1:
A chaque fois que l'on sollicite le transfert d'un objet => ouverture d'une nouvelle connexion
Navigateur Web et HTTP
Couche « application »
Format général d'une requête HTTP
Méthode espace URL espace version CRLF
Nom du champ d'entête : espace Valeur CRLF
Nom du champ d'entête : espace Valeur CRLF CRLF
...
Corps de la requête
Lignes d'entête Ligne vide Ligne de commande
Les entêtes permettent au client de paramétrer la requête.
Navigateur Web et HTTP
Couche « application »
Exemple d'une requête HTTP
http://www.google.be/
GET / HTTP/1.1
Host: www.google.be
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300
Connection: keep-alive
Entêtes
Connexion persistante
Host : nom de la machine sur laquelle la ressource réside.
Navigateur Web et HTTP
Couche « application »
Méthodes
GET : Récupération d'un document
=> permet de demander un document à partir d'une localisation spécifique sur le serveur.
POST : Envoi de données au serveur
=> permet au client d'envoyer des données à des programmes qui sont accessibles par le serveur et qui pourront traiter ces données (ex. : formulaires,...)
Navigateur Web et HTTP
Couche « application »
Format général d'une réponse HTTP
Version espace Code d'état espace texte-réponse CRLF Nom du champ d'entête : espace Valeur CRLF
Nom du champ d'entête : espace Valeur CRLF
CRLF
...
Corps de la réponse
Lignes d'entête Ligne vide Ligne d'état
Corps de la réponse => exemple : fichier HTML demandé.
Navigateur Web et HTTP
Couche « application »
Exemple d'une réponse HTTP
HTTP/1.x 200 OK
Cache-Control: private, max-age=0 Date: Wed, 01 Oct 2008 20:39:10 GMT Expires: -1
Content-Type: text/html; charset=UTF-8 Content-Encoding: gzip
Server: gws
Content-Length: 2706
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.
Last-Modified : date de dernière modification de la ressource
Navigateur Web et HTTP
Couche « application »
Code de d'état
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.
Exemple : HTTP/1.0 200 OK
301 Moved Permanently : L’objet demandé a été déplacé, sa nouvelle localisation figure dans ce message.
Navigateur Web et HTTP
Couche « application »
Code de d'état
404 Not Found
Document demandé non trouvé sur le serveur 505 HTTP Version Not Supported
400 Bad Request
Message de requête non compris par le serveur.
exemples : erreur de syntaxe dans la requête, URL non accessible, requête non autorisée, ...
Navigateur Web et HTTP
Couche « application »
Cookie
HTTP est sans état (stateless)
=> le serveur ne se souvient donc pas des choix faits par le client ! Problème d'identification des visiteurs
sites e-commerce (amazon, ...)
portails web personnalisés (iGoogle, yahoo, ...) Solution
=> le cookie (témoin) est un fichier texte (max 4 Ko) créé et fourni par le serveur. Les navigateurs les stockent dans un répertoire réservé à cet effet.
Navigateur Web et HTTP
Couche « application »
Contenu du cookie
Un cookie est composé de 5 champs :
Domaine : indique l'endroit d'où provient le cookie
Chemin : représente un chemin dans la structure de répertoires du serveur.
Contenu : représente le contenu du cookie, prend la forme de nom=valeur.
Représente n'importe quelle information utile au serveur
Expiration : indique le moment auquel le cookie expire.
- cookie session : expire à la fin de la session.
- cookie persistant : reste jusqu'à ce qu'il expire.
Sécurité : utilisé pour indiquer que le navigateur peut retourner le cookie uniquement vers un serveur sécurisé.
Navigateur Web et HTTP
Couche « application »
Utilisation du cookie
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 réponse
Set-cookie: 1678453
Le client présente le cookie dans ses requêtes futures
Requête HTTP
Client Serveur
Réponse HTTP + Set-cookie : n°
Requête HTTP + Cookie : n°
Réponse HTTP
Navigateur Web et HTTP
Couche « application »
Amélioration des performances
Profiter du principe de localité et de la stabilité des documents
de nombreux documents changent rarement
un utilisateur peut visualiser plusieurs fois le même document
deux utilisateurs proches ont de bonnes chances d'avoir de demander des documents similaires
Solution
installer une cache (disque et mémoire) dans chaque navigateur
if-modified-since pour vérifier si un document en cache est toujours valide
installer des caches institutionnelles (proxy)
Navigateur Web et HTTP
Couche « application »
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
Requête HTTP
If-modified-since :
<date>
Réponse HTTP HTTP/1.0
304 Not Modified Requête HTTP
If-modified-since :
<date>
Réponse HTTP HTTP/1.1 200 OK
1
2
Navigateur Web et HTTP
Couche « application »
Cache Web : Serveur proxy (mandataire)
But : satisfaire la requête client sans invoquer le serveur d’origine.
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
Serveur proxy Client
Serveur Web
Transfert de fichier
Couche « application »
Principe (1/2)
Serveur FTP
Client FTP
Transfert de fichier
Interface
utilisateur FTP
HD distant HD local
Utilisateur
Transfère des fichiers d’un/vers un hôte distant (déploiement et mise à jour de site Web, ... ) Modèle client/serveur
Transfert de fichier
Couche « application »
Principe (2/2)
Client FTP Serveur FTP
21 20
Connexion TCP de contrôle
Connexion TCP de données
1125 1126
Contrôle :
- échange des commandes et réponses entre le client et le serveur.
Exemple de commandes : effacer, déplacer un fichier, ...
- envoie au serveur le numéro de port client (1126) pour l'échange de données
1126 ->
Transfert de fichier
Couche « application »
Commandes et réponses
Quelques commandes :
Envoie du texte ASCII sur le canal de contrôle
USER nom_de_utilisateur
PASS mot_de_passe
LIST : retourne la liste des fichiers dans le dossier courant
RETR nom_fichier :envoi du fichier demandé.
STOR nom_fichier : réception d’un fichier qui portera le nom spécifié (création ou écrasement du fichier)
DELE nom_fichier : demande de supprimer le fichier spécifié sur le serveur
Quelques codes retournés :
Code d'état et phrase
331 Username OK, password required
125 Data connection already open; tranfer starting 425 Can't open data connection
Transfert de fichier
Couche « application »
Mode actif
Commande PORT
Indique au serveur sur quel port le client va gérer le transfert de données.
Exemple :
IP client : 10.0.0.1 Port : 1027
PORT 10,0,0,1,4,3 1027 = 4*256 + 3
Courrier électronique
Couche « application »
Principe d'envoi de mail
Trois éléments majeurs :
Agent utilisateur
Serveurs de mail
Protocole SMTP (Simple Mail Transfert Protocol)
Alice Bob
Serveur de mail d'Alice
Serveur de mail de Bob
Envoi au serveur local Récupération du message
SMTP SMTP
Courrier électronique
Couche « application »
Agent utilisateur
Composer, éditer et lire les messages.
Exemple : Thunderbird, Outlook, ...
Les messages sortant et entrants sont stockés sur le serveur
Serveur de mail
Les mailbox (boîte aux lettres) 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)
Courrier électronique
Couche « application »
Format des messages e-mail
Exp: ABC S.A.
Rue de Fer 10 5000 Namur
DEF Corp.
Steel street 9 WA78 AX London Grande Bretagne
From: president@abc.be To: ceo@def.com
Subject: Hello
Dear Sir,
Bla Bla Bla...
entête
Corps du message
Corps du message : Entête
Ligne de blanc Corps
Courrier électronique
Couche « application »
SMTP
Utilise TCP pour transférer de façon fiable un message d’un client vers un serveur, port 25
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
Courrier électronique
Couche « application »
Interaction SMTP
Trois phases de SMTP
1) établissement d'une association SMTP - ouverture de la connexion TCP
- message de bienvenue du serveur - EHLO
2) Transfert d'un message
MAIL FROM : <userExpéditeur@domaine>
RCPT TO : <userDestinataire@domaine>
DATA- transfert du message complet, entête comprise
- caractère "." sur ligne vide pour terminer le message transfert éventuel d'autres messages
3) Fermeture de l'association - QUIT
-message de fin du serveur
Courrier électronique
Couche « application »
Contenu des messages A l'origine
●
courrier électronique développé par des anglophones
●
message composé de lignes ASCII 7 bits - chaque ligne est terminée par <CRLF>
Comment dans un email transmettre ?
●
des caractères accentués
●
autre chose que du texte ASCII - audio
- vidéo
- programmes...
Courrier électronique
Couche « application »
MIME (
Multipurpose Internet Mail Extensions)
=> Redéfinition du format des messages Objectifs
● rester le + possible compatible avec d'anciens serveurs d'email
● supporter des textes dans une autre langue que l'anglais
(nécessité d'identifier le type d'encodage des caractères puisque ASCII 7bits ne suffit plus)
● pouvoir transférer autre chose que du texte (nécessité d'identifier les différents types de contenu)
● pouvoir créer des messages composés de plusieurs parties (fichiers attachés)
Solution choisie
● ajouter de nouveaux champs optionnels dans l'entête du message
● ajouter lorsque c'est nécessaire certains éléments dans le corps du message
Courrier électronique
Couche « application »
Nouveaux champ dans l'entête MIME-Version:
●
indique la version de MIME utilisée pour créer le message
●
version actuelle : 1.0
●
Content-Description:
●
texte ASCII (commentaire) décrivant le contenu
●
Content-Type:
●
indique la nature du message
●
Content-Transfer-Encoding:
●
indique la façon dont le message a été encodé
●
Courrier électronique
Couche « application »
MIME (Content-Type)
Content-Type composé de deux parties
● Type de contenu
- text, image, video, application - Multipart
● Format du contenu - text/plain , text/html - image/gif, image/jpeg - audio/basic
- video/mpeg, video/quicktime
- application/octet-stream, application/postscript - multipart/alternative
message composé de plusieurs parties représentant le même contenu dans des formats différents (ex: deux formats d'image)
- multipart/mixed
message composé de plusieurs contenus différents (exemple : partie texte et fichier attaché)
Courrier électronique
Couche « application »
Caractères accentués
Support des caractères accentués dans les contenus de type text/plain paramètre indiquant le code de caractères utilisé pour encoder le message
Content-Type: text/plain; charset=us-ascii
- norme définie fin des années 1960s aux USA - caractères ASCII 7bits, défaut
Content-Type: text/plain; charset=iso-8859-1
- code de caractères Latin1 pour Europe défini par l'ISO - 8 bits pour chaque caractère
- les caractères 0-127 sont équivalents à US-ASCII Content-Type: text/plain; charset=unicode
- code de caractères universel, supporte toutes les langues - 16 bits pour chaque caractère
- partiellement compatible avec ISO-8859-1
Courrier électronique
Couche « application »
Caractères codés sur 8 bits
Les messages doivent être codés en ASCII 7 bits
Comment coder les caractères ASCII codés sur 8 bits ? Deux techniques
Quoted-Printable :
- Un octet correspondant à un caractère imprimable de l'ASCII est représenté tel quel
- Un octet qui ne correspond pas à un caractère imprimable de l'ASCII est représenté par un signe égal, suivit de son numéro, exprimé en hexadécimal
Caractère Encodage (8 bits) Quoted-Printable
é 0xe9 =E9
espace 0x20 =20
Courrier électronique
Couche « application »
Caractères codés sur 8 bits
Base 64 :
Un alphabet de 65 caractères est utilisé pour permettre la représentation de 6 bits par caractère.
Courrier électronique
Couche « application »
Caractères codés sur 8 bits
Base 64 :
3 caractères « Hi! »
01001000 01101001 00100001 <=> 010010 000110 100100 100001 Les 4 groupes de 6 bits en sortie nous donnent les valeurs
18, 6, 36 et 33. Ainsi en suivant la correspondance de la table indexée nous obtenons les 4 caractères « SGkh ».
groupe de 24 bits -> encodé sur 4 caractères ASCII
http://www.securitystats.com/tools/base64.php
Courrier électronique
Couche « application »
Content-Type : Multipart/mixed
Comment identifier les parties d'un message ?
- choisir une chaîne de caractères "spéciale" qui servira de délimiteur qui ne doit pas apparaître dans le message
- annoncer ce délimiteur dans l'entête
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-1826024551-1224620356=:27167"
Message-ID: <880091.27167.qm@web28313.mail.ukl.yahoo.com>
--0-1826024551-1224620356=:27167 Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Tester les caract=C3=A8res accentu=C3=A9s !=0A=0ATester la mise en forme en=
HTML =0A=0A=0A
--0-1826024551-1224620356=:27167
Content-Type: multipart/related; boundary="0-987227513-1224620356=:27167"
--0-987227513-1224620356=:27167 Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Courrier électronique
Couche « application »
Récupération des messages
Alice Bob
Serveur de mail d'Alice
Serveur de mail de Bob SMTP SMTP
POP3 ou IMAP
Courrier électronique
Couche « application »
POP3 (Post Office Protocol Version 3)
Objectif
Permettre la récupération de messages email à distance avec authentification des utilisateurs
Fonctionnement
● POP utilise le service TCP
● adresse du serveur POP
- adresse machine + TCP + numéro de port : 110
● client envoie des commandes
- commande : ligne ASCII terminée par <CRLF>
- USER, PASS, STAT, RETR, DELE, QUIT
● serveur répond avec +OK si réussite -ERR si erreur
envoi des messages à la demande
Courrier électronique
Couche « application »
POP3
Trois phases du protocole
1) Autorisation : vérification de l'utilisateur USER nom_de_l'utilisateur
PASS mot_de_passe
2) Transaction : récupération et suppression des messages STAT : liste des messages
RETR <n> : récupération d'un message
DELE <n> : message marqué pour suppression 3) Mise à jour :Fin de la récupération des messages
messages marqués pour suppression sont effacés fin de la connexion TCP
Courrier électronique
Couche « application »
POP3 vs IMAP
- offre une communication bidirectionnelle (synchronisation) entre votre Gmail sur le Web et votre ou vos clients de messagerie
- méthode plus efficace pour accéder à votre messagerie depuis plusieurs périphériques
- tous les messages sont stockés au même endroit : le serveur IMAP (port 143)
IMAP
Deux modes :
- « télécharger et supprimer » - Bob ne peut plus relire ses messages s'il change de périphérique.
- « télécharger et garder » - Bob génère une copie des messages POP3
Résolution de nom de domaine
Couche « application »
Domain Name System (DNS)
Adresse d'un serveur
Adresse IP de la machine sur laquelle il tourne
numéro de port (TCP ou UDP)
- en général numéro bien connu pour chaque type de serveur
Inconvénient
Adresse IP difficile à mémoriser par un humain Idée
remplacer l'adresse IP par un nom de machine
plus facile pour les humains
- mais adresse IP nécessaire pour utiliser TCP ou
UDP...
Résolution de nom de domaine
Couche « application »
Services d'un serveur DNS
Traduction nom d'hôte/adresse IP Alias d'hôte
Serveur DNS traduit le nom d'hôte mnémonique en nom d'hôte canonique (nom réelle de la machine).
Alias d'email
Résolution de nom de domaine
Couche « application »
Quatre types de serveur de noms
Serveur de nom TLD (Top-Level Domain)
Gère les domaines de premier niveau (.be, .fr, .com,...)
En Belgique, ce service est confiée à DNS BE (http://www.dns.be)
Serveur de nom local
Chaque FAI, compagnie a un serveur de nom local
Un hôte interroge toujours en premier le serveur de noms local Serveur de nom racine
13 serveurs racines sont répartis dans le monde (http://root- servers.org)
Contacté par le serveur de noms local qui ne peut pas faire une résolution
Résolution de nom de domaine
Couche « application »
Quatre types de serveur de noms Serveur de noms d'autorité
Chaque hôte a son adresse IP et nom enregistrés sur un tel serveur
En général, le serveur d'autorité est le serveur de nom
local
Résolution de nom de domaine
Couche « application »
Espace de nom
edu com net gov mil be fr de Sun apple fbi whitehouse ac rtbf cec inria java www mail www fundp ulg ucl
.
Top-Level Domain(TLD) Racine
generic Top-Level Domains (gTLD) : .edu, .com, .net, .gov, .mil, ...
(http://www.afnic.fr/doc/autres-nic/gtld)
country code Top-Level Domains (ccTLD) : .be, .fr, .de
FQDN : Fully Qualified Domain Name Noeud = domaine Feuille : machine
Résolution de nom de domaine
Couche « application »
Hiérarchie serveurs DNS
Serveur DNS root i.root-server.net
Serveur DNS TLD .com
Serveur DNS TLD .fr
Serveur DNS TLD .be
Serveur d'autorité amazon.com
Serveur d'autorité belgium.be Serveur d'autorité
yahoo.com
Résolution de nom de domaine
Couche « application »
Requêtes DNS
Serveur DNS local
1
Serveur DNS racine
2 3
.be ?
Serveur DNS TLD
4
5
google.be ?
Serveur DNS d'autorité
6
7
www.google.be ?
@IP (64.233.183.103)
8 @IP (64.233.183.103)
oogle.be ?
Résolution de nom de domaine
Couche « application »
Requêtes DNS (récursive)
Serveur DNS local
1
Serveur DNS racine
2
3
.be ?
Serveur DNS TLD
4
5
google.be ?
Serveur DNS d'autorité
6 7
www.google.be ?
@IP (64.233.183.103)
8 @IP (64.233.183.103)
oogle.be ?
@IP (64.233.183.103)
@IP (64.233.183.103)
Résolution de nom de domaine
Couche « application »
Cache DNS
Quand un serveur de noms connaît une résolution ou adresse IP d'un serveur DNS « récente », il la stocke dans un cache (mémoire local)
Une entrée du cache est supprimée après timeout TTL.
Lors d'une demande de résolution, le serveur DNS commence par explorer sa mémoire cache
Résolution de nom de domaine
Couche « application »
Enregistrements DNS
Le DNS est une base de données distribuée stockant des Ressources Records (RR)
Format d’un RR : (name, value, type,ttl) Type = A (Address)
name est le nom de la machine value est l'@ IP
(www.google.be, 64.233.183.99, A, TTL)
Type = NS (Name Server)
name est le nom du domaine
value est le nom du serveur d'autorité pour ce domaine (google.be, ns1.google.be, NS, TTL)
Résolution de nom de domaine
Couche « application »
Enregistrements DNS
Type = CNAME (Canonical Name)
name est l'alias pour le nom « canonique » (réel) value est le nom canonique
(www.google.be,www.l.google.com, CNAME, TTL)
Type = MX (Mail Exchange)
name est le nom du domaine
value est le nom du serveur SMTP
Résolution de nom de domaine
Couche « application »
Messages DNS
Identification Flags
32 bits
Number of additional Number of authority
Number of answers 12 bytes
Questions
(variable number of resource records) Number of questions
Answers
(variable number of resource records) Authority
(variable number of resource records) Additional information
(variable number of resource records)
Chaque requête contient un numéro de série.
Ce numéro sera reproduit dans la réponse pour permettre
au serveur de déterminer à quelle question une réponse correspond
Question/Réponse
Question récursive ou non
la réponse provient du serveur autorisé
Erreur éventuelle
Résolution de nom de domaine
Couche « application »
Messages DNS
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
Identification Flags
Number of additional Number of authority
Number of answers
Questions
(variable number of resource records) Number of questions
Answers
(variable number of resource records) Authority
(variable number of resource records) Additional information
(variable number of resource records) 12 bytes