TP 2 Quality of Service : tc

Le but de ce TP est d'implémenter des restrictions de flux et aussi de partage en utilisant la commande tc. Les tests seront fait entre deux machines en utilisant mgen. Le flux total sortant de la machine sera limité à 1Mb/s pour que vous ne vous perturbiez pas mutuellement en saturant le commutateur. Documentation en salle réseau : http://192.168.9.9/QOS/QOS.html ou sur internet et une introduction sur le traffic shaping en anglais.

qdisc
Queue Discipline : C'est un algorithme gérant une file d'attente. L'objet qdisc contient le type de l'algorithme et la file d'attente.
class
Class of traffic : C'est la manière dont est géré un traffic. L'objet class contient seulement le type de l'algorithme, il ne contient pas de file d'attente. Quand il a besoin d'un paquet il demande à ses fils.
filter
Paquet filtering : Redirection d'un paquet en sortie vers un qdisc en fonction de tests fait sur le contenu du paquet.
SFQ
Stochastic Fairness Queueing : partage équitable de la bande passante entre les flux de données dans un file d'attente. Comme il y a une file d'attente ceci ne s'applique qu'a un objet de type qdisc
HTB
Hierarchical Token Bucket : Quand on lui demande un paquet (s'il ne limite pas le trafic) il va demander à l'un de ses fils de lui donner un paquet pour le transmettre au niveau du dessus.
rate
Le débit moyen que l'on prévoit pour le flux.
ceil
Le débit maximum (plafond) que l'on prévoit pour le flux.

Contrôle de flux à réaliser

L'arbre de contrôle du flux que vous devez implémenter en utilisant la commande tc est le suivant :

Attention, le filtre ne fait pas vraiment parti de l'arbre, il a été indiqué dans l'arbre afin de simplifier la présentation.

Les files d'attentes de paquets sont sur les feuilles de l'arbre, elles sont gérées par les qdisc.

Quand un paquet doit être envoyé on demande à la racine de l'arbre un paquet à envoyer.

Chaque noeud de l'arbre reçoit une demande de paquet à envoyer de son père et relaie cette demande vers l'un de ces fils en fonction de son algorithme de choix. Ou ne donne pas de paquet s'il veut limiter le trafic.

Attention, le parent du filtre est dans le cas de HTB le qdisc racine. Et l'endroit ou en envoie les paquets est indiqué par classid. Les paquets non filtrés sont envoyés au classid indiqué par le paramètre defaut de la racine.

Expérimentations

Expérimentez avec mgen en essayant de saturer les différents types de trafic séparément ou ensemble. Quand vous envoyez plusieurs flux simultanés, utilisez plusieurs processus MGEN en parallèles.
port 5000port 5001port 5002
généréenvoyégénéréenvoyégénéréenvoyé
1Mb/s     
  1Mb/s   
    1Mb/s 
1Mb/s 1Mb/s   
  1Mb/s 1Mb/s 
1Mb/s   1Mb/s 
1Mb/s 1Mb/s 1Mb/s 

Remplacez un des SFQ par un pfifo_fast faites une expérience montrant ce que cela change. Vous utiliserez ethereal pour analyser le trafic.

Compte rendu

Il doit contenir sous forme de texte simple :

À envoyer par mail à exco@@liris.univ-lyon1.fr


Thierry EXCOFFIER
Last modified: Wed Feb 1 14:33:02 CET 2006