couche application - cours 8...la plupart des protocoles sont construits au dessus de tcp qui...
Post on 18-Sep-2020
1 Views
Preview:
TRANSCRIPT
Couche ApplicationCours 8
E. Godard
Aix-Marseille Universite
M1 Informatique Reseaux 2019/20
Introduction
HTTP
SMTP
DNS
E. Godard Applications 2 / 59
Introduction
Introduction
HTTP
SMTP
DNS
E. Godard Applications 4 / 59
Introduction
”Vous etes Ici”
TCP/IPOSI
Application
Presentation
Session
Transport
Network
Data link
Physical
7
6
5
4
3
2
1
Application
Transport
Internet
Host-to-network
Not presentin the model
E. Godard Applications 5 / 59
Introduction
Couche Application
Couche finale pour la communication de l’information => detres nombreux protocoles :
HTTP, FTP,
SMTP, POP, IMAP,
DNS
Jabber, MSN, ICQ, H323,
SMB, NFS, ...
...
intergiciels
RPC, RMI, CORBA, DCOM, ...
La plupart des protocoles sont construits au dessus de TCP quiapporte la fiabilite necessaire.
E. Godard Applications 6 / 59
Introduction
Protocoles Etudies
HTTP : le protocole du webTCP port 80
SMTP : envoi de courrielTCP port 25
DNS : protocole et base de donnees distribuee pour laresolution de nomUDP/TCP port 53
E. Godard Applications 7 / 59
HTTP
Introduction
HTTP
SMTP
DNS
E. Godard Applications 8 / 59
HTTP
Protocole HTTP
HyperText Transfer Protocol
Le protocole de la Toile (souvent confondue avec internet)
Ne au CERN a la fin des annees 80
Protocole de requete simple (Sans etat)
Protocole de reponse a un formulaire
Port classique : port 80
RFCs 1945 et 2048
Versions
I HTTP 1.0 : tres simpleI HTTP 1.1 : ameliore (connexion persistante)I HTTP-NG : une refonte completeI SPDY, WebSocket, ...
E. Godard Applications 9 / 59
HTTP
URLs et URIs
URI : “Uniform Ressource Identifier”, possede neuf champs.Exemple :
I mailto:egoddard@cmi.univ-mrs.frI urn:isbn\:096139210xI ftp://egoddard@mimosa.univ-mrs.fr/
URL : “Uniform Ressource Locator”, pour le World WideWeb, de la formeprotocole://serveur.domaine[:port]/chemin
peut etre relatif (dependant de l’URL courante).
Remarque :http://www.cmi/~egodard/ens/reseaux/index.html#tp
est une URI pas une URL...
E. Godard Applications 10 / 59
HTTP
URLs et Espace de Noms
Ports :
I http : 80, en clairI https : 443, protege via SSL/TLS
Nom de domaine (DNS)
Chemin local (serveur)
E. Godard Applications 11 / 59
HTTP
La Toile
Disk Disk Web Server
Web Server
Browser program
Hyperlink to xyz.com
Hyperlink to abcd.com
TCP connection
The Internet
ClientServer
abcd.comServer
xyz.comCurrent page displayed by browser
E. Godard Applications 12 / 59
HTTP
HTTP 1.0
Protocole en ligne de caracteres (diagnostic plus facile)
Requete :
GET /~ egodard/ens/reseaux/index.html HTTP /1.0
Accept: text/html
Accept: image/png
User -Agent: telnet
E. Godard Applications 13 / 59
HTTP
Reponse
HTTP /1.0 200 OK
Date: Sun , 13 Nov 2005 13:20:04 GMT
Server: Apache /1.3.33 (Unix) mod_ssl /2.8.22 OpenSSL /0.9.7e PHP /4.4.0
Last -Modified: Thu , 10 Nov 2005 14:47:14 GMT
ETag: "b16038 -1e4c -43735 d72"
Accept -Ranges: bytes
Content -Length: 7756
Connection: close
Content -Type: text/html
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01// EN">
<html >
<head >
<META http -equiv="Content -Type" content="text/html; charset=iso -8859 -15">
<title >E. Godard -- Reseaux </title >
<style type="text/css">
...
E. Godard Applications 14 / 59
HTTP
Element A l’Interieur d’Une Page
Un element interne (comme une image) est redemande par lenavigateur apres analyse du code html.Difference
protocole : HTTP
encodage : HTML
E. Godard Applications 15 / 59
HTTP
Types MIME
E. Godard Applications 16 / 59
HTTP
Requetes
GET : informations et donnees de l’URI
HEAD : seulement les informations d’entetes
POST : envoi de donnees de formulaire
PUT : enregistrement (”upload”) de donnees
DELETE : effacement
OPTIONS : demande des options de communication
...
E. Godard Applications 17 / 59
HTTP
Methode POST
POST /~ egodard/ens/reseaux/index.html HTTP /1.0
Accept:text/html
Accept:image/png
User -Agent: firefox/linux ppc
champs1=valeur1&
champs2=valeur2
E. Godard Applications 18 / 59
HTTP
Statuts de Retour
100-199 : informationnel
200 : OK
201 : cree200-299 : succes
301 : redirection
304 : non modifie300-399 : redirections
400 : mauvaise requete
403 : interdit
404 : non trouve400-499 : requete incorrecte
500 : erreur interne du serveur
503 : service indisponible pour l’instant500-599 : erreurs cote serveur
E. Godard Applications 19 / 59
HTTP
Gestion de Session
Le protocole est sans memoire : comment associer une session aplusieurs requetes consecutives ?Utilisation de cookie
Set-Cookie:nom=valeurunique cote serveur
Cookie:nom=valeurunique dans les entetes des requetessuivantes
Pratique pour les clients (achats en ligne, forums, ...)
Tres pratique pour la veille marketing=> probleme vis-a-vis vie privee
I desactivation / controle des cookiesI code de bonne conduiteI ... ?
E. Godard Applications 20 / 59
HTTP
Gestion de Session
Le protocole est sans memoire : comment associer une session aplusieurs requetes consecutives ?Utilisation de cookie
Set-Cookie:nom=valeurunique cote serveur
Cookie:nom=valeurunique dans les entetes des requetessuivantes
Pratique pour les clients (achats en ligne, forums, ...)
Tres pratique pour la veille marketing=> probleme vis-a-vis vie privee
I desactivation / controle des cookiesI code de bonne conduiteI ... ?
E. Godard Applications 20 / 59
HTTP
Mandataire HTTP
On utilise des mandataires pour
partager un cache (vers des requetes frequentes)
authentifier les connexions sortantes
controle de contenu
reecrire les pages a la volee (publicite, requete espionne,cookies ...)
Des informations sont contenus dans les entetes a destinationdes mandataires :
Last-Modified : date (pour comparer a la derniere copie)
Expires : date de peremption
Pragma : contenu volatil ou non
Via : mandataires intermediaires
La requete devient :GET http://hote/chemin
E. Godard Applications 21 / 59
HTTP
Mandataire HTTP
On utilise des mandataires pour
partager un cache (vers des requetes frequentes)
authentifier les connexions sortantes
controle de contenu
reecrire les pages a la volee (publicite, requete espionne,cookies ...)
Des informations sont contenus dans les entetes a destinationdes mandataires :
Last-Modified : date (pour comparer a la derniere copie)
Expires : date de peremption
Pragma : contenu volatil ou non
Via : mandataires intermediaires
La requete devient :GET http://hote/chemin
E. Godard Applications 21 / 59
HTTP
HTTP 1.1
RFC 2616 (1999)
nouvelle version pour connaıtre exactement les proprietesdu correspondantpermet d’heberger plusieurs sites sur le meme serveur :GET http://www.example1.com/page3.html
HTTP/1.1 vsGET http://www.example2.com/site.php HTTP/1.1
connexion persistante :
I 100 : continuer
E. Godard Applications 22 / 59
HTTP
HTTP/2
Nouvelle version
Base sur SPDYI reduction de la latence par reutilisation de la meme
socket TCPI binaire / encapsulation de messagesI multiplexage
chiffrement (TLS 1.2 et maintenant 1.3) obligatoire
RFC 7540 (mai 2015)
support logiciel : IE 11, Firefox 34, Chrome
E. Godard Applications 23 / 59
HTTP
HTTP/3
Derniere version 26 sept. 2019
draft IETF
protocole QUIC
support des navigateurs modernes
... et des hebergeurs comme cloudflare
E. Godard Applications 24 / 59
HTTP
WebDAV
Web Distributed Authoring and VersioningSurcouche de HTTP pour gerer la publication avancee :
revisions et commentaires
controle d’acces
information d’indexation
=> logiciels collaboratifs et nombreux clients.
E. Godard Applications 25 / 59
HTTP
Clients et Serveurs
Protocole largement deploye et supporte
Serveurs :
I ApacheI IIS
Clients :
I MozillaI FirefoxI Internet ExplorerI SafariI ....
E. Godard Applications 26 / 59
HTTP
Parts de Marche Serveurs
c©netcraft.com aout 2019 :
E. Godard Applications 27 / 59
HTTP
Domaines Actifs
E. Godard Applications 28 / 59
HTTP
Domaines Les Plus Actifs
E. Godard Applications 29 / 59
HTTP
Le Vrai Web
Les protocoles sont la base d’un systeme informatiquedecentralise mais dans la realite, il y a de forte tendance a lacentralisation
silos applicatifs (reseaux sociaux non inter-operables)
plateformes techniques hegemoniques
E. Godard Applications 30 / 59
HTTP
CDN
Un Content Delivery Network est un reseau de distributionefficace de contenu :
serveurs origine
serveurs peripheriques (miroirs)
mecanisme de ”routage” permettant d’obtenir la replique laplus proche de maniere transparente pour l’utilisateur final
mise en oeuvre frequemment a l’aide du DNS ou a l’aide detechniques P2P.
E. Godard Applications 31 / 59
SMTP
Introduction
HTTP
SMTP
DNS
E. Godard Applications 32 / 59
SMTP
Protocole SMTP
Simple Mail Transfer Protocol
Envoi/transport de courrier electronique
RFC 821 (1982)
RFC 2821 (2001)
E. Godard Applications 33 / 59
SMTP
Agents du Courrier Electronique
MUA (Mail USer Agent) : client de messagerie
MTA (Mail Transfer Agent) : transport des courriers (viades serveurs SMTP en general)
MDA (Mail Delivery Agent) : remise du courrier audestinataire final
E. Godard Applications 34 / 59
SMTP
Architecture du Courrier Electronique
Internet User agent
Message transfer
agent
MailboxPermanent connection
Sending host
(a) Receiving host
SMTP
Internet User agent
Message transfer
agent
MailboxSending host
(b) ISP's machine
User's PC
SMTP POP3POP3 server
Dial-up connection
E. Godard Applications 35 / 59
SMTP
Exemple de Transport de Courrier
L’utilisateur clique sur “Envoyer”
Le logiciel de messagerie(MUA) contacte le serveur SMTPlocal(MTA)
Ce serveur contacte le serveur SMTP distant (MTA)associe a l’adresse du destinataire
Celui-ci transmet le courrier au serveur Pop (MDA)
Le destinataire clique sur le bouton “Recevoir” de sonlogiciel de messagerie (MUA).
E. Godard Applications 36 / 59
SMTP
MDA : POP3 vs IMAP
E. Godard Applications 37 / 59
SMTP
Courrier Electronique et Espace de Noms
Une adresse electronique identifiant@domaine.tld estconstituee de
identifiant local du destinatairedomaine.tld
I nom de la machine MTA du destinataireI ou domaine DNS dont le champ MX indique le MTA
Exemples (identiques cote utilisateur mais pas cote serveur)
aconnu@cmi.univ -mrs.fr
Alain.Connu@cmi.univ -mrs.fr
Alain.Connu@lif.univ -mrs.fr
Alain.Connu@up.univ -mrs.fr
Alain.Connu@univ -provence.fr
E. Godard Applications 38 / 59
SMTP
Envoi par Poignee de Main
serveur: 220 smtp.exemple.net SMTP Ready
client : EHLO station1.exemple.net
serveur: 250 smtp.exemple.net
client : MAIL FROM:<src@exemple.net >
serveur: 250 OK
client : RCPT TO:<dst@security.net >
serveur: 250 OK
client : DATA
serveur: 354 Start mail input; end with <CRLF >.<CRLF >
client : Subject: Bonjour
client : Salut ,
client : comment ca va?
client :
client : A bientot !
client : <CRLF >.<CRLF >
serveur: 250 OK
client : QUIT
serveur: 221 smtp.exemple.net closing transmissionE. Godard Applications 39 / 59
SMTP
Autres Commandes
VRFY : verifie juste si le destinataire existe
E. Godard Applications 40 / 59
SMTP
Encodage et Extension
les caracteres transmis doivent etre codes sur 7bits
format MIME (Multipurpose Internet Mail Extension)
encodage base64 ou quoted-printable
E. Godard Applications 41 / 59
SMTP
Entete d’un Courrier Electronique
From: adresse de l’emetteur
Return-Path: adresse pour la reponse (peut etredifferent du precedent)
To: adresses(s) du(des) destinataire(s) principal(aux)
Cc: adresses(s) du(des) destinataire(s) secondaire(s)
Subject: sujet
Received: ajoute par chaque MTA
MessageId: identifiant unique
Date: date d’envoi du message (par le MUA)
X-...: champs officieux
E. Godard Applications 42 / 59
SMTP
(In)Securite
Le protocole SMTP est l’un des plus deployes :Carte de la connectivite internet en 1996 :
Le pragmatisme l’a emporte (et de loin) sur la securite.Il n’ y a absolument aucune garantie sur un courrier electronique
E. Godard Applications 43 / 59
SMTP
Pourriel
Le courrier electronique non sollicite (spam, pourriel) est unimportant probleme.
achat de liste de millions d’adresse
cout nul de l’envoi, meme massif
un tres faible retour sur un envoi massif reste profitable=> secteur economique
relais ouverts
extension a la VoIP...
E. Godard Applications 44 / 59
SMTP
Lutte anti-pourriels
Le MUA peut filtrer le courrier (une fois qu’il est arrive).Au niveau des serveurs :
certains serveurs refusent systematiquement les connexionsen provenance de certains hotes
I listes noires/listes blanchesI listes dynamiques (relais ouverts, ...)
cela n’est pas prevu dans le protocole
Enjeu : Universalite du courrier electroniqueCf messagerie instantanee pour un contre exemple.
E. Godard Applications 45 / 59
SMTP
Liste Grise
Methode respectant rigoureusement la RFC, en jouant sur lefait que les delais prevus sont larges (5 jours au pire) :
le serveur SMTP refuse pendant un certain temps unnouvel expediteur donne,
un spammeur ne reessaie pas sur une erreur
un serveur “normal” reessaiera (avec succes) ulterieurement
parametrables :
I listes blanches/grisesI temps de refus variable et aleatoire
E. Godard Applications 46 / 59
DNS
Introduction
HTTP
SMTP
DNS
E. Godard Applications 47 / 59
DNS
DNS : Protocole et BD Distribuee
DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).
1 Hierarchie : les noms sont structures et forment unearborescence
2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres
3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.
E. Godard Applications 48 / 59
DNS
DNS : Protocole et BD Distribuee
DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).
1 Hierarchie : les noms sont structures et forment unearborescence
2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres
3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.
E. Godard Applications 48 / 59
DNS
DNS : Protocole et BD Distribuee
DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).
1 Hierarchie : les noms sont structures et forment unearborescence
2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres
3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.
E. Godard Applications 48 / 59
DNS
DNS : Protocole et BD Distribuee
DNS : Domain Name Systembase de donnees hierarchique et distribuee permettant laresolution de noms vers les adresses IP (v4 et v6).
1 Hierarchie : les noms sont structures et forment unearborescence
2 Zones : ce sont des ensembles disjoints de noms formantdes sous-arbres
3 Struct. de donnees distribuees : Pour chaque zone, un ouplusieurs serveurs DNS sont charges de stocker les donneesou une indirection vers un autre serveur.
E. Godard Applications 48 / 59
DNS
Structure Hierarchique du DNS
Elle est heritee de la structure hierarchique du DNS : il y a (aumoins ) un serveur pour chaque zone
.fr
univ-mrs.fr
lif.univ-mrs.fr
NB le decoupage en zone ne suit pas necessairement ledecoupage par ”.”
E. Godard Applications 49 / 59
DNS
Base de donnees
La structure est << clef champ valeur >>
enregistrement A fait correspondre un nom d’hote a uneadresse IPv4 (32 bits)
enregistrement AAAA idem pour IPv6=>double resolution possible
enregistrement CNAME alias vers un autre nom. Permet denommer des ”services” (www, etc ...)
enregistrement NS indique un serveur de nom du domaine. Ilen faut au moins 2 pour tolerer les defaillances
enregistrement PTR inverse de A : associe une adresse IP a unenregistrement de nom de domaine,
E. Godard Applications 50 / 59
DNS
Base de Donnees (suite)
enregistrement SOA indique serveur principal et administrateurde la zone
enregistrement MX indique le MTA de courrier du domaine(statut particulier du courriel !)permet de transmettre un courrier auntel@lif.univ-mrs.fr meme si aucunemachine ne s’appelle lif.univ-mrs.fr.
enregistrement SRV generalise le enregistrement MX pour desservices quelconques + gestion de la repartition decharge (a priori).
E. Godard Applications 51 / 59
DNS
Exemples
Reponse a dig a www.lif.univ-mrs.fr
; <<>> DiG 9.8.1-P1 <<>> a www.lif.univ -mrs.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER <<- opcode: QUERY , status: NOERROR , id: 28077
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 0
;; QUESTION SECTION:
;www.lif.univ -mrs.fr. IN A
;; ANSWER SECTION:
www.lif.univ -mrs.fr. 172800 IN CNAME serveur.cmi.up.univ -mrs.fr.
serveur.cmi.up.univ -mrs.fr. 86400 IN A 147.94.64.6
;; AUTHORITY SECTION:
up.univ -mrs.fr. 86400 IN NS lsh.up.univ -aix.fr.
up.univ -mrs.fr. 86400 IN NS ns1.univmed.fr.
up.univ -mrs.fr. 86400 IN NS dns.univ -provence.fr.
;; Query time: 86 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Mon Nov 26 23:38:21 2012
;; MSG SIZE rcvd: 170
E. Godard Applications 52 / 59
DNS
Exemple de Repartition de charge avec SRV
_sip._tcp.example.com. 86400 IN SRV 10 60 5060 gros -serveur.example.com.
_sip._tcp.example.com. 86400 IN SRV 10 20 5060 petit -serveur1.example.com.
_sip._tcp.example.com. 86400 IN SRV 10 20 5060 petit -serveur2.example.com.
_sip._tcp.example.com. 86400 IN SRV 20 0 5060 serveur -de-secours.example.com.
E. Godard Applications 53 / 59
DNS
Requete DNS
Une requete (question) porte sur un champ particulierconcernant un domaine passe en parametre. Le protocole UDPest utilisee, sauf si le message depasse 512 octets.Dans ce cas, TCP est utilise.
E. Godard Applications 54 / 59
DNS
Interrogations Recursives et Iteratives
E. Godard Applications 55 / 59
DNS
Mise en cache
Un champs TTL indique combien de temps la valeur d’unenregistrement peut etre garde en cache (ie, les services racinesne sont pas sollicites a chaque requete d’un internaute...)C’est en general de l’ordre de la journee
E. Godard Applications 56 / 59
DNS
DNS : Pour Resumer
Exercice :
Processus
Nommage
Communication
Synchronisation
Cache et Replication
Tolerance aux Defaillances
Securite
E. Godard Applications 57 / 59
DNS
Probleme de Securite
Il est possible d’intercepter une reponse DNS.=> protocole DNSSEC, ou les reponse sont signeescryptographiquement.Le deploiement est bien avance...
E. Godard Applications 58 / 59
DNS
Une autre solution
DoT DNS over TLS
DoH DNS over HTTP
support dans tous les navigateursproblematique de competition economiqueHTTP est beaucoup plus bavard que TLS
=> que signifie acceder au reseau ? fournir un acces internet ?
E. Godard Applications 59 / 59
top related