Semestrální projekt do TPS

QoS: mechanismy front

Úvod

Nyní se dostáváme k části, ve které se budeme zabývat statistickým vyhodnocením konfigurací disciplín front z předchozí kapitoly. Jak už z provedených konfigurací vyplývá, k simulaci provozu jsem používali FTP a HTTP provoz a pro simulaci interaktivního provozu jsme využívali programu SSH.
Pro měření a statistické vyhodnocování provozu na síti existuje spousta programů, bohužel ve velké většině to jsou programy komerční. A proto jsme k našemu měření použili program iptraf, který byl součástí námi použitého operačního systému Debian. V další části se pokusíme o interpretaci naměřených hodnot.

No Queueing

Popis

Nejprve bylo nutné vyzkoušet, jak se síť chová bez jakéhokoli nastavení priorizace paketu. Byl nasimulován provoz pomocí proudu dat z FTP serveru a poté z HTTP serveru, v tomto případě byly naměřené výsledky, podle očekávání, shodné. Vyplývá to z toho, že provoz nebyl omezován a měření bylo prováděno na síti kde nebyl žádný jiný provoz. Měření bylo provedeno pomocí programu iptraf na rozhraní eth1 na směrovači, viz. schematický obrázek sítě z praktické části.


No Queueing
Time(s) 60 120 180 240 300 360 420 480 540
Total(Kbyte) 50087 104058 157414 210057 264276, 317916 372243 425576 479199
Average rates(Kbyte/s) 854,83 887,97 895,51 896,24 902,06 904,29 907,56 907,89 908,70


V tabulce jsou zachyceny naměřené výsledky. Měření bylo prováděno po 60s z toho důvodu, protože to byla nejmenší hodnota pro logování do souboru programu iptraf. Jelikož nedocházelo k žádnému omezení provozu, tak jsme při tomto měření dosáhli maximální přenosové rychlosti dosažitelné na naší síti. Z tabulky je vidět, že tato rychlost se pohybuje někde kolem 900KB/s. V dalších měřeních pak můžeme porovnávat, jak se nám celková přenosová rychlost mění při použití omezování provozu.


Priority Queueing (PRIO)

Popis

Konfigurace routeru byla provedena pomocí scriptu Zdrojový soubor.
Ze Stanice3 (viz.obrázek), která fungovala jako FTP a HTTP server, byl přenášen cca 400MB soubor na Stanici1. Tabulka ukazuje množství dat a průměrnou přenosovou rychlost po 60s. Tabulka je vystup programu IPTraf. V této tabulce jsou opět hodnoty zaznamenávány po 60s jak vidíme celková přenosová rychlost se nijak nezměnila i když byly na použitý interface nakonfigurovány discipliny front. Je to způsobeno tím že celková přenosová rychlost nebyla omezována. Omezení bylo nakonfigurováno pouze u fronty s označením 20: a to na 20Kbit/s.


Priority Queueing
Time 60 120 180 240 300 360 420 480 540
Total(Kbyte) 49839 103778 157109 210903 265114 318997 373139 426853 481464
Average rates(kbyte/s) 854,83 885,57 893,78 899,85 904,92 907,37 909,75 910,62 912,99

Priority Queueing
Time 600 660 720 780 840 900 927
Total(Kbyte) 502719 503650 504588 505547 506491 507430 507731
Average rates(kbyte/s) 857,97 781,42 717,63 663,69 617,43 577,34 560,86


Z tabulky uvedené výše nejsou patrné omezení, kladené na jednotlivé fronty, a proto dále uvádíme tabulku, která je výstupem utility tc, jenž nám umožňuje podrobný výpis přenášených dat přes jednotlivé fronty. Z tohoto výpisu je dále patrné, jak se jednotlivé typy provozu řadí do jednotlivých front. Bylo zjištěno, že provoz typu FTP se řadí do fronty 30:, provoz typu HTTP je řazen do fronty 20: a interaktivní provoz jako SSH do fronty 10:.

Nejdříve jsme pořídili výpis z front hned po konfiguraci, tudíž všechny fronty jsou zatím nevyužity.


# tc -s qdisc ls dev eth1
qdisc sfq 30: quantum 1514b
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

qdisc tbf 20: rate 20Kbit burst 1599b lat 66.8ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

qdisc sfq 10: quantum 1514b
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

qdisc prio 1: bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)


Dále je uveden výstup programu tc při souběžném využití FTP, HTTP a SSH. Využitím SSH je myšleno že došlo k přihlášení na vzdálený počítač, a poté docházelo k běžné uživatelské činnosti. Z výpisu je vidět, jak jsou pakety řazeny do jednotlivých front. Dále je z tohoto výpisu patrné, že nám u fronty označené 20: docházelo k zahazování paketů a že fronta přesahovala svůj limit, toto je způsobeno omezením, které bylo na tuto frontu nakonfigurováno.


# tc -s qdisc ls dev eth1
qdisc sfq 30: quantum 1514b
Sent 499994599 bytes 330254 pkts (dropped 0, overlimits 0)

qdisc tbf 20: rate 20Kbit burst 1599b lat 66.8ms
Sent 9178010 bytes 6727 pkts (dropped 2039, overlimits 73363)

qdisc sfq 10: quantum 1514b
Sent 18028 bytes 65 pkts (dropped 0, overlimits 0)

