Couche application PowerPoint PPT Presentation

presentation player overlay
1 / 91
About This Presentation
Transcript and Presenter's Notes

Title: Couche application


1
Couche application
  • Applications rĂ©seau raisons d'ĂŞtre des rĂ©seaux
    informatiques
  • Nombreuses applications créées depuis 30 ans
  • Text-based (80s) accès distant, email,
    transfert de fichiers, newsgroups, forums de
    discussion
  • MultimĂ©dia WWW, tĂ©lĂ©phonie Internet,
    vidéoconférence, audio et vidéo à la demande
  • Souvent logiciels distribuĂ©s entre plusieurs
    systèmes
  • Communication entre les applications

2
Applications réseaux le jargon
  • Deux processus sĂ©xĂ©cutant sur deux hĂ´tes
    différents communiquent en s'échangeant des
    messages avec un protocole de couche application
  • Processus Ă©metteur / rĂ©cepteur
  • Le processus suppose qu'il existe une
    infrastructure de transport en-dessous
  • Les entitĂ©s communicantes sont des processus
  • Un processus est un programme qui sĂ©xĂ©cute sur
    un hĂ´te
  • Deux processus communiquent dans un mĂŞme hĂ´te
    avec des communications interprocessus definies
    par le système dexploitation

3
Applications et protocoles applicatifs
  • Protocoles applicatifs
  • Une (grosse) partie des applications
  • Web standards pour les formats de documents
    (HTML), browsers Web, serveurs Web et le
    protocole applicatif HTTP pour définir l'échange
    des messages
  • Courrier Ă©lectronique serveurs de mails (qui
    hébergent les boîtes aux lettres), mail readers,
    standard pour le format des mails et protocole
    applicatif pour l'échange des messages (ex
    SMTP)
  • DĂ©finissent
  • le format et l'ordre des messages Ă©changĂ©s par
    les applications,
  • les actions consĂ©cutives Ă  l'Ă©mission ou la
    réception d'un message
  • Certains services sont proposĂ©s par les
    protocoles de couches inférieures
  • Applications
  • SexĂ©cutent dans les hĂ´tes dans lespace
    utilisateur
  • Échangent des messages
  • Ex email, transfert de fichier, Web

4
Protocole applicatif
  • DĂ©finit
  • Le type des messages Ă©changĂ©s requĂŞte, rĂ©ponse
  • La syntaxe des diffĂ©rents types de messages
    champs du message
  • La sĂ©mantique des champs, çàd la signification
    des informations qui y sont contenues
  • Les règles pour dĂ©terminer quand et comment un
    processus envoie des messages et y répond
  • Certains protocoles applicatifs sont spĂ©cifiĂ©s
    dans des RFCs domaine public (ex HTTP)
  • Beaucoup sont propriĂ©taires (ex tĂ©lĂ©phonie IP)

5
Paradigme client-serveur
  • Les rĂ©seaux typiques ont deux parties le client
    et le serveur
  • Le cĂ´tĂ© client d'un système terminal communique
    avec le côté serveur d'un autre système
  • Web Un navigateur Web implĂ©mente le cĂ´tĂ© client
    de HTTP,le serveur Web le côté serveur
  • Email le serveur de mail Ă©metteur implĂ©mente le
    côté client de SMTP, le serveur de mail
    récepteur le côté serveur de SMTP.

6
Paradigme client-serveur
  • Client
  • Initie le contact avec le serveur (il parle en
    premier)
  • Typiquement, il demande un service au serveur
  • Pour le Web, le client est implantĂ© dans le
    browser Pour l'e-mail, dans le mail reader
  • Serveur
  • Propose les services demandĂ©s par le client
  • Ex Le serveur Web envoie les pages Web
    demandées
  • NB Une mĂŞme machine peut implĂ©menter les cĂ´tĂ©s
    client ET serveur

7
Protocole applicatif
  • API Application Programming Interface
  • DĂ©finit linterface entre lapplication et la
    couche transport
  • Socket API Internet
  • Deux processus communiquent en Ă©mettant et
    recevant des données via les sockets

8
Socket
  • Porte d'entrĂ©e d'un processus
  • Interface entre la couche application et la
    couche transport d'un hĂ´te
  • Le dĂ©veloppeur contrĂ´le toute la partie
    application des sockets il n'a que peu de
    contrĂ´le sur la partie transport (choix du
    protocole et éventuellement ajustement de
    quelques paramètres)
  • Socket API Internet

controlled by application developer
controlled by application developer
controlled by operating system
controlled by operating system
internet
host or server
host or server
9
Protocole applicatif
  • Adressage des processus
  • Comment un processus identifie-t-il un processus
    distant pour communiquer ?
  • Nom ou adresse de l'hĂ´te distant
  • adresse IP de lhĂ´te distant 32 bits qui
    identifient de manière unique l'interface qui
    connecte l'hĂ´te Ă  l'Internet
  • Autre standard d'adressage pour les rĂ©seaux ATM
  • Identifiant du processus rĂ©cepteur chez l'hĂ´te
    distant
  • NumĂ©ro de port permet de diffĂ©rencier les
    différents processus locaux auxquels le message
    doit ĂŞtre transmis
  • Les protocoles applicatifs usuels ont des numĂ©ros
    de port réservés
  • 80 pour le processus serveur Web
  • 25 pour le protocole de serveur de mail
    (utilisant SMTP)
  • Well-know port numbers RFC 1700
  • Un nouveau numĂ©ro de port est affectĂ© Ă  chaque
    nouvelle application

