Mif05 Réseaux: Isabelle Guérin Lassous Isabelle - Guerin-Lassous@
Mif05 Réseaux: Isabelle Guérin Lassous Isabelle - Guerin-Lassous@
Mif05 Réseaux: Isabelle Guérin Lassous Isabelle - Guerin-Lassous@
Réseaux
2
Organisation de l’UE
• 12h CM ; 12h TD ; 6h TP
- vos emails
- la page web du cours
• http://perso.ens-lyon.fr/isabelle.guerin-lassous/index-M1if05.htm
3
Évaluation de l’UE
• 3 ECTS
• CCI
- Note de TP : 4%
4
QCM
• Barème
5
Planning de l’UE
6
Planning des CM
7
Pré-requis & Positionnement de l’UE
• Pré-requis
- Vision centrée performances et résolument focalisée sur ce qui existe dans l’Internet
8
Pour se mettre à niveau ou en savoir
plus…
• Computer Networking - A Top-Down Approach
Featuring the Internet, 7th Edition, J. Kurose and K.
Ross, Pearson, 2020.
9
Pour se mettre à niveau ou en savoir
plus…
- open-source ebook
- https://www.computer-networking.info
10
Sources de ce cours
11
Pastilles de couleur
Notions indispensables à maîtriser
Notions à savoir en M1
14
Exemple 1
serveur DNS
serveur web Nœuds
UCBL Terminaux serveur
routeur
mobile
point d’accès commutateur
Internet
Alice
Alice
16
Internet
• Millions de nœuds (équipements) inter-
connectés
…
- exécutant des applications
- générant et acheminant des paquets
FAI FAI
- formant une infrastructure de
communication
…
• fibre, cuivre, radio, satellite…
- 3 caractéristiques majeures FAI FAI
- capacité d’émission, débit
d’émission ou débit physique
• unité ? Mb/s ou Gb/s
- délai de propagation ou latence
• unité ? ms ou μs Réseau
d’entreprise
- taux d’erreur binaire
• unité ? en %
18
Protocoles
• Les protocoles contrôlent
l’émission et la réception des
…
messages délivrés par les
applications
- Interconnexion de multiples
réseaux
19
Commutation de paquets (1)
• Commutation de paquets
20
Commutation de paquets (2)
B
File des
paquets en
attente
C
• Séquence des paquets de A et B sur le lien 1.5 Mb/s n’a pas un motif régulier
• Ressources du lien 1.5 Mb/s sont partagées à la demande
- “Statistical multiplexing”
21
Routeurs
• En réception (entrée)
- Mode “store-and-forward”
• Un paquet doit être entièrement reçu avant d’être ré-émis
au noeud suivant
• ≠ “cut-through”
• En émission (sortie)
22
Fragmentation en paquets
Sans fragmentation :
C C C
Source L Destination
Message
Avec fragmentation :
Source
Paquet Destination
• Hypothèses
- Taille du message, L = 7.5 Mbits
- Capacité d’émission des liens, C = 1.5 Mb/s
- Sans congestion
• Temps de transfert
- sans fragmentation ? Ttransfert = 3L/C = 15 s
- avec 5 fragments ? Ttransfert = 7L/(5C) = 7 s
• Toujours mieux ?
Acheminement des paquets
A
• Comment acheminer les paquets
depuis la source vers la destination ?
1. Découvrir une route
Route 1
• Protocoles de routage
2. Informer les routeurs de cette route
Route 2
• Protocoles de routage
3. Acheminer de proche-en-proche les B
paquets
• Via les tables d’acheminements
24
Plan
25
Délais et pertes dans les réseaux à
commutation de paquet
26
Types de délais (1)
A
C D
Traitement Attente
Attenteavant
émission Émission
Emission Propagation
Propagation
(1) (2) (3) (4)
Types de délais (2)
• Traitement
- lecture en-tête & contrôle erreur-bits
- détermine l’interface de sortie
- ~ns
• Attente
- si le lien est occupé
- dépend du nombre de paquets déjà dans la file
- très variable, [0, x] ms
• Émission
- temps pour envoyer le paquet
- L/C avec taille du paquet L et un lien de capacité C (hypothèse
couche Liaison parfaite)
- : si lien partagé, penser aux surcoûts de la couche Liaison
- ~[μs, ms]
• Propagation
- temps pour qu’un bit se propage sur le lien
- d/v avec longueur du lien d et vitesse de propagation v C et v sont des
quantités
- ~ [μs, ms] 28
différentes !!!!
Types de délais (3)
Expéditeur Intermédiaire Destinataire
Emission
Propagation
Attente
Délai de
bout-en-bout
- ping google.com
• PING google.com (173.194.40.168): 56 data bytes
• 64 bytes from 173.194.40.168: icmp_seq=0 ttl=54 time=13.154 ms
• 64 bytes from 173.194.40.168: icmp_seq=1 ttl=54 time=12.571 ms
30
Pertes de paquets
• 2 raisons principales
- Dépassement de capacité des buffers
• Lorsque les buffers se remplissent...
• ... les délais d’attente s’allongent
• Lorsque les buffers sont pleins
• ... des pertes surviennent
- Erreur lors de la transmission sur un lien
• Surtout sur les liens radio / sans-fil
• Taux d’erreur binaire
31
Plan
32
La couche protocolaire Internet
• 5 couches (7 dans le modèle OSI)
• Exemples : D3 = H4 + D4 ou D3 = H4 + H5 + D5
33
Architecture en couches
• Chaque couche a une fonction
• Chaque protocole appartient à une couche
• ∑ couches = pile protocolaire
• La couche n-1 assure un service à la couche n
- Ex : contrôle d’erreur, acheminement des données, accès
au médium, fragmentation/reconstitution …
• Avantages
- Identification précise d’un protocole
- Modularité dans l’implémentation d’une couche
• il suffit de conserver les services rendus à la couche n + 1
• Inconvénients
- Redondance de fonctions (détection d’erreur)
- Impossibilité d’échanger avec couches n±2 (“cross-layer”)
- Nécessité de traverser toutes les couches
Equipements et couches
Application Application
de bout-en-bout
Transport Transport
Réseaux Réseaux Réseaux
de proche- de proche- de proche-
Liaison en-proche Liaison en-proche Liaison en-proche Liaison
Physique Physique Physique Physique
Couches de proche-en-proche ? 1, 2 et 3
Couches de bout-en-bout ? 4 et 5
Couche Application
Pas de réseaux sans applications
• Applications nombreuses et variées
• Applications « classiques »
- e-mails
- accès à une machine distante
- transfer de fichiers
- Web
- commerce électronique
- messagerie instantanée
- réseaux sociaux
- vidéo-conférence
- streaming vidéo
- jeux en réseau
- …
• Applications « réseaux »
- applications qui permettent aux réseaux et aux applications reposant sur ces réseaux de fonctionner
37
Plan
38
Créer une application utilisant les
réseaux Application
Transport
Réseaux
Réseaux
•
Liaison
Une application repose sur des Liaison
Physique Réseaux
Physique
programmes Liaison
Physique
…
Réseaux
- exécutés sur des terminaux distants Liaison
Physique
- et communiquent par le réseau Application
Transport
- Pas d’utilisateurs
- “Conserver le cœur simple” Application
Transport
Réseaux
Liaison
39 Physique
Architectures des applications
• 3 modèles possibles
- Client-serveur
- Pair à pair (Peer-to-Peer, P2P )
- Hybride (client-serveur et P2P)
40
Architecture client-serveur
• Un Serveur
- Toujours actif
- Adresse IP permanente
- Cluster (grappe) de serveurs
…
pour passage à l’échelle /
disponibilité
• Des Clients
- Communiquent avec le serveur
- Activité intermittente
- Adresse IP peut être dynamique
- Ne communiquent pas
directement entre eux
41
Comment les processus
communiquent-ils entre eux ? (1/2)
• Processus : une application (programme) qui s’exécute sur un
nœud
42
Comment identifier un processus sur
un nœud distant ?
• Pour recevoir des messages, un processus doit être identifiable
• Est-ce que l’adresse IP du nœud sur lequel le processus est exécuté suffit
à identifier le processus ?
- Serveur HTTP : 80
- Serveur E-mail : 25 nc -z www.lequipe.fr 1-65535
• Connection to www.lequipe.fr port 80
• Une socket
- Interface de communication pour les applications distribuées - API
- “Zone de départ et d’arrivées” des messages
- Paramètres côté Application : choix du protocole de Transport, taille du buffer,
numéro port,...
• à la discrétion du programmeur
• Les deux sockets sont ensuite raccordées grâce au protocole de transport choisi
Contrôlé par le
Processus Processus
développeur de
l’application Socket Socket
TCP avec TCP avec
Contrôlé buffer et Internet
buffer et
par l’OS variables 44 variables
Protocoles de la couche Application
• De nombreux protocoles
applicatifs
45
Plan
46
Page Web
• Une page web est un fichier HTML pouvant inclure différents
types d’objets (image jpeg, applet Java, fichier audio, …)
47
Adressage
• Chaque page web et chaque objet est référencé par une URL
- http://perso.ens-lyon.fr/thomas.begin/Images/UCBL.jpg =
- fr → France,
- ens-lyon.fr → Ecole Normale Supérieure de Lyon,
- perso → serveur web (physique ou virtuel)
- Peut être une adresse IP
• Nom de l’objet avec son chemin
- Fichier UCBL.jpg localisé dans le répertoire Images lui-même inclus dans thomas.begin
48
Généralités sur HTTP
• HTTP : HyperText Transfer Protocol
- Serveur : serveur web qui envoie des objets en réponse à des requêtes
• Apache, IIS, Nginx… req
- Requêtes et réponses sont au format ASCII donc “lisibles” u ête
• PC avec ré HT
HTTP repose (majoritairement) sur TCP
p TP
• Port 80 Chrome onse
• Protocole sans état HT
- Serveur ne maintient aucune information sur les requêtes passées
TP
• HTTP/1.0 et HTTP/1.1
- RFC 7231
T P
- Introduit en 1991 et publié en 1996
te HT
u ê
- Connexion TCP non-persistante (1.0)
req TT P serveur web
- Connexion TCP persistante (1.1)
se H Apache
• HTTP/2.0
é p on
- Publié en 2015
r
- Réduction du délai de bout-en-bout
Mac avec
• HTTP/3.0
Safari
- Publié en 2018
- Repose sur QUIC / UDP
• 2 types de message HTTP : requête / réponse 49
Message requête HTTP (1/2)
• Exemple de requête
Ligne requête GET /perso.ens-lyon.fr/thomas.begin/index.html HTTP/1.1
Host: perso.ens-lyon.fr
User-agent: Mozilla/5.0
En-tête HTTP Connection: close
Pas de données Accept-language:fr
HTTP car simple
téléchargement Retour chariot & fin de ligne
indiquent la fin du message
• Ligne requête
• GET : pour récupérer des données d’un serveur depuis une URL
Message réponse HTTP (2/2)
Exemple de réponse HTTP
Ligne statut
HTTP/1.1 200 OK
Connection: close
Date: Thu, 06 Aug 2015 12:00:15 GMT
En-tête HTTP Server: Apache/2.4.9 (Unix)
Last-Modified: Mon, 22 Jun 2015 …...
Content-Length: 6821
Content-Type: text/html
52
Utilisation des cookies (2/2)
Identifiant unique
Kurose et al.
53
Caches Web
• Cache Web : peut traiter les requêtes HTTP à la
place du serveur Web d’origine
- Proxy Web
• Comprend
• Avantages
• Performances obtenues
57
Applications réseaux
58
DNS : Domain Name System
• Protocole applicatif clé pour le fonctionnement des réseaux
59
DNS : fonctionnement (1/2)
• Un seul serveur DNS pas adapté
60 Kurose et al.
DNS : fonctionnement (2/2)
• Ex. : le client cse.nyu.edu cherche l’adresse IP de gaia.cs.umass.edu
• Cache DNS
61 Kurose et al.
Exemple 2
serveur DHCP
Alice :
64
Services et protocoles de transport
Application
•
Transport
Protocoles de Transport Réseaux
Réseaux
Liaison
T
- une communication logique entre des Liaison
ra
Physique
Physique Réseaux
n
applications (processus) distantes
sp
Liaison
or
- uniquement sur les terminaux Physique
t
de
•
bo
…
Émetteur
ut
Réseaux
-e
- divise les messages des applications en Liaison
n-
segments ...
bo
Physique
ut
Application
- et les transmet à la couche Réseau Transport
•
Réseaux
Récepteur Liaison
messages...
- et les transmet à la couche Application
• Plusieurs protocoles possibles
- UDP et TCP : principaux protocoles
65
Protocoles de Transport sur Internet
• Services communs à UDP et TCP
- Multiplexage
- Détection d’erreur
• Services exclusifs à TCP
- Livraison fiable et ordonnée
- Contrôle de congestion
- Contrôle de flux
• Et pour UDP ?
- Pas de services supplémentaires
• Aucun ne garantit une QoS sur les délais ou sur les débits
67
Multiplexage/Démultiplexage (1/2)
• Multiplexage
- Couches 1 ou 2 : plusieurs communications sur un même canal/lien
de communication
- Couche 4 : plusieurs flux d’Applications sur un même chemin IP
• Démultiplexage
- À quelle application est destiné ce segment ?
Transport Transport
Réseaux Réseaux
Liaison Liaison
Physique Physique
68
Multiplexage/Démultiplexage (2/2)
• rassemble les données des différentes • délivre les segments reçus à la bonne
sockets socket
• les encapsule en segments
• et les remet à la couche Réseau
= Processus
= Socket
Application P3 P1 Application P2 P4 P5 Application
Transport Transport Transport
Réseaux Réseaux Réseaux
Liaison Liaison Liaison
Physique Physique Physique
70
Multiplexage sans connexion (2)
• #port Dst : identifie une socket/processus sur la machine @IP Dst
• Si C est un serveur DNS, les paquets des clients A et B interrogent la même socket
Multiplexage orienté connexion (1)
72
Multiplexage orienté connexion (2)
Client Serveur Client
@IP A @IP C @IP B
Application P1 P4 P5 P6 P2 P3
Transport
Réseaux
#src : 5775
Liaison
#dst : 80
Physique
@IP src : B
@IP dst : C
#src : 9157
#dst : 80
#src : 9157
@IP src : A
#dst : 80
@IP dst : C
@IP src : B
@IP dst : C
75
UDP : User Datagram Protocol [RFC 768]
• Service minimum
- Multiplexage et démultiplexage
- Détection d’erreurs (pas obligatoire, fixé à 0 si pas utilisé)
• Sans connexion
- Pas d’échange initial entre les couches Transport de l’émetteur & du récepteur
• Alors pourquoi utilise-t-on UDP ?
- + rapide
• Pas d’établissement de connexion
- + simple
• Pas d’état de connexion à maintenir, ni paquets à mémoriser
- + léger
• Faible volume des en-têtes (8 octets vs 20 sur TCP) et moins de sockets
- + contrôle de l’appli
• L’appli décide de son débit (taille des segments & instants d’émission)
76
UDP (2)
• Très répandu dans les applications
- nécessitant une très grande
réactivité
Taille du segment 32 bits
UDP en octets en-
• DNS, SNMP, RIP,… tête inclus
# port Src # port Dst
- multimédias tolérantes aux pertes
Somme de
Taille
• téléphonie par Internet, contrôle
visioconférence, ...
Émetteur Récepteur
1. Considère le contenu d’un segment 1. Calcule la somme de contrôle pour
comme des mots de 16 bits le segment reçu
2. Calcule le complément à 1 de la 2. Vérifie si la valeur calculée égale celle
somme de tous ces mots inscrite dans le champ :
3. Inscrit la valeur trouvée dans le • Si NON, erreur détectée
champ réservé du segment UDP • Si OUI, pas d’erreur détectée...
• .. absolument certain ?
78
Somme de contrôle UDP (2)
• Exemple :
- En additionnant des nombres, la retenue du bit le plus
significatif sera ajoutée au résultat
- 2 mots de 16-bits
mot1 1110011001100110
mot2 1101010101010101
∑ retenue 11011101110111011
∑ 1011101110111100
∑ contrôle 0100010001000011
79