Routing Information Protocol (RIP, protocole d'information de routage) est un protocole de routage IP de type Vector Distance (à vecteur de distances) s'appuyant sur l'algorithme de détermination des routes décentralisé Bellman-Ford. Il permet à chaque routeur de communiquer avec les routeurs voisins. La métrique utilisée est la distance qui sépare un routeur d'un réseau IP déterminé quant au nombre de sauts (ou « hops » en anglais).
Pour chaque réseau IP connu, chaque routeur conserve l'adresse du routeur voisin dont la métrique est la plus petite. Ces meilleures routes sont diffusées toutes les 30 secondes.
Ces limitations sont corrigées dans le protocole OSPF.
Il existe actuellement trois versions de RIP : RIPv1 et RIPv2 (pour IPv4) et RIPng (pour IPv6).
RIPv1 est défini dans la RFC 1058. Cette version ne prend pas en charge les masques de sous-réseau de longueur variable (on dit qu'il est classful) ni l'authentification des routeurs. Les routes sont envoyées en broadcast.
RIPv2 est défini dans la RFC 2453. Cette version, développée en 1993, a été conçue pour permettre au protocole de répondre aux contraintes des réseaux actuels (découpages des réseaux IP en sous-réseaux, authentification par mot de passe, …). Avec cette version, les routes sont envoyées à l'adresse multicast 224.0.0.9.
Un message RIP comprend un en-tête suivi de 1 à 25 enregistrement(s) de route (24 si un message d'authentification est requis).
Bits 0 - 7 | 8 - 15 | 16 - 23 | 24 - 31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
commande | version | domaine de routage | |||||||||||||||||||||||||||||
identifieur de famille d'adresse | marqueur de route | ||||||||||||||||||||||||||||||
adresse IP | |||||||||||||||||||||||||||||||
masque de sous réseau | |||||||||||||||||||||||||||||||
Données |
0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | commande (1) | version (1) | domaine de routage (2) | +---------------+---------------+-------------------------------+ | identifieur de famille d'@ (2)| marqueur de route (2) | +-------------------------------+-------------------------------+ | adresse IP (4) | +---------------------------------------------------------------+ | masque de sous réseau (4) | +---------------------------------------------------------------+ | passerelle (4) | +---------------------------------------------------------------+ | métrique (4) | +---------------------------------------------------------------+ | identifieur de famille d'@ (2)| marqueur de route (2) | +-------------------------------+-------------------------------+ | adresse IP (4) | +---------------------------------------------------------------+ | masque de sous réseau (4) | +---------------------------------------------------------------+ | passerelle (4) | +---------------------------------------------------------------+ | métrique (4) | +---------------------------------------------------------------+ | identifieur de famille d'@ (2)| marqueur de route (2) | +-------------------------------+-------------------------------+ | etc. | +----------------------