0% ont trouvé ce document utile (0 vote)
0 vues26 pages

Couche Application

Le chapitre 5 traite de la couche Application des réseaux, qui est essentielle pour les interactions des utilisateurs avec les services réseau via des protocoles tels que HTTP, SMTP et FTP. Il aborde les besoins des applications en termes de fiabilité, timing, bande passante et sécurité, ainsi que les modèles d'applications comme client/serveur et peer-to-peer. Enfin, il examine le protocole HTTP, ses versions, ses mécanismes d'amélioration de performance, et l'utilisation de cookies pour maintenir l'état du client.

Transféré par

annilemone
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues26 pages

Couche Application

Le chapitre 5 traite de la couche Application des réseaux, qui est essentielle pour les interactions des utilisateurs avec les services réseau via des protocoles tels que HTTP, SMTP et FTP. Il aborde les besoins des applications en termes de fiabilité, timing, bande passante et sécurité, ainsi que les modèles d'applications comme client/serveur et peer-to-peer. Enfin, il examine le protocole HTTP, ses versions, ses mécanismes d'amélioration de performance, et l'utilisation de cookies pour maintenir l'état du client.

Transféré par

annilemone
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Mr A.

Dekhinet
Université BATNA 2 / Département Informatique
[Link]@[Link]
[Link]

Chapitre 5 : Couche Application

1
Introduction

 La couche Application
 La couche la plus importante et la plus visible dans les réseaux
 Les applications réseaux résident dans cette couche
 Les utilisateurs finaux interagissent avec le monde de communication (Couches inferieures) via cette couche
 Permet de mettre en place des applications distribuées (Applications réseau, Services réseaux) , en utilisant les
services de transport
 Les protocoles de la couche application font, en général, partie des applications. Ils ne possèdent pas de GUI, tels
que HTTP, SMTP, FTP, DNS, …
 Le protocole de la couche application, à l’instar d’autres protocoles, définit :
o le type de PDU échangé : Requête, Réponse, …
o La syntaxe du message : Les champs
o La sémantique du message : La signification de chaque champs
o Les règles du protocole : Quand et comment les entités paires envoient
et répondent au messages
 Exemples d’applications réseau :
E-mail, Web, Messagerie instantanée, Remote login, Partage de fichier P2P,
Jeux réseau , Streaming stored video (Youtube), VoIP (Skype),
Real-time vidéo conférence, IPTV, Réseaux sociaux, …

Mr [Link] 2
Besoins des applications

 Besoins des applications : Services


 Le choix des services , et par conséquent le protocole adéquat, dépend de la nature de
l’application. Les services fournis aux applications sont divers :

o Transfert fiable de données : Certaines applications nécessitent une fiabilité


maximale (Transfert de fichier/ Download , Transaction BD, Document Web, mail,
…). D’autres peuvent tolérer des pertes (Audio, Vidéo, Jeux,…).

o Timing : Certaines application sont sensibles au timing (Retard, …). Elles exigent une
qualité de service (QOS) et ne tolèrent pas la gigue (variation de la latence), comme
la Voix, les Jeux Interactifs, Real Time Audio/Vidéo, …

o Bande passante : Certaines applications nécessitent un seuil minimal de la bande


passante pour être effectives (Audio: 5Kbps-1Mbps, Vidéo: 10Kbps-5Mbps, Jeux
interactifs : Kbps-10Kbps… ).

o Sécurité : Certaine applications exigent des services et des mécanismes de sécurité


(Cryptographie, Hachage, …). Et ce pour assurer la confidentialité des données,
l’intégreté des données, l’authenticité, … , telles que les transactions bancaires.

Mr [Link] 3
Besoins des applications

Exemples dans TCP/IP


HTTP, FTP, SMTP, Telnet : TCP (Fiabilité)
DNS, TFTP, RTP : UDP (Non fiable)
HTTPS : TLS, SSL (Sécurité)

Mr [Link] 4
Modèles d’Applications

