Vous êtes sur la page 1sur 16

TD1 réseaux (les protocoles applicatifs de l'Internet)

Objectif pédagogique : comprendre la notion de RTT et de débit. Etre capable de


dessiner des chronogrammes et de lire une norme.

Question générale : Le réseau Internet propose essentiellement un service de type


best effort. Il est impossible d’y garantir un temps de réponse précis. Pourtant on
peut l'utiliser aujourd'hui pour faire de la téléphonie ou regarder la télévision.
Discuter les conséquences sur l'acceptabilité de ces nouveaux services.

Problème : étude du temps de réponse d’une requête Web

Imaginons un scénario dans lequel un client C demande une page Web à un


serveur A. Supposons que cette page est de taille 100S bits et contient un objet de même
taille hébergé lui sur un serveur B. S est la taille du paquet de TCP (MSS). On se place
dans un cas simple où le réseau n’est pas congestionné et le contrôle de flux ne se
déclenche pas. On suppose aussi que les paquets ne sont pas perdus, ni erronés, et que
les entêtes protocolaires sont de taille négligeable. Soit R le taux de transmission (en bits
par seconde) et RTT le temps d'aller-retour d'un bit.

Question : Tracer le chronogramme des échanges de messages dans les cas où


le client ne peut ouvrir qu'une seule connexion TCP. En déduire la formule donnant
le temps de réponse de la requête Web. Application numérique avec les valeurs
réalistes de S=536 octets, RTT=2ms, R=2Mbits/s.

Question : Tracer le chronogramme des échanges de messages dans les cas où


le client peut ouvrir plusieurs connexions TCP en parallèle. Constater l'amélioration
possible du temps de réponse.

Imaginons maintenant la situation plus réaliste où s'interpose un serveur proxy X entre le


client C et l'environnement extérieur.

Question : Que devient le scénario ?

Question : idem pour une deuxième requête Web identique ?

Activité complémentaire : Etude de la RFC DNS

Il s'agit de consulter le document introductif de la norme DNS, dont la traduction en


français est disponible à l'adresse http://abcdrfc.free.fr/rfc-vf/rfc1034.html
Ce document est aussi disponible sur Madoc.
Question : expliquer la différence de fonctionnement entre le mode itératif (non-
récursif) et le mode récursif. Illustrer sur un exemple.
TD2 réseaux (automates du protocole de transport)
Objectif pédagogique : prendre conscience de la complexité de l'algorithmique répartie
asynchrone. Manipuler les automates de type de ceux de TCP.

Problème : La complexité des protocoles

Prenons l'exemple le plus simple possible d'un protocole entre deux machines A et B
communiquant de façon asynchrone (la communication prend du temps), fiable (pas de
perte de message) et séquencée (les messages sont reçus dans leur ordre d'émission).
L'objectif visé est d'ouvrir et fermer une connexion (en pratique cette phase échange les
adresses). Pour cela, on fait une proposition de protocole naïf : chaque machine fait
fonctionner un petit automate à 2 états et 3 transitions. Les états sont « closed » et
« established » par référence à l'automate de TCP du support de cours. Les transitions
sont étiquetées par des actions d'émission ou de réception de messages. On considère
les messages SYN et FIN. Le message SYN est envoyé par la machine A lorsqu'elle
souhaite ouvrir la connexion. De façon analogue, le message FIN est envoyé par la
machine A ou B lorsque celle-ci veut fermer la connexion. L'émission d'un message « m »
est notée « !m » et la réception d'un message « m » est notée « ?m ». L'émission est
possible dès que l'automate se trouve dans l'état de départ de la transition. La réception
n'est possible que si l'automate se trouve dans l'état de départ de la transition et que le
message « m » en question est en tête du tampon de réception.

!SYN ?FIN !FIN ?SYN ?FIN !FIN

established established

A B

Question : tracer les chronogrammes correspondant à l'ouverture par A et fermeture par


B, puis à l'ouverture par A et fermeture par A. Que se passe-t-il si A et B décident « en
même temps » de fermer la connexion ?
Question : Combien de messages peuvent être en transit entre A et B ? Et entre B et A ?
Justifier.

Question : Est-il possible d'avoir 2 messages SYN côte à côte en transit ? Que doit-on en
conclure pour cet exemple de protocole ?

Question : On ajoute le fait que l'automate B peut renvoyer un message ACK pour
prévenir de la réception du message FIN. En quoi cela permet-il d'améliorer le
fonctionnement du protocole ? Proposer de nouveaux automates.
TD3 réseaux
Objectif pédagogique : comprendre la gestion de fenêtre. Etre capable de dessiner des
chronogrammes.

Exercice 1 : les protocoles d'anticipation

Imaginons un scénario dans lequel un émetteur doit envoyer cinq messages à un


récepteur. Ces messages sont envoyés dans la foulée afin de voir l'effet de la fenêtre. On
suppose que les messages 3 et 4 sont perdus et on considère qu'ensuite il n'y a plus de
pertes et qu'il n'y a pas non plus de déséquencement.

Question : En supposant que le récepteur utilise le protocole « Go Back N » avec


une fenêtre de taille 3 (N=3), compléter le chronogramme suivant :

Question : Supposons maintenant que le récepteur utilise le protocole « Selective


Repeat » avec toujours une fenêtre de taille 3 (N=3). Compléter le chronogramme
suivant :
Exercice 2 : étude de la taille de la fenêtre avec l'algorithme TCP Reno

RAPPEL DE COURS :
Afin d'éviter les congestions, l'émetteur gère la variable CongWin qui
détermine la taille de la fenêtre de congestion. Il existe différents algorithmes
permettant de modifier dynamiquement la taille de la fenêtre de congestion de
l'émetteur. TCP Reno est l'un d'eux et requiert une variable de seuil :
Threshold. Il est composé de deux phases, la phase de démarrage lent
durant laquelle CongWin croît exponentiellement et la phase d'évitement de
congestion durant laquelle CongWin croît linéairement. Lorsqu'une perte est
détectée, la taille de la fenêtre est diminuée. Le pseudo-code de cet
algorithme est donné ci-dessous :
CongWin 1;
répéter
si un timeout arrive alors
Threshold CongWin/2;
CongWin 1;
sinon si un accusé tripliqué est reçu alors
Threshold CongWin/2;
CongWin Threshold;
sinon si CongWin Threshold alors
// phase de démarrage lent
CongWin 2*
CongWin;
sinon
// phase d'évitement de congestion
CongWin CongWin + 1;
fin si
jusqu'à déconnexion

Soit la courbe de variations de la taille d'une fenêtre de congestion de TCP


suivante :

Questions :
• Identifier les intervalles de temps correspondant à la phase de démarrage
lent et ceux correspondant à la phase d'évitement de congestion
• Identifier les raisons des modifications de la fenêtre de congestion
• Déterminer les valeurs prises par le threshold
• À quel pas de transmission le 70e segment est-il envoyé ?
TD4 réseaux (évaluation de l'efficacité d'une connexion de
transport)

Objectif pédagogique : se frotter à des calculs simples pour faire de l'évaluation de


performances dans le domaine des réseaux.

Problème : évaluation de l'efficacité d'une liaison

On considère un réseau dans lequel une entité de transport de la machine A transmet des
données à celle de la machine B (1024 octets de données par segment) en utilisant un
protocole Stop & Wait (fenêtre de 1). Le chemin de A vers B passe par deux routeurs R et
T. Les lignes de A à R et de T à B ont un débit de 64kbit/s. Celle de R à T de 2Mbit/s. Les
routeurs R et T perdent en moyenne un paquet sur 10 (par congestion de leurs tampons).
L'émetteur retransmet le paquet envoyé s'il ne reçoit pas un acquittement (24 octets)
avant l'expiration de son temporisateur (600ms).

Question : On demande de calculer pour ce scénario l'efficacité des différentes


lignes (elles sont full-duplex) en considérant à la fois le trafic de données et le trafic
des acquittements. On tient compte des délais introduits dans chaque équipement
pour le traitement d'un paquet (10ms pour l'émetteur et le récepteur, 5ms pour
chaque routeur). Pour simplifier, on néglige les délais de propagation et les
surcharges introduites par l'encapsulation des données. L’efficacité est le rapport
entre le temps nécessaire à la transmission et le temps total du scénario.

Problème : Etude globale avec routage


On a la topologie suivante avec le débit et le délai de propagation donné pour chaque
ligne.

Toutes les lignes sont en full duplex et A a une infinité de données à transmettre à B à
l'aide d'une connexion TCP. La fenêtre de réception de B est de 64 MSS et la taille
maximale MSS des segments est de 1480 octets. On rappelle que la taille de l'accusé est
l'entête TCP de taille 20 octets. Le temps de traitement de R4 est de 300 ms (on suppose
que les autres équipements ont un temps de traitement nul). Chaque segment reçu par B
donne lieu à l'émission immédiate d’un acquittement (segment TCP vide). Si A ne reçoit
pas d'acquittement dans les deux secondes qui suivent l'envoi d'un paquet, il considère
celui-ci comme perdu.
Question : Quel temps faut-il à A pour atteindre le débit maximal, sachant que le
seuil de congestion est initialisé à 32 MSS et que le chemin choisi est celui passant
par R4 ?

