td1 réseaux (les protocoles applicatifs de l'internet)

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.

Upload: danglien

Post on 05-Jan-2017

277 views

Category:

Documents


6 download

TRANSCRIPT

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

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.

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

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.

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.

established

!SYN ?FIN !FIN

established

?SYN ?FIN !FIN

A B

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

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 :

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

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 alorsThreshold CongWin/2;CongWin 1;

sinon si un accusé tripliqué est reçu alorsThreshold CongWin/2;CongWin Threshold;

sinon si CongWin Threshold alors// phase de démarrage lentCongWin 2*CongWin;

sinon// phase d'évitement de congestionCongWin CongWin + 1;

fin sijusqu'à 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é ?

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

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.

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

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.

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

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)

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

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 ?

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

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'h�te 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'h�te A donnee ci-dessus, deduire sa table de routage.

Question 3 : Quelle est la configuration du routeur R3 ? Donner sa table de routage.

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

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.

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

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.

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

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 ?

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

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 ?

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

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))π)).

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

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)

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

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é.