Client/Serveur

Peer-To-Peer

Mr [Link] 5
Un protocole d’Application : HTTP
 Un protocole de la couche application : HTTP (HyperText Transfert Protocol)
 Versions : HTTP/1.1 RFC 2616, HTTP/1.0 RFC 1945, HTTP/2.0 RFC 7540, HTTP/3.0 RFC 9114
 HTTP transporte divers types de données (Objets Web) : Texte, Image, Vidéo, Audio, …
 MIME (Multi-purpose Internet Mail Extensions) : Types de données transportées dans Internet
Format : Type/Sous-Type,
Exemple : image/gif, image/jpeg, text/html, application/pdf
 Concepts de HTTP
- Client : Navigateur (Browser). Exemple: Microsoft Edge, FireFox, Chrome,…
- HTTP Server : Processus (Daemon) Serveur. Exemple: Apache, IIS, Nginx
- HTML (HyperText Markup Language) : langage de description d’écriture des pages Web
- Page Web : Consiste en un ensemble d’objets
- Objet : Texte, Image, Vidéo, Fichier HTML, Fichier Audio, Applet Java, …
- Un objet est adressable par une URL (Uniform Resource Locator)

Mr [Link] 6
Un protocole d’Application : HTTP
 Uniform Resource Locator (URL)
protocol://host-name:port/directory-path/resource

 Exemple :
[Link]

 protocole = http
 host-name = [Link]
Nom du serveur Web de l’Université BATNA 2 qui sera traduit en adresse IP par le DNS.
 port = 8080 (Si port non spécifié Alors port = port standard)
 directory-path = “/itc”
Chemin relative au répertoire Web dans le serveur (Ex : public_html)
 ressource = [Link]

 La même ressource peut etre récupurèe par la ligne de commande :


> telnet [Link] 8080
GET /itc/[Link] HTTP/1.1

Mr [Link] 7
Un protocole d’Application : HTTP
 HTTP utilise TCP (TSAP= Numéro de port standard 80)
Mode connecté : Connexion TCP, Transfert de données (Messages HTTP), Déconnexion TCP
 PDU : Message
 HTTP : Client/Serveur
 Les processus (Client ou Serveur) sont identifiés par un couple : Adresse IP et Numéro de port
 Pourquoi le PID OS n’est pas utilisé pour identifier le processus ?
 Stateless : Le serveur ne maintient aucune information (Historique des requêtes) du client, juste les
informations de la requête courante.
 RTT (Round Trip Time) : Temps de transfert (Aller et Retour) de PDU de petite taille. Il inclut le temps de
propagation, le temps de traitement et le temps d’attente dans les systèmes intermédiaires
 PLT (Page Load Time) : Dépend de la structure et du contenu de la page web (taille des objets, gzip, …) ,
le RTT, la bande passante, HTTP (TCP), …
 Amélioration des performances de HTTP : Réduction du PLT
- Persistance de la connexion
- Web cache : Local et Proxy
- Cookies

Mr [Link] 8
HTTP-PDUs
 PDU du protocole HTTP
 PDU = Message HTTP
 Message HTTP : Requête ou Réponse
 Les données applicatives (Texte html, image, …) sont encapsulées par un entête (AH) pour former le
message HTTP
 L’ entête contient plusieurs champs, repartis sur un ensemble de lignes
 La sémantique des champs dépend du type du message HTTP : Requête ou Réponse
Requête : Première ligne = Request line, Entity body= peut être vide (Dépend de la méthode)
Réponse : Première ligne = Status line, Entity body= données (Data)

Mr [Link] 9
HTTP-PDUs

Mr [Link] 10
HTTP-PDUs
 Requête HTTP -Request line-

GET /[Link] HTTP/1.1


