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

Cours Intro Reseaux

Transféré par

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

Cours Intro Reseaux

Transféré par

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

Introduction aux réseaux

Renaud Lachaize
Université Grenoble Alpes
[Link] @ [Link]

Mai 2019

Ce cours est basé sur les diapositives de Sacha Krakowiak


Bibliographie sommaire sur les réseaux

■ Principes
◆ A. Tanenbaum, D. Wetherall, Computer Networks (5th edition). Prentice Hall, 2010.
❖ Version française : Les réseaux, 5ème édition, Pearson Education, 2011.
❖ Remarque : les éditions antérieures ont un seul auteur (Tanenbaum)
◆ L. Peterson, B. S. Davie, Computer Networks, a systems approach, 5th edition, Morgan
Kaufmann, 2011.
❖ Il existe une traduction française mais seulement pour la 1ère édition actuellement : Réseaux
d’ordinateurs : une approche orientée système, Vuibert)
◆ J. F. Kurose, K. W. Ross, Computer Networking, a top-down approach featuring the Internet,
Addison-Wesley, 7th ed. 2016.
❖ Il existe une traduction française d’une édition plus ancienne : Analyse structurée des
réseaux, Pearson Education)

■ Programmation réseau en environnement Unix / langage C


◆ R. Bryant, D. O'Hallaron, Computer Systems: A Programmer's Perspective, Prentice
Hall, 2003 (2nd edition 2010).
◆ S. A. Rago, W. R. Stevens, Advanced Programming in the Unix Environment (2nd
Edition), Addison-Wesley, 2005.
◆ C. Blaess, Programmation système en C sous Linux (2ème édition), Eyrolles, 2005.
❖ Il existe une troisième édition avec un titre différent : Développement système sous Linux
(Eyrolles, 2011)
◆ J.-M. Rifflet, R. Yunès, Unix : programmation et communication, Dunod, 2003.
S. Krakowiak, [Link] 3
Bibliographie sommaire sur les réseaux (suite)

■ Livres utiles pour la spécialité ISN


◆ Ouvrage collectif. Introduction à la science informatique pour les enseignants de la
discipline en lycée. CRDP Académie de Paris, 2011.
❖ Chapitre 5 sur les réseaux.
❖ Disponible en ligne : [Link]

◆ Ouvrage collectif. Informatique et sciences du numériques. Spécialité ISN en Terminale


S. Eyrolles, 2012
❖ Chapitre 16 sur les réseaux.
❖ Disponible en ligne :
[Link]
_Spécialité_ISN_en_Terminale_S.pdf

■ Divers
◆ [Link], A. Gallais, S. Marc-Zwecker, J. Montavont. Mini-manuel des réseaux
informatiques. Dunod, 2012.
❖ Un ouvrage assez compact conçu pour le premier cycle universitaire.
◆ O. Alphand, A. Duda, F. Rousseau. Computer networking - Explanation of the main
concepts with example exercises. Ensimag, 2016.
❖ [Link]
◆ G. Cizault (nom d’emprunt d’un collectif d’universitaires et d’ingénieurs). IPv6 – théorie
et pratique. Livre disponible en ligne : [Link]
S. Krakowiak, [Link] 5
Bibliographie sommaire sur les réseaux (suite)

■ MOOCs (cours gratuits en ligne, avec vidéos, supports et exercices)


La plupart de ces cours ont de nouvelles sessions organisées régulièrement. L’inscription
n’engage à rien et permet de conserver l’accès aux supports au delà des dates de la session.

◆ Voir notamment les cours disponibles sur la plateforme FUN (France Université
Numérique) : [Link]
❖ Principes des réseaux de données
❖ Les réseaux locaux
❖ Routage et qualité de service dans l’Internet
❖ Objectif IPv6 : vers l’Internet nouvelle génération

◆ Voir aussi les cours (en anglais) disponibles sur les plateformes EdX
([Link] ou Coursera ([Link]
❖ N.B. : Les certificats de réussite aux cours sont payants mais l’accès aux
contenus est libre/gratuit
❖ Par exemple :
▲ The bits and bytes of computer networking ([Link]
networking)
▲ Networks illustrated: principles without calculus ([Link]
illustrated)
▲ Fundamentals of network communication ([Link]
network-communications)

S. Krakowiak, [Link] 6
Introduction aux réseaux informatiques

■ Un réseau informatique (computer network) est un système de


communication (ensemble matériel + logiciel) qui permet à un
ensemble d’ordinateurs (au sens large) d’échanger de l’information
◆ sens large : points d’accès, terminaux de paiement, téléphones, capteurs divers,
etc.
■ L’échange d’information n’est pas une fin en soi. Les réseaux servent
avant tout à réaliser des services
◆ accessibles à partir de tout organe connecté au réseau
◆ mis en œuvre par un ensemble d’ordinateurs sur le réseau
◆ exemples de services
le courrier électronique (mail) l’accès au World Wide Web
le transfert de fichiers (ftp) les services utilisant le Web :
l’accès à distance (telnet, ssh) documentation, commerce électronique, etc.

■ Lien entre réseaux et systèmes d’exploitation


◆ Le réseau (support de communication) comme organe d’entrée-sortie
◆ Le réseau (ensemble de serveurs) comme super-machine (clusters, grids, clouds)

S. Krakowiak, [Link] 7
Le défi de la puissance de calcul à bon marché :
des grappes aux nuages

■ Les grappes (clusters)


◆ Groupe de machines sur un réseau local (dizaines, centaines)
◆ Puissance et disponibilité pour la réalisation de services

■ Les grilles (grids)


◆ Calcul parallèle à grande échelle (milliers, dizaines de milliers)
◆ Grappes réparties sur l’Internet
◆ Gestion globale des ressources
◆ Concurrentes de supercalculateurs pour grandes applications
scientifiques

■ Les nuages (clouds)


◆ Virtualisation des ressources de calcul

Diapositive tirée de S. Krakowiak, Histoire et actualité de l’informatique, 2011.


S. Krakowiak, [Link] 8
Types de réseaux (1)

■ Les réseaux peuvent être classés selon différents critères


◆ Nature de la liaison entre les organes connectés (nœuds)
❖ Liaison directe
▲ il y a un lien direct entre deux nœuds du réseau

point à point accès multiple

❖ Liaison commutée
▲ la liaison passe par des organes intermédiaires

(analogie avec le réseau


téléphonique commuté)

❖ Les supports physiques de la communication peuvent être divers


▲ paires de fils, câble coaxial, fibre optique, radio, infra-rouge, etc.
◆ Couverture géographique (réseau local, à grande distance, etc.)

S. Krakowiak, [Link] 9
Types de réseaux (2)

La classification par étendue de la couverture géographique est souvent utilisée, bien que non stricte
■ Réseaux locaux (Local Area Networks, LAN)
◆ Communication au sein d’une organisation (département d’entreprise, etc.)
◆ Administration unique
◆ Couverture géographique limitée (~1 km) bus anneau
◆ Débit élevé, taux d’erreur faible
◆ Topologies diverses : bus, anneau, étoile, arbre ...
■ Réseaux à grande distance (Wide Area Networks, WAN)
◆ Communication entre des organisations (souvent) diverses
◆ Administrations (souvent) multiples
◆ Couverture géographique étendue : un pays, toute la planète
◆ Débit variable, taux d’erreur parfois non négligeable
◆ Topologie maillée ; interconnexion de réseaux (exemple : l’Internet)
■ Réseaux métropolitains (Metropolitan Area Networks, MAN)
◆ Intermédiaires entre LAN et WAN - qq dizaines de km, ville ou région
■ Autres réseaux
◆ System & Storage Area Networks (SAN), Desk Area Networks (DAN) ...
◆ Réseaux de mobiles, réseaux de capteurs, ... (potentiellement ad hoc)

S. Krakowiak, [Link] 10
Bref historique des réseaux informatiques
réseaux sociaux
L’Internet et les applications téléphonie géolocalisation
World Internet of things
Wide Web commerce
électronique Cloud computing
réseaux moteurs de
mail, ftp, telnet appli.
spécialisés 1970 1980 1990 recherche 2000 mobiles 2010
navigateurs
4 sites x 100 sites 100 000 sites 6 millions 100 millions
militaires
de sites de sites
comp. aériennes
Arpanet l’Internet
1969 XML HTML5
appel de procédure JEE AJAX SDN
Outils logiciels à distance CORBA Java Virtualisation
.NET
client-serveur

Quelques avancées technologiques


commutation
Aloha Wifi Wifi
par paquets Ethernet téléphonie numérique ADSL
paquets radio ATM 802.11b 802.11n
ISDN (RNIS) 622 Mbit/s modem rapide 11 Mbit/s 200 Mbit/s
64 kbit/s Myrinet 30/100m 70/250m
1970 1973 1980 1990 1 000 Mbit/s 2000 2010
100 Mbit/s 1 000 Mbit/s 10Gb/s
1964 anneau 3 Mbit/s 10 Mbit/s Ethernet Fast Ethernet Gigabit Ethernet
à jeton
constellations informatique 3G 4G
de satellites mobile
couverture, accès universel

S. Krakowiak, [Link] 13
Performances des réseaux (1)

■ Deux mesures principales de performance


◆ Débit (throughput) : quantité d’information par unité de temps. Unité : bit/s (Kbit/s, Mbit/s, …)
❖ une notion corrélée au débit est la bande passante (bandwidth)
◆ Latence (latency) : temps écoulé entre l’émission d’un bit et sa réception. Unité : s (ms, µs, …)
❖ on s’intéresse aussi parfois au temps d’aller-retour (round trip time ou RTT)
■ Facteurs de performance

Latence = durée de transmission + temps de propagation + temps d’attente

◆ Durée de transmission : taille du message / débit


❖ temps nécessaire pour transmettre les données (les envoyer sur le réseau)
◆ Temps de propagation : distance / vitesse de propagation
❖ temps nécessaire pour que les données aillent de l’émetteur au récepteur
◆ Temps d’attente
❖ temps “perdu” par le système de communication (notamment à cause de l’occupation des
ressources)
◆ La somme (temps de propagation + temps d’attente), ou latence de base, est un délai
incompressible (temps écoulé avant de recevoir le 1er bit d’un message)

S. Krakowiak, [Link] 14
Performances des réseaux (2)

■ Débit et latence ont un impact variable selon les applications


◆ Exemple 1 : message bref (exemple : interaction question-réponse)
❖ Envoi 1 Kbit, retour 1 Kbit, distance 10 000 km. Temps incompressible
d’aller-retour = 100 ms (si vitesse = 2c/3). Temps de transmission = 1 ms à
1 Mbit/s, 0,01 ms à 100 Mbit/s.
❖ Conclusion : la latence est dominante, le débit a peu d’influence
◆ Exemple 2 : message très gros (exemple : transfert d’un fichier multimédia)
❖ Envoi 100 Mbit, distance 10 000 km. Temps incompressible de propagation
= 50 ms. Temps de transmission = 100 s à 1 Mbit/s, 1 s à 100 Mbit/s.
❖ Conclusion : le débit est dominant, la latence a peu d’influence
latence
transmission propagation de base
latence = taille/débit + distance/vitesse + attente
latence

débit élevé
latence de base
latence de base = forte
attente + propagation débit faible
latence de base
faible taille du message

S. Krakowiak, [Link] 15
Qualité de service

■ La qualité de service (Quality of Service, QoS) désigne un ensemble de


facteurs de qualité nécessaires aux besoins d’une application
particulière
◆ Cette définition est générique et doit être précisée dans chaque cas
◆ Les besoins en QoS dépendent de la nature des applications
■ Exemples
◆ Stabilité de la latence (absence de gigue)
❖ nécessaire pour les applications multimédia (son et vidéo)
◆ Garantie d’une limite supérieure sur la latence
❖ nécessaire pour les applications critiques liées au temps réel
◆ Faible taux d’erreur (probabilité pour qu’un bit ou un message soit perdu ou
modifié)
❖ nécessaire si les données sont peu redondantes
■ Garanties de qualité de service
◆ Problème difficile (au moins pour les aspects quantitatifs)
◆ Voies d’approche : réservation de ressources

S. Krakowiak, [Link] 17
Qualité de service
Exemples de besoins applicatifs
Application Perte de Débit nécessaire Sensibilité à la
données latence ?
tolérable ?
Transfert de fichiers Non Élastique Non

Email Non Élastique Non

Documents web Non Élastique Non


(quelques Kb/s)
Téléphonie / Oui Audio : ≤ 1 Mb/s Oui : ≤ 1 seconde
vidéoconférence Vidéo : 1à kb/s à 5 Mb/s

Flux multimédia Oui Cf. ligne précédente Oui : secondes


Jeu interactif Oui 1 à 10 kb/s Oui : ≤ 1 seconde
Messagerie Non Élastique Oui et non
instantanée
Tableau emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach
S. Krakowiak, [Link] 18
Comment fonctionne un réseau ? (1)

une requête sur le Web


[Link]

un fichier HTML

client l’Internet

Vu de l’utilisateur serveur web


on clique sur un lien
une “page web” s’affiche sur l’écran
Sur la station client
le programme navigateur envoie une requête au serveur correspondant à l’URI
(Uniform Resource Identifier) associé au lien
(si tout se passe bien) le programme navigateur reçoit un fichier HTML qu’il sait afficher
sur l’écran
Sur le réseau, il faut :
trouver le bon serveur (celui qui correspond à l’URI)
transporter la requête depuis la station client vers le serveur
transporter le fichier depuis le serveur à la station client

(voir aussi « what happens when …»: [Link]

S. Krakowiak, [Link] 19
Comment fonctionne un réseau ? (2)

[Link]
[Link]
l’Internet

le service de noms
client DNS (“annuaire”)

serveur web

Première étape : localiser le serveur


Via le service de noms de l’Internet (DNS) qui associe un nom à une “adresse IP”
(fonctionne comme un annuaire - détails plus loin)
Toute machine connectée à l’Internet a une adresse IP
Question : comment trouver l’annuaire ?
Réponse : on connaît l’adresse IP d'un point d’entrée
message

Deuxième étape : envoyer la requête au serveur


Comment est transmise la requête ?
La requête est un message (une suite de bits). 8 7 6 5 4 3 2 1 envoi
Elle est découpée en “paquets” de taille fixe (bornée) paquets
Chaque paquet est envoyé sur le réseau

S. Krakowiak, [Link] 20
Comment fonctionne un réseau ? (3)

8 routeur [Link]
7 paquets
2

4
6
client 1
5

3
serveur web

L’Internet est une interconnexion de réseaux


(internetwork)
Les réseaux sont reliés entre eux par des routeurs

Chaque paquet contient son numéro et son adresse de destination. Quand il arrive sur un réseau,
et que le site destinataire n’en fait pas partie, le paquet est transmis à un routeur.
Les routeurs contiennent les informations qui permettent d’acheminer le paquet vers son site
destinataire

S. Krakowiak, [Link] 21
Comment fonctionne un réseau ? (4)

Fonctionnement du serveur
Le serveur reconstruit le message initial en mettant les paquets dans l’ordre de leurs
numéros. Que fait le serveur à la réception de la requête ?
Le site serveur interprète la requête comme une demande de fourniture de fichier.
Il envoie le fichier au client (sous forme d’une suite de paquets, comme précédemment).
Que se passe-t-il si un paquet s’est perdu, ou a mal été transmis ?
Le destinataire est capable de le détecter et demande qu’on lui renvoie le paquet manquant
ou erroné.

Transmission de l’information
Comment sont transmis concrètement les paquets ?
Chaque paquet est une suite de bits. La transmission utilise un support physique : fils,
fibre optique, ondes radio, etc., sur lequel sont envoyés des signaux (électriques, lumineux,
etc.). Chaque bit (0 ou 1) est représenté par une configuration particulière du signal
Exemple 1 0 0 1 0 1 1
(non réaliste)

S. Krakowiak, [Link] 22
Connaître le chemin suivi (1)

La commande traceroute permet de montrer la suite de routeurs utilisés


Exemples :

mandelbrot:~> traceroute jpp


traceroute to [Link] ([Link]), 30 hops max, 40 byte packets même réseau
1 jpp ([Link]) 6.044 ms 0.138 ms 0.139 ms pas de routeur

mandelbrot:~> traceroute [Link]


traceroute to [Link] ([Link]), 30 hops max, 60 byte packets
1 [Link] ([Link]) 0.387 ms 0.680 ms 0.986 ms
2 [Link] ([Link]) 2.166 ms 2.729 ms 3.067 ms
3 [Link] ([Link]) 3.405 ms 3.793 ms 4.142 ms
4 [Link] ([Link]) 4.480 ms 4.820 ms 5.124 ms
5 [Link] ([Link]) 5.276 ms 5.426 ms 5.719 ms
6 [Link] ([Link]) 5.863 ms 1.191 ms 1.248 ms

S. Krakowiak, [Link] 23
Connaître le chemin suivi (2)

mandelbrot:~> traceroute [Link]


traceroute to [Link] ([Link]), 30 hops max, 60 byte packets
1 [Link] ([Link]) 0.408 ms 0.703 ms 1.012 ms
2 [Link] ([Link]) 2.221 ms 2.554 ms 3.339 ms
3 [Link] ([Link]) 3.674 ms 4.012 ms 4.347 ms
4 [Link] ([Link]) 4.690 ms 4.997 ms 5.146 ms
5 [Link] ([Link]) 5.453 ms 5.805 ms 6.110 ms
6 [Link] ([Link]) 6.280 ms 1.231 ms 0.835 ms
7 [Link] ([Link]) 1.165 ms 1.505 ms 1.846 ms
8 [Link] ([Link]) 3.014 ms 3.370 ms 3.545 ms
9 * * *
10 [Link] ([Link]) 13.421 ms 9.916 ms 10.071 ms
11 [Link] ([Link]) 10.833 ms 11.036 ms 11.381 ms
12 [Link] ([Link]) 14.047 ms 26.277 ms 26.433 ms
13 [Link] ([Link]) 10.650 ms 10.807 ms 11.140 ms
14 [Link] ([Link]) 18.449 ms 20.528 ms 19.840 ms
15 [Link] ([Link]) 25.605 ms 25.478 ms 25.736 ms
16 [Link] ([Link]) 112.645 ms 112.774 ms 112.772 ms
17 [Link] ([Link]) 117.452 ms 117.309 ms 117.338 ms
18 [Link] ([Link]) 120.028 ms 120.032 ms 120.033 ms
19 [Link] ([Link]) 120.014 ms 119.648 ms 119.588 ms
20 [Link] ([Link]) 119.722 ms 119.725 ms 119.621 ms
21 [Link] ([Link]) 119.956 ms 119.563 ms 119.566 ms

S. Krakowiak, [Link] 24
Connaître le chemin suivi (3)

Variante de traceroute : lft (layer-four traceroute)


• Optimisations: utilisations de diverses techniques pour améliorer la
découverte du chemin (vitesse, précision, robustesse)
• Fonctionnalités supplémentaires (par exemple, affichage d’informations
sur les réseaux traversés)
bash-4.2$ lft -N [Link]
Tracing ...........*..*T
TTL LFT trace to [Link] ([Link]):80/tcp
1 [FR-MI2S] [Link] ([Link]) 0.6ms
2 [FR-SIMSU] [Link] ([Link]) 1.2ms
3 [FR-SIMSU] [Link] ([Link]) 1.5ms
** [neglected] no reply packets received from TTLs 4 through 5
6 [GEANT] [Link] ([Link]) 3.0ms
7 [GEANT] [Link] ([Link]) 10.2ms
8 [GEANT] [Link] ([Link]) 16.0ms
9 [GEANT] [Link] ([Link]) 20.8ms
10 [GEANT] [Link] ([Link]) 20.8ms
11 [NLR] [Link] ([Link]) 107.7ms
12 [CORNELL-DMZ] [Link] ([Link]) 107.7ms
13 [CORNELLU-NET] [Link] ([Link]) 144.9ms
14 [CORNELLU-NET] [Link] ([Link]) 128.0ms
15 [CORNELLU-NET] [target open] [Link] ([Link]):80 115.3ms

S. Krakowiak, [Link] 25
Connaître le chemin suivi (4)

Même requête que la précédente, à partir de la même ville (Grenoble) mais depuis
un autre réseau (fournisseur d’accès Internet à domicile à la place du réseau de
l’Université)

bash-4.2$ lft -N [Link]


Tracing ............*..*.*.T
TTL LFT trace to [Link] ([Link]):80/tcp
1 [NULL] [Link] 1.8ms
2 [FR-PROXAD-ADSL] [Link] 19.8ms
3 [FR-PROXAD] [Link] ([Link]) 22.5ms
4 [FR-PROXAD] [Link] ([Link]) 23.7ms
5 [FR-PROXAD] [Link] ([Link]) 31.4ms
6 [FR-PROXAD] [Link] ([Link]) 41.8ms
7 [FR-PROXAD] [Link] ([Link]) 29.4ms
8 [COGENT-149-6-16] [Link] ([Link]) 69.5ms
9 [NET-154-54-0-0] [Link] ([Link]) 69.3ms
10 [COGENT-EUROPEAN-OPERATIONS-001] [Link] ([Link]) 84.1ms
11 [NET-154-54-0-0] [Link] ([Link]) 151.0ms
** [neglected] no reply packets received from TTLs 12 through 13
14 [COGENT-A] [Link] 160.4ms
15 [CORNELLU-NET] [Link] ([Link]) 160.2ms
16 [CORNELLU-NET] [Link] ([Link]) 158.7ms
17 [CORNELLU-NET] [target open] [Link] ([Link]):80 157.0ms

S. Krakowiak, [Link] 26
Notions de protocole et d’interface (1)

■ L’exemple de la requête sur le web permet d’identifier divers “niveaux”


d’échange entre le client et le serveur
◆ le niveau de l’application : le client clique sur un lien, le serveur renvoie une page web
◆ le niveau des messages : le client envoie un message contenant une URI, le serveur renvoie
un message contenant un fichier HTML
◆ le niveau des paquets : le message du client est découpé en paquets, les différents routeurs
du réseau les acheminent vers le serveur (idem pour le retour)
◆ le niveau de la transmission des bits : pour envoyer les paquets, chaque bit (0 ou 1) est
transmis comme un signal électrique sur une ligne.
◆ chaque niveau utilise les fonctions du niveau inférieur
■ Les notions de protocole et d’interface visent à représenter ce mode de
fonctionnement
Analogie : deux personnes peuvent dialoguer même si elles ne parlent pas la même langue

A (ne parle que français) B (ne parle que chinois)


interface français protocoles chinois

X (interprète français-anglais) Y (interprète anglais-chinois)


interface anglais anglais
ligne téléphonique
S. Krakowiak, [Link] 27
Notions de protocole et d’interface (2)

■ Interface (d’un service) : ensemble de fonctions (logicielles ou


matérielles) et de règles d’accès utilisables pour accéder au service
■ Protocole : ensemble de conventions définissant les échanges entre
des entités qui coopèrent pour réaliser un service
◆ Format et séquence de messages échangés entre entités
◆ Actions à effectuer suite à l’arrivée d’un message ou à l’occurrence d’un autre événement ...

■ Relations entre protocoles et interfaces


◆ une interface définit l’accès à un service, un protocole définit la
réalisation d’un service
◆ la construction d’un protocole utilise souvent des protocoles de niveau
inférieur (plus élémentaires), en accédant à leurs interfaces
■ Protocoles en couches interface i
protocole
couche i entité niveau i entité
coopérante coopérante
interface i-1

couche i-1

S. Krakowiak, [Link] 28
Organisation en couches (1/2)

■ Analogie avec le transport aérien

achat Ticket Ticket réclamation

enregistrement Bagages Bagages récupération

embarquement Portes Portes débarquement

décollage Piste Piste atterrissage

Contrôle Contrôle Contrôle Contrôle


guidage guidage
aérien aérien aérien aérien
Tour de Tour de
Aéroport de Aéroport
contrôle contrôle
départ d’arrivée
intermédiaire intermédiaire

Exemple emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach

S. Krakowiak, [Link] 29
Organisation en couches (2/2)

■ Approche nécessaire pour maîtriser la complexité


■ Utilisée dans tous les systèmes informatiques et a
fortiori dans les systèmes répartis
■ Structuration explicite
◆ Permet d’indentifier les interactions entre les différents
composants

■ Modularité
◆ Indépendance entre l’interface offerte par une couche et sa
réalisation interne
◆ Simplifie la maintenance et l’évolution du système

S. Krakowiak, [Link] 30
Les protocoles de l’Internet

Services
Web
Informations
transmises
SOAP …
dépend de
applications … HTTP FTP TFTP DNS… l’application

transfère un message messages


transport ou un flot de données TCP UDP
entre émetteur et récepteur
flots d’octets

achemine un paquet entre


réseau deux hôtes sur des réseaux IP paquets
interconnectés

liaison / envoie une suite de bits trames


physique entre deux hôtes sur Ethernet 802.11 … bits
un même réseau spécifié

HTTP : HyperText Transfer Protocol : protocole du Web


TFTP, FTP : (Trivial) File Transfer Protocol : transfert de fichiers
TCP : Transmission Control Protocol : transport en mode connecté
UDP : User Datagram Protocol : transport en mode non connecté
IP : Internet Protocol : Interconnexion de réseaux, routage
S. Krakowiak, [Link] 31
Les protocoles normalisés de l’ISO
(International Standards Organisation)

Open Systems Interconnection (OSI)

Application Application

compression
chiffrement, etc. Présentation Présentation

synchronisation,
gestion du dialogue Session Session
entre processus

transfert Transport segment


de messages
Transport

routage,
interconnexion Réseau Réseau Réseau Réseau paquet
gestion d’erreurs,
contrôle de flux Liaison Liaison Liaison Liaison trame
(point à point)
représentation
physique de Physique Physique Physique Physique bit
l’information

Les protocoles OSI servent plutôt de cadre de référence pour la définition des fonctions
que de normes de réalisation. La normalisation de fait est autour de TCP/IP

S. Krakowiak, [Link] 32
Le modèle en couches de l’Internet

Application Application message

Transport Transport segment

Réseau Réseau Réseau Réseau paquet

Liaison Liaison Liaison Liaison trame

Physique Physique Physique Physique bit

Les services des couches Session et Présentation définies par le modèle OSI
sont ici intégrés dans la couche applicative (si nécessaire)

S. Krakowiak, [Link] 33
Encapsulation

Schéma emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach

S. Krakowiak, [Link] 34
Les services de l’Internet

■ Services principaux (applications) disponibles sur l’Internet


◆ Courrier électronique (mail) - protocole SMTP (Simple Mail Transfer Protocol)
❖ inclut maintenant tous types de documents, grâce au format MIME
(Multipurpose Internet Mail Extensions)
◆ Forums de discussion (news) - protocole NNTP (Network News Transfer
Protocol)
◆ Transfert de fichiers (ftp) - protocole FTP (File Transfer Protocol)
◆ Accès à une machine distante - protocoles telnet, SSH
◆ X-Window, service de fenêtres pour client distant
◆ Accès au World Wide Web - protocole HTTP, formats HTML, XML, …
◆ Services divers utilisant le Web (bibliothèques virtuelles, commerce électronique,
installation de logiciel, …)
◆ Extensions diverses pour la sécurité (SSL, SET, PGP, …)
■ Ces services utilisent les protocoles de transport (TCP, UDP), ainsi que le service de
noms DNS (Domain Name System)

S. Krakowiak, [Link] 35
Le réseau vu de l’utilisateur (1)

Client Serveur
(demande un service) (fournit un service)

Le schéma client-serveur peut être mis en œuvre pour des processus sur une
même machine. Ce schéma se transpose à un réseau, où les processus
client et serveur sont sur des machines différentes.
Pour le client, un service est souvent désigné par un nom symbolique.
Ce nom doit être converti en une adresse interprétable par les protocoles du
réseau.
La conversion d’un nom symbolique (par ex. [Link] en une
adresse IP ([Link]) est à la charge du service DNS (vu plus loin)

S. Krakowiak, [Link] 36
Le réseau vu de l’utilisateur (2)

port 45321
connexion

adresse IP :
[Link]
Client Serveur
(demande un service) (fournit un service)

En fait, l’adresse IP du serveur ne suffit pas, car le serveur (machine physique)


peut comporter différents services; il faut préciser le service demandé au moyen
d’un numéro de port, qui permet d’atteindre un processus particulier sur la
machine serveur.
Un numéro de port comprend 16 bits (0 à 65 535). Les numéros de 0 à 1023 sont
réservés, par convention, à des services spécifiques. Exemples (protocole TCP) :
7 : echo 22 : ssh
23 : telnet (connexion à distance) 80 : serveur web
25 : mail (acheminement) 110 : mail (consultation POP3)
S. Krakowiak, [Link] 37
Le réseau vu de l’utilisateur (3)

socket
serveur
[Link]:34231

socket
client [Link]:45321
Client Serveur
(demande un service) (fournit un service)

Pour programmer une application client-serveur, il est commode d’utiliser les


sockets, qui fournissent une interface qui permet d’utiliser facilement les
protocoles de transport TCP et UDP
Un socket est simplement un moyen de désigner l’extrémité d’une connexion,
côté émetteur ou récepteur, en l’associant à un port.

Une fois la connexion (bidirectionnelle) établie via des sockets entre un


processus client et un processus serveur, ceux-ci peuvent communiquer en
utilisant les mêmes primitives (read, write) que pour l’accès aux fichiers.

S. Krakowiak, [Link] 38
DNS : noms de domaines (1)

■ La désignation sur l’Internet utilise un schéma hiérarchique (noms de


domaines)
◆ Exemples : [Link], [Link], [Link],
[Link]
◆ Un domaine est une unité pour la construction et la gestion des noms (analogue à
un répertoire dans un système de fichiers)

■ La hiérarchie des noms a une racine multiple : les domaines du premier niveau
◆ domaines “géographiques” :
❖ fr (France), uk (Royaume Uni), de (Allemagne), jp (Japon),
❖ USA est souvent compris “par défaut”, bien qu’il existe un domaine us
◆ domaines “d’activité”, génériques :
❖ com (commercial), org (organisations),
edu (universités, aux USA), net (l’Internet), …

S. Krakowiak, [Link] 39
DNS : noms de domaines (2)

■ Dans chaque domaine, les noms sont attribués par une autorité responsable
du domaine

◆ Pour établir la liste des domaines du premier niveau : l’Internet Society (ISOC) via
un groupe technique ad hoc

◆ Pour les domaines “publics” du premier niveau (com, org, net, …) : une autorité
centrale, l’lCANN ([Link]), avec des autorités déléguées

◆ Pour les domaines géographiques : une autorité nationale par pays - en France,
l’AFNIC ([Link]) - Association Française pour le Nommage sur l’Internet en
Coopération)

◆ Pour les domaines inclus : autorités locales (entreprise, administration, etc.)

S. Krakowiak, [Link] 40
DNS : noms de domaines (3)

domaines génériques domaines géographiques

com org edu … … fr uk us

[Link] ... [Link] [Link] [Link] [Link] [Link] [Link] [Link] [Link] …
[Link] [Link] [Link] [Link] [Link]
zone

[Link] [Link]
[Link] [Link]
[Link]
[Link]

■ Domaines et zones
◆ Domaine = unité de désignation (espace de noms)
◆ Zone = unité de gestion administrative (serveur de noms propre à la zone)
◆ Le plus souvent, un domaine est aussi une zone, mais une zone peut grouper
plusieurs domaines, administrés en commun

S. Krakowiak, [Link] 41
DNS : noms de domaines (4)

■ Différents cas de figure sont possibles pour la


correspondance entre nom et adresse
◆ Cas simple : correspondance 1-1
❖ [Link] correspond à [Link]
◆ Plusieurs noms vers la même adresse
❖ [Link] et [Link] correspondent tous les deux à
[Link]
◆ Plusieurs noms vers des adresses différentes
❖ [Link] et [Link] correspondent à des adresses
différentes
◆ Un nom vers plusieurs adresses
❖ voir plus loin
◆ Certains noms valides ne correspondent pas à une adresse
❖ [Link] n’est pas associé à une adresse mais c’est
un suffixe valide pour d’autres noms, qui sont eux associés à
une ou plusieurs adresses (exemple : [Link])
S. Krakowiak, [Link] 42
DNS : services et principes

■ Services
◆ Correspondance Nom → adresse IP et adresse IP → Nom
◆ Gestion d’alias (alias → nom canonique)
◆ Distribution de charge
❖ Association d’un nom canonique à plusieurs adresses
◆ Gestion d’alias pour les serveurs mail (sera étudié ultérieurement)

■ Principes
◆ Le DNS est une protocole applicatif qui fournit des services essentiels à
d’autres protocoles applicatifs
◆ La gestion des noms est donc gérée aux « extrémités » du réseau, par un
ensemble d’interactions entre clients et serveurs
◆ Cette organisation est conforme à la philosophie de conception de
l’Internet : simplifier le cœur du réseau et gérer les aspects complexes aux
extrémités

S. Krakowiak, [Link] 43
DNS : mise en œuvre (1)
Bref historique

■ Préhistoire (jusqu’à quelques milliers de sites)


◆ Un serveur de noms unique pour tout l’Internet, gérant une table de
correspondance nom symbolique - adresse IP
◆ Inconvénients
❖ Mauvaise résistance aux pannes
❖ Goulot d’étranglement, pas de capacité de croissance
❖ Distance, déséquilibre géographique
❖ Maintenance

■ À partir de 1985 : Introduction de DNS


◆ Un service réparti
◆ ... qui a bien résisté depuis à une croissance exponentielle

S. Krakowiak, [Link] 44
DNS : mise en œuvre (2)
Une base de données hiérarchique et répartie
■ Idées générales
◆ Pas de point central : un ensemble de serveurs répartis sur le globe
◆ Un découpage des responsabilités

■ Au sein de la hiérarchie : différentes classes de serveurs


◆ Serveurs racine (root DNS servers)
◆ Serveurs de domaine de premier niveau (Top-level domain ou TLD)
◆ Serveurs d’autorité pour un domaine (authoritative servers)

■ En complément de la hiérarchie : serveurs locaux

Schéma emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach


S. Krakowiak, [Link] 45
DNS : mise en œuvre (3)
Serveurs racines
■ 13 (grappes de) serveurs racines dans le monde

Schéma emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach

S. Krakowiak, [Link] 46
DNS : mise en œuvre (4)
Autres classes de serveurs DNS

■ Serveurs DNS de premier niveau (TLD)


◆ Responsables d’un domaine de premier niveau générique (com, net,
org ...) ou géographique (uk, de, fr ...)
■ Serveurs DNS d’autorité pour un domaine
◆ Gérés par l’organisation concernée (entreprise, université ...) ou par un
prestataire externe

■ En dehors de la hiérarchie : serveurs DNS locaux


◆ Gérés par chaque organisation fournissant un accès à Internet
◆ Une machine au sein d’un réseau envoie ses requêtes DNS au
serveur local
◆ Le serveur local joue un rôle d’intermédiaire auprès des serveurs de la
hiérarchie

S. Krakowiak, [Link] 47
DNS : Résolution de nom (1)

■ L’hôte [Link] veut obtenir


l’adresse IP associée à
[Link]

■ Procédure de requête itérative


(étapes 2-7)
◆ Si le serveur contacté n’a pas la
réponse, il fournit l’identité d’un autre
serveur permettant d’avancer dans
la recherche

Schéma emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach

S. Krakowiak, [Link] 48
DNS : Résolution de nom (2)

■ L’hôte [Link] veut obtenir


l’adresse IP associée à
[Link]

■ Procédure de requête
récursive

Schéma emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach

S. Krakowiak, [Link] 49
DNS : résolution de noms (3)

■ Pour amorcer une résolution


◆ Tout hôte doit connaître l’adresse IP d’un serveur de noms local
(dans sa zone)
◆ Il est recommandé de connaître deux ou trois adresses, pour la
tolérance aux fautes

■ Ces adresses :
◆ sont fournies aux utilisateurs de l’hôte par l’administrateur de sa
zone (ou son fournisseur d’accès à l’Internet)
◆ sont généralement inscrites “à la main” dans les tables de
configuration pour l’accès à l’Internet ...
◆ mais peuvent aussi être configurées automatiquement (via le
protocole DHCP qui peut gérer la configuration réseau d’une
machine lors de son raccordement à un réseau)

S. Krakowiak, [Link] 50
DNS : résolution de noms (4)

■ Compléments :
◆ Lorsqu’un serveur apprend une information, il la conserve dans un cache local
◆ Les informations mises en cache ont une durée de vie limitée (pour garantir
leur fraîcheur)
◆ Tous les serveurs DNS (même locaux) existent en plusieurs exemplaires

■ En pratique :
◆ Les serveurs ont beaucoup d’informations en cache donc :
❖ une résolution de nom nécessite moins de messages que dans l’exemple
précédent
❖ les niveaux les plus hauts de la hiérarchie sont peu sollicités
◆ Les interactions pour une résolution suivent généralement le premier schéma :
❖ Mode récursif entre le demandeur et son serveur local
❖ Mode itératif entre le serveur local et les serveurs de la hiérarchie

S. Krakowiak, [Link] 51
DNS : résumé des principes

■ Algorithme de recherche décentralisé (pas de point de décision unique)

■ Hiérarchie de serveurs calquée sur la hiérarchie des zones (voisines des


domaines )

■ Usage intensif de caches (informations dupliquées) et d’indicateurs


(informations probablement valides permettant un accès rapide la plupart du
temps)
◆ Toute information peut être obtenue par plusieurs voies
◆ La validité (« fraîcheur ») de toute information peut être confirmée si
nécessaire

■ Ces règles favorisent aussi la tolérance aux pannes

S. Krakowiak, [Link] 52
DNS : détails techniques

■ Chaque serveur gère une table d’entrées


Nom, Valeur, Type, Classe, Durée de vie
■ Contenu des champs d’une entrée
◆ Type : indique comment les champs Valeur et Nom doivent être interprétés
❖ Type = A : Nom de machine, Valeur = adresse IP
❖ Type = NS : Nom de domaine, Valeur = nom d’un serveur autorité
❖ Type = CNAME : Valeur = nom “canonique” d’un hôte (le nom de
référence si alias)
❖ autres : non traités ici (aide à la gestion du mail, etc.)

◆ Classe : IN (l’Internet), presque toujours

◆ Durée de vie (TTL ou Time To Live) : durée de validité de l’enregistrement


❖ Application d’un principe général : toute information doit être périodiquement
validée

S. Krakowiak, [Link] 53
Utiliser DNS (1)

DNS est automatiquement utilisé par toute application sur l’Internet utilisant des
noms de domaines. Mais on peut aussi y accéder directement

Au niveau du langage de commande (shell)


Commande dig (Domain Information Groper) - voir man
dig [Link]
dig -x [Link] # -x : adresse vers nom

Au niveau des appels systèmes Unix


#include <netdb.h>
struct hostent *gethostbyname(const char *name);
struct hostent *gethostbyaddr(const char *addr,int len, 0);

variantes : getnameinfo et getaddrinfo

voir Doc. technique


S. Krakowiak, [Link] 54
Utiliser DNS (2)
mandelbrot:~> dig [Link]

; <<>> DiG 9.3.4 <<>> [Link]


;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24632
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 7, ADDITIONAL: 7

;; QUESTION SECTION:
;[Link]. IN A

;; ANSWER SECTION:
[Link]. 355486 IN CNAME [Link]. nom canonique
[Link]. 238 IN A [Link]
[Link]. 238 IN A [Link] entrées
[Link]. 238 IN A [Link] multiples

[puis noms et adresses des serveurs de noms pour le domaine


[Link] ...]

;; Query time: 2 msec


;; SERVER: [Link]#53([Link])
;; WHEN: Sun Mar 9 12:51:57 2008
;; MSG SIZE rcvd: 324

S. Krakowiak, [Link] 55
Utiliser DNS (3)
mandelbrot:~> dig -x [Link]

; <<>> DiG 9.7.2-P3 <<>> -x [Link]


;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55325
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2

;; QUESTION SECTION:
;[Link].[Link]. IN PTR

;; ANSWER SECTION:
[Link].[Link]. 7200 IN PTR [Link].

;; AUTHORITY SECTION:
[Link]. 7200 IN NS [Link].
serveurs
[Link]. 7200 IN NS [Link].
[Link]. 7200 IN NS [Link].
de noms

;; ADDITIONAL SECTION:
[Link]. 72447 IN A [Link]
[Link]. 72447 IN AAAA 2001:660:5301:1e::101

;; Query time: 12 msec


;; SERVER: [Link]#53([Link])
;; WHEN: Thu Mar 3 18:34:11 2011
;; MSG SIZE rcvd: 183
S. Krakowiak, [Link] 56
Résumé

■ Introduction aux réseaux informatiques


◆ Types et caractéristiques (LAN, MAN, WAN, mobiles, etc.)
◆ Performances : latence, débit. Qualité de service

■ Protocoles et interfaces
◆ Fonctionnement d’ensemble d’un réseau
◆ Notions de protocole et d’interface
◆ Protocoles en couches, fonctions des principales couches

■ Service de noms de l’Internet : protocole DNS


◆ Désignation symbolique sur l’Internet : domaines
◆ Exemple de gestion décentralisée, capacité de croissance

S. Krakowiak, [Link] 57
Annexes

S. Krakowiak, [Link] 58
Structure globale de l’Internet

■ Structure hiérarchique avec différents types de prestataires


(« niveaux »/”tiers”)
◆ Il n’existe pas d’organisme/autorité pour définir précisément ces niveaux et leurs
membres … mais il y a cependant des états de fait (dont les caractéristiques sont plus
ou moins disponibles publiquement)
◆ Un prestataire (ISP: Internet Service Provider) dispose d’un ensemble de réseaux

■ Idée générale
◆ Prestataire T1 (”Tier-1 ISP” ou ”Backbone networks”)
❖ Couverture internationale/mondiale
❖ Chaque ISP T1 est interconnecté avec tous les autres ISP T1
❖ … et avec un grand nombre d’ISP T2
❖ Très haut volume de trafic / hautes performances
❖ Une dizaine (ou quelques dizaines) d’ISP T1 dans le monde
◆ Prestataire T2 (”Tier-2 ISP” )
❖ Couverture souvent nationale ou régionale
❖ Relié (techniquement et contractuellement) à un ou quelques ISP T1
❖ Souvent aussi relié à des ISP T2 (potentiellement beaucoup)
❖ Ne s’appuie en général pas majoritairement sur l’infrastructure du T1 (cf.
peering/transit plus loin)
❖ Quelques centaines d’ISP T2 dans le monde

S. Krakowiak, [Link] 61
Structure globale de l’Internet (suite)

■ Idée générale (suite)


◆ Prestataire T3 ou de niveau supérieur (”Tier-3 ISP”)
❖ Typiquement, joue le rôle de fournisseur d’accès Internet pour les
particuliers ou les PME
❖ Relié à un (ou quelques) prestataire(s) T1/T2
❖ Quelques milliers d’ISP T3 dans le monde
◆ Intégration verticale :
❖ Certains prestataires fournissent des prestations à plusieurs niveaux
(T1/T2) pour différents types de clients
◆ Point-of-Presence (POP)
❖ Point de jonction/raccordement d’un client à un ISP, c’est-à-dire le
point où les paquets émis par le client entrent dans le réseau de l’ISP
◆ Internet Exchange Point (IXP)
❖ Centre/local informatique dans lequel convergent des réseaux de
différents ISP ayant des accords d’interconnexion
❖ Joue un rôle de « plaque tournante » pour le trafic de l’Internet
❖ Un IXP peut héberger des POP

S. Krakowiak, [Link] 62
Structure globale de l’Internet (suite)

■ Idée générale (suite)


◆ Différents types d’accords entre ISP : transit et peering
◆ Transit :
❖Un ISP x paye un ISP y pour acheminer ses données vers des réseaux
destinataires qu’il ne peut pas joindre par l’intermédiaire de ses propres réseaux
❖ (par exemple, facturation au volume de données)
◆ Peering :
❖ Échanges mutuels (sans frais) de trafic entre ISP
◆ En pratique :
❖ Relations souvent de type transit entre ISP T2/T1 et T3/T2
❖ Relations souvent de type peering entre ISP T2/T2 et T1/T1 de même envergure
❖ Certains définissent la catégorie ISP T1 par le critère suivant : couverture globale
de l’Internet sans nécessité d’accords de transit
❖ Les détails des accords sont souvent confidentiels
◆ Lorsqu’un paquet est acheminé sur l’Internet d’une machine A à une machine B, en
fonction des réseaux concernés (et des ISP correspondants) :
❖ Le paquet ne traverse pas nécessairement un réseau T1 (ni T2)
❖ Le paquet n’emprunte pas nécessairement le plus court chemin (ni en termes de
distance physique, ni en termes de nombre de routeurs) en raison notamment de
l’influence des accords existant (ou non) entre ISP et des choix de routage

S. Krakowiak, [Link] 63
Structure globale de l’Internet (suite)

Schéma emprunté à Kurose & Ross, Computer Networking: a Top-Down Approach

S. Krakowiak, [Link] 64
Structure globale de l’Internet (suite)

Schéma emprunté à Wikipedia : [Link]

S. Krakowiak, [Link] 65
Structure globale de l’Internet (suite)

Schéma emprunté à A. Tanenbaum et D. Wetherall. Computer Networks, 5th edition, Pearson Education

S. Krakowiak, [Link] 66
Structure globale de l’Internet (suite)

Schéma emprunté à Wikipedia : [Link]

S. Krakowiak, [Link] 67
Structure globale de l’Internet (suite)

■ Quelques ressources pour plus de détails :


◆ Wikipedia
❖ [Link]
❖ [Link]
❖ [Link]
❖ [Link]
❖ [Link]

◆ Données sur la topologie de l’Internet et son trafic


❖ Voir notamment [Link] et [Link]
❖ Exemple : Cartographie interactive des IXP
▲ [Link]
▲ [Link]

◆ Détails avancés sur les accords entre ISP


❖ Ars Technica: How the Net works – an introduction to peering and transit (2008).
[Link]
❖ W. Norton. The Art of Peering. [Link]
[Link]
❖ Site [Link]. [Link]

S. Krakowiak, [Link] 68
Annexes (suite)

Quelques illustrations graphiques et quantitative de la


structure de l’Internet

S. Krakowiak, [Link] 69
Ressources

■ Cartes de la topologie du réseau et statistiques sur le trafic


◆ Voir les Telecom maps du site [Link]
◆ Dont notamment:
❖ Topologie planétaire et topologies continentales
❖ Carte des liaisons sous-marines
◆ Pour les liaisons sous-marines, voir aussi : [Link]
◆ Un article/reportage assez complet sur les « entrailles » de l’Internet :
[Link]
submarine-cables-data-centres-last-mile/

■ Statistiques sur la croissance du Web


◆ Voir les enquêtes périodiques de Netcraft: [Link]

■ Statistiques sur les noms DNS


◆ Voir les enquêtes périodiques de l’ISC: [Link]
◆ [Link]

■ Statistiques sur l’adoption d’IPv6


◆ [Link]
◆ [Link]

S. Krakowiak, [Link] 70
Déploiement et maintenance des liaisons sous-marines

■ Voir par exemple “Submarine network solutions” d’Alcatel


Lucent
◆ [Link]
◆ [Link]
■ Ou encore Orange Marine
◆ [Link]
◆ [Link]
ndex_fr.html
■ Et aussi
◆ [Link]

S. Krakowiak, [Link] 71

Vous aimerez peut-être aussi