10
Agent utilisateur
  • Un agent utilisateur est une interface entre
    lutilisateur et lapplication réseau
  • Web browser
  • Visualisation de pages Web
  • Navigation sur le Web
  • Interactions avec les applets Java
  • ImplĂ©mentation du cĂ´tĂ© client du protocole HTTP
  • Interface avec l'utilisateur processus qui
    envoie et reçoit les messages via une socket
  • E-mail eudora, outlook
  • streaming audio/vidĂ©o real player, media player

11
Quel est le service de transport nécessaire à une
application?
  • Socket interface entre le processus applicatif
    et le protocole de transport
  • CĂ´tĂ© Ă©metteur l'application envoie des messages
    par la porte
  • De l'autre cĂ´tĂ© de la porte, le protocole de
    transport doit déplacer les messages à travers le
    réseau, jusqu'à la porte du processus récepteur
  • De nombreux rĂ©seaux (dont Internet) fournissent
    plusieurs protocoles de transport
  • Lequel choisir lorsqu'on dĂ©veloppe une
    application ?
  • Étude des services fournis par chaque protocole
  • SĂ©lection du protocole qui correspond le mieux
    aux besoins de l'application

12
Quel est le service de transport nécessaire à une
application?
  • 3 types de besoins au niveau des applications, en
    termes de
  • Perte de donnĂ©es
  • Bande passante
  • DĂ©lai

13
Quel est le service de transport nécessaire à une
application?
  • Perte de donnĂ©es
  • Certaines applications nĂ©cessitent une fiabilitĂ©
    Ă  100
  • Courrier Ă©lectronique (SMTP)
  • Transfert de fichiers (FTP)
  • Accès distant (Telnet)
  • Transfert de documents Web (HTTP)
  • Applications financières
  • D'autres peuvent tolĂ©rer des pertes
    (loss-tolerant applications)
  • Applications multimĂ©dia audio/vidĂ©o

14
Quel est le service de transport nécessaire à une
application?
  • Bande passante
  • Certaines applications (ex multimĂ©dia)
    requièrent une bande passante minimale
  • TĂ©lĂ©phonie sur Internet si la voix est codĂ©e Ă 
    32 Kbps, les données doivent être transmises à ce
    débit
  • Applications multimĂ©dia
  • Dautre utilisent la bande passante disponible
    (applications élastiques)
  • Courrier Ă©lectronique, transfert de fichiers,
    accès distant, Web
  • Plus il y a de bande passante, mieux c'est !
  • One cannot be too rich, too thin or have too much
    bandwidth

15
Quel est le service de transport nécessaire à une
application?
  • DĂ©lai
  • Certaines applications nĂ©cessitent un dĂ©lai de
    bout-en-bout faible (moins de quelques centaines
    de ms)
  • Applications temps rĂ©el interactives
  • TĂ©lĂ©phonie sur Internet
  • Environnements virtuels
  • TĂ©lĂ©confĂ©rence
  • Jeux en rĂ©seau
  • Pour les application non temps rĂ©el, un dĂ©lai
    court est préférable, mais pas de contrainte
    forte

16
Besoin en service de transport
Sensibilité temp. Non Non Non Oui, 100s
ms Oui, quelques s Oui, 100s ms Oui et non
Application Transfert de fichiers e-mail Web Audi
o/vidéo Temps réel Audio/vidéo enregistré Jeux
interactifs Applis financières
Pertes Sans pertes Sans pertes
tolérant tolérant tolérant tolérant Sans pertes
Bande passante élastique élastique élastique audi
o 5Kb - 1Mb vidéo10Kb - 5Mb idem Quelques
Kbps élastique
17
Services proposés dans Internet
  • Service UDP
  • Transfert de donnĂ©es non fiable
  • Ne propose pas
  • de connexion,
  • de fiabilitĂ©,
  • de contrĂ´le de flot,
  • de contrĂ´le de congestion,
  • de garantie temporelle,
  • de bande passante
  • Service TCP
  • OrientĂ© connexion connexion nĂ©cessaire entre le
    client et le serveur
  • Transport fiable entre le processus Ă©metteur et
    récepteur
  • ContrĂ´le de flot lĂ©metteur ne submerge pas le
    récepteur
  • ContrĂ´le de Congestion rĂ©duit le dĂ©bit de
    lémetteur quand le réseau est congestionné
  • Ne propose pas
  • de garanties de dĂ©lai,
  • de bande passante minimale

18
Applis Internet protocoles applicatifs et
protocoles de transport
Protocole applicatif SMTP RFC 821 telnet RFC
854 HTTP RFC 2068 FTP RFC 959 propriétaire (e
x RealNetworks) NSF propriétaire (ex Vocaltec)
Protocole de transport TCP TCP TCP TCP TCP ou
UDP TCP ou UDP En général UDP
Application e-mail Accès distant Web Transfert
de fichiers streaming multimedia Fichier
distant Voix sur IP
19
Le Web jargon
  • LAgent Utilisateur pour le Web est le browser
  • MS Internet Explorer
  • Netscape Communicator
  • Le serveur Web
  • Apache (domaine public)
  • MS Internet Information Server
  • Page Web
  • Contient des objets
  • AdressĂ©e par une URL
  • La plupart des pages Web pages contiennent
  • Page HTML de base
  • Objets rĂ©fĂ©rencĂ©s
  • LURL a deux composantes
  • nom dhĂ´te
  • chemin daccès

