Transcript IPv4
IPv4
IPv4
TCP/IP fait référence à un ensemble de protocoles d'échange de données
sur les réseaux informatiques
Les protocoles de la couche transport TCP – Transmission Control
Protocol et de la couche réseau IP – Internet Protocol représentent les
briques de base de l'Internet
Le terme TCP/IP qui nomme les deux protocoles incontournables, a été
choisi pour faire référence à la pile de protocoles qui permettra à
l'Internet de fonctionner
Il est difficile d'établir la liste exhaustive des protocoles de l'Internet car
de nouveaux apparaissent régulièrement et tous ne sont pas essentiels à
l'implémentation de la pile TCP/IP
IPv4
Le protocole IP correspond à un protocole de la couche réseau
Il permet l'interconnexion de réseaux physiques hétérogènes et le
point d'entrée d'applications « utilisateur »
Pile OSI
Pile TCP/IP
Application
Présentation
Application
Session
Transport
Transport
TCP
Réseau
Réseau
IP
Liaison
Physique
Physique
IPv4
Architecture des protocoles TCP/IP :
Bien qu'il n'existe pas de convention universelle sur la description
de TCP/IP par un modèle en couches, on admet généralement
qu'il est composé de moins de niveaux que les sept utilisés par le
modèle de l'OSI
La plupart des descriptions de TCP/IP définissent de trois à cinq
niveaux fonctionnels dans son architecture
IPv4
IPv4
De même que pour le modèle OSI, les données sont passées vers
le bas de la pile quand elles sont envoyées vers le réseau, et vers
le haut quand elles sont reçues
Chacune des couches de la pile ajoute des informations de
contrôle afin d'assurer une livraison correcte
Ces informations de contrôle sont appelées un « en-tête » parce
qu'elles sont placées devant les données à transmettre
Chaque couche traite toutes les informations qu'elle reçoit des couches
supérieures en tant que données et place son propre en-tête devant elles
IPv4
L'addition d'informations de distribution à chaque couche est
appelée encapsulation
Quand les données sont reçues, c'est l'inverse qui se produit
Chaque couche enlève son en-tête avant de passer les données à
celles du dessus
Les informations reçues d'une couche inférieure sont interprétées
en tant qu'en-tête et données
IPv4
IPv4
Chaque couche possède ses propres structures de données
indépendantes
Conceptuellement, une couche ne connaît pas les structures de
données employées par les couches du dessus et du dessous
En réalité, les structures d'une couche sont conçues de façon à être
compatibles avec celles des couches supérieures dans le but d'une
transmission plus efficace
Cependant, chaque couche dispose de sa propre structure de
données et de sa propre terminologie pour décrire celle-ci
IPv4
IPv4
IPv4
Particularités :
IP est un protocole sans connexion car il n'échange pas
d'informations de contrôle (handshake) pour établir une
connexion de bout en bout avant de transmettre des données
A l'inverse, un protocole orienté connexion, échange des
informations de contrôle avec le système distant pour vérifier
qu'il est prêt à recevoir des données avant de les envoyer
Quand le handshake a réussi, on dit qu'une connexion est établie
IPv4
IP se fie aux protocoles d'autres couches pour établir la connexion
si un service orienté connexion est requis
IP se fonde également sur des protocoles des autres couches pour
fournir une détection et une correction d'erreurs
Le protocole Internet est parfois appelé un protocole non fiable
parce qu'il ne contient ni détection, ni correction des erreurs
Cela ne veut pas dire que le protocole IP n'est pas sûr
Les protocoles des autres couches de l'architecture fournissent
cette vérification quand elle est requise
IPv4
Dans la version 4, le protocole IP n'apporte pas une solution
idéale à certains types d'applications
C'est le cas par exemple, pour les applications « temps réel » ou
pour les applications de téléphonie et de visioconférence
Intrinsèquement, IP n'apporte pas les capacités de sécurisation
poussée indispensable aux besoins du commerce électronique et à
l'échange de données sensibles
IPv4
Cependant, l'adoption généralisée de TCP/IP et l'augmentation
constante de la bande passante offerte par les fabricants, les
prestataires Internet et les câblo-opérateurs gomment en partie les
faiblesses d'IP
Enfin, la prochaine version d'IP, nommée IPv6, palliera les
défauts de la version actuelle
La version d’IP est en cours d’implémentation au niveau mondial
sur les grands réseaux
Les versions 4 et 6 d’IP cohabiteront pendant plusieurs années
IPv4
Pratiquement tous les systèmes d'exploitation gèrent TCP/IP
Son acceptation généralisée l'a conduit à devenir un protocole de
fait, en opposition aux protocoles « réseau » décrits dans le
standard OSI - Open Systems Interconnection de l'ISO International Standards Organization
A l'heure actuelle TCP/IP représente la meilleure solution à
l'unification mondiale des matériels et des logiciels informatiques
IPv4
La première spécification officielle décrivant IP est la RFC 791
[Postel 1981a]
IP est un protocole non fiable et sans connexion
Il semble surprenant que toutes les applications communicantes
couramment utilisées aujourd'hui soient basées sur des
fondations instables
Il s'agit d'une option technique et que les termes « non fiable » et
« non connecté » ne sont pas péjoratifs mais correspondent à des
choix stratégiques
IPv4
Le paquet d'octets transférés au niveau de la couche IP entre un
émetteur et un récepteur se nomme un datagramme
En règle générale, un datagramme est une unité d'informations
de taille variable en octets et contenant les renseignements
nécessaires à son cheminement au travers des réseaux, entre une
source et une ou plusieurs destinations
IPv4
Par « non fiable », il faut comprendre que la livraison d'un
datagramme n'est pas garantie
Le réseau fournira le meilleur effort possible (best effort) pour
acheminer les datagrammes
Cependant, si pour une raison ou pour une autre (par exemple la
saturation des buffers d'un routeur) un élément du réseau se
trouve dans l'incapacité de faire avancer un datagramme, celui-ci
sera purement et simplement détruit
IPv4
IP essaiera également de faire parvenir un message d'erreur à
l'émetteur pour l'informer du problème par l'intermédiaire du
protocole ICMP - Internet Control Message Protocol
Ce message d'erreur, lui-même transporté dans un datagramme,
sera susceptible de ne pas arriver non plus à destination
Ce choix technique permet d'optimiser les réseaux en faisant des
concessions à la fiabilité des transferts de données
IPv4
IP n'intègre pas de système de correction d'erreur et se il se
contentera de supprimer un datagramme qui présenterait un
problème portant sur les données administratives de son en-tête
IP se base sur les couches supérieures (par exemple TCP) pour
apporter des réponses aux besoins de fiabilité
IPv4
Par « non connecté », il faut entendre qu'aucune route au travers
des réseaux n'est établie préalablement au transfert des données
Des réseaux tels que X.25 ou SNA fonctionnent en mode connecté
Dans le mode non connecté, chaque datagramme chemine
indépendamment des autres lors d'un échange
Il en résulte tout d'abord que chaque datagramme embarque en
son sein les informations nécessaires à son cheminement
IPv4
Il en résulte également que les datagrammes peuvent se présenter
à la destination en ordre dispersé
En effet, le choix du routage des datagrammes est pris en temps
réel par chaque nœud du réseau
Le chemin entre la source et la destination peut donc être
différent d'un datagramme à l'autre
Dans les faits, la majorité des datagrammes d’un échange donné,
utilise le même itinéraire
IPv4
Un protocole réseau tel que IP, qui a comme ambition première
l'interconnexion de réseaux physiques hétérogènes, doit être
capable de prendre en charge les contraintes inhérentes aux
différents supports physiques traversés
Le problème le plus important est celui de la MTU – Maximum
Transmission Unit, c'est-à-dire la taille maximale des données
emportées par la trame
IPv4
Le datagramme IP est encapsulé dans une trame qui traversera
physiquement le réseau sous-jacent
Si, sur le coupleur de départ, le datagramme est trop volumineux
pour être contenu dans une seule trame, celui-ci devra être
découpé en plusieurs morceaux
Ceci implique qu'il devra exister un mécanisme de regroupement
des parties du datagramme initial
Ce mécanisme de découpage et de reconstruction du datagramme
se nomme la fragmentation et est géré par le processus IP
IPv4
Sens de déplacement de la trame
Trame (Frame)
En-tête
En-tête
de trame
Données
En-tête
réseau IP
En-tête
En-tête
transport
En-queue
En-tête ou commande
application
Données .../...
Données
Datagramme (Datagram)
Encapsulation d'un datagramme dans une trame
En-queue
de trame
IPv4
Une dernière caractéristique fondamentale de l'Internet Protocol
réside dans la possibilité d'adresser de façon unique un coupleur
réseau (par exemple une carte Ethernet) dans un maillage de
réseaux interconnectés
L'identification des coupleurs réseau supportant IP est basée sur
les adresses IP
Il s'agit d'un postulat de départ puisque pour atteindre une
adresse IP particulière, il est nécessaire de mettre en place un
système d'adressage sans équivoque basé sur des adresses
uniques pour un ensemble de réseaux connectés
IPv4
Les réseaux interconnectés autonomes sont souvent appelés des
réseaux Intranet
Dans le cas de l'Internet, il a fallu gérer au niveau mondial
l'attribution des adresses IP pour conserver le caractère unique de
l'adressage IP
L'organisme régulateur s'occupant de l'attribution des adresses IP
est l'ARIN - American Registry of Internet Numbers pour
l'Amérique et le RIPE – Réseaux IP Européens pour l'Europe
IPv4
Le datagramme :
Les protocoles TCP/IP ont été conçus pour transmettre des
données sur ARPANET qui était un réseau à commutation de
paquets
Un paquet est un bloc de données de taille variable qui
transporte avec lui les informations nécessaires à sa livraison
Un réseau à commutation de paquets utilise les informations
d'adressage des paquets pour les commuter d'un réseau à l'autre,
jusqu'à leur destination finale
IPv4
Chaque paquet transite sur le réseau indépendamment de chaque
autre paquet
Les cinq ou six premiers mots de 32 bits du datagramme forment
l'en-tête et par défaut, il comporte cinq mots longs le sixième
étant optionnel
La longueur de l'en-tête étant variable, il comprend un champ
appelé Internet Header Length (IHL) qui indique sa longueur en
nombre de mots
L'en-tête contient toutes les informations nécessaires pour
transporter le paquet
IPv4
IPv4
Version : Champ de 4 bits indiquant la version de IP. La version actuelle est la
version 4. Elle sera suivie de la version 6
Longueur de l'en-tête : Champ de 4 bits indiquant la longueur de l'en-tête IP en
nombre de mots de 32 bits. La taille minimale des en-têtes IP étant de 20 octets, la
plus petite longueur d'en-tête est de 5
Type de service : Champ de 8 bits indiquant la qualité de service attendue par ce
datagramme pour une livraison par l'intermédiaire de routeurs sur l'inter-réseau
Longueur totale : Champ de 16 bits indiquant la longueur totale du datagramme
IP (en-tête IP + données utiles). La longueur totale n'inclut pas le tramage de la
couche d'accès au réseau
Identification : Identificateur de 16 bits défini de manière distincte pour chaque
datagramme. Si le paquet IP est fragmenté, tous les fragments auront la même
identification d'origine à utiliser lors du réassemblage par le noeud de destination
IPv4
Indicateurs de fragmentation : Champ de 3 bits réservés aux indicateurs de
fragmentation. Deux de ces trois bits sont actuellement utilisés pour les
indicateurs DF et MF, le premier précisant si la fragmentation du datagramme IP
est autorisée, et le second indiquant si d'autres fragments suivent
Décalage des fragments : Champ de 13 bits utilisés comme compteur de décalage
pour indiquer la position du fragment par rapport aux données utiles d'origine.
En l'absence de fragmentation, le décalage est de 0
TTL (Time To Live) : Champ de 8 bits indiquant la durée ou le nombres de
tronçons de réseaux qu'un datagramme peut franchir avant d'être supprimé. Il
était utilisé à l'origine comme une temporisation (en secondes) d'acheminement
du datagramme. Les routeurs actuels acheminent les datagrammes en moins
d'une seconde et doivent, pour se conformer à la RFC791, décrémenter le TTL d'au
moins une unité. Le TTL est devenu un nombre de saut de réseaux maximum
IPv4
Protocole : Champ de 8 bits identifiant le protocole client IP. Il est utilisé pour
démultiplexer un datagramme vers un protocole de couche supérieure
Total de contrôle d'en-tête : Champ de 16 bits ne servant que pour l'en-tête IP. Les
données ne sont pas concernées par ce checksum. Lorsqu'un noeud IP reçoit un
datagramme, il effectue une vérification sur le total de contrôle et supprime le
paquet IP si celui-ci est incorrect. Le total de contrôle est recalculé à chaque noeud
car le TTL évolue et il peut y avoir une fragmentation
Adresses : Adresses IP source et destination sur 32 bits
Options de remplissage : Champ dont la longueur est un multiple de 32 bits
servant à stocker les options IP. Si l'option n'utilise pas les 32 bits, des 0 de
remplissage sont utilisés afin que l'en-tête IP soit de taille modulo 32 bits
IPv4
Les sous-réseaux IPv4 :
La structure standard d'une adresse IP peut être modifiée
localement en utilisant des bits d'adresse hôte en tant que bits
d'adresse réseau supplémentaires
La ligne de démarcation entre les bits d'adresse réseau et hôte est
déplacée, créant ainsi des réseaux supplémentaires, mais
réduisant de ce fait le nombre maximum d'hôtes pouvant
appartenir à un seul réseau
Ces bits nouvellement définis déterminent un sous-réseau à
l'intérieur d'un plus grand réseau
IPv4
Une organisation décide généralement de créer des sous-réseaux
afin de résoudre des problèmes topologiques ou organisationnels
Cela autorise une gestion décentralisée de l'adressage des hôtes
Dans un système standard d'adressage des hôtes, un seul
administrateur est responsable de la gestion des adresses hôtes
Avec les sous-réseaux, un administrateur peut déléguer les
assignations d'adresses à des organisations plus restreintes à
l'intérieur de la structure mère
IPv4
Masques de sous-réseau par défaut
Classe d'adresse Bits utilisés pour le masque de sous-réseau
Notation décimale
pointée
Classe A
Classe B
Classe C
255.0.0.0
255.255.0.0
255.255.255.0
11111111 00000000 00000000 00000000
11111111 11111111 00000000 00000000
11111111 11111111 11111111 00000000
IPv4
Un sous-réseau est défini en appliquant un masque de bits, le
subnet mask (masque de sous-réseau), à l'adresse IP
Si un bit se trouve sur le masque, le bit équivalent dans l'adresse
est interprété comme un bit réseau
Dans le cas contraire, le bit appartient à la partie hôte de l'adresse
Le sous-réseau n'est connu qu'en local
Pour le reste de l'Internet, son adresse est toujours interprétée
comme une adresse IP standard
IPv4
Par exemple, le masque de sous-réseau standard associé aux
adresses de classe B est 255.255.0.0
Le masque de sous-réseau le plus courant étend la partie réseau
d'une adresse de classe B d'un octet
Ce masque de sous-réseau devient 255.255.255.0
Les deux premiers octets définissent le réseau de classe B, le
troisième définit l'adresse de sous-réseau et le dernier l'hôte sur ce
sous-réseau
IPv4
Beaucoup d'administrateurs réseau préfèrent utiliser des masques
à octets parce qu'ils sont plus faciles à lire et à comprendre
Cependant, la définition de masques de sous-réseau limités aux
octets n'est pas obligatoire
Le masque de sous-réseau se fonde sur les bits et peut être
appliqué à n'importe quelle classe d'adresses
IPv4
Par exemple, une petite organisation pourrait subdiviser une
adresse de classe C en quatre sous-réseaux avec le masque
255.255.255.192 (1100 000 = 128+64)
Ce masque, appliqué à une adresse de classe C, définit les deux
bits de poids fort du quatrième octet comme partie sous-réseau de
l'adresse
Avec les 6 bits restants (2 puissance 6), il est possible de définir
jusqu'à 64 hôtes par sous-réseau
IPv4
Ce même masque, appliqué à une adresse de classe B crée plus de
mille sous-réseaux car dix bits (un octet entier et deux bits du
quatrième octet) sont employés pour définir les sous-réseaux (2
puissance 10 = 1024)
Les sous-réseaux devenant de plus en plus courants, une autre
façon d'écrire les masques de sous-réseau se popularise en
« /bits » au lieu de la notation sur quatre octets
IPv4
Par exemple, « /24 » spécifie un masque de sous-réseau sur 24
bits, équivalent à 255.255.255.0, mais bien plus facile à écrire
La nouvelle nomenclature suppose que les masques sont faits de
bits contigus et correspond à une pratique standard
On rencontre également des masques à jokers, surtout pour les
routeurs Cisco et leurs spécifications de filtrage de paquets
IPv4
Les masques à jokers sont essentiellement les masques
complémentaires à 1 des masques de sous-réseaux
Les masques à jokers utilisent un bit à 1 pour les parties à ignorer
Un masque de sous-réseau de 255.255.0.0 équivaut à un masque à
joker 0.0.255.255 et un masque de sous-réseau de 255.255.240.0 est
équivalent à un masque à joker de 0.0.15.255
IPv4
Le routage IP :
Le routage est basé sur l’adresse IP de destination contenue dans
le datagramme
Il est également basé sur les tables de routage des systèmes et des
routeurs
Les passerelles routent les données entre les réseaux mais tous les
éléments d'un réseau, qu'ils soient hôtes ou passerelles, doivent
prendre des décisions de routage
IPv4
Si l'hôte de destination se trouve sur le réseau local, les données
sont délivrées à l'hôte de destination
S'il se trouve sur un réseau distant, les données seront transmises
à une passerelle locale
La passerelle locale fera avancer le datagramme vers le réseau
suivant et ainsi de suite
IPv4
Le routage étant orienté réseau, IP prend des décisions de routage
en se fondant sur la partie réseau de l'adresse
Le module IP détermine la partie réseau de l'adresse en
examinant les bits de poids fort pour en déduire la classe de
l'adresse
Celle-ci détermine la partie de l'adresse que IP utilise pour
identifier le réseau
IPv4
Si le réseau de destination est le réseau local, le masque de sousréseau local est appliqué à l'adresse de destination
Les paquets sont routés vers leur destination comme l'indique la
table de routage
Les décisions de routage se résument à de simples lectures de
tables
IPv4
La table de routage :
Sur un système UNIX, on peut afficher le contenu de la table de
routage par la commande netstat –nr
L'option -r affiche la table de routage et l'option -n sous forme
numérique
IPv4
L'hôte a comme adresse 128.66.12.2
%netstat –nr
Routing tables
Destination Gateway
127.0.0.1
127.0.0.1
Default
128.66.12.1
128.66.12.0 128.66.12.2
128.66.2.0
128.66.12.3
128.66.1.0
128.66.12.3
128.66.3.0
128.66.12.3
128.66.4.0
128.66.12.3
Flags
UH
UG
U
UG
UG
UG
UG
Refcnt
1
2
40
4
10
2
4
Use
298
50360
111379
1179
1113
1379
1119
Interface
lo
le0
le0
le0
le0
le0
le0
IPv4
La première entrée de la table est la route de loopback pour l'hôte
local
Chaque système utilisant la route de loopback pour s'envoyer des
datagrammes, cette entrée se trouve dans la table de routage de
chaque hôte
Le flag H est présent car il s'agit d'une route vers un hôte
spécifique (127.0.0.1) et non vers un réseau entier 127.0.0.0)
IPv4
Une autre entrée unique de la table de routage est celle qui comprend le
mot « default » dans le champ destination
Elle concerne la route par défaut et la passerelle spécifiée est la passerelle
par défaut
Celle-ci est employée à chaque fois qu'il n'existe pas de route spécifique
dans la table pour une adresse destination
Par exemple, cette table ne comprend pas d'entrée pour le réseau
192.178.16.0
Si IP reçoit un datagramme adressé à ce réseau, il l'enverra via la
passerelle par défaut 128.66.12.1
IPv4
Dans cet exemple, on voit que l'hôte concerné est directement
connecté au réseau 128.66.12.0
L'entrée de la table pour ce réseau ne spécifie pas de passerelle
externe, c'est-à-dire que l'entrée de la table de routage pour
128.66.12.0 ne comporte pas de flag G
Donc l'hôte en question doit être directement connecté à ce réseau
IPv4
Toutes les passerelles qui apparaissent dans une table de routage
se trouvent sur des réseaux directement raccordés au système
local
Cela signifie que quelle que soit l'adresse de destination, les
adresses des passerelles commencent toutes par 128.66.12
Ce réseau est le seul auquel l'hôte soit connecté et donc le seul
auquel il puisse transmettre des données
Les passerelles qu'il utilise pour accéder au reste de l'Internet
doivent se trouver sur son sous-réseau
IPv4
IPv4
Une table de routage ne contient pas de route de bout
en bout
Elle ne pointe que vers la passerelle suivante, appelée
next hop (le saut suivant), sur le chemin conduisant au
réseau de destination
L'hôte compte sur une passerelle locale pour délivrer
les données, et cette passerelle, à son tour, compte sur
d'autres passerelles