Question : Après 100s, R1 envoie le premier paquet de la rafale sur R4 avant de


décider de router tous les paquets suivants par R3. Montrer que A va recevoir des
accusés tripliqués.
TD5 réseaux (routage et adressage)
Objectif pédagogique : comprendre l'affectation des adresses IP dans une infrastructure
réseau. Comprendre la structure et la fonction d'une table de routage.

Exercice 1 : table locale des vecteurs de distance

Soit le réseau composé des machines A, B, C, D et des liaisons AB (de coût 2), AD (de
coût 3), BD (de coût 2), BC (de coût 3) et CD (de coût 3). Les machines exécutent un
algorithme de maintenance des tables de routage de type « vecteurs de distance ». On
rappelle que pour une machine X, la table TX est à 2 entrées, avec TX[Y,Z] donnant la
distance minimum pour joindre Z à partir de X en passant par le voisin Y de X.

Question : Donnez la table des vecteurs de distance pour chaque machine une
fois que l’algorithme a convergé. Rappeler comment elle est utilisée pour faire du
routage.

Exercice 2 : Configuration des adresses


On considère le réseau d'entreprise suivant :

Question 1 : Compléter le schéma ci-dessus par les adresses de chaque sous-


réseau.
Question 2 : Soit une machine B d'adresse IP 172.20.93.25/20
– Quelle est l'adresse du réseau auquel appartient B ?
– Combien de machines pourra-t-on connecter à ce réseau ?
– Parmi les machines C, D et E, lesquelles appartiennent au mCme réseau que
B ? (C : 172.20.101.25/20 D : 172.20.87.119/20 E : 172.20.95.0/20)
Exercice 3 : Construction de sous-réseaux
On souhaite subdiviser un réseau dont l'adresse est 128.176.0.0 en 60 sous réseaux.

