Sunteți pe pagina 1din 27

M1 Informatique, R

eseaux Cours 2 : La couche Application

M1 Informatique, Reseaux
Cours 2 : La couche Application
Olivier Togni
Universite de Bourgogne, IEM/LE2I
Bureau G206
olivier.togni@u-bourgogne.fr

2 fevrier 2015

1 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Apercu

1. Principes des applications reseaux


2. Le web et HTTP
3. Le DNS

2 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Les elements de la couche Application


I

les processus sur differents terminaux communiquent en


senvoyant des messages

les applications reseau utilisent des protocoles de niveau


application

lagent utilisateur est interface entre lutilisateur et


lapplication

Ex : le web =

3 de 27

norme sur le format des documents (HTML)

navigateurs web (IE, Firefox, chrome, ...)

serveurs web (Apache, Microsoft, ...)

protocole HTTP (RFC 2616)

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Protocoles de niveau application


Definissent la facon dont les processus situes sur des syst`emes
dexploitation differents echangent mutuellement des messages :
I

type de messages echanges (requete, reponse, ...)

syntaxe (differents champs et delimitation)

semantique (sens des informations contenues dans les champs)

r`egles utilisees pour savoir quand et comment un processus


doit envoyer (ou repondre `a) un message

Rem : de nombreux protocoles sont publics (definis par des RFC),


dautres sont du domaine prive (ex. skype)

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Architecture client-serveur
I

Serveurs : toujours actifs, adresse IP permanante

clients : pas toujours connectes, adresse IP dynamique, ne


communiquent pas directement entre eux
serveur 1
Primergy

client

serveur 2
requete
Primergy

reponse

requete
reponse

Processus identifies par couple (adresse IP, n de port)

5 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Architecture pair `a pair

les pairs communiquent directement entre eux

chaque pair demande des services et en propose en retour

serveurs pas toujours actifs, adresse IP changent gestion


difficile

auto-scalable : les nouveaux pairs apportent de nouveaux


services et de nouvelles demandes

ex. : BitTorrent

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Services necessaires `a une application


Application
Transfert de fichier
Courrier
electronique
Pages web
Fichier av en temps
reel
Fichier av enregistre

7 de 27

Perte
donnees
Interdite
Interdite

Debit

Sensibilite au temps

Flexible
Flexible

non
non
non
oui : qques centaine
de ms
oui : qques s

Jeux interactifs

Acceptable

Flexible
qques kb/s `a
10 Mb/s
qques kb/s `a
10 Mb/s
qques kb/s

Messagerie
tanee

Interdite

Flexible

instan-

Interdite
Acceptable

de

Acceptable

oui : qques centaines


de ms
oui et non

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Services fournis par TCP et UDP


TCP : service oriente connexion et transport fiable
UDP : service sans connexion et non fiable
Application
Courier electronique
Acc`es terminal distant
Web
Transfert de fichiers
serveur de fichier distant
Multimedia en streaming
Telephonie sur internet

Protocole applicatif
SMTP
Telnet
HTTP
FTP
NFS
souvent proprietaire
souvent proprietaire

protocole de transport
TCP
TCP
TCP
TCP
UDP ou TCP
UDP ou TCP
generalement UDP

Rem : dautres protocoles de transport existent, par ex. SCTP

8 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Securisation de TCP

TCP & UDP


I
I

SSL/ TLS (depuis 2001, IETF)


I
I
I

9 de 27

pas cryptes
mots de passe traversent linternet en clair
fournit une connexion TCP cryptee
integrite des donnees, authentification de bout en bout
au niveau application : les applications utilisent une librairie
SSL qui parle `a TCP
ex. HTTPS = HTTP sur TLS

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application

Sockets

Processus envoie/recoit des messages vers/depuis ses sockets


Application
process

socket

process

Transport

Transport

Rseau

Rseau

Accs au rseau

10 de 27

Application

Accs au rseau

controle par
developpeur

controle
par OS

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

HTTP et le web
I

HTTP = HyperText Transfert Protocol


I
I

HTTP 1.0 ( 1996, RFC 1945)


HTTP 1.1 (1999, compatible avec 1.0 (RFC 2616 + RFC
7230-7237))
HTTP 2.0 en gestation `a lIETF...

Page web constituee de plusieurs objets : fichier HTML,


image, clip, applet, ...

objet identifie par une URL (Uniform Ressource Locator)


ex : http://www.monserveur/monsite/photo.png

Client web (navigateur) demande, recoit et affiche les pages


web (pole client de HTTP)

Serveur web heberge les objets web (p


ole serveur de HTTP)
et les envoie en reponses aux requetes

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

HTTP et le web (suite)


I

utilise TCP
I
I
I

le client initie une connexion TCP aupr`es du serveur (port 80)


le serveur accepte la dmeande de connexion du client
messages HTTP echanges entre le navigateur (client HTTP)
et le serveur Web (serveur HTTP)
fermeture connexion TCP

HTTP est un protocole sans etat : le serveur ne maintien pas


dinformation sur les requetes precedentes du client
serveur Apache

PC, firefox
requete
reponse

12 de 27

Primergy

PDA, Safari
requete
reponse

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Connexion persistante
I

connexion non persistante : au plus un objet envoye sur la


connexion TCP (puis fermeture)
ex. : HTTP 1.0 utilise des connexions non persistantes

connexion persistante : plusieurs objets peuvent etre envoyes


lors dune meme connexion TCP
Connexion fermee si inactivite longue
HTTP 1.1 les deux (par defaut persistante)

avec pipelinage (envoi requete suivante sans attendre reponse)


ou sans

plus rapide

13 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Messages HTTP

2 types de messages : requete ou reponse

format ASCII lisible


Trois requetes les plus courantes (9 en HTTP 1.1) :

I
I

GET : obtenir un objet


HEAD : obtenir informations sur objet sans demander lobjet
en lui-meme
POST : transmettre des donnees pour modifier ou creer un
objet

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Format des requetes HTTP


mthode

sp

nom du champs d'en-tte

URL

sp
valeur

version
cr

cr

Lignes
d'en-tte

~
~

nom du champs d'en-tte


cr

valeur

cr

Ligne
d'tat

lf

~
~

lf

lf

~
~

GET /somedir/page.html HTTP/1.1


Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
Accept-language: fr
15 de 27

lf

~
~

corps

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Reponses HTTP
HTTP/1.1 200 OK
Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
Content-Length: 6821
Content-Type: text/html
(data data data data data ...)
Quelques autres codes :
301 Moved Permanently
400 Bad Request
404 Not Found
505 HTTP Version Not Supported

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Cookies

I
I

Crees par Netscape pour gerer les etats


permet au serveur de memoriser des donnees cote client :
I
I
I

cle de session
preferences de lutilisateur sur le site
achats realises, ...

Set-Cookie dans reponse du serveur pour demander au client


de creer le cookie

contient plusieurs champs : Nom, Valeur, Domaine, Date


peremption, ...

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Cookies
client

ebay 8734

server

usual http request msg

cookie file
ebay 8734
amazon 1678

usual http response


set-cookie: 1678
usual http request msg
cookie: 1678
usual http response msg

Amazon server
creates ID
1678 for user

cookiespecific
action

one week later:


ebay 8734
amazon 1678

access

access
usual http request msg
cookie: 1678
usual http response msg

18 de 27

create
entry

cookiespecific
action

backend
database

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Caches

I
I

permettent de reduire les delais de reponse


deux types de caches :
I
I

19 de 27

cache navigateur
cache proxy HTTP

repose sur GET conditionnel (If-modified-since : <date> )

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
HTTP

Proxy HTTP

utilise reguli`erement des requetes HEAD pour proposer des


fichiers non perimes

Etag : identifie un objet sur le serveur (si objet modifie


Etag modifie) utilise avec If-match, If-none-match

negociation de contenu : Accept-langage:<l1>, <l2>,


... (ponderation possible)

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Identification des hotes

Vie reelle : humain identifies de plusieurs facons (nom, n


secu, n permis conduire, ...)
internet : hotes identifies de deux facons :
I

Nom dh
otes (ex. cnn.com, ufrsciencestech.u-bourgogne.fr)
I
I
I

adresses IP (IPv4 : 32 bits, ex : 193.52.237.96)


I

apprecies par les humains


pas ou peu dinfo sur localisation
longueur variable
hierarchique : reseau + sous-reseau + numero h
ote

Translation effectuee par DNS

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Domain Name System


DNS (RFC 1034, 1035 + recents)
1. BDD distribuee sur hierarchie de serveur DNS
2. protocole de niveau application permettant aux hotes de
questionner la BDD
I

souvent serveur Unix + logiciel BIND (Berkeley Internet


Name Domain)

utilise UDP sur port 53 (TCP pour recopie BDD entre


serveurs)

point critique de larchitecture TCP/IP ! !

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Domain Name System (suite)

Donne aussi dautres informations comme


I

alias dhote (1 hote = nom canonique + alias 1, alias 2, ...)

alias de mel (ex : smtp.u-bourgogne.fr =


zproxy.u-bourgogne.fr)

equilibrage de charge
ex : serveurs de google.fr = plusieurs adresses IP
requete DNS www.google.fr ensemble dadresses dans
ordre different `a chaque reponse

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Hierarchie
Root servers + Top Level Domains (TLD) + Authoritative servers
+ local servers

24 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Serveurs racine
13 serveurs racine (root-servers [a-m].root-servers.net) dont
neuf dupliques, soit plus de 130 serveurs physiques

voir http://www.root-servers.org/
25 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Requete iterative/recursive
root DNS

2
dns1.proxad.net
0
1
0
1
DNS local 1
111
000
0
0
1
111
000
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
0
1
0
1
01
1
0
1
0000
1111
0
1
0
0000
1111
0
1
0
0000
1111
01
1
0
1
0000
1111
0
1
0
1

root DNS

1
0
0
1
111
000
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1

TLD DNS
0
1
0
1
0
1
0
1
111
000
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
000
111
01
1
0
1

4
5

0
1
0
1
111
000
0
1
0
1
000
111
0
1
0
1
111
000
0
1
0
1
000
111
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1

2
dns1.proxad.net
0
1
0
1
DNS local 000
111
0
1
0
1
111
000
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1

3
6

TLD DNS
0
1
0
1
0
1
0
1
111
000
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1
000
111
0
1
0
1

6
1

authoritative DNS
mit.edu
0
1
0
1
111
000
0
1
111
000
0
1
111
000
0
1
111
000
0
1
0
1
0000
1111
0
1
0000
1111
0
1
0000
1111
0
1
0000
1111
0
1
0000
1111
0
1

atlas.free.fr

authoritative DNS
mit.edu
0
1
0
1
111
000
0
1
111
000
0
1
111
000
0
1
111
000
0
1
0
1
0000
1111
0
1
0000
1111
0
1
0000
1111
0
1
0000
1111
0
1
0000
1111
0
1

atlas.free.fr
chronos.mit.edu

chronos.mit.edu

+ cache (correspondance gardee en memoire par DNS local)

26 de 27

M1 Informatique, R
eseaux Cours 2 : La couche Application
Couche Application
DNS

Enregistrements
RR = ressource record = (Name, Value, Type, TTL)
I

TTL : combien de temps garder la ressource en cache

Type :
A Name = hostname, Value = adresse IPv4
AAAA Name = hostname, Value = adresse IPv6
NS Name = domain, Value = hostname du serveur
ayant authorite
CNAME Value = cannonical hostname
MX Value = nom cannonique de serveur mel
PTR Name = (adresse IP en sens
inverse).in-addr.arpa., Value = hostname

S-ar putea să vă placă și