www.someSchool.edu/someDept/pic.gif
20
Le Web le protocole HTTP
  • HTTP HyperText Transfer Protocol
  • Couche applicative Web
  • Modèle client/serveur
  • Client le browser, qui demande, reçoit, affiche
    les objets Web
  • Serveur le serveur Web, qui envoie les rĂ©ponses
    aux requĂŞtes
  • http1.0 RFC 1945
  • http1.1 RFC 2068

http request
PC exécutant Explorer
http response
http request
Server exécutant Apache server
http response
Mac exécutant Netscape
21
Le protocole HTTP
  • HTTP est  sans Ă©tat 
  • Le serveur ne maintient aucune information au
    sujet des requêtes précédentes des clients
  • HTTP
  • service de transport TCP
  • Le client initie une connexion TCP (crĂ©e une
    socket) avec le serveur, port 80
  • Le serveur accepte la connexionTCP du client
  • Les messages HTTP (protocole applicatif) sont
    échangés entre le browser (client HTTP) et le
    serveur Web
  • La connexion TCP est close
  • Les protocoles gardant un Ă©tat sont complexes
    !
  • Lhistoire passĂ©e doit ĂŞtre gardĂ©e
  • Si le serveur ou le client se crashe les Ă©tats
    peuvent être incohérents

22
Exemple HTTP
  • Si un utilisateur entre lURL
    www.someSchool.edu/someDepartment/home.index
  • 1a. Le client HTTP initie une connexion TCP au
    serveur HTTP sur le site www.someSchool.edu. Le
    port 80 est choisi par défaut

1b. Le serveur HTTP du site www.someSchool.edu
attend une connexion TCP sur le port 80. Il
accepte la connexion, et lannonce au client
2. Le client HTTP envoie les requĂŞtes HTTP
(contenant des URLs) par les sockets TCP
3. Le serveur HTTP reçoit le message de requête,
génère le message de réponse contenant lobjet
requis (someDepartment/home.index), et lenvoie
sur une socket
time
23
Exemple HTTP (suite)
4. Le serveur HTTP ferme la connexion TCP
  • 5. Le client HTTP reçoit la rĂ©ponse contenant
    le fichier HTML file et laffiche.
  • En dĂ©codant le fichier, le browser trouve les
    URLs référencées

time
6. Les étapes 1-5 sont répétées pour chaque URL
référencée
24
Connexions Persistantes et Non-persistantes
  • Non-persistante
  • HTTP/1.0
  • Le serveur interprète les requĂŞtes, rĂ©pond et
    ferme la connexion TCP
  • 2 RTTs sont nĂ©cessaires pour lire chaque objet
  • Chaque transfert doit supporter le slow-start
  • Exemple page contenant
  • 1 fichier HTML
  • 10 images JPEG
  • Persistante
  • Par dĂ©faut dans HTTP/1.1
  • Une seule connexion TCP est ouverte vers le
    serveur
  • Le client envoie la requĂŞte de tous les objets
    requis dès quils sont réferencés dans le HTML
  • Moins de RTTs et moins de slow start.
  • Deux versions avec/sans pipeline

Mais la plupart des navigateurs de version 1.0
utilisent des connexions parallèles
25
Format de message http requĂŞte
  • Deux types de messages http requĂŞte, rĂ©ponse
  • message de requĂŞte http
  • ASCII

Ligne de requĂŞte (commandes GET, POST, HEAD)
GET /somedir/page.html HTTP/1.0 Host
www.someschool.edu Connection close User-agent
Mozilla/4.0 Accept text/html,
image/gif,image/jpeg Accept-languagefr
LignesdentĂŞte
Le retour chariot indique la fin du message
26
Format de message http requĂŞte
27
Format de message http réponse
Ligne d'état (protocole, code d'état, message
d'état)
HTTP/1.0 200 OK Connection close Date Thu, 06
Aug 1998 120015 GMT Server Apache/1.3.0
(Unix) Last-Modified Mon, 22 Jun 1998 ...
Content-Length 6821 Content-Type text/html
data data data data data ...
Lignes dentĂŞte
données, e.g., Le fichier html
28
Format de message http réponse
29
Code de réponse HTTP
Dans la première ligne de la réponse
serveur-gtclient.
  • 200 OK
  • La requĂŞte a rĂ©ussi et lobjet demandĂ© est Ă  la
    suite
  • 301 Moved Permanently
  • Lobjet demandĂ© a changĂ© dĂ©finitivement de place,
    son nouvel emplacement est donné dans la suite du
    message
  • 400 Bad Request
  • La requĂŞte est erronĂ©e
  • 404 Not Found
  • Le document demandĂ© nest pas disponible sur le
    serveur
  • 505 HTTP Version Not Supported

30
Essayer le serveur http
  • 1. Telnet Ă  votre serveur web favori

telnet www.eurecom.fr 80
Ouvre une connexion TCP vers le port 80 de
www.eurecom.fr.
2. Taper une requĂŞte HTTP
GET /ross/index.html HTTP/1.0
31
Interaction entre le client et le serveur
Authentification
  • De nombreux sites demandent un identifiant et un
    mot de passe
  • HTTP fournit des codes et des entĂŞtes d'Ă©tat pour
    permettre l'auhentification
  • Client requĂŞte
  • Serveur 401 Authorization Required
  • Client Authorization
  • user name
  • password