Question : Quel sera le masque de sous-réseau ? Combien de machines au


maximum pourra-t-on connecter sur chaque sous réseau ?
TD6 réseaux (routage et adressage suite...)
Objectif pédagogique : comprendre le fonctionnement des algorithmes de routage
dynamique.

Exercice 1 : configuration réseau

Une entreprise vient d'installer un reseau dont la topologie est representee par la figure ci-
dessous :

L'hte A a la configuration suivante :


ifconfig
eth0 130.190.4.1 netmask 255.255.255.0
route add -net 130.190.4.0
route add -net 130.190.5.0 gw 130.190.4.2
route add -net 130.190.6.0 gw 130.190.4.3
route add -net 129.88.0.0 gw 130.190.4.3
route add -net 193.33.64.0 gw 130.190.4.3
route add default gw 130.190.4.3

Question 1 : Donner le masque de reseau pour les reseaux 130.190.0.0,


129.88.0.0 et 193.33.64.0, sachant que les deux premiers autorisent 256 sous-
reseaux.
Question 2 : De la configuration de l'hte A donnee ci-dessus, deduire sa table de
routage.
Question 3 : Quelle est la configuration du routeur R3 ? Donner sa table de
routage.
Exercice 2 : « Link state routing » (Dijkstra)
On considère le reseau de toplogie suivante :

Question : Determiner le plus court chemin entre F et A en illustrant le


fonctionnement de l'algorithme de Dijkstra vu en cours.

