Exercice 3 - Protocoles de routage : RIP · Bac Numérique et Sciences Informatiques Asie 2026 (jour 1)

Thème : Protocoles de routage : RIP et OSPF · Tiré du sujet Jour 1 (2026)

Énoncé

Cet exercice porte sur les protocoles de routage, la programmation orientée objet et la notion de file.

Le but de cet exercice est de simuler la façon dont des routeurs construisent leur table de routage selon le protocole RIP.

On considère à titre d’exemple le réseau ci-dessous:

Les adresses des quatre réseaux sont notées sous la forme IP/S où IP est une adresse IP donnée par quatre octets écrits en base 10 et S est un entier inférieur à 32 appelé suffixe. Une adresse IP peut être écrite sur 32 bits en binaire. Le suffixe indique que les S premiers bits de l’adresse correspondent à la partie fixe de l’adresse et les suivants à la partie propre à la machine.

Pour que deux machines soient sur un même réseau local avec un suffixe S, il faut que les S premiers bits de leurs adresses IP soient identiques.

Partie A (suite): Table de routage RIP manuelle

Le protocole RIP permet de minimiser la distance, c'est-à-dire le nombre de routeurs traversés par un paquet de données. Voici la table de routage du routeur R1 dans le réseau représenté sur la figure 1, selon le protocole RIP:

Table de routage de R1

Destination

Interface

Passerelle

Distance

192.168.20.0/24

192.168.20.254

-

0

172.24.0.0/30

172.24.0.1

-

0

172.24.1.0/30

172.24.0.1

172.24.0.2

1

192.168.40.0/24

172.24.0.1

172.24.0.2

2

3.

Donner la table de routage du routeur R2 pour le réseau représenté sur la figure 1, selon le protocole RIP.

Table de routage de R2

Destination

Interface

Passerelle

Distance

192.168.20.0/24

172.24.0.0/30

172.24.1.0/30

192.168.40.0/24

Partie C: Simulation orientée objet de Bellman-Ford

On dispose d'une classe File qui permet d'instancier une file (avec méthodes enfiler(e), defiler() et est_vide()). Chaque réseau local est modélisé à l'aide de la classe Reseau:

class Reseau:

def __init__(self, adresse, masque):

self.adresse = adresse

self.masque = masque

self.machines = {}

self.file = File()

Un paquet est un couple de la forme (orig, donnees). La méthode diffuser traite les paquets de sa file et les dépose dans les files des machines destinataires (toutes sauf l'émetteur).

8.

Recopier et compléter le code de la méthode diffuser:

def diffuser(self):

while not...:

paquet =...

orig, donnees = paquet

for m in self.machines:

if...:

self.machines[m].enfiler(...)

La classe Routeur gère les interfaces et la table de routage, représentée par un dictionnaire associant à chaque adresse réseau un triplet (i_interf, passerelle, distance). Lorsqu'il est directement connecté, on met None à la place de la passerelle.

>>> routeur_m.table

{(172, 64, 0, 0): (1, None, 0),

(172, 60, 0, 0): (0, (172, 58, 0, 2), 1),

(192, 168, 47, 0): (0, (172, 58, 0, 2), 2),

(172, 62, 0, 0): (0, (172, 58, 0, 2), 2)}

vecteurs = [((192, 168, 72, 0), 0), ((172, 62, 0, 0), 0),

((172, 64, 0, 0), 0), ((172, 60, 0, 0), 1),

((192, 168, 47, 0), 1)]

9.

Déterminer la valeur de routeur_m.table après l'appel routeur_m.m_a_j((172, 64, 0, 2), 1, vecteurs):

10.

Recopier et compléter les lignes 4 et 6 du code de la méthode m_a_j:

1 def m_a_j(self, passerelle, i_interf, vecteurs):

2 a_ete_modif = False

3 for adresse, d in vecteurs:

4 if... or...:

5 self.table[adresse] = (i_interf, passerelle, d+1)

6 a_ete_modif =...

7 if a_ete_modif:

8 self.envoyer_vecteurs(i_interf)

11.

Recopier et compléter les lignes 5 et 6 du code de la méthode vecteurs:

1 def vecteurs(self, i):

2 res = []

3 for adresse in self.table:

4 i_interf, passerelle, dist = self.table[adresse]

5 if...:

6 res.append(...)

7 return res

12.

Recopier et compléter les lignes 3 à 7 du code de la méthode envoyer_vecteurs:

1 def envoyer_vecteurs(self, i_interf):

2 for i in range(len(self.interfaces)):

3 if...:

4 adresse = self.interfaces[i].adresse

5 v = self.vecteurs(...)

6 paquet = (adresse, v)

7....enfiler(paquet)

13.

Recopier et compléter la suite du script ci-dessous à partir de la ligne 4 afin de construire les tables de routage des routeurs contenus dans le tableau routeurs suivant l'algorithme:

1 for routeur in routeurs:

2 routeur.envoyer_vecteurs(-1)

3

4 continuer = True

5 while continuer:

6...

Énoncé: Exercice 3 - Protocoles de routage : RIP · Bac Numérique et Sciences Informatiques Asie 2026 (jour 1)

Corrigé

Corrigé proposé par AprenAI (non officiel)

3. R2 - Destination 192.168.20.0/24 : Interface

Réponse : 172.24.0.2

3. R2 - Destination 192.168.20.0/24 : Passerelle

Réponse : 172.24.0.1

3. R2 - Destination 192.168.20.0/24 : Distance

Réponse : 1

3. R2 - Destination 172.24.0.0/30 : Interface

Réponse : 172.24.0.2

3. R2 - Destination 172.24.0.0/30 : Passerelle

Réponse : - / None

3. R2 - Destination 172.24.0.0/30 : Distance

Réponse : 0

3. R2 - Destination 172.24.1.0/30 : Interface

Réponse : 172.24.1.2

3. R2 - Destination 172.24.1.0/30 : Passerelle

Réponse : - / None

3. R2 - Destination 172.24.1.0/30 : Distance

Réponse : 0

3. R2 - Destination 192.168.40.0/24 : Interface

Réponse : 172.24.1.2

Les réponses des 10 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium

Résous-le ici : correction automatique, indices et corrigé détaillé.

Exercice 3 - Parties B et C : Routage RIP · Asie 2026 (jour 2) ›

Plus d’exercices de Protocoles de routage : RIP et OSPF