Connection: Keep-Alive
User-Agent: Mozilla/5.0
Host: [Link]
Accept: image/gif, image/jpeg, */*
Accept-Encoding: gzip
Accept-Language: fr-FR, fr, en
Accept-Charset: iso-8859-1,utf-8

Method
GET, POST (forms), HEAD (Reponse sans objets), PUT, DELETE, TRACE, ...
Connection
Close (Connection non persistante)
Keep-Alive (Connection persistante)

Mr [Link] 11
HTTP-PDUs
 Réponse HTTP -Status line-

HTTP/1.1 200 OK
Date: Sun, 20 Jan 2015 20:09:20 GMT
Server: Apache/2.0.52 (CentOS)
Last-Modified: Tue, 30 Oct 2014 17:00:02 GMT
Content-Length: 5086
…………
Content-Type: text/html; charset=ISO-8859-1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML
3.2//EN">
<HTML>
<body>Mohamed ……..</body>
</HTML>

Status Codes :
- 200 OK
- 400 Bad Request
- 404 Not Found
- 505 HTTP Version Not Supported
- Etc …

Mr [Link] 12
HTTP-PDUs

Mr [Link] 13
Amélioration des Performances de HTTP

 Persistance de la connexion
 La connexion HTTP peut être persistante (keep-alive) ou non persistante
 HTTP/1.0 : Non persistante
 HTTP/1.1 : Par défaut persistante
 HTTP/2.0 : Persistant (Multiplexage) basé sur SPDY
 HTTP/3.0 : Basé sur QUIC
(Protocole de transport utilisant UDP)

 HTTP Non persistant


 Etablir connexion TCP
Transférer un objet
Fermeture de la connexion
 Temps total de transfert d’un objet
Web = 2RTT + T, T = Temps de transmission de l’objet
 Le transfert de plusieurs objets nécessite
plusieurs connexions, 2RTT par objet
 Les navigateurs ouvrent , généralement,
des connexions parallèles
 Exemple : Un fichier [Link] qui fait référence à
8 objets JPEG. Le processus de transfert s’exécute
9 fois. En négligeant le T, le PLT = 18 RTT

Mr [Link] 14
Amélioration des Performances de HTTP
 HTTP Persistant
 Etablir la connexion TCP, Envoyer plusieurs objets, Fermeture de la connexion
 Plusieurs objets peuvent être transférés par connexion TCP
 Réduction de la surcharge du serveur. Le serveur maintient la connexion ouverte après le transfert d’un objet
 Permet le pipeline : Persistant avec Pipeline et Persistant sans Pipeline
 Persistant sans Pipeline : 1 RTT pour chaque objet
 Persistant avec pipeline :
- HTTP/1.1
- Le client émet plusieurs requêtes
- Quand la taille des objets référencés est petite,
un seul RTT leur suffira (Plusieurs PDU par RTT)
- HTTP/2 (Multiplexage)

Mr [Link] 15
Amélioration des Performances de HTTP
 Exemple
• Une page web (en HTML) référence avec 10 objets, soient des images de petites taille. référencés.
• On veut calculer le temps total (PLT), de chargement de la page entière par le client, toute en
considérant le type de persistance de la connexion.
• On néglige le temps de transmission de l’objet
• Le temps est exprimé en terme de RTT

HTTP Non-Persistant
2 RTT (Connexion + html) + 2 RTT * 10 (10 Objets) = 22 RTT
Chaque objet 2RTT : Connexion + Objet

HTTP Persistant
2 RTT (Connexion + html) + RTT * 10 (10 Objets) = 12 RTT
Une seule connexion pour tous les objets

HTTP Non-Persistant avec Pipeline (5 objets en parallèle)


2 RTT (Connexion + html) + 2*RTT (Connexion + Objets 1-5) + 2*RTT (Connexion + Objets 6-10) = 6 RTT

Mr [Link] 16
Amélioration des Performances de HTTP
 Web cache
 Réduire le PLT par réutilisation, en conservant des copies des objets déjà transférés (très) proche du client
 Le cache peut être local (Browser) ou système dédié (Proxy)

 Browser cache
 Maintient un cache local
 L’algorithme suivant illustre le principe du cache

Given : A URL for an item on a web page


Obtain : A copy of the item
Method :
if (item is not in the local cache) {
Issue GET request and place a copy in the cache;
} else {
Issue HEAD request to the server;
if (cached item is up-to-date : ) {
use cached item;
} else {
Issue GET request and place a copy in the cache;
}
} /End if

 La validité de la copie locale dépend des informations d’expiration : Last-Modified, Etag

Mr [Link] 17
Amélioration des Performances de HTTP
 Web proxy
 Mise en place d’un intermédiaire (proxy) entre un pool de clients et les serveurs externes
 Le proxy peut être une machine dédiée (Appliance), tel que BlueCoat, ou un software, tel que SQUID.
 En plus du cache, la politique de sécurité (Les règles) d’un organisme peuvent être définies et assurées par
le proxy
 Utilisation des informations de l’entête :
- GET conditionnel
- Le champ if-modified-since
- Le statut 304 Not Modified
- …

Mr [Link] 18
Amélioration des Performances de HTTP
 Conditional GET
 Les objets à jours ne sont pas transférés
 Gain en bande passante
 Utilisation du champ : if-modified-since
 L’exemple suivant illustre le principe du GET conditionnel

Client 1:
- Le client 1, via son navigateur, envoi une requête HTTP au proxy, demandant l’objet [Link] (image)
- Le proxy, après consultation de son cache, redirige la requête vers le serveur Web
- Le serveur Web envoi une réponse HTTP contenant l’image demandée
- Le proxy cache l’image et l’envoi au client

Après 5 jours
Client 2:
- Un client 2, sur une autre machine, envoi une requête HTTP au proxy, demandant le même
objet [Link]
- Le proxy consulte son cache, et trouve l’objet, mais il doit s’assurer de sa validité (Expiration). Il
envoi une requête HTTP au serveur Web, pour voir si l’objet en question a été mis à jour depuis
la dernière date de mise en cache
- Le serveur Web envoi une réponse HTTP, indiquant la validité de l’objet
- Le proxy envoi une réponse HTTP au client contenant l’objet (l’image) demandée

Mr [Link] 19
Amélioration des Performances de HTTP : Web cache

Mr [Link] 20
Amélioration des Performances de HTTP : Cookies
 Cookies
 HTTP est un protocole Stateless : Le serveur HTTP ne garde aucune trace (états) du client
 Cookies : Mécanisme HTTP de gestion et de maintient des informations d’états du client
 Cookies : Petits fragments d’informations (Chaîne de caractères), générés par le serveur, et stockés
dans le client.
 Exemples d’informations : Autorisation, Authentification, Carte de Crédit, Préférences client,
Shopping carts, Recommendations, …
 La technologie de cookies est fondée sur quatre composants :
- Ligne d’entête dans la réponse HTTP (Set-cookie) :
Set-Cookie: name=value[; expires=date][; domain=domain]
[; path=path][; secure] [; HttpOnly]
- Ligne d’entête dans la requête HTTP (Cookie)
Cookie: name1=value1; name2=value2; ….
- Un fichier cookie stocké dans le client et géré
par le navigateur
- Une base de données potentielle d’arrière
plan, stockée et maintenue par le serveur

Mr [Link] 21
Amélioration des Performances de HTTP : Cookies

Mr [Link] 22
HTTP/2.0
 Caractéristiques
 Protocole de transfert de données binaires : Binary Framing Layer
 Compression d’entête : Header compression
 Multiplexage : Plusieurs, par priorité, des requêtes (Stream) sur une seule connexion
 Service de serveur PUSH
 Supporte TLS en option
 Concepts : Stream, Message, Frame

Mr [Link] 23
HTTP/2.0

Mr [Link] 24
HTTP/2.0

Multiplexage

Mr [Link] 25
HTTP/2.0

Server Push

Mr [Link] 26

Vous aimerez peut-être aussi