Exercice 3 : Tables de routage incohérentes de façon transitoire (algorithme des


vecteurs de distance)
Soit le reseau compose des noeuds A, B, C et des liaisons VAB (de poids 3), VAC (de
poids 8) et VBC (de poids 2).
Question : La liaison VAB est rompue juste après que B a envoye son vecteur de
distance. Que se passe-t-il ? Pour expliquer le phenomène, vous procederez < la
mise < jour des tables de routage des nœuds du reseau selon la sequence des
echanges de vecteurs suivante :
1. B envoie son vecteur de distance < C ;
2. B voit que VAB est rompue ;
3. C re?oit le vecteur de distance de B et envoie son nouveau vecteur < B ;
4. B re?oit le vecteur de distance de C.
TD7 réseaux (Détection d'erreurs)
Objectif pédagogique : savoir comment on calcule un CRC. Comprendre la notion de
détection dans une rafale.

Exercice 1 : Contrôle de redondance cyclique (CRC)

Question 1 : Rappeler le principe de la soustraction en binaire. Calculer en binaire


45-28.

Question 2 : Rappeler le principe de la division en binaire. Calculer en binaire


1159/11.

Question 3 : On souhaite transmettre l'information suivante : 11100111. Prenons


comme polynôme générateur x4+x2+x. Calculer le CRC à rajouter à cette suite de bits.

Question 4 : Décoder la séquence transmise (travail du récepteur) en faisant


l'hypothèse que le 3ème bit d'information est erroné.

Exercice 2 : codage et violation de parité

Une suite de bits à transmettre est découpée en n paquets de m bits. A chaque


paquet, l’émetteur calcule un bit de parité. Il transmet alors la suite de bits, suivie des n
bits de parité. Le récepteur vérifie que les parités reçues sont en accord avec les parités
qu’il recalcule.

Question 5 : Une rafale d’erreur de longueur k est une suite de k bits dont certains
peuvent éventuellement être erronés. Quelle est la taille de la plus longue rafale
détectable ?

Question 6 : Quelle est la valeur maximum x telle que le protocole détecte toute
rafale de taille x ?

Question 7 : Dans le codage Manchester, un 0 est transformé en 01 et un 1 en 10.


Il y a donc un 0 et un 1 dans chaque symbole. Traiter l'exemple de la transmission de la
séquence 10011010 en prenant m=4. Indiquer comment le protocole se simplifie si on
suppose que la suite de bits a fait l’objet d’un codage Manchester avant transmission.
TD8 réseaux (Accès partagé)
Objectif pédagogique : revoir « slotted »-Aloha. Etudier le problème de la station cachée.

Exercice 1 : « slotted »-Aloha


On rappelle le protocole très simple :
– Si vous avez une donnée à envoyer, attendre la prochaine tranche et envoyez la.
– Si le message se trouve en collision avec une autre transmission, renvoyez la plus
tard, après une attente de durée aléatoire.
Il peut être mis en œuvre sur chaque station par la fonction suivante :
Binary_backoff(attempt)
begin
if attempt=1 then maxbackoff:=2
else maxbackoff:=maxbackoff*2
delay:=int(random*maxbackoff)
wait(delay*slot_time)
end
« attempt » est le rang de la tentative courante de retransmission. « int » rend la fonction
entière, « random » une valeur entre 0 et 1.

Question 1 : Soit T la durée d'une tranche (« slot_time »). On considère un canal


partagé par 3 stations A, B et C. Les messages sont de taille fixe et demandent 2T pour
pouvoir être complètement transmis. La collision éventuelle est détectée pendant la
tranche courante. Considérons le scénario suivant : à l'instant t=0, toutes les stations
veulent transmettre un message. Pour ce scénario, on considère que random rend
successivement les valeurs suivantes pour chaque station : A (1/2, 1/4, 2/3, 5/8), B (1/4,
3/4, 1/5, 1/2) et C (3/4, 1/6, 1/4, 1/3). Complétez le tableau suivant en indiquant pour
chaque tranche son état (A, B ou C si transmission correcte du message issu de la station
indiquée, X si transmission en collision, - si la tranche n'est pas utilisée).

0 1 2 3 4 5 6 7 8 9 10

Question 2 : Quel est le taux d'utilisation du canal pendant la période allant du


début à la fin de la transmission de tous les messages ?

Question 3 : Pourquoi a-t-on introduit un tirage aléatoire ? Pourquoi


« maxbackoff » augmente exponentiellement à chaque reprise après collision ?

Question 4 : Que se passe-t-il si une station veut émettre beaucoup plus que les
autres ?
Exercice 2 : Mécanisme de réservation (RTS/CTS), problème de la station cachée en
radio.

La technique d'accès au canal partagé peut être complétée par un mécanisme de


réservation, notamment pour permettre la transmission efficace de trames longues. Le
mécanisme est le suivant :
– Envoi d'une trame RTS (« Request To Send ») entre la station source et la station
destination avant tout envoi de données.
– Toutes les autres stations lisent la durée de réservation indiquée dans le RTS et
vont se taire pendant cette période.
– La station destination répond par un CTS (« Clear To Send »). La station source
émet alors ses données lorsqu'elle a reçu le CTS.

Question 5 : deux stations A et B situées chacune à l'opposé d'une autre station C


ne peuvent pas s'entendre l'une l'autre du fait que la distance entre les deux est trop
grande ou qu'un obstacle les empêche de communiquer entre elles. Pourquoi est-ce un
problème ?

Question 6 : En quoi le mécanisme de réservation permet de réduire le problème ?


TD9 réseaux (Codage de Hamming et modulation)
Objectif pédagogique : introduire le codage auto-correcteur de Hamming, ainsi que la
modulation par phase.

Exercice 1 : codage correcteur de Hamming


Le train de bits à transmettre est divisé en paquets de 4 bits. Un paquet est noté
b1b2b3b4. On ajoute à ce paquet 3 bits redondants r1r2r3 et on transmet la suite de 7 bits
r1r2b1r3b2b3b4. L'astuce est que les bits r1r2r3 sont calculés comme des parités sur
l'ensemble du mot de 7 bits. On considère les bits 3, 5 et 7 pour r1, les bits 3, 6 et 7 pour
r2 et les bits 5, 6,7 pour r3.

Question 1 : On souhaite envoyer le mot 0101. Que transmet-on effectivement ?

Question 2 : Le récepteur recalcule les parités : c1 sur les bits 1, 3, 5 et 7, c2 sur


les bits 2, 3, 6 et 7, c3 sur les bits 4, 5, 6 et 7. On attend 000 si il n'y a pas d'erreurs.
Sinon, c1c2c3 donnent l'indice où se trouve l'erreur. Vérifiez ce fait sur la réception du mot
0110101 pour l'exemple de la question 1.

Question 3 : Le principe se généralise. On a m bits à transmettre, on ajoute n bits


de parité, avec la contrainte m=(2^n-1)-n. Les bits de parité sont positionnés dans les
positions 2^i. La parité est calculée sur les bits ayant un indice correspondant à l'indice du
bit de parité considéré. Soit le mot de Hamming transmis de longueur 15 :
110110111101101. Quels sont les bits de parité ? Quel est le message reçu ? Est-ce que
le message reçu correspond au message transmis ? Quel a été le message transmis ?

Exercice 2 : modulation BPSK


On va illustrer la modulation de phase sur un petit exemple.
Il s'agit de transmettre la séquence de bits S=10110010 en modulant un signal porteur
P(t)=sin(2πt). S peut être vu comme une fonction S(t) définie par S(t)=1 pour 0<=t<1 &
2<=t<4 & 6<=t<7, S(t)=0 sinon. On choisit la phase 0 pour représenter le bit 1 et la phase
π pour le bit 0. Le signal modulé est donc M(t)=sin(2πt+(1-S(t))π)).
Question 4 : On donne P(t), tracer S(t) et M(t).

S(t)

P(t)

M(t)

Question 5 : A la réception du signal, il faut démoduler. C'est-à-dire retrouver S à


partir de M(t). La technique consiste à multiplier M(t) par P(t). En utilisant la formule
trigonométrique sin(a+π)=-sin(a), montrer que le signe de D(t)=M(t)P(t) suffit à caractériser
le bit reçu. Comme illustration, voici l'allure de D(t) sur l'exemple.
D(t)
Question 6 : Comment le récepteur peut calculer en pratique de signe de D(t) sur
une période ?

Question 7 : La même idée peut être étendue en utilisant un nombre de phases


plus grand (une puissance de 2). Regardons avec 4 phases (π/4, 3π/4, 5π/4 et 7π/4).
Avec 4 phases, on peut coder 4 symboles. On considère alors des groupes de 2 bits
(dibits). Chaque dibit va être codé sur une période du signal porteur. Discuter comment le
codage et le décodage pourrait être réalisé.

Vous aimerez peut-être aussi