qdisc prio 1: bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
Sent 509190637 bytes 337046 pkts (dropped 2039, overlimits 0)


Class-Based Queuing (CBQ)

Konfigurace routeru byla provedena pomocí scriptu Zdrojový soubor.
Provoz byl opět simulován pomocí FTP a HTTP přenosů. Nyní opět uvádíme tabulku, která nám ukazuje souhrnné informace o přenosu. Hodnoty jsou měřeny po 60s, měřili jsme celkový počet Kbytů, které prošly přes daný interface a průměrnou celkovou přenosovou rychlost. Z této tabulky je vidět, že oproti předchozímu příkladu, kdy nebyla kladena žádná omezení na celkovou přenosovou rychlost, je v tomto případě již třída root omezována, což se výrazně projevilo na přenosové rychlosti.

Class-Based Queuing
Time 60 120 180 240 300 360 420
Total(Kbyte) 6845 13758 20670 27582 34502 41411 48322
Average rates(kbyte/s) 114,08 114,65 114,83 114,92 115,01 115,03 115,05

Class-Based Queuing
Time 480 540 600 660 716
Total(Kbyte) 55234 62145 69052 69410 69552
Average rates(kbyte/s) 115,07 115,08 115,09 105,17 97,14


Dále jsou uvedeny tři výstupy programu tc, tyto záznamy byly pořízeny v průběhu přenosu dat tak, jak ukazuje tabulka výše. Hodnoty jsou zachyceny vždy ve dvou tabulkách pro každý výstup. V první tabulce jsou znázorněny qdisc a v druhé class, obojí na eth1.


Výstup č. 1:
V prvním výstupu je vidět, jak se nám projevuje omezení kladené na root qdisc označenou 1: - dostala se přes svůj povolený limit. Z výpisu je patrné, jak se nám projevily omezení, které jsme nakonfigurovali na dvě třídy - 1:3, 1:4.

[qdisc eth1]
qdisc Kbytes dropped overlimits
sfq 40: 2797 0 0
sfq 30: 4590 0 0
cbq 1: 7533 0 8163
[class - eth1]
class Kbytes dropped overlimits
cbq 1: 7402 0 0
cbq 1:1 7258 0 0
cbq 1:3 4525 0 8664
cbq 1:4 2732 0 8965


Výstup č. 2:
Druhý výpis je velice podobný tomu prvnímu a neprojevují se nám zde žádné nové skutečnosti. Jen se nám zvětšil počet bytů, které prošly přes jednotlivé fronty.

[qdisc eth1]
qdisc Kbytes dropped overlimits
sfq 40: 21385 0 0
sfq 30: 35478 0 0
cbq 1: 57012 0 63637
[class - eth1]
class Kbytes dropped overlimits
cbq 1: 56884 0 0
cbq 1:1 56734 0 0
cbq 1:3 35413 0 67256
cbq 1:4 25918 0 70244


Výstup č. 3:
Až ze třetího výpisu je jasné, že u třídy 1:4 nám dochází k vypůjčení od rodičovské třídy. Dále je vidět, že se nám výpůjčka přenesla i na rodičovskou třídu 1:1.

[qdisc eth1]
qdisc Kbytes dropped overlimits
sfq 40: 25918 0 0
sfq 30: 42467 0 0
cbq 1: 68535 0 76566
[class - eth1]
class Kbytes dropped overlimits borrowed
cbq 1: 68535 0 0 0
cbq 1:1 68385 0 0 228
cbq 1:3 42467 0 80562 0
cbq 1:4 25918 0 84589 228

Hierarchical Token Bucket (HTB)

Konfigurace routeru byla provedena pomocí scriptu Zdrojový soubor.
V tomto případě byl testován obousměrný provoz a to ze 192.168.1.2 na 158.196.135, docházelo k přenosu dat pomocí HTTP a v opačném směru k přenosu dat pomoci FTP. Nyní je uvedena tabulka průběhu přenosu dat:

V první tabulce opět vidíme celkovou průměrnou přenosovou rychlost. Je vidět jak byla celková přenosová rychlost omezena.

Hierarchical Token Bucket
Time 60 115
Total(Kbyte) 37330 49205
Average rates(kbyte/s) 77,77 53,48



Z následujících dvou výpisů je patrné, jak dochází k půjčování přenosového pásma. U jedné třídy je hodnota borrowed a u druhé je hodnota lended. Obě tyto hodnoty jsou stejné.
Výstup č. 1:

[qdisc eth1]
qdisc Kbytes dropped overlimits
sfq 20: 0.6 0 0
sfq 10: 2779 0 0
cbq 1: 3651 0 8495
[class - eth1]
class Kbytes dropped overlimits borrowed lended
htb 1:1 3610 0 0 0 11963
htb 1:10 2779 0 0 0 1859
htb 1:20 0,6 0 0 0 8
htb 1:30 871 0 0 11963 1540


Výstup č. 2:


[qdisc eth1]
qdisc Kbytes dropped overlimits
sfq 20: 15 0 0
sfq 10: 4171 0 0
cbq 1: 5103 0 10644
[class - eth1]
class Kbytes dropped overlimits borrowed lended
htb 1:1 5066 0 0 0 12896
htb 1:10 4173 0 0 0 2803
htb 1:20 15 0 0 0 22
htb 1:30 930 0 0 12896 1540