Академический Документы
Профессиональный Документы
Культура Документы
2006-2007 structurées
Connecter deux réseaux Réseau
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2006-2007 1 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2006-2007 2 / 365
Applications
Couche Application
Principes des applications ; Web et HTTP ; Transfert de fichiers ;
Courrier électronique ; DNS ; Pair-à-Pair ; Programmation socket.
Partir d’applications connues (Web, email, Transport
P2P), voir comment elles fonctionnent et Couche Transport
Services ; Multiplexage/Démultiplexage ; UDP ; TCP ; Contrôle de
comprendre comment aller de l’écriture Réseau
congestion ;
d’un mail jusqu’à sa réception en passant
par une suite de 0 et de 1 sur un cable Liaison de données Couche Réseau
OMG ; Circuit virtuels et réseaux de datagrammes ; Routeurs ; IP ;
Physique Routage.
Sécurité des réseaux
Qu’est-ce que la sécurité ? ; Authentification ; Intégrité ; Pare-feux ;
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2006-2007 3 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2006-2007 4 / 365
Première partie Première partie
Introduction Introduction
Objectifs Aperçu Qu’est-ce qu’Internet ?
Grandes lignes et Qu’est-ce qu’Internet ?
Les bords du réseau
terminologie Qu’est-ce qu’un protocole ?
Plus de détails Le cœur du réseau
Les bords du réseau
dans les chapitres Le cœur du réseau Réseau d’accès
suivants
Accès au réseau Structure d’Internet
Approche :
exemple d’Internet Internet, structure des FAI
Délais et pertes dans les réseaux à commutation de paquets
Performances : pertes, délais
Couches de protocoles, modèles de Couches de protocoles, modèles de services
services Historique
Modèle de réseau
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 7 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 8 / 365
Internet : une vue orientée services Qu’est ce qu’un protocole
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 9 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 10 / 365
Qu’est-ce qu’Internet ?
Le cœur du réseau
Réseau d’accès
Structure d’Internet
Historique
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 11 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 12 / 365
Zoom sur la structure du réseau Les bords du réseau
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 13 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 14 / 365
Qu’est-ce qu’Internet ?
Délais et pertes dans les réseaux à commutation de paquets Commutation de paquets : données
envoyées sur le réseau en morceaux
Couches de protocoles, modèles de services
Historique
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 17 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 18 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 19 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 20 / 365
Commutation de circuits : FDM et TDM Application numérique
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 21 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 22 / 365
Question Question
Combien de temps faut-il pour envoyer un fichier de 640 000 bits Combien de temps faut-il pour envoyer un fichier de 640 000 bits
de l’hôte A vers l’hôte B sur un réseau à commutation de circuit ? de l’hôte A vers l’hôte B sur un réseau à commutation de circuit ?
Tous les liens ont une bande passante de 1,536 Mbps Tous les liens ont une bande passante de 1,536 Mbps
Chaque lien utilise TDM avec 24 slots/sec Chaque lien utilise FDM avec 24 canaux/fréquence
Il faut 500 ms pour établir le circuit de bout en bout Il faut 500 ms pour établir le circuit de bout en bout
Réponse Réponse
Débit réel du circuit : 1.536Mbps/24 = 64kbps D’après vous ? ?
Temps pour transférer le fichier : 640000/64000 = 10 secondes
Réponse
Temps total : 10 + 0.5 = 10.5 secondes
C’est pareil que pour TDM !
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 22 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 23 / 365
Commutation de paquets Commutation de paquets : Multiplexage statistique
Division du flux de données en paquets
Partage des ressources par les paquets des utilisateurs A et B
Totalité de la bande passante pour un paquet
Utilisation des ressources quand nécessaire
Pas de division de la bande passante
Pas d’allocation ou de réservation de ressources dédiées
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 26 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 27 / 365
Stocker et acheminer Réseaux à commutation de paquets : routage
Objectif
Transmettre des paquets de la source à la destination au travers de routeurs
Algorithmes de sélection de chemin (plus tard)
Réseau datagramme
Prend L/R secondes pour Exemple L’adresse de destination du paquet détermine le prochain saut
transmettre (pousser L = 7,5 Mbits Les routes peut changer au cours d’une session
dehors) un message de L R = 1,5 Mbps Analogie : conduire en demandant son chemin
bits sur un lien à R bps
Délai = 15 s
Tout le paquet doit arriver Réseau à circuit virtuel
sur le routeur avant son Chaque paquet porte un tag (identifiant du circuit virtuel)
Le tag détermine le prochain saut
transfert sur le lien suivant :
Un chemin fixe déterminé à la connexion (reste fixe ensuite)
stocker et acheminer Information conservée par les routeurs
Délai = 3L/R
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 28 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 29 / 365
Le cœur du réseau
Réseaux à Réseaux à
commutation de circuits commutation de paquets
Réseau d’accès
Structure d’Internet
Réseaux à Réseaux
FDM TDM circuits virtuels datagramme
Délais et pertes dans les réseaux à commutation de paquets
Internet fournit aux applications des services en mode connecté (TCP) Historique
et en mode non-connecté (UDP)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 30 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 31 / 365
Réseau d’accès Accès domestiques point à point
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 32 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 33 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 34 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 35 / 365
A la maison Plan
Qu’est-ce qu’Internet ?
Le cœur du réseau
Réseau d’accès
Structure d’Internet
Historique
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 36 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 37 / 365
Structure d’Internet : Réseau des réseaux Structure d’Internet : Réseau des réseaux
Vaguement hiérarchique FAI ”tier-2” : couverture régionale
Centre : FAI ”tier-1” → couverture nationale ou internationale Connectés à un ou plusieurs FAI tier-1
Se parlent d’égal à égal Et parfois à d’autres FAI tier-2
FAI FAI
Tier−2 Tier−2
FAI FAI
Tier−1 Tier−1
FAI
Tier−2
FAI FAI FAI FAI FAI
Tier−1 Tier−1 Tier−1 Tier−1
Tier−2
FAI FAI
Tier−2 Tier−2
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 38 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 38 / 365
Structure d’Internet : Réseau des réseaux Structure d’Internet : Réseau des réseaux
FAI ”tier-3” locaux Chemin d’un paquet
Clients de FAI tier-2 qui les connectent à Internet Traverse de nombreux réseaux
Plus proches des systèmes terminaux
FAI
FAI Local
FAI FAI
FAI Local Tier−3
FAI FAI Local
FAI Tier−3 Local FAI FAI
FAI FAI Local
Local Tier−2 Tier−2
Tier−2 Tier−2 FAI
FAI Tier−1
Tier−1
FAI
FAI Tier−2
Tier−2 FAI FAI FAI
FAI FAI FAI Tier−1 Tier−1
Tier−2
Tier−1 Tier−1 FAI FAI
Tier−2
FAI FAI Tier−2 Tier−2 FAI
Tier−2 Tier−2 FAI FAI FAI FAI Local
FAI FAI FAI Local Local Local Local
Local Local Local
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 38 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 38 / 365
Qu’est-ce qu’Internet ?
Les paquets font la queue sur le routeur
Les bords du réseau Taux d’arrivée >> capacité de sortie du lien
Chacun attend son tour
Le cœur du réseau
Structure d’Internet
Délais et pertes dans les réseaux à commutation de paquets Paquets dans la file (délai)
Historique
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 39 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 40 / 365
Quatre sources de retard Quatre sources de retard
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 41 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 41 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 41 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 41 / 365
Analogie : caravane de voitures Analogie : caravane de voitures
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 42 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 42 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 44 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 45 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 46 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 47 / 365
Vrais routes et délais sur Internet Plan
traceroute : gaia.cs.umass.edu vers www.eurecom.fr Qu’est-ce qu’Internet ?
1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms
2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms
3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms
Les bords du réseau
4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms
5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms Le cœur du réseau
6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms
7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms
8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms Réseau d’accès
9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms
10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms Structure d’Internet
11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms
12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms
13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms Délais et pertes dans les réseaux à commutation de paquets
14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms
15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms Couches de protocoles, modèles de services
16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms
17 * * *
18 * * * Historique
19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 48 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 49 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 52 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 53 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 54 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 55 / 365
Plan Histoire d’Internet
1961-1972 : premiers principes de la commutation de
Qu’est-ce qu’Internet ?
paquets
Les bords du réseau 1961 : théorie de file d’attente ⇒ efficacité de la commutation de
paquets (Kleinrock)
Le cœur du réseau
1964 : commutation de paquets dans les réseaux militaires
Réseau d’accès (Baran)
1967 : ARPAnet (Advanced Research Projects Agency Network)
Structure d’Internet
1969 : premier noeud opérationnel de ARPAnet
Délais et pertes dans les réseaux à commutation de paquets 1972
ARPAnet montré au public
Couches de protocoles, modèles de services
NCP (Network Control Protocol) premier protocole de machine à
Historique machine
Premier programme de courrier électronique
ARPAnet a 15 noeuds
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 56 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 57 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 58 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 59 / 365
Histoire d’Internet
1990-2000’s : commercialisation, Web et applications
début des 90’s : ARPAnet mis de coté
1991 : la NSF lève les restrictions sur l’utilisation commerciale de
NSFnet (mis de coté en 1995)
début des 90’s : le Web
Hypertext [Bush 1945, Nelson 1960’s]
HTML, HTTP : Berners-Lee
1994 : Mosaic (futur Netscape)
fin des 90’s : commercialisation du Web
Fin des 90’s- 2000’s :
Plus d’applications : messagerie instantanée, P2P (KaZaa)
Sécurité au premier rang
Env. 50 millions d’hôtes, 100 millions d’utilisateurs
Liens backbone au Gigabit par seconde
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 60 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 1 - Introduction 61 / 365
Résumé de l’introduction Deuxième partie
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 65 / 365
Créer une application réseau Plan
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 66 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 67 / 365
Serveur
Hôte toujours actif
Adresse IP permanente
Client - Serveur
Fermes de serveurs → passage à
Pair-à-Pair l’échelle
Hybride de client-serveur et de pair-à-pair Clients
Communiquent avec le serveur
Connexion intermittente (parfois)
Adresses IP dynamiques
Ne communiquent pas entre eux
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 68 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 69 / 365
Vraie architecture pair-à-pair Hybrides entre client-serveur et pair-à-pair
Napster
Serveur pas toujours actif
Partage de fichiers pair-à-pair
Systèmes terminaux
communiquent directement Recherche centralisée :
Enregistrement du contenu des pairs sur le serveur central
Pairs connectés de façon Requêtes sur le même serveur central pour trouver un fichier
intermittente
Changement d’adresses IP Messagerie instantanée
Ex. : Gnutella Deux utilisateurs qui ”chattent” → Pair-à-pair
Hautement extensible Détection de présence centralisée
Enregistrement de l’adresse IP sur le serveur central à la connexion
Mais difficile à gérer
Serveur central contacté pour trouver les adresses IP des contacts
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 70 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 71 / 365
Processus envoie/reçoit
Processus : programme vers/depuis sa socket
s’exécutant sur un hôte Processus client : initie la
communication Analogie avec une porte
Sur un même hôte : Un processus émetteur
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 72 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 73 / 365
Identifier les processus Identifier les processus
Pour qu’un processus reçoive des messages, il doit posséder un Pour qu’un processus reçoive des messages, il doit posséder un
identifiant identifiant
Un hôte a une adresse IP unique de 32 bits Un hôte a une adresse IP unique de 32 bits
Question Réponse
Est-ce que l’adresse IP de l’hôte sur lequel s’exécute un processus
Non ! Plusieurs processus peuvent s’exécuter sur un même hôte
suffit pour l’identifier ?
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 74 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 74 / 365
On en reparlera
Protocoles du domaine public
Définis par des RFC (Requests For Comments)
Interopérables
Ex. : HTTP, SMTP
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 74 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 75 / 365
Ce qui est défini par un protocole de la couche Services transport demandés par une application
application
Perte de données
Certaines applications supportent un peu de perte (audio)
Types des messages échangés (messages de requêtes et de D’autres nécessitent un transfert de données 100% fiable
réponses) (transfert de fichiers)
Syntaxe des types de messages (quels champs et délimitation des
champs) Temps de réponse
Sémantique des champs (sens du contenu) Certaines applications ont besoin de délais courts pour être
Règles d’envoi / réponses des / aux messages (quand et efficaces (téléphonie, jeux)
comment)
Bande passante
Protocoles propriétaires Certaines applications ont besoin d’un minimum de bande
Ex. : KaZaA passante pour être efficaces (multimédia)
D’autres utilise ce qu’elles peuvent avoir (applications élastiques)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 75 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 76 / 365
Programmation socket
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 79 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 80 / 365
Chaque objet adressable par une URL Serveur : serveur web qui
envoie des objets en réponse
www.uhp-nancy.fr/M2-IMOI/trombi.jpg Nom d’hôte + Nom de chemin
aux demandes
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 81 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 82 / 365
Aperçu de HTTP Connexions HTTP
Utilise TCP
1 Demande de connexion TCP du client au serveur (socket, port 80)
2 Le serveur accepte la connexion TCP HTTP non persistant
3 Échange de messages HTTP entre le navigateur (client HTTP) et Au plus un objet envoyé par connexion
le serveur Web (serveur HTTP) Utilisé par HTTP/1.0
4 Fermeture de la connexion TCP
HTTP persistant
HTTP est ”sans état” Plusieurs objets peuvent être envoyés lors d’une même connexion
Pas de conservation d’informations sur les requêtes passées
Utilisé par défaut dans HTTP/1.1
Un protocole qui conserve l’état est complexe !
Conservation de l’historique
En cas de panne, conciliation d’état inconsistants
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 83 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 84 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 85 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 85 / 365
Modélisation du temps de réponse HTTP persistant
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 86 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 87 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 88 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 89 / 365
Format général d’un message HTTP Envoyer une information au serveur
Méthode Post
Formulaire dans une page Web
L’information saisie est transmise au serveur dans le corps du
message
Méthode URL
Utilise la méthode GET
La saisie est transmise dans le champ URL de la ligne de requête
www.uhp-nancy.fr/annuaire ?etudiants&IMOI
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 90 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 91 / 365
HTTP 1.0
GET ligne de statut (protocole, code + phrase de statut)
POST HTTP 1.1 200 OK
HEAD lignes d’entête
Demande au serveur de laisser l’objet demandé sans réponse Connection : close
Date : Tue, 19 Sep 2005 10 :12 :43 GMT
HTTP 1.1 Server : Apache/1.3.0 (Unix)
Last-Modified : Mon 18 Sep 2005 22 :48 :12 GMT
GET, POST, HEAD
Content-Length : 6821
PUT Content-Type : text/html
Charge un fichier du corps du message à l’adresse contenue dans le
champ URL
données (le fichier HTML demandé)
DELETE data data data data data ...
Supprime le fichier spécifié dans le champ URL
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 92 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 93 / 365
Codes HTTP de statut de réponse Essayer HTTP par soi même
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 94 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 95 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 96 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 97 / 365
Caches web (serveurs proxy) Caches web
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 98 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 99 / 365
Web et HTTP
FTP
Courrier électronique
SMTP, POP3, IMAP
Transférer un fichier depuis/vers un hôte distant
DNS
Modèle client/serveur
Partage de fichiers pair-à-pair Client : coté qui initie le transfert
Serveur : hôte distant
Programmation socket Défini par la RFC 959
Serveur FTP écoute sur le port 21
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 104 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 105 / 365
Connexions de contrôle et de données séparées Commandes et réponses FTP
Commandes
texte ASCII sur la connexion de contrôle
USER nom d’utilisateur
PASS mot de passe
LIST contenu du répertoire courant
1 Le client FTP contacte le serveur FTP sur le port 21, avec TCP comme
protocole de transport RETR nom de fichier récupération
2 Le client obtient une autorisation sur la connexion de contrôle STOR nom de fichier chargement sur le serveur
3 Quand le serveur reçoit une demande de transfert, ouverture d’une connexion
TCP de données Codes de retour
4 Fermeture à la fin de la transmission Code + phrase (comme pour HTTP)
5 Ouverture d’une deuxième connexion pour transférer un autre fichier 331 Username OK, password required
6 Connexion de contrôle → hors bande 125 data connection already open ; transfer starting
7 Conservation d’état par le serveur : répertoire courant, authentification 425 Can’t open data connection
précédente 452 Error writing file
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 106 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 107 / 365
Boı̂te aux lettres : contient les Utilise TCP pour transférer les e-mails de façon fiable (port 25)
messages entrants Transfert direct de serveur à serveur
File de messages : des e-mails Transfert en trois phases
sortant (à envoyer) Poignée de mains
Protocole SMTP : entre Transfert de messages
serveurs de e-mails pour Clôture
envoyer les e-mails Interaction commande/réponse
client : serveur mail émetteur commande : texte ASCII
réponse : code et phrase de statut
”serveur” : serveur mail
récepteur Les messages doivent être en ASCII 7 bits
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 110 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 111 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 112 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 113 / 365
Essayer SMTP par soi même Derniers mots sur SMTP
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 114 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 115 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 118 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 119 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 120 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 121 / 365
DNS : Domain Name System DNS
Services DNS
Gens : beaucoup d’identifiants (N˚ Sécu, nom, N˚ de passeport) Translation nom d’hôte → adresse IP
Hôtes et routeurs d’Internet : Alias d’hôtes et de serveurs de mail
Adresse IP (32 bits) pour adresser les datagrammes
Alias et noms canoniques
Nom (www.google.fr) utilisé par les humains
Question : comment faire correspondre adresse et nom ? Distribution de la charge
Serveurs Web répliqués : plusieurs adresses IP pour un seul nom
canonique
Domain Name System
Base de données distribuée → hiérarchie de serveurs de noms Pourquoi ne pas centraliser ?
Protocole de niveau application : hôtes, routeurs et serveurs de Un seul point de défaillance
noms communiquent pour résoudre des noms (translation) Volume du trafic
Note : fonction clé d’Internet implantée par un protocole de niveau
Base de donnée centralisée distante
application
Complexité sur les bords du réseau Maintenance
Ça ne passe pas à l’échelle !
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 122 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 123 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 124 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 125 / 365
TLD et serveurs d’autorité Serveur de noms local
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 126 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 127 / 365
cis.poly.edu : IP de
gaia.cs.umass.edu ? Requête récursive
1 Envoi du nom à transformer au Laisse travailler le serveur
serveur local
contacté
2 Transfert au serveur racine
Forte charge → ? ? ?
3 Liste de serveur TLD pour edu
4 Contact d’un des TLD edu
5 Retour du serveur d’autorité de
Requête itérative
umass.edu Le serveur contacté répond par le
6 Contact de ce serveur nom d’un autre serveur à contacter
7 Retour de l’IP de gaia (”Je sais pas mais lui peut-être”)
8 messages !
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 128 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 129 / 365
Cache et mise à jour Enregistrements DNS
DNS : Base de données distribuée d’enregistrements de ressources
(nom, valeur, type, ttl)
Mise en cache dès qu’une nouvelle correspondance est apprise par Type = A
un serveur nom → hôte
L’entrée disparaı̂t du cache au bout d’un certain temps valeur → adresse IP
Les TLD sont cachés sur les serveurs locaux Type = NS
Peu de visites pour les serveurs racine nom → domaine (ex. : ebay.com)
Mécanismes de mise à jour et de notification conçus par l’IETF valeur → nom d’hôte du serveur d’autorité de ce domaine
RFC 2136 Type = CNAME
nom → alias d’un nom canonique
www.ibm.com ⇔ servereast.backup2.ibm.com
valeur → nom canonique
Type = MX
valeur → nom du serveur de mail associé à nom
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 130 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 131 / 365
Protocole : messages de requête et réponse avec le même format Protocole : messages de requête et réponse avec le même format
identification drapeaux Champs nom et type pour
Identification nb de questions nb d’enreg. réponse 12 octets une requête
N˚ sur 16 bits pour une nb d’enreg. autorité nb d’enreg. supp.
Enregistrements en
requête et ses réponses questions
réponse à une requête (nombre variable de questions)
Drapeaux
Requête ou réponse
Enregistrements pour les réponses
(nombre variable d’enregistrements)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 132 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 132 / 365
Insérer des enregistrements dans le DNS Plan
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 133 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 134 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 137 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 138 / 365
Message de requête
envoyé sur des 1 Le nouveau pair X doit trouver un autre pair Gnutella : liste de
connexions TCP
pairs candidats
existantes
2 X essaie chacun des pairs de la liste jusqu’à établir une connexion
Les pairs propage le
TCP avec Y
message de requête
3 X envoie un message Ping à Y qui le propage
Une réponse est
envoyée sur le chemin
4 Tous les pairs recevant Ping répond par un message Pong
inverse 5 X reçoit plusieurs messages Pong. Il peut alors établir d’autres
connexions TCP
Extensibilité
Inondation à portée limitée
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 139 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 140 / 365
Exploiter l’hétérogénéité : KaZaA KaZaA : requêtes
Un pair est soit chef de groupe soit assigné à un chef de groupe
Connexion TCP entre un pair et son chef de groupe
Connexions TCP entre quelques paires de chefs Chaque fichier possède une clé et un descripteur
Un chef de groupe suit le contenu de tous ses enfants Le client envoie une requête de mots clés à son chef de groupe
Le chef de groupe répond par des réponses correspondantes
Pour chacune : méta-données, clé, adresse IP
Si le chef de groupe propage la requête à d’autres chefs de
groupe, ceux-ci renvoient aussi des réponses correspondantes
Le client choisit ensuite les fichiers à télécharger
Des requêtes HTTP utilisent la clé comme identifiant sont envoyées
aux pairs possédant le fichier désiré
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 141 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 142 / 365
Web et HTTP
Limitation des chargements (upload) simultanés FTP
File d’attente des requêtes
Courrier électronique
Priorités incitatives (plus on partage plus on est prioritaire)
SMTP, POP3, IMAP
Téléchargements en parallèle
DNS
Programmation socket
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 143 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 144 / 365
Programmation socket Programmation socket
Objectif
Apprendre comment développer une application client / serveur Objectif
communiquant par sockets Apprendre comment développer une application client / serveur
communiquant par sockets
Socket
Interface (”porte”) locale, créée par l’application, contrôlée par le API Socket
système par laquelle l’application peut envoyer et recevoir des Introduite en 1981 dans UNIX BSD4.1
messages vers ou depuis un autre processus applicatif
Créées, utilisées et libérées explicitement par les applications
Paradigme client / serveur
Deux types de service transport disponibles
Datagrammes non fiables
Flux d’octets fiables
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 145 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 145 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 146 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 147 / 365
Jargon des flux Programmation socket avec TCP
Exemple d’application
1 Le client lit une ligne sur l’entrée
Un flux est une séquence de caractères qui entre ou sort d’un standard (flux inFromUser) et
processus l’envoie au serveur par la socket
Un flux d’entrée est attaché à une source d’entrée d’un processus (flux outToServer)
(ex. : clavier ou socket) 2 Le serveur lit la ligne sur la socket
Un flux de sortie est attaché à une source de sortie d’un processus 3 Le serveur convertit la ligne en
majuscule et la renvoie au client
(ex. : écran ou socket)
4 Le client lit et affiche la ligne
modifiée depuis la socket (flux
inFromServer
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 148 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 149 / 365
Interactions entre sockets client et serveur avec Programmation socket avec UDP
TCP
Serveur (sur hostid) Client
Point de vue de l’application
crée sur socket (port = x) UDP fournit un transfert non fiable de groupes d’octets entre un client
pour une requete entrante
welcomeSocket = ServerSocket () et un serveur
attend une requete crée une socket, se UDP : pas de ”connexion” entre client et serveur
de connexion Etablissement connecte sur hostid, port =x
connectionSocket = connexion TCP clientSocket = Socket () Pas de poignée de mains
welcomeSocket ()
L’émetteur attache explicitement l’adresse IP et le port de
Envoie une requete
lit une requete sur via clientSocket destination à chaque paquet
connectionSocket
Le serveur doit extraire l’adresse IP et le port de l’émetteur du
paquet reçu
écrit une réponse sur
lit une réponse sur
connectionSocket
clientSocket UDP : les données transmises peuvent être reçues dans le désordre ou
être perdues
ferme connectionSocket
ferme clientSocket
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 150 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 151 / 365
Programmation socket avec UDP Interactions entre sockets client et serveur avec
UDP
Envoi et réception de paquets et non de flux d’octets
ferme clientSocket
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 152 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 153 / 365
Notre étude des applications réseaux est maintenant terminée ! Plus important : On en a appris sur les protocoles
Architectures des applications Protocoles spécifiques Échange classique de messages requête/réponse
Client / Serveur HTTP Le client demande des informations ou des services
Pair-à-Pair FTP Le serveur répond par des données et un code d’état
Hybride SMTP, POP, IMAP
DNS
Formats de messages
Besoins de services En-tête : champs décrivant les données
Fiabilité Programmation socket Données : informations à communiquer
Bande passante Messages de contrôle et de données (sur ou hors bande)
Délai Centralisé ou décentralisé
Modèle de service transport d’Internet Sans ou avec état
Fiable orienté connexion : TCP Transfert fiable ou non
Non fiable, datagrammes : UDP Complexité au bord du réseau
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 154 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 2 - Couche Application 155 / 365
Troisième partie
Troisième partie
Couche Transport
Couche Transport
Services de la couche Transport
Objectifs Multiplexage et démultiplexage
Comprendre les principes des services de la couche transport Transport sans connexion : UDP
Multiplexage / démultiplexage Principes du transfert fiable de données
Transfert fiable de données
Contrôle de flot Transport orienté connexion : TCP
Contrôle de congestion Structure des segments
Apprendre sur les protocoles de la couche transport dans Internet Transfert fiable de données
UDP : transport sans connexion Contrôle de flot
TCP : transport orienté connexion Gestion de connexion
Contrôle de congestion de TCP Principes du contrôle de congestion
Contrôle de congestion dans TCP
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 158 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 159 / 365
Couches transport et réseau Protocoles de niveau transport d’Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 160 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 161 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 162 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 163 / 365
Comment marche le démultiplexage Démultiplexage sans connexion
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 164 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 165 / 365
Le numéro de port source sert aux messages de retour même numéro → même socket
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 166 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 166 / 365
Démultiplexage orienté connexion Démultiplexage orienté connexion
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 167 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 168 / 365
Objectif
Souvent utilisé pour les Détecter les ”erreurs” (ex. : bits inversés) dans les segments transmis
applications de flux multimédia
Tolérantes aux pertes
Sensibles au délai Émetteur Récepteur
Autre utilisations courantes Traite le contenu du segment Calcule le checksum du segment
DNS comme une suite d’entiers sur 16 reçu
SNMP (Simple Network bits Vérifie l’égalité avec le contenu
Management Protocol) Checksum ; addition du champ
Transfert fiable sur UDP (complémentaire à 1) du contenu Si non → erreur détectée
→ au niveau application du segment
Si oui → pas d’erreur
Place la valeur du checksum dans détectée mais peut-être
le champ UDP correspondant une erreur tout de même
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 171 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 172 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 173 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 174 / 365
Principes du transfert fiable de données Principes du transfert fiable de données
Important dans les couches application, transport et liaison
Dans le top ten des sujets importants en réseaux
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 175 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 175 / 365
Transfert fiable de données pour débutant Transfert fiable de données pour débutant
Nous allons :
Développer petit à petit les cotés émetteur et récepteur du
rdt send() : appelé du dessus (par une application, par ex.). protocole rdt
Les données passées sont à livrer à la couche supérieure du Considérer uniquement des transferts de données unidirectionnels
récepteur Mais les informations de contrôle iront dans les deux sens !
udt send() : appelé par rdt pour transférer un paquet vers le Utiliser des automates à états finis pour décrire l’émetteur et le
récepteur sur un canal non fiable récepteur
rdt rcv() : appelé lorsque le paquet du coté récepteur du canal Evénement causant une transition d’état
Action prise lors d’une transition d’état
deliver data() : appelé par rdt pour livrer les données à la
Etat
couche supérieure
1 Evénement
Action Etat
2
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 176 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 177 / 365
Rdt 1.0 : transfert fiable sur un canal fiable Rdt 2.0 : canal avec erreurs de bits
Canal sous-jacent parfaitement fiable Le canal sous-jacent peut inverser des bits dans le paquet
Pas d’erreurs de bits Checksum pour détecter les erreurs
Pas de perte de paquets
Question : comment réparer les erreurs ?
Automates à états finis distincts pour l’émetteur et le récepteur Accusés réceptions (acknowlegments (ACK)) : le récepteur dit
L’émetteur envoie des données sur le canal explicitement à l’émetteur que le paquet est bien arrivé
Le récepteur lit des données depuis le canal Accusés de non réception (negative acknowlegments (NAK)) : le
récepteur dit explicitement à l’émetteur que le paquet contient des
erreurs
Émetteur Récepteur L’émetteur réémet un paquet à la réception d’un NAK
Nouveaux mécanismes dans Rdt 2.0
Attend rdt_send(data) Attend rdt_rcv(packet)
un appel un appel Détection d’erreurs
du packet = make_pkt(data) du extract (packet,data)
dessus dessous
deliver_data(data)
Retour à l’envoyeur : messages de contrôle (ACK, NAK)
udt_send(packet)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 178 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 179 / 365
rdt_send(data) rdt_send(data)
sndpkt = make_pkt(data, checksum) sndpkt = make_pkt(data, checksum)
udt_send(sndpkt) udt_send(sndpkt)
Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt) Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt)
un appel un ACK un appel un ACK
du ou un udt_send(sndpkt) du ou un udt_send(sndpkt)
dessus NAK dessus NAK
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 180 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 181 / 365
Rdt 2.0 : fonctionnement sans erreur Rdt 2.0 : scénario avec erreur
rdt_send(data) rdt_send(data)
sndpkt = make_pkt(data, checksum) sndpkt = make_pkt(data, checksum)
udt_send(sndpkt) udt_send(sndpkt)
Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt) Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt)
un appel un ACK un appel un ACK
du ou un udt_send(sndpkt) du ou un udt_send(sndpkt)
dessus NAK dessus NAK
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 181 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 182 / 365
Rdt 2.0 : scénario avec erreur Rdt 2.0 : scénario avec erreur
rdt_send(data) rdt_send(data)
sndpkt = make_pkt(data, checksum) sndpkt = make_pkt(data, checksum)
udt_send(sndpkt) udt_send(sndpkt)
Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt) Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt)
un appel un ACK un appel un ACK
du ou un udt_send(sndpkt) du ou un udt_send(sndpkt)
dessus NAK dessus NAK
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 182 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 182 / 365
Rdt 2.0 : scénario avec erreur Rdt 2.0 a un défaut fatal ! ! !
rdt_send(data)
sndpkt = make_pkt(data, checksum)
Qu’arrive-t-il si l’ACK/NAK est corrompu ?
udt_send(sndpkt)
L’émetteur ne sait pas ce qui est arrivé au récepteur !
Attend Attend rdt_rcv(rcvpkt) && isNAK(rcvpkt) Peut juste réémettre : duplication possible
un appel un ACK
du ou un udt_send(sndpkt)
dessus NAK
Gestion des doublons
rdt_rcv(rcvpkt) && isACK(rcvpkt)
Réémission seulement si l’ACK/NAK est corrompu
rdt_rcv(rcvpkt) &&corrupt (rcvpkt)
sndpkt =make_pkt(NAK)
L’émetteur ajoute un numéro de séquence à chaque paquet
udt_send(sndpkt)
Attend
un appel Le récepteur ne livre pas les paquets dupliqués
du
dessous
rdt_rcv(rcvpkt) && notcorrupt (rcvpkt)
extract (rcvpkt, data) Stop and Wait
deliver_data (data)
sndpkt =make_pkt(ACK) L’émetteur envoie un paquet et attend la réponse du récepteur
udt_send(sndpkt)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 182 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 183 / 365
Rdt 2.1 : émetteur, gestion des ACK/NAK Rdt 2.1 : émetteur, gestion des ACK/NAK
corrompus corrompus
rdt_send(data)
sndpkt = make_pkt(0, data, checksum) rdt_rcv(rcvpkt) && notcorrupt (rcvpkt)
udt_send(sndpkt) && has_seq0(recvpkt)
rdt_rcv(rcvpkt)
&& (corrupt(rcvpkt) || extract (rcvpkt, data)
deliver_data (data)
isNAK(rcvpkt))
Attend Attend sndpkt =make_pkt(ACK,checksum)
un appel un ACK udt_send(sndpkt) udt_send(sndpkt)
0 du ou un rdt_rcv(rcvpkt) &&corrupt (rcvpkt) rdt_rcv(rcvpkt) &&corrupt (rcvpkt)
dessus NAK 0
sndpkt =make_pkt(NAK, checksum) sndpkt =make_pkt(NAK, checksum)
rdt_rcv(rcvpkt) rdt_rcv(rcvpkt) udt_send(sndpkt) udt_send(sndpkt)
Attend Attend
&& notcorrupt (rcvpkt) && notcorrupt (rcvpkt) un appel un appel
&& isACK(rcvpkt) && isACK(rcvpkt) 0 du 1 du
rdt_rcv(rcvpkt) && notcorrupt (rcvpkt) dessous dessous
rdt_rcv(rcvpkt) && notcorrupt (rcvpkt)
&& has_seq1(recvpkt) && has_seq0(recvpkt)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 184 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 185 / 365
Rdt 2.1 : Discussion Rdt 2.2 : un protocole sans NAK
Émetteur Récepteur
N˚ de séquence ajouté au Doit vérifier si le paquet
Même fonctionnalités que rdt 2.1 mais en n’utilisant que des ACK
paquet reçu est dupliqué
L’état indique si le n˚ de
Plutôt qu’un NAK, le récepteur envoie un ACK pour le dernier
Deux numéros (0,1) paquet bien reçu (OK)
séquence attendu est 0 ou 1
suffisent. Le récepteur doit explicitement inclure le numéro de séquence du paquet
Doit vérifier si l’ACK/NAK Le récepteur ne peut pas
savoir si son dernier Un ACK en double sur l’émetteur entraı̂ne la même action qu’un
reçu est corrompu NAK : la réémission du paquet courant
ACK/NAK a été bien reçu
Deux fois plus d’états
par l’émetteur
L’état doit ”se souvenir” si
le paquet ”courant” a 0 ou
1 comme n˚ de séquence
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 186 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 187 / 365
Rdt 2.2 : fragments de l’émetteur et du récepteur Rdt 3.0 : canaux avec erreurs et pertes
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt)
Nouvelle hypothèse
&& (corrupt(rcvpkt) ||
Attend Attend
isACK(rcvpkt, 1)) Le canal sous-jacent peut aussi perdre des paquets (données ou ACK)
un appel un ACK udt_send(sndpkt)
0 du
dessus
ou un
NAK 0
Les checksum, n˚ de séquence, ACK, réémission vont aider mais
rdt_rcv(rcvpkt) pas suffire
&& notcorrupt (rcvpkt)
&& isACK(rcvpkt, 0)
Approche
Attend
L’émetteur attend l’ACK pendant un temps ”raisonnable”
un appel
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 188 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 189 / 365
Rdt 3.0 : émetteur Rdt 3.0 en action
rdt_send(data)
rdt_rcv(rcvpkt)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) && (corrupt(rcvpkt) ||
start_timer isACK(rcvpkt,1)) Cas idéal
Emetteur Récepteur
rdt_rcv(rcvpkt) Attend timeout
un appel Attend
un udt_send(sndpkt) émet pqt0 pqt0
0 du
dessus ACK 0 start_timer
reçoit pqt0
rdt_rcv(rcvpkt)
&& notcorrupt (rcvpkt)
ACK0 émet ACK0
&& isACK(rcvpkt, 1) reçoit ACK0
rdt_rcv(rcvpkt)
stop_timer && notcorrupt (rcvpkt) émet pqt1 pqt1
&& isACK(rcvpkt, 0) reçoit pqt1
timeout stop_timer ACK1 émet ACK1
Attend
udt_send(sndpkt) Attend un appel reçoit ACK1
un
start_timer 1 du rdt_rcv(rcvpkt) émet pqt0 pqt0
ACK 1 dessus
reçoit pqt0
rdt_rcv(rcvpkt) ACK0 émet ACK0
&& (corrupt(rcvpkt) || rdt_send(data)
isNAK(rcvpkt),0)) sndpkt = make_pkt(1, data, checksum)
udt_send(sndpkt)
start_timer
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 190 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 191 / 365
perte x
expiration expiration
réémet pqt1 pqt1 réémet pqt1 pqt1 reçoit pqt1
reçoit pqt1 (détection du
ACK1 émet ACK1 ACK1 dupliquat)
émet ACK1
reçoit ACK1 reçoit ACK1
émet pqt0 pqt0 émet pqt0 pqt0
reçoit pqt0 reçoit pqt0
ACK0 émet ACK0 ACK0 émet ACK0
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 191 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 191 / 365
Rdt 3.0 en action Performances de Rdt 3.0
Rdt 3.0 marche, mais c’est pas terrible :(
Expiration prématurée
Exemple : lien à 1 Gbps, délai de propagation bout en bout de
Emetteur Récepteur
15ms, paquets d’un Ko :
émet pqt0 pqt0
reçoit pqt0
ACK0 émet ACK0
L (longueur du paquet en bits) 8kb/paquet
Ttransmis = = = 8ms
reçoit ACK0 R (taux de transmission, bps 109 b/sec
émet pqt1 pqt1
L/R 0, 008
Uemetteur = = = 0, 00027
RTT + L/R 30, 008
expiration
réémet pqt1 pqt1 reçoit pqt1 Uemetteur : utilisation → fraction de temps durant laquelle
reçoit ACK1 (détection du
émet pqt0 ACK1 dupliquat) l’émetteur émet vraiment
émet ACK1
pqt0 reçoit pqt0 Un paquet d’1Ko toutes les 30 secondes → rendement de
ACK0 émet ACK0 33Ko/sec sur un lien à 1 Gbps
Le protocole réseau limite l’utilisation des ressources physiques ! !
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 191 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 192 / 365
L/R 0, 008
Deux formes génériques de protocoles pipelinés : go-Back-N et
Uemetteur = = = 0, 00027 répétition sélective
RTT + L/R 30, 008
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 193 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 194 / 365
Pipeline : augmentation de l’utilisation Go-Back-N
Émetteur
Numéros de séquence sur k bits dans l’en-tête du paquet
”Fenêtre” d’un maximum de N paquets consécutifs non-accusés
autorisés
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 195 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 196 / 365
timeout
start_timer
Attend udt_send(sndpkt[base]) ACK seulement : envoi systématique d’un ACK pour le paquet
rdt_rcv(rcvpkt) udt_send(sndpkt[base]+1)
&& corrupt(rcvpkt)
correctement reçu dans l’ordre ayant le plus grand n˚ de séquence
...
udt_send(sndpkt[nextseqnum −1]) Peut générer des ACK en double
Necéssite de mémoriser expectedsum seulement
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
base = getacknum (rcvpkt)+1 Paquet dans le désorde
if (base == nextseqnum) Négligé → pas de mise en tampon sur le récepteur
stop_timer
else Boucle avec l’ACK contenant le plus grand n˚ de séquence
start_timer
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 197 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 198 / 365
Go-Back-N en action Répétition sélective
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 199 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 200 / 365
Émetteur
Données du dessus
Si le prochain n˚ dans la fenêtre est disponible → envoyer le paquet
Sinon renvoi à la couche supérieure pour envoi ultérieur
timeout (n)
Renvoyer le paquet n, redémarrer le compteur
ACK(n)
Marquer le paquet n comme reçu
Si n = send base, avancer le début de la fenêtre jusqu’au prochain n˚
non-accusé
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 201 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 202 / 365
Répétition sélective Répétition sélective en action
Récepteur
Paquet n dans [recvbase, recvbase+N-1] → paquet
correctement reçu
Envoyer ACK(n)
Dans le désordre → mise en tampon
Dans l’ordre → livraison (valable pour ceux mal ordonnés mis en
tampon), avance la fenêtre jusqu’au prochain paquet non reçu
Paquet n dans [recvbase-N, recvbase-1] → paquet reçu
ACK(n)
Sinon
Ignorer ce paquet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 203 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 204 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 205 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 206 / 365
TCP : Aperçu [RFC 793, 1122, 1323, 2018, 2581] TCP : Aperçu [RFC 793, 1122, 1323, 2018, 2581]
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 207 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 207 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 208 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 208 / 365
N˚ de séquence et d’ACK de TCP N˚ de séquence et d’ACK de TCP
N˚ de séquence Question
N˚ du premier octet du Comment sont gérés
segment dans le flux les segments reçus
d’octets dans le désordre ?
N˚ d’ACK Réponse
N˚ du prochain octet Pas dans la
attendu de l’autre coté spécification de TCP
Accusés réceptions À la responsabilité de
groupés l’implanteur
Scénario Telnet Scénario Telnet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 209 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 209 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 210 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 211 / 365
RTT et délai d’expiration TCP Transfert TCP fiable de données
Fixer le délai d’expiration TCP crée un service rdt au dessus du service non-fiable d’IP
EstimatedRTT + marge de sécurité Segments pipelinés
Grosse variation de EstimatedRTT → grande marge de sécurité ACKs groupés
Estimation préalable de la déviation de SampleRTT par rapport à Un seul compte à rebours pour la retransmission
EstimatedRTT Retransmissions déclenchées par
DevRTT = (1 − β) DevRTT + β|SampleRTT − EstimatedRTT| Expirations de délais
ACK dupliqués
Généralement β = 0.25
Considérons d’abord un émetteur TCP simplifié
Puis fixer l’intervalle du timeout Pas de gestion des ACK dupliqués
IntervalleTimeout = EstimatedRTT + 4 DevRTT Ni contrôle de flot, ni contrôle de congestion
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 212 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 213 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 214 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 214 / 365
TCP : Scénarios de retransmission TCP : Scénarios de retransmission
Expiration prématurée
Perte d’un ACK
TCP : Scénarios de retransmission Génération d’ACK dans TCP [RFC 1122, 2581]
Contrôle de flot
L’émetteur ne va pas déborder le tampon de réception en envoyant
trop et trop vite
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 217 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 218 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 224 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 225 / 365
2 émetteurs,
1 routeur, tampons bornés
2 récepteurs
Retransmission des paquets perdus par l’émetteur
1 routeur,
tampons infinis
Pas de
retransmission
Coût de la Congestion
Grand délais
R/2 : débit
maximal
possible
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 226 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 227 / 365
Causes et coûts de la congestion : scénario 2 Causes et coûts de la congestion : scénario 2
Cas idéal Cas un peu plus réaliste
Émission uniquement quand le paquet est sur de passer Retransmission parfaite
Complètement irréaliste ! Uniquement quand le paquet est sûr d’être perdu
Pas de pertes λin = λ0in = λout (débit efficace) λ0in = R/2 → R/3(données) + R/6(retransmission)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 228 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 228 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 228 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 228 / 365
Causes et coûts de la congestion : scénario 3 Causes et coûts de la congestion : scénario 3
Quatre
émetteurs
Chemins
multi-sauts
Délai
d’expiration et
retransmission
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 229 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 230 / 365
Approches pour le contrôle de congestion Étude de cas : contrôle de congestion ABR d’ATM
Rappels sur ATM
Contrôle de congestion par les systèmes terminaux Réseau à circuits virtuels
et donc pas à commutation de paquets
Pas d’informations explicites de la part du réseau
Vocabulaire
Congestion inférée par les systèmes terminaux d’après les pertes Paquet = Cellule
et délais Routeur = Commutateur
Approche adoptée par TCP Chaque commutateur sur le chemin conserve l’état du circuit
Taux de transmission moyen
Contrôle de congestion assistée par le réseau Idéal pour le contrôle de congestion assisté par le réseau
Les routeurs fournissent des informations aux systèmes terminaux
Un bit indique la congestion (SNA, DECbit, TCP/IP ECN, ATM ABR)
Explicite le débit auquel l’émetteur peut émettre
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 231 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 232 / 365
Étude de cas : contrôle de congestion ABR d’ATM Étude de cas : contrôle de congestion ABR d’ATM
ABR : available bit rate
Service élastique
Si le chemin de l’émetteur est en sous charge
L’émetteur peut utiliser la bande passante disponible
Si le chemin de l’émetteur est congestionné
L’émetteur se limite au débit minimum garanti
Cellules RM (Resource Management) ER (Explicit Rate) : champ de 2 octets dans une cellule RM
Envoyées par l’émetteur au milieu des cellules de données Un commutateur encombré peut diminuer la valeur de ER
Débit d’émission → débit minimum supportable par le chemin
Bits d’une cellule RM fixé par les commutateurs
Bit NI : No Increase (pas d’augmentation du débit - faible congestion) Bit EFCI (Explicit Forward Congestion Indication) dans les cellules de
bit CI : indication de congestion données : mis à 1 par les commutateurs encombrés
Les cellules RM sont renvoyées telles quelles par le récepteur à Si la cellule de données précédant une cellule RM à son bit EFCI à 1, le
l’émetteur récepteur fixe le bit CI dans la cellule RM retournée
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 232 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 233 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 234 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 235 / 365
TCP : AIMD TCP : Démarrage Lent
Multiplicative Decrease
Couper FenCong en 2 à chaque perte Au début de la connexion : FenCong = 1 MSS
Exemple : MSS = 500 octets et RTT = 200 msec
Additive Increase Débit initial = 20 kbps
Augmenter FenCong de 1 MSS (Maximum Segment Size) en l’absence La bande passante disponible peut être bien supérieure à
de perte MSS/RTT
Il serait souhaitable d’atteindre rapidement un débit acceptable
Quand la connexion démarre, le débit augmente de façon
exponentielle jusqu’au premier évenement de perte
FenCong double à chaque RTT
Augmentation à chaque ACK reçu
En résumé : débit initial lent mais croissance exponentielle
Petit exemple
Quel est le débit moyen de TCP en fonction de la taille de fenêtre
et du RTT ? Segments de 1500 octets, RTT de 100ms, débit désiré de 10 Gbps
En ignorant le démarrage lent Nécessite une taille de fenêtre de 83 333 segments en vol
C’est beaucoup !
Soit W la taille de la fenêtre au moment de la perte Quel est le taux de perte autorisé pour ”tenir” le débit de 10 Gbps ?
Le débit est alors de W/RTT Débit en fonction du taux de perte (L)
Juste après la perte, la fenêtre retombe à W/2 et le débit à 1.22MSS
√
W/2RTT RTT L
Le débit moyen croı̂t entre ces deux valeurs → 0,75W/RTT L = 2 × 1010 soit 1 perte pour 5 milliards de segments ! ! !
On a besoin de nouvelles versions rapides de TCP
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 240 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 241 / 365
Débit connexion 2
Débit connexion 1 R
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 242 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 243 / 365
Équité (détails) Modélisation du délai
Équité et UDP
Les applications multimédia n’utilisent pas souvent TCP
Ne veulent pas d’un débit limité par le contrôle de congestion Question
Utilisent UDP à la place Combien de temps faut-il pour recevoir un objet de la part d’un
Pompe audio/vidéo à débit constant, pertes tolérées
serveur web une fois la requête émise ?
Notations et hypothèses
Un lien entre client et serveur de débit R
S → MSS (en bits) Premier cas
O → Taille de l’objet (en bits) WS/R > RTT + S/R → l’ACK
du premier segment de la fenêtre
Pas de retransmissions (ni pertes, ni corruptions)
avant que celle-ci soit pleine
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 245 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 246 / 365
Fenêtre de congestion fixe Démarrage lent
Délai = 2 RTT + O/R Où P est le nombre de temps d’inactivité TCP du serveur :
+(K − 1)[S/R + RTT − WS/R]+ P = min(K − 1, Q)
où [x]+ = max(0, x) et Où Q est le nombre de fois où le serveur bloquerait si O était
K = 0/WS → nombre de composé d’une infinité de segments
Où K est le nombre de fenêtre couvrant l’objet
fenêtres couvrant l’objet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 247 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 248 / 365
Inactivité du serveur
P = min(K − 1, Q) fois
Composantes du délai
2 RTT pour l’établissement et Exemple
la requête
O/S = 15 segments
O/R pour transmettre l’objet
K = 4 fenêtres
Temps d’inactivité du serveur à
Q=2
cause du démarrage lent
P = min(K − 1, Q) = 2
Le serveur attend 2 fois
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 249 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 249 / 365
Démarrage lent Démarrage lent
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 249 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 249 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 250 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 251 / 365
Modélisation de HTTP Temps de réponse HTTP (en secondes)
HTTP non-persistant RTT = 0, 1 sec, O = 5Ko, M = 10 et X = 5
M + 1 connexions TCP à la suite
Temps de réponse = (M + 1)O/R + (M + 1)2 RTT + somme des
temps d’inactivité
HTTP persistant
2 RTT pour demander et recevoir le fichier HTML principal
1 RTT pour demander et recevoir M images
Temps de réponse = (M + 1)O/R + 3 RTT + somme des temps
d’inactivité
HTTP non-persistant avec X connexions parallèles
Supposons M/X entier
1 connexion TCP pour le fichier principal
M/X établissements de connexions parallèles pour les images Faible bande passante → temps transmission >> temps de
Temps de réponse = (M + 1)O/R + (M/X + 1)2 RTT + somme des connexion et de réponse
temps d’inactivité Connexions persistantes ' Connexions parallèles
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 251 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 252 / 365
La suite
RTT plus important → domination des délais d’établissement et de On quitte les bords du réseau (couches Application et Transport)
démarrage lent
pour aller vers le cœur du réseau
Connexions persistantes >> Connexions parallèles (surtout si grande bande
passante)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 253 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 3 - Couche Transport 254 / 365
Quatrième partie
Retransmission
Transporte des segments d’un hôte
émetteur à un hôte récepteur
Déplacer des paquets depuis une entrée d’un routeur vers la sortie
appropriée du routeur
Coté émetteur : encapsulation des
segments en datagrammes
Routage
Coté récepteur : livre des segments à
la couche transport Déterminer la route prise par les paquets de la source à la
destination
Les protocoles de la couche réseau
se situent sur tous les hôtes et tous Algorithmes de routage
les routeurs
Un routeur examine les champs Analogie
d’en-tête de tous les paquets qui Routage : préparer son itinéraire
passent par lui
Retransmission : passer sur un échangeur autoroutier
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 257 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 258 / 365
Relations entre routage et retransmission Établissement de la connexion
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 259 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 260 / 365
Question
Garanties ?
Quel modèle de service pour un ”canal” transportant des datagrammes Architecture Modèle de Bande Perte Ordre Délai Info pour
d’un émetteur à un récepteur ? Réseau service passante congestion
Internet best aucun non non non non
Exemples de services pour un datagramme effort
Livraison garantie ATM CBR débit oui oui oui pas de
Livraison garantie en moins de 40 msec constant congestion
ATM VBR débit oui oui oui pas de
Exemples de services pour un flot de datagrammes garanti congestion
Livraison ordonnée des datagrammes ATM ABR minimum non oui non oui
garanti
Bande passante minimum garantie pour le flot
ATM UBR aucun non oui non non
Restrictions sur les modifications de l’espacement des paquets
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 261 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 262 / 365
Plan Services connecté et sans connexion de niveau
Introduction
réseau
Réseaux à circuits virtuels ou de datagrammes
Qu’y a-t-il dans un routeur ?
IP : Internet Protocol Un réseau datagramme fournit un service sans connexion de
Format des datagrammes niveau réseau
Adressage IPv4 Un réseau à circuits virtuels fournit un service connecté de niveau
ICMP (Internet Control Message Protocol) réseau
IPv6 Analogue aux services de niveau transport mais
Algorithmes de routage Service : hôte à hôte
État de lien Pas de choix : le réseau fournit l’un ou l’autre
Vecteur de distances Implantation : au cœur du réseau
Routage hiérarchique
Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 263 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 264 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 265 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 266 / 365
Table de routage Circuits virtuels : protocoles de signalisation
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 268 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 269 / 365
Table de routage Plus long préfixe commun
Adresses 32 bits → 4 milliards d’entrées possibles → Intervalles Réduction de la taille de la table
Intervalle d’adresse de destination Interface Routeur : adresse ↔ liste de préfixes
Si plusieurs préfixes correspondent → le plus long prime
11001000 00010111 00010000 00000000
à 0 Préfixes Interface
11001000 00010111 00010111 11111111
11001000 00010111 00010 0
11001000 00010111 00011000 00000000
11001000 00010111 00011000 1
à 1
11001000 00010111 00011 2
11001000 00010111 00011000 11111111
sinon 3
11001000 00010111 00011001 00000000
à 2 Exemples
11001000 00010111 00011111 11111111
11001000 00010111 00010110 10100001 → 0
sinon 3 11001000 00010111 00011000 10101010 → 1
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 270 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 271 / 365
Internet ATM
Échange de données entre ordinateurs Évolution à partir des réseaux téléphoniques
Service ”élastique”
Conversation humaine
Systèmes terminaux ”intelligents” (ordinateurs) Délais stricts, besoins de fiabilité
Peuvent s’adapter, contrôler, récupérer des erreurs Besoin d’un service garanti
Cœur du réseau simple, compléxité aux bords
Systèmes terminaux ”idiots”
Plusieurs types de liens Téléphones à cadrans
Caractéristiques différentes Complexité dans le cœur du réseau
Service uniforme difficile
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 272 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 272 / 365
Plan Aperçu de l’architecture d’un routeur
Introduction Deux fonctions clés
Réseaux à circuits virtuels ou de datagrammes Exécuter algorithmes et protocoles de routage (RIP, OSPF, BGP)
Qu’y a-t-il dans un routeur ? Retransmettre les datagrammes du lien entrant vers le lien sortant
IP : Internet Protocol
Format des datagrammes
Adressage IPv4
ICMP (Internet Control Message Protocol)
IPv6
Algorithmes de routage
État de lien
Vecteur de distances
Routage hiérarchique
Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 273 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 274 / 365
Commutateur
Traitement de Recherche,
Terminaison liaison de données retransmission,
de ligne (protocole, mise en attente
décapsulage)
Commutation décentralisée
D’après la destination du datagramme, cherche le port de sortie
en utilisant la table de routage dans la mémoire du port d’entrée
Objectif : traiter à la ”vitesse de la ligne”
File d’attente : si les paquets arrivent plus vite que le débit de
retransmission du commutateur
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 275 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 276 / 365
Commutation en mémoire Commutation via un bus
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 277 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 278 / 365
Commutateur
Mise en attente Traitement de
Surmonte les limitations dues à la bande passante du bus gestion des liaison de données
(protocole,
Terminaison
tampons de ligne
encapsulage)
Réseaux de Banyan (ou autres) → initialement conçus pour
connecter les processeurs d’un multi-processeurs
Couche liaison Couche Physique
Conception avancée : fragmenter les datagrammes en cellules de
taille fixe puis commuter les cellules
Ex : Cisco 12000 : commute des Gbps via son réseau Mise en attente nécessaire arrivent du commutateur plus vite que
d’interconnexion le débit de transmission
La politique d’ordonnancement choisit les datagrammes à
transmettre parmi ceux mis en attente
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 279 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 280 / 365
Mise en attente en sortie Mise en attente en entrée
Commutateur plus lent que la combinaison des ports → mise en
attente possible dans les files d’entrée
Blocage de la tête de file (HOL, Head of the line) : le premier
datagramme de la file empêche les autres de passer
Délais d’attente et pertes dues au débordement du tampon du
port de sortie
Couche Réseau
des paquets
Adressage IPv4
Table de
ICMP (Internet Control Message Protocol)
routage Protocole ICMP IPv6
rapport d’erreur
"signalisation" du routeur Algorithmes de routage
État de lien
Couche Liaison Vecteur de distances
Routage hiérarchique
Couche Physique
Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 284 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 285 / 365
Taille Taille
Version Type de service Longueur du datagramme (octects) Version Type de service Longueur du datagramme (octects)
en−tete en−tete
Version : N˚ de version
du protocole IP Utilisés pour la
Adresse IP source 32 bits Adresse IP source 32 bits fragmentation et le
Type de service =
Adresse IP destination 32 bits Adresse IP destination 32 bits
réassemblage
”type” de données
Données Données
(Taille variable, généralement un segment TCP ou UDP) (Taille variable, généralement un segment TCP ou UDP)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 286 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 286 / 365
Format de datagramme IP Format de datagramme IP
32 bits 32 bits
Taille Taille
Version Type de service Longueur du datagramme (octects) Version Type de service Longueur du datagramme (octects)
en−tete en−tete
Protocole de la
Checksum en−tete
nombre max. de sauts Protocole de la
Checksum en−tete Étiquette temporelle
Durée de validité Durée de validité
couche supérieure couche supérieure
restants (décrémenté à Route prise
Adresse IP source 32 bits
chaque routeur) Adresse IP source 32 bits
Liste des routeurs à
Protocole de la couche visiter
Adresse IP destination 32 bits Adresse IP destination 32 bits
supérieure : à qui livrer
...
la charge utile Options (facultatif)
Données Données
(Taille variable, généralement un segment TCP ou UDP) (Taille variable, généralement un segment TCP ou UDP)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 286 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 286 / 365
Taille
Version Type de service Longueur du datagramme (octects)
en−tete
Les liens réseaux ont un MTU (maximal transfer unit) - plus
Identifiant 16 bits Drap. Offset de fragmentation 13 bits
Données
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 286 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 287 / 365
Fragmentation et réassemblage IP Plan
Introduction
Réseaux à circuits virtuels ou de datagrammes
Qu’y a-t-il dans un routeur ?
IP : Internet Protocol
Format des datagrammes
Adressage IPv4
ICMP (Internet Control Message Protocol)
IPv6
Algorithmes de routage
État de lien
Vecteur de distances
Routage hiérarchique
Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 287 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 288 / 365
Mode d’emploi
Pour déterminer les sous réseaux,
détachez chaque interface de son
hôte ou routeur, créez des iles de
réseaux isolés. Chaque réseau isolé
est appelé sous-réseau Masque de sous-réseau : /24
Les 24 bits de gauche forment
l’adresse du sous-réseau
Question
Combien y a-t-il de sous réseaux ?
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 291 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 292 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 293 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 294 / 365
Comment obtenir une adresse IP ? Adressage hiérarchique : aggrégation de routes
L’adressage hiérarchique permet une publication efficace des
Question informations de routage
Comment le réseau fait-il pour obtenir la partie sous-réseau de
l’adresse IP ?
Réponse
Il obtient une portion de l’espace d’adressage de son FAI
Bloc FAI 11001000 00010111 00010000 00000000 200.23.16.0/20
Organisation 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organisation 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organisation 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ... ...
Organisation 7 11001000 00010111 00011110 00000000 200.23.30.0/23
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 295 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 296 / 365
Question
Comment un fournisseur d’accès obtient-il un bloc d’adresses ?
Réponse
ICANN (Internet Corporation for Assigned Names and Numbers)
Alloue les adresses
Gère le DNS
Assigne les noms de domaines et résout les conflits
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 297 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 298 / 365
NAT : Network Address Translation NAT : translation d’adresse réseau
Motivation
Le réseau local n’utilise qu’une adresse IP pour ce qui concerne le
monde extérieur
Pas besoin que le FAI alloue un intervalle d’adresses IP : une seule
adresse suffit pour toutes les machines
Possibilité de changer les adresses de machines du réseau local
sans avertir le monde extérieur
Possibilité de changer de fournisseur d’accès sans changer les
Tous les datagrammes quittant le réseau local ont la même
adresses des machines du réseau local
adresse IP NAT source unique : 128.76.29.7 mais des ports source
différents Les machines du réseau local ne peuvent être accéder depuis le
monde extérieur (avantage du point de vue sécurité)
Les datagrammes avec des adresses source ou destination dans ce
réseau ont l’adresse 10.0.0/24 (comme d’habitude)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 299 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 300 / 365
Implantation
Un routeur NAT doit :
Datagrammes sortants : convertir (adresse IP source, n˚ de port)
→ (adresse IP NAT, nouveau n˚ de port)
Les clients/serveurs distants répondront en utilisant (adresse IP
NAT, nouveau n˚ de port) comme adresse de destination
Conserver (dans la table de translation NAT) chaque
correspondance (adresse IP source, n˚ de port) ↔ (adresse IP
NAT, nouveau n˚ de port) 1 L’hôte 10.0.0.1 envoie un datagramme à 128.119.40.186, 80
2 Le routeur NAT change l’adresse source du datagramme
Datagrammes entrants : convertir (adresse IP NAT, nouveau n˚ 10.0.0.1, 3345 → 138.76.29.7, 5001. Met à jour la table
de port) → (adresse IP source, n˚ de port) 3 La réponse arrive. Adresse de destination 138.76.29.7, 5001
4 Le routeur NAT change l’adresse destination du datagramme
138.76.29.7, 5001 → 10.0.0.1, 3345
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 301 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 302 / 365
NAT : translation d’adresse réseau Plan
Champ n˚ de port sur 16 bits Introduction
60 000 connexions simultanées avec une seule adresse du coté Réseaux à circuits virtuels ou de datagrammes
LAN Qu’y a-t-il dans un routeur ?
Le NAT est controversé (par les puristes de l’IETF) IP : Internet Protocol
Les routeurs ne devraient effectuer des traitements que jusqu’à la Format des datagrammes
couche réseau Adressage IPv4
et donc ne devraient pas jouer avec les n˚ de ports qui servent à
ICMP (Internet Control Message Protocol)
adresser des processus
IPv6
Viole l’argument de connexion bout-en-bout
Algorithmes de routage
Deux hôtes peuvent se parler directement sans que leurs adresses
IP soient modifiées en chemin État de lien
Pose des problèmes aux applications P2P : un hôte derrière un Vecteur de distances
NAT ne peut pas être serveur → contournement Routage hiérarchique
La pénurie d’adresse devrait plutôt être résolue par IPv6 Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 303 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 304 / 365
ICMP : Internet Control Message Protocol ICMP : Internet Control Message Protocol
Types et codes ICMP
Type Code Description
Utilisé par hôtes et routeurs pour communiquer des informations 0 0 réponse écho (ping)
de niveau réseau 3 0 réseau dest. injoignable
3 1 hôte dest. injoignable
Rapport d’erreur : hôte, réseau, port, protocole injoignable 3 2 protocole dest. injoignable
Ping : requête/réponse en écho 3 3 port dest. injoignable
Couche réseau ”au dessus” d’IP 3 6 réseau dest. inconnu
Les messages ICMP portés par les datagrammes IP 3 7 hôte dest. inconnu
4 0 atténuation de la source
Message ICMP : type, code et les 8 premiers octets du (contrôle de congestion, pas utilisé)
datagramme IP causant l’erreur 8 0 requête écho (ping)
9 0 publication de routeur
10 0 découverte de routeur
11 0 TTL expiré
12 0 mauvais en-tête IP
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 305 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 305 / 365
traceroute et ICMP Plan
La source envoie une série de segments UDP à la destination Introduction
Le premier a TTL=1, le deuxième a TTL=2, etc. Réseaux à circuits virtuels ou de datagrammes
Lorsque le nieme datagramme arrive au nieme routeur Qu’y a-t-il dans un routeur ?
Le routeur rejette le datagramme IP : Internet Protocol
et envoie un message ICMP à la source (type 11, code 0) Format des datagrammes
Le message inclue le nom du routeur et l’adresse IP Adressage IPv4
Quand le message ICMP arrive, la source calcule le RTT ICMP (Internet Control Message Protocol)
traceroute fait ça trois fois IPv6
Algorithmes de routage
Critère d’arrêt État de lien
Le segment UDP arrive finalement à l’hôte destination Vecteur de distances
Il renvoie un paquet ICMP ”hôte injoignable” (type 3, code 3) Routage hiérarchique
Lorsque la source le reçoit, elle arrête Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 306 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 307 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 308 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 309 / 365
Autres changements par rapport à IpV4 Transition d’IPv4 à IPv6
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 310 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 311 / 365
Tunneling Plan
Introduction
Réseaux à circuits virtuels ou de datagrammes
Qu’y a-t-il dans un routeur ?
IP : Internet Protocol
Format des datagrammes
Adressage IPv4
ICMP (Internet Control Message Protocol)
IPv6
Algorithmes de routage
État de lien
Vecteur de distances
Routage hiérarchique
Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 312 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 313 / 365
Relations entre routage et retransmission Abstraction par l’intermédiaire d’un graphe
Graphe : G = (N, E )
N = ensemble de routeurs
= u, v , w , x, y , z
E = ensemble de liens =
{(u, v ), (u, x), (v , x), (v , w ),
(x, w ), (x, y ), (w , y ), (w , z),
(y , z)}
Remarque
Abstraction utilisée dans d’autres contextes réseau
Ex. : P2P où N est un ensemble de pairs et E est un ensemble de
connexions TCP
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 314 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 315 / 365
Question Réponse
Quel est le chemin de coût minimum entre u et z ? Un algorithme de routage va trouver ce chemin de coût minimum
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 316 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 316 / 365
Classification des algorithmes de routage Classification des algorithmes de routage
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 317 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 317 / 365
1 Initialisation :
2
3 N 0 = {u}
Notations 4 Pour tous les nœuds v
5 Si v voisin de u
c(x, y ) : coût du lien du nœud x au nœud y . Égal à +∞ si pas
6 alors D(v ) = c(u, v )
voisins directs 7 sinon D(v ) = ∞
D(v ) : valeur courante du chemin de la source à la destination v 8
9 Répéter
p(v ) : nœud précédant v dans le chemin de la source à v 10 Trouver w ∈ / N 0 tel que D(w ) est minimal
N 0 : ensemble de nœuds pour lesquels le plus court chemin est 11 Ajouter w à N 0
définitivement connu 12 Mettre à jour D(v ) pour tout v voisin de w et ∈/ N0
13 D(v ) = min(D(v ), D(w ) + c(w , v ))
14 /* Le nouveau coût pour v est soit l’ancien coût pour v , soit le
15 coût du plus court chemin vers w plus le coût de w à v */
16 jusqu’à ce que tous les nœuds soient dans N 0
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 319 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 320 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 321 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 322 / 365
Algorithme de Dijkstra : discussion Plan
Complexité de l’algorithme pour n nœuds Introduction
Chaque itération : verification de tous les nœuds w ∈
/N Réseaux à circuits virtuels ou de datagrammes
n(n + 1)/2 comparaisons : O(n2 ) Qu’y a-t-il dans un routeur ?
Versions plus efficaces en O(n log n) IP : Internet Protocol
Format des datagrammes
Oscillations possibles Adressage IPv4
ICMP (Internet Control Message Protocol)
Ex. : coût du lien = trafic sur le lien
IPv6
x et z envoient 1 à w , y envoie e à w
Algorithmes de routage
État de lien
Vecteur de distances
Routage hiérarchique
Routage sur Internet
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 323 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 324 / 365
Le nœud qui donne le minimum est le prochain saut dans le plus court
chemin → table de routage
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 325 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 326 / 365
Algorithme à vecteur de distances Algorithme à vecteur de distances
Idée de base
Dx (y ) estimation du moindre coût de x à y Chaque nœud envoie périodiquement sa propre estimation du
Vecteur de distances : Dx = [Dx (y ) : y ∈ N] vecteur de distances à ses voisins
Le nœud x connaı̂t le coût pour chacun de ses voisins v : c(x, v ) Lorsqu’un nœud x reçoit un nouveau vecteur d’un voisin, il met à
Le nœud x maintient Dx = [Dx (y ) : y ∈ N] jour son propre vecteur en utilisant l’équation de Bellman-Ford
Le nœud x maintient aussi les vecteurs de distances de ses voisins Dx (y ) ← minv {c(x, v ) + Dv (y )}, ∀y ∈ N
Pour chaque voisin v , x maintient Dv = [Dv (y ) : y ∈ N] Sous quelques conditions réalistes, le Dx (y ) estimé converge vers
le véritable moindre coût dx (y )
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 327 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 328 / 365
Itératif, aynchrone
Chaque itération locale provoquée par Comportement d’un nœud
Un changement de coût d’un lien local 1 Attend (changement de coût d’un lien local ou message d’un
Un message de mise à jour de vecteur de la part d’un voisin voisin)
2 Recalcule ses estimations
Distibrué 3 Si un vecteur change, nofitie ses voisins
Chaque nœud ne notifie ses voisins que lorsque son vecteur
change
1 Attend . . .
Les voisins notifient alors leurs voisins si besoin est
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 329 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 329 / 365
Algorithme à vecteur de distances Vecteur de distances
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 333 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 333 / 365
Constat
Étude idéalisée du routage pour l’instant . . . fausse en pratique
Aggréger les routeurs en régions → systèmes autonomes (SA)
Échelle : 200 millions de destinations Les routeurs d’un même SA exécutent le même protocole de
routage
Impossible de les stocker toutes dans les tables de routage !
Protocole de routage ”intra-SA”
Échanges de tables → gaspillage des liens ! ! Des routeurs dans des SA différents peuvent exécuter des
protocoles de routage intra-SA différents
Autonomie administrative Routeur passerelle → liaison directe vers un routeur d’un autre SA
Internet : réseau de réseaux
Chaque administrateur réseau peut vouloir contrôler le routage
dans son propre réseau
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 335 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 336 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 337 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 338 / 365
Fixer la table de routage du routeur 1d Choisir parmi plusieurs SA
Exemple Exemple
Supposons que SA1 apprenne par le protocole inter-SA que le
Supposons maintenant que SA1 apprenne du protocole inter-SA
sous-réseau x est atteignable par SA3 (passerelle 1c) mais pas par
que le sous réseau x est atteignable par SA3 et par SA2
SA2
Pour configurer la table de routage, le routeur 1d doit déterminer
Le protocole inter-SA propage l’information à tous les routeurs
par quelle passerelle retransmettre les paquets destinés à x
internes
C’est aussi le travail du protocole de routage inter-SA !
Le routeur 1d détermine à partir du routage intra-SA que son
interface I est sur le chemin de moindre coût vers 1c Routage en patate chaude : envoyer le paquet vers le plus proche
routeur des deux
Ajoute l’entrée (x,I) dans la table de routage
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 339 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 340 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 343 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 344 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 345 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 345 / 365
RIP : panne de lien et récupération RIP : traitement des tables
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 346 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 347 / 365
OSPF (Open Shortest Path First) Caractéristiques ”avancées” d’OSPF (pas dans
RIP)
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 348 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 349 / 365
OSPF hiérarchique OSPF hiérarchique
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 350 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 351 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 352 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 353 / 365
Distribution de l’information d’atteignabilité Attributs de chemins et routes BGP
Avec la session eBGP entre 3a et 1c, SA3 envoie l’information
d’atteignabilité d’un préfixe à SA1
1c peut alors utiliser la session iBGP pour distribuer ce Publication d’un préfixe → ajout d’attributs BGP
l’information sur ce nouveau préfixe à tous les routeurs de SA1 préfixe+attributs = ”route”
1b peut ensuite re-publier la nouvelle information vers SA2 par la Deux attributs importants
session eBGP 1b-2a AS-PATH : contient les SA par lesquels la publication est passée :
Lorsqu’un routeur apprend un nouveau préfixe, il crée une entrée SA 67 SA 17
pour ce préfixe dans sa table de routage NEXT-HOP : indique le routeur interne vers le prochain SA (il
peut y avoir plusieurs liens du SA courant vers le prochain SA)
Lorsqu’un routeur passerelle reçoit une publication de route, il
utilise une politique d’importation pour accepter/refuser
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 354 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 355 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 356 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 357 / 365
Politique de routage BGP Politique de routage BGP
Performance
Intra-SA : peut se focaliser sur les performances
Inter-SA : la politique peut influer sur les performances
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 359 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 360 / 365
Chapitre 3 : Résumé Chapitre 2 : résumé
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 361 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 362 / 365
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 363 / 365 F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 364 / 365
Ce à quoi vous avez échappé
Couche liaison
Détection et correction d’erreurs
Accès multiples → partage d’un canal de diffusion
Adressage de niveau liaison
Ethernet, ATM, PPP
Couche physique
Plus électronique qu’informatique
Même pas abordé dans l’ouvrage de référence !
F. Suter (M2 IMOI) Introduction aux Réseaux et Internet 4 - Couche Réseau 365 / 365