Professional Documents
Culture Documents
durée : 2 heures - aucun document autorisé - trois exercices indépendants - barème indicatif
un mot de code personnel devra être reporté sur chaque copie
2 (7 points) On considère un réseau constitué de sept segments Ethernet et de cinq ponts transparents
et dont la topologie est
LAN1 B
1. En supposant que l’algorithme de l’arbre recouvrant est stabilisé, donnez la table de chaque pont
et précisez les BPDUs circulant sur le réseau. Indiquez quel pont est désigné sur chaque LAN.
2. Au départ, les adresses MAC sont connues des trois machines A, B et C mais les ponts n’ont
aucune information sur la localisation des machines dans leurs tables d’acheminement. Décri-
vez l’acheminement d’une trame de A vers B, suivi de celui d’une trame de C vers A et celui
finalement d’une trame de B vers C, en précisant l’évolution des tables des ponts.
3. Le pont P2 se met subitement à fonctionner comme un simple répéteur. Donnez un scénario pos-
sible d’échange de BPDUs entre les ponts jusqu’à ce que l’arbre recouvrant soit à nouveau stable.
1
3 (9 points) On définit un protocole dans l’encadré en annexe page 3.
−−−−−−→
h k
0 1 −−−−−−→ h k
0 0
−−−−−−→
2
01 typedef enum {arrivee_trame, erreur_total_controle, expiration} type_evenement;
02 void protocole (void) {
03 numero_seq prochaine_trame_a_envoyer;
04 numero_seq trame_attendue;
05 trame r, s;
06 paquet tampon;
07 type_evenement evenement;
08 prochaine_trame_a_envoyer = 0;
09 trame_attendue = 0;
10 depuis_couche_reseau(&tampon);
11 s.info = tampon;
12 s.seq = prochaine_trame_a_envoyer;
13 s.ack = 1 - trame_attendue;
14 vers_couche_physique(&s);
15 demarrer_temporisateur(s.seq);
16 while (true) {
17 attendre_evenement(&evenement);
18 if (evenement == arrivee_trame) {
19 depuis_couche_physique(&r);
3
20 if (r.seq == trame_attendue) {
21 vers_couche_reseau(&r.info);
22 trame_attendue = 1 - trame_attendue;
23 }
24 if (r.ack == prochaine_trame_a_envoyer) {
25 desactiver_temporisateur(r.ack);
26 depuis_couche_reseau(&tampon);
27 prochaine_trame_a_envoyer
28 = 1 - prochaine_trame_a_envoyer;
29 }
30 }
Annexe de l’exercice 3 : définition du protocole
31 s.info = tampon;
32 s.seq = prochaine_trame_a_envoyer;
33 s.ack = 1 - trame_attendue;
34 vers_couche_physique(&s);
35 demarrer_temporisateur(s.seq);
36 }
37 }