32
Interaction entre le client et le serveur Cookies
server
client
  • RFC 2109
  • Le serveur envoie un cookie vers le client dans
    la reponse
  • Set-cookie 1678453
  • Le client prĂ©sente le cookie dans les requĂŞtes
    suivantes
  • cookie 1678453
  • Le serveur vĂ©rifie le cookie avec ces
    informations enregistrées
  • authentification
  • Rappel des prĂ©fĂ©rences utilisateur

requĂŞte http
Réponse http Set-cookie
Opération Spécifique au cookie
33
Utilité des cookies
  • Serveur nĂ©cessitant une authentification, sans
    demander systématiquement un identifiant et un
    mot de passe
  • Trace des prĂ©fĂ©rences de l'utilisateur, par
    exemple pour faire de la publicité ciblée
  • Garder une trace des achats de l'utilisateur lors
    d'achats en ligne
  • Problème utilisateurs nomades accĂ©dant Ă  un
    même site depuis différentes machines

34
GET conditionnel
client
serveur
  • Objectif ne pas envoyer un objet que le client
    a déjà dans son cache
  • Problème les objets contenus dans le cache
    peuvent être obsolètes
  • client spĂ©cifie la date de la copie cachĂ©e dans
    la requĂŞte http
  • If-modified-since ltdategt
  • serveur la rĂ©ponse est vide si la copie cachĂ©e
    est Ă  jour HTTP/1.0 304 Not Modified

RequĂŞte http If-modified-since ltdategt
objet non modifié
RequĂŞte http If-modified-since ltdategt
objet modifié
Réponse http HTTP/1.1 200 OK ltdatagt
35
Cache Web / proxy server
Objectif satisfaire la requĂŞte du client sans
utiliser le serveur initial
origin server
  • Configuration du browser pour qu'il pointe vers
    le cache
  • Le client envoie toutes ses requĂŞtes HTTP vers le
    cache Web
  • Si lobjet est dans le cache, on le renvoie
  • Sinon on demande au serveur initial et on rĂ©pond
    ensuite Ă  la requĂŞte

Proxy server
http request
http request
client
http response
http response
http request
http request
http response
http response
client
origin server
36
Intérêt du cache Web
origin servers
  • Hypothèse le cache est proche du client
  • RĂ©duction du temps de rĂ©ponse
  • RĂ©duction du dĂ©bit vers les serveurs distants

public Internet
1.5 Mbps access link
institutional network
10 Mbps LAN
institutional cache
37
DNS Domain Name System
  • Gens plusieurs identifiants
  • NSS, name, Passeport
  • HĂ´tes, routeurs
  • Adresse IP (32 bits)
  • nom
  • www.yahoo.com,
  • gaia.cs.umass.edu
  • Q Comment relier les adresses et les noms ?
  • Domain Name System
  • Base de donnĂ©es distribuĂ©es implĂ©mentĂ©e dans une
    hiérarchie de serveurs de noms
  • Protocole applicatif
  • hĂ´tes, routeurs, serveurs de noms qui
    communiquent pour effectuer la traduction
  • DNS utilisĂ© par d'autres protocoles applicatifs
  • La complexitĂ© est repoussĂ©e Ă  la bordure du rĂ©seau

38
Autres services fournispar le DNS
  • Host aliasing
  • Mail server aliasing
  • RĂ©partition de la charge
  • RFC 1034 et 1035
  • Pour l'utilisateur, DNS boĂ®te noire

39
DNS name servers
  • Aucun serveur na toutes les relations
    nom-vers-_at_IP
  • Serveurs de noms locaux
  • Chaque ISP ou entreprise a son propre (default)
    name server
  • Les requĂŞtes DNS vont en premier au serveur de
    nom local
  • Serveurs de noms racines
  • Il existe une douzaine de root name servers dans
    l'Internet
  • Serveurs de noms "authoritative"
  • Chaque hĂ´te est enregistrĂ© auprès d'un serveur
    "authoritative", qui stocke son adresse IP et son
    nom
  • Peut effectuer la traduction nom/adresse pour cet
    hĂ´te
  • Pourquoi pas de DNS centralisĂ©?
  • TolĂ©rance aux pannes (Si le DNS crashe, tout
    l'Internet aussi !)
  • Volume de trafic
  • DĂ©lais de rĂ©ponse
  • Maintenance (Mises Ă  jour)
  • Ne passe pas Ă  lĂ©chelle !

40
DNS Root name servers
  • ContactĂ©s par les serveurs de noms locaux qui
    n'arrivent pas à résoudre ce nom
  • Serveur de nom racine
  • Contacte le serveur de nom "authoritative" si la
    correspondance nom/adresse IP n'est pas connue
  • Obtient la correspondance
  • Renvoie la correspondance au serveur de noms
    local
  • une douzaine de serveurs de noms racines dans
    le monde

41
Exemple de DNS
root name server
  • L'hĂ´te surf.eurecom.fr veut connaĂ®tre l'adresse
    IP de gaia.cs.umass.edu
  • Contacte son serveur DNS local, dns.eurecom.fr
  • 2. dns.eurecom.fr contacte le serveur de noms
    racine, si nécessaire
  • 3. le serveur de noms racine contacte le serveur
    de nom "authoritative", si nécessaire

2
4
3
5
authorititive name server dns.umass.edu
1
6
HĂ´te formulant la requĂŞte surf.eurecom.fr
gaia.cs.umass.edu
42
Principe (illustration)
telnet m1.centralweb.fr
DNS
Demande de résolution m1.centralwebfr
????
serveur DNS
client Telnet
Réponse 193.148.37.201
serveur DNS
193.148.37.201
serveur Telnetd
serveur DNS
43
Le domaine
Un domaine est un sous-arbre de lespace nom de
domaine
Domaine complet
fr
Domaine fr
centralweb
Domaine centralweb
inria
m1
noeud m1.centralweb.fr
Des noeuds peuvent avoir les mĂŞmes noms dans des
domaines différents ns.centralweb.fr et
ns.renault.fr
44
Lecture des noms de domaine
  • A linverse de ladressage IP la partie la plus
    significative se situe Ă  gauche de la syntaxe
  • sun2.ethernet1.centralweb.fr 193.148.37.201

vers le plus significatif
vers le plus significatif
sun2. ethernet1. centralweb.fr
domaine français (.fr)
domaine de lorganisation CentralWeb
sous-domaine CentralWeb
machine sun2 du domaine ethernet1. centralweb.fr
45
Exemple de DNS
root name server
  • Le serveur de noms racine
  • Ne connaĂ®t pas forcĂ©ment le serveur de noms
    authoritative
  • Peut connaĂ®tre un serveur de noms intermĂ©diaire,
    Ă  contacter pour trouver le serveur de noms
    authoritative

6
2
3
7
5
4
1
8
authoritative name server dns.cs.umass.edu
requesting host surf.eurecom.fr
gaia.cs.umass.edu
46
DNS Requêtes itératives
root name server
  • RequĂŞte rĂ©cursive
  • Confie la tâche de la rĂ©solution de nom au
    serveur de noms contacté
  • Lourde tâche ?
  • RequĂŞte itĂ©rative
  • Le serveur de noms contactĂ© fournit en rĂ©ponse le
    nom du serveur Ă  contacter
  • Je ne connais pas ce nom, mais demande Ă  ce
    serveur

iterated query
2
3
4
7
5
6
1
8
authoritative name server dns.cs.umass.edu
requesting host surf.eurecom.fr
gaia.cs.umass.edu
47
Cache DNS
  • Une fois qu'un serveur de noms (quelconque)
    apprend une nouvelle correspondance nom/adresse
    IP, il stocke cette correspondance dans son cache
  • Les donnĂ©es du cache expirent (disparaissent)
    après un certain temps
  • MĂ©canismes de mise Ă  jour et de notification Ă 
    l'étude à l'IETF
  • RFC 2136
  • http//www.ietf.org/html.charters/dnsind-charter.h
    tml

48
Enregistrements DNS
  • DNS BD distribuĂ©e stockant des enregistrements
    de Ressources (Resource Records - RR)
  • TypeCNAME
  • Nom alias Ă  la place dun nom canonique (vrai
    nom)
  • Valeur nom canonique
  • TypeA
  • Nom hostname
  • Valeur addresse IP
  • TypeNS
  • Nom domaine (ex. foo.com)
  • Valeur adresse IPdu serveur de nom dorigine
    pour ce domaine
  • TypeMX
  • Valeur hostname du serveur de mail associĂ© au
    nom

49
DNS protocole, messages
  • Protocole DNS messages de requĂŞte et de
    réponse, avec le même format de message
  • En-tĂŞte des messages
  • Identification numĂ©ro de 16 bits pour la
    requête, la réponse à cette requête utilise le
    même numéro
  • Fanions
  • RequĂŞte ou rĂ©ponse
  • RĂ©cursion souhaitĂ©e
  • RĂ©cursion disponible
  • RĂ©ponse authoritative

50
DNS protocole, messages
Nom, champs de type pour la requĂŞte
RRs dans la réponseà la requête
enregistrements pourles serveurs authoritative
Information "utile"additionnelle
51
FTP Protocole de tranfert de fichiers
Transfert de fichiers
Utilisateur sur un hĂ´te
Système de fichiers distant
  • Transfert de fichiers vers / depuis un hĂ´te
    distant
  • Modèle client / serveur
  • Client cĂ´tĂ© qui initie le transfert (vers ou
    depuis l'hĂ´te distant)
  • Server HĂ´te distant
  • ftp RFC 959
  • Serveur FTP port 21

52
ftp Connexions séparées pour le contrôle et
les données
  • Les client FTP contacte le serveur FTP sur le
    port 21, en spécifiant TCP comme protocole de
    transport
  • Ouverture de 2 connexions TCP parallèles
  • ContrĂ´le Ă©change des commandes et des rĂ©ponses
    entre le client et le serveur
  • contrĂ´le hors-bande
  • DonnĂ©es fichiers de donnĂ©es vers / depuis
    l'hĂ´te distant
  • Le serveur FTP maintient un "Ă©tat rĂ©pertoire
    courant, authentification précédente

53
FTP commandes, réponses
  • Ex de commandes
  • EnvoyĂ©es comme du texte ASCII sur le canal de
    contrĂ´le
  • USER username
  • PASS password
  • LIST renvoie la liste des fichiers du rĂ©pertoire
    courant
  • RETR filename rappatrie le fichier (get)
  • STOR filename stocke le fichier sur l'hĂ´te
    distant (put)
  • Ex de rĂ©ponses
  • status code and phrase (as in http)
  • 331 Username OK, password required
  • 125 data connection already open transfer
    starting
  • 425 Cant open data connection
  • 452 Error writing file

54
Courrier électronique
  • 3 composants principaux
  • Agents utilisateurs
  • Serveurs de mail
  • Simple mail transfer protocol smtp
  • Agent utilisateur
  • mail reader
  • Composition, Ă©dition, lecture des messages mail
  • Ex Eudora, Outlook, elm, Netscape Messenger
  • Les messages entrants et sortants sont stockĂ©s
    sur le serveur

55
Courrier électronique serveurs de mail
  • Serveurs de mail
  • La boĂ®te aux lettres contient les messages
    entrants (Ă  lire) pour l'utilisateur
  • File d'attente de messages mail sortants (Ă 
    envoyer)
  • Protocole smtp entre les serveurs de mail pour
    l'envoi des messages
  • Client server de mail Ă©metteur
  • Serveur serveur de mail rĂ©cepteur

56
Courrier électronique smtp RFC 821
  • Utilise TCP pour transfĂ©rer des messages mail de
    façon fiable, depuis un client vers un serveur,
    en utlisant de port 25
  • Transfert direct entre le serveur Ă©metteur et le
    serveur récepteur
  • 3 phases de transfert
  • handshaking (Ă©tablissement de la connexion)
  • transfert des messages
  • Fermeture de la connexion
  • Interaction Commande / rĂ©ponse
  • Commande texte ASCII
  • RĂ©ponse code d'Ă©tat phrase
  • Les messages doivent ĂŞtre en ASCII

57
Ex d'interaction SMTP
S 220 hamburger.edu C HELO crepes.fr
S 250 Hello crepes.fr, pleased to meet
you C MAIL FROM ltalice_at_crepes.frgt
S 250 alice_at_crepes.fr... Sender ok C RCPT
TO ltbob_at_hamburger.edugt S 250
bob_at_hamburger.edu ... Recipient ok C DATA
S 354 Enter mail, end with "." on a line
by itself C Do you like ketchup? C
How about pickles? C . S 250
Message accepted for delivery C QUIT
S 221 hamburger.edu closing connection
58
Essayez vous-mĂŞmes !
  • telnet servername 25
  • Voir la rĂ©ponse 220 du serveur
  • Essayer les commandes HELO, MAIL FROM, RCPT TO,
    DATA, QUIT
  • pour envoyer des mails sans utiliser de
    client email (reader)

59
Smtp quelques mots encore
  • smtp utilise des connexions persistentes
  • smtp demande que les messages (en-tĂŞte ET corps)
    soient en ASCII
  • Certaines chaĂ®nes de caractères ne sont pas
    autorisées dans les messages (ex CRLF.CRLF).
    Les messages doivent alors être codés
    (généralement en base-64)
  • Le serveur smtp utilise CRLF.CRLF pour
    reconnaître la fin du message
  • Comparaison avec http
  • http pull
  • Email push
  • Les 2 ont des interactions commande/rĂ©ponse ASCII
    et des codes d'état
  • http chaque objet est encapsulĂ© dans son propre
    message de réponse
  • Smtp Un message contenant plusieurs objets est
    envoyé dans un message "multipart"

60
Format de message mail
  • Smtp protocole pour Ă©changer des messages mail
  • RFC 822 standard pour le format de messages
    textuels
  • Lignes d'en-tĂŞte, ex
  • To
  • From
  • Subject
  • diffĂ©rentes des commandes SMTP !
  • Corps du message
  • le message, caractères ASCII uniquement

header
blank line
body
61
Format de message extensions multimedia
  • MIME multimedia mail extension, RFC 2045, 2056
  • Lignes supplĂ©mentaires dans l'en-tĂŞte du message
    pour déclarer un contenu de type MIME

MIME version
Méthode utiliséepour coder les données
type, sous-type des données multimédia
Déclaration de paramètres
Données codées
62
Types MIMEContent-Type type/subtype parameters
  • Texte
  • Ex de sous-types plain, html
  • Image
  • Ex de sous-types jpeg, gif
  • Audio
  • Ex de sous-types basic (8-bit mu-law encoded),
    32kadpcm (32 kbps coding)
  • VidĂ©o
  • Ex de sous-types mpeg, quicktime
  • Application
  • D'autres donnĂ©es doivent ĂŞtre traitĂ©es par le
    reader avant d'ĂŞtre "visibles"
  • Ex de sous-types msword, octet-stream

63
Type Multipart
From alice_at_crepes.fr To bob_at_hamburger.edu
Subject Picture of yummy crepe. MIME-Version
1.0 Content-Type multipart/mixed
boundary98766789 --98766789 Content-Transfer-En
coding 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--
64
Mail Protocoles d'accès
SMTP
POP3 or IMAP
receivers mail server
  • SMTP livraison/stockage chez le serveur en
    réception
  • Protocoles d'accès mail lire des mails depuis
    le serveur
  • POP Post Office Protocol RFC 1939
  • autorisation (agent lt--gtserver) et tĂ©lĂ©chargement
  • IMAP Internet Mail Access Protocol RFC 1730
  • Plus de caractĂ©ristiques (plus complexe)
  • manipulation de messages stockĂ©s sur le serveur
  • HTTP Hotmail , Yahoo! Mail, etc.

65
Protocole POP3
S OK POP3 server ready C user alice S OK
C pass hungry S OK user successfully logged
on
  • Phase d'autorisation
  • Commandes client
  • user dĂ©clare username
  • pass password
  • RĂ©ponses serveur
  • OK
  • -ERR
  • Phase de transaction,
  • client
  • list liste les numĂ©ros de messages
  • retr rappatrie un message Ă  partir de son numĂ©ro
  • dele efface
  • quit

C list S 1 498 S 2 912
S . C retr 1 S ltmessage 1
contentsgt S . C dele 1 C retr
2 S ltmessage 1 contentsgt S .
C dele 2 C quit S OK POP3 server
signing off
66
Protocole DHCP
  • Dynamic Host Configuration Protocol
  • Permet Ă  un ordinateur qui se connecte Ă  un
    réseau dobtenir dynamiquement sa configuration
  • Distribution des adresses IP sur un rĂ©seau

67
Fonctionnement de DHCP
  • Serveur DHCP
  • Distribue les adresses IP
  • A une adresse IP fixe
  • DĂ©roulement
  • Le client Ă©met en broadcast un paquet de type
    DHCPDISCOVER, pour identifier les serveurs DHCP
    disponibles
  • Le serveur rĂ©pond par un paquet DHCPOFFER
    (broadcast), qui contient les premiers paramètres
  • Le client Ă©tablit sa configuration et envoie un
    DHCPREQUEST pour valider son adresse IP
  • Le serveur rĂ©pond par un DHCPAK avec ladresse IP
    pour confirmer lattribution.

68
DHCP Allocation dynamique d'adresses IP
Serveur DHCP
3. Request Sélectionne une configuration
1. Discover Recherche dun serveur
2. Offer Envoie une config.
Offer
4. Ack Init. du client
5. Release Rend la config.
Client DHCP
Serveur DHCP
69
Les baux DHCP
  • Adresses IP dĂ©livrĂ©es avec une date de dĂ©but et
    une date de fin de validité bail.
  • Demande (par le client) de prolongation du bail
    DHCPREQUEST
  • Proposition de prolongation du bail, lorsque
    celui-ci expire DHCPNAK
  • Optimisation de lattribution des adresse IP en
    jouant sur la durée des baux
  • Courte durĂ©e pour les rĂ©seaux oĂą les ordinateurs
    se branchent et se débranchent souvent,
  • Longue durĂ©e pour les rĂ©seaux constituĂ©s en
    majorité de machines fixes.
  • Serveur DHCP le rĂ©pandu dĂ©veloppĂ© par
    lInternet Software Consortium.

70
Protocole SNMP
  • Simple Network Management Protocol
  • Permet aux administrateurs rĂ©seau de gĂ©rer les
    équipements du réseau.
  • Permet dinterroger les Ă©lĂ©ments du rĂ©seau sans
    se déplacer
  • Agent SNMP petit programme installĂ© sur chaque
    machine
  • Enregistre des informations relatives Ă  la
    machine
  • Informations stockĂ©es dans une base de donnĂ©es
    la MIB (Management Information Base)

71
SNMP
  • Fonctionne au-dessus dUDP
  • Modèle client / serveur
  • 1 seul client station dadministration
  • Beaucoup de serveurs chaque agent SNMP
  • Chaque agent est placĂ© sur un nud dit
    administrable
  • HĂ´tes (stations de travail ou serveurs)
  • ÉlĂ©ments dinterconnexion (switchs, hubs,
    routeurs)
  • Supports physiques (câbles)

72
Différents types dopérations
  • 2 situations possibles
  • Ladministrateur rĂ©seau demande une information Ă 
    un agent et obtient une réponse
  • Get-request / get-response
  • Get-next-request / get-response
  • Set-request / get-response
  • Lagent envoie lui-mĂŞme une alarme Ă 
    ladministrateur lorsquun événement particulier
    se produit sur le réseau
  • trap

73
Protocole et application Telnet
  • Émulation de terminal Ă  distance exĂ©cution de
    commandes saisies au clavier sur une machine
    distante
  • Outil Telnet implĂ©mentation du protocole Telnet
  • Environnement client / serveur
  • la machine distante est configurĂ©e en serveur
  • Elle attend quune machine lui demande un service

74
Exécution de Telnet
  • Telnet est fourni en standard sous diverses
    plateformes.
  • Commande (en gĂ©nĂ©ral)
  • telnet nom_du_serveur
  • telnet adr_IP_du_serveur
  • telnet adr_IP_du_serveur numĂ©ro_port

75
Commandes sous Telnet
  • ?
  • Close
  • Display
  • Environ
  • Logout
  • Mode
  • Open
  • Quit
  • Set
  • Unset

76
Protocole Telnet
  • Telnet sappuie sur une connexion TCP
  • Protocole de base, sur lequel sappuient dautres
    protocoles de la suite TCP/IP (FTP, SMTP, POP3,
    )
  • Les spĂ©cifications de Telnet ne mentionnent pas
    dauthentification
  • Protocole de transfert de donnĂ©es non sĂ»r
  • les donnĂ©es circulent en clair sur le rĂ©seau
  • Utilisation du port 23 pour le serveur Telnet
  • SpĂ©cifications basiques RFC 854

77
Programmation de Sockets
But construire des applications client /
serveur qui communiquent en utilisant des sockets
  • Socket API
  • Introduite dans BSD4.1 UNIX, 1981
  • Explicitement créée, utilisĂ©e et fermĂ©e par les
    applications
  • Paradigme client/server
  • 2 types de services de transport via l'API socket
  • Non fiable, orientĂ© datagramme
  • fiable, orientĂ© flot d'octets

78
Programmation de sockets avec TCP
  • Socket porte entre un processus applicatif et
    un protocole de transport de bout-en-bout (TCP ou
    UDP)
  • Service TCP transfert fiable d'octets d'un
    processus vers un autre

controlled by application developer
controlled by application developer
controlled by operating system
controlled by operating system
internet
host or server
host or server
79
Programmation de sockets avec TCP
  • Le client doit contacter le serveur
  • Le processus serveur doit dĂ©jĂ  tourner
  • Le serveur doit avoir créé une socket (porte) qui
    accueille le client qui le contacte
  • Le client contacte le serveur en
  • CrĂ©ant une socket TCP locale au client
  • SpĂ©cifiant une adresse IP, un numĂ©ro de port qu
    processus serveur
  • Quand le client crĂ©e une socket le client TCP
    établit une connexion vers le serveur TCP
  • Quand il est contactĂ© par le client, le server
    TCP crée une nouvelle socket pour que le
    processus serveur puisse communiquer avec le
    client
  • Permet au serveur de parler avec plusieurs clients

80
Programmation de sockets avec TCP
  • Exemple d'application client-server
  • Le client lit une ligne Ă  partir de l'entrĂ©e
    standard (inFromUser stream) et l'envoie vers le
    serveur via sa socket (outToServer stream)
  • Le serveur lit la ligne Ă  partir de sa socket
  • Le server convertit la ligne en majuscules et la
    renvoie au client
  • Le client lit et Ă©crit la ligne modifĂ©e Ă  partir
    de sa socket (inFromServer stream)
  • Input stream sequence of bytes into process
  • Output stream sequence of bytes out of process

outToServer
iinFromServer
inFromUser
client socket
81
Client/server socket interaction TCP
Server (running on hostid)
Client
82
Exemple client Java (TCP)
import java.io. import java.net. class
TCPClient public static void main(String
argv) throws Exception String
sentence String modifiedSentence
BufferedReader inFromUser new
BufferedReader(new InputStreamReader(System.in))
Socket clientSocket new
Socket("hostname", 6789)
DataOutputStream outToServer new
DataOutputStream(clientSocket.getOutputStream())

Create input stream
Create client socket, connect to server
Create output stream attached to socket
83
Exemple Java client (TCP), cont.
Create input stream attached to socket
BufferedReader inFromServer
new BufferedReader(new
InputStreamReader(clientSocket.getInputStream()))
sentence inFromUser.readLine()
outToServer.writeBytes(sentence '\n')
modifiedSentence inFromServer.readLine()
System.out.println("FROM SERVER "
modifiedSentence) clientSocket.close()

Send line to server
Read line from server
84
Exemple serveur Java (TCP)
import java.io. import java.net. class
TCPServer public static void main(String
argv) throws Exception String
clientSentence String capitalizedSentence
ServerSocket welcomeSocket new
ServerSocket(6789) while(true)
Socket connectionSocket
welcomeSocket.accept()
BufferedReader inFromClient new
BufferedReader(new
InputStreamReader(connectionSocket.getInputStream(
)))
Create welcoming socket at port 6789
Wait, on welcoming socket for contact by client
Create input stream, attached to socket
85
exemple Java serveur (TCP), cont
DataOutputStream outToClient
new DataOutputStream(connectionSocket.get
OutputStream()) clientSentence
inFromClient.readLine()
capitalizedSentence clientSentence.toUpperCase()
'\n' outToClient.writeBytes(capit
alizedSentence)
Create output stream, attached to socket
Read in line from socket
Write out line to socket
End of while loop, loop back and wait for another
client connection
86
programmation socket avec UDP
  • UDP no connection between client and server
  • no handshaking
  • sender explicitly attaches IP address and port of
    destination
  • server must extract IP address, port of sender
    from received datagram
  • UDP transmitted data may be received out of
    order, or lost

87
Client/server socket interaction UDP
Server (running on hostid)
88
exemple Java client (UDP)
import java.io. import java.net. class
UDPClient public static void main(String
args) throws Exception
BufferedReader inFromUser new
BufferedReader(new InputStreamReader(System.in))
DatagramSocket clientSocket new
DatagramSocket() InetAddress IPAddress
InetAddress.getByName("hostname")
byte sendData new byte1024 byte
receiveData new byte1024 String
sentence inFromUser.readLine() sendData
sentence.getBytes()
Create input stream
Create client socket
Translate hostname to IP address using DNS
89
exemple Java client (UDP), cont.
Create datagram with data-to-send, length, IP
addr, port
DatagramPacket sendPacket new
DatagramPacket(sendData, sendData.length,
IPAddress, 9876) clientSocket.send(send
Packet) DatagramPacket receivePacket
new DatagramPacket(receiveData,
receiveData.length) clientSocket.receiv
e(receivePacket) String
modifiedSentence new
String(receivePacket.getData())
System.out.println("FROM SERVER"
modifiedSentence) clientSocket.close()

Send datagram to server
Read datagram from server
90
exemple Java server (UDP)
import java.io. import java.net. class
UDPServer public static void main(String
args) throws Exception
DatagramSocket serverSocket new
DatagramSocket(9876) byte
receiveData new byte1024 byte
sendData new byte1024 while(true)
DatagramPacket
receivePacket new
DatagramPacket(receiveData, receiveData.length)
serverSocket.receive(receivePacket)
Create datagram socket at port 9876
Create space for received datagram
Receive datagram
91
exemple Java server (UDP), cont
String sentence new
String(receivePacket.getData())
InetAddress IPAddress receivePacket.getAddress()
int port receivePacket.getPort()
String
capitalizedSentence sentence.toUpperCase()
sendData capitalizedSentence.getBytes()
DatagramPacket sendPacket
new DatagramPacket(sendData,
sendData.length, IPAddress,
port) serverSocket.send(s
endPacket)
Get IP addr port , of sender
Create datagram to send to client
Write out datagram to socket
End of while loop, loop back and wait for another
datagram
Write a Comment
User Comments (0)
About PowerShow.com