ipv4. tcp/ip fait référence à un ensemble de protocoles d'échange de données sur les...
TRANSCRIPT
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 »
Physique
Pile OSI Pile TCP/IP
Liaison
Réseau
Transport
Application
Présentation
Session
Physique
Application
Transport
Réseau IP
TCP
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êteréseau IP
En-têtetransport
En-tête ou commandeapplication Données .../... En-queue
de trameEn-tête
de trame
Datagramme (Datagram)
En-queueEn-tête Données
DonnéesEn-tête
Encapsulation d'un datagramme dans une 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 11111111 00000000 00000000 00000000 255.0.0.0 Classe B 11111111 11111111 00000000 00000000
255.255.0.0 Classe C 11111111 11111111 11111111 00000000
255.255.255.0
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 sous-ré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 Flags Refcnt Use Interface
127.0.0.1 127.0.0.1 UH 1 298 lo
Default 128.66.12.1 UG 2 50360 le0
128.66.12.0 128.66.12.2 U 40 111379 le0
128.66.2.0 128.66.12.3 UG 4 1179 le0
128.66.1.0 128.66.12.3 UG 10 1113 le0
128.66.3.0 128.66.12.3 UG 2 1379 le0 128.66.4.0 128.66.12.3 UG 4 1119 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