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 :
- qdisc HTB : Racine
- class HTB : limitation de trafic à
1Mb/s
- class HTB :
Limitation de trafic à 10kb/s
avec un trafic normal à 10kb/s
- qdisc SFQ :
partage équitable de la bande passante
entre les connexions.
- filter :
le port destination 5000
- class HTB :
Limitation de trafic à 1Mb/s
avec un trafic normal à 200kb/s
- qdisc SFQ :
partage équitable de la bande passante
entre les connexions.
- filter :
le port destination 5001
- class HTB :
Limitation de trafic à 1Mb/s
avec un trafic normal à 700kb/s
- qdisc SFQ :
partage équitable de la bande passante
entre les connexions.
- filter :
le port destination 5002
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 5000 | port 5001 | port 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 :
- Les commandes tapées pour créer l'arbre.
- Le tableau des débits.
- Votre comparaison SFQ/pfifo_fast
et comment vous avez mis en évidence la différence
de fonctionnement.
Vous devez donner toute les informations pour que
l'expérience soit reproductible.
- Lancer une session interactive SSH et analysez
les paquets avec ethereal.
Comparez avec une session non interactive.
Comment filtrer ?
À envoyer par mail à exco@@liris.univ-lyon1.fr
Thierry EXCOFFIER
Last modified: Wed Feb 1 14:33:02 CET 2006