Základní kvalitativní parametry sítě (3) - throughput (propustnost)

Luboš Klaška Tutoriály 15. prosince 2006

Ve třetí části článku o základních kvalitativních parametrech sítě a jejich zjištění se podíváme na omezení ICMP Echo (Pingu) pro měření sítě, ukážeme si také zajímavý způsob, jak k problému přistupuje program NetDoppler. A vystačí si jenom s ICMP pakety a bez spolupráce se vzdáleným uzlem.

Omezení ICMP Echo (Pingu) pro měření sítě

Méně odborně zdatní uživatelé většinou předpokládají, že pomocí programu ICMP Echo, tedy Ping, o kterém byla řeč v prvním dílu tohoto článku, mohou celkem spolehlivě otestovat síťové spojení. Tento předpoklad je samozřejmě nesprávný. Ping je nástroj hlavně pro otestování, zdali uzel vůbec žije či ne. Pro měření zpoždění, jeho rozptylu a průchodnosti dat je ve své jednoduché podobě docela nevhodný.

Pakety ICMP echo mají ve směrovačích i koncových uzlech často nastavenou nižší prioritu zpracování vůči ostatním druhům komunikace a to se může projevit na výsledcích měření. Navíc ping používá malé pakety, takže i zde dochází ke značnému rozdílu při jejich průchodu sítí vůči velkým TCP nebo UDP paketům. Datové pakety mají rozdílnou velikost, různé priority, a různé protokoly se v síti chovají také jinak. Charakterizovat chování sítě na základě ICMP Echa (Pingu) tedy dá pravděpodobně velmi nesprávné výsledky.

Jak tedy stanovit síťovou propustnost a provést potřebná měření? Že je to docela obtížný úkol, vyplývá z výše uvedeného. Pro jaký druh provozu (aplikace) a protokolu nás datová propustnost zajímá? Velikost celkového teoretického maximálního přenosu dat přenosovým kanálem nebo jen uživatelských dat (tzn. bez režie přenosových protokolů atd.)? A jen její průměrné hodnoty, nebo i dosahované maximální a minimální hodnoty a časové charakteristiky? Přesnější určení propustnosti sítě tedy vyžaduje provést měření reálné komunikace nebo simulované komunikace se stejnými protokoly a dynamikou provozu.

Pro praktické použití se používá často metoda přenosu dostatečně velkého datového souboru, kdy podělením velikosti souboru v KB dobou přenosu v sekundách dostaneme požadovanou hodnotu propustnosti pro uživatelská data. Takto stanovená hodnota propustnosti („throughput“) se v angličtině označuje „goodput“ a označuje množství přenesených dat mezi aplikačními vrstvami dvou uzlů bez započítání ztracených a opakovaně vysílaných paketů, režie přenosových protokolů atd. Logicky je tedy menší než teoretická hodnota, vyplývající z šířky pásma přenosového kanálu (v bit/sec). Někdy podstatně, až o desítky procent, jako např. u Ethernetu či bezdrátových sítí.

Měření simulovaného přenosu dat uvedeným způsobem vyžaduje spolupráci obou uzlů při vysílání a přijímání dat. Každý se již určitě setkal se dvěma případy: Prvním jsou testy rychlosti připojení k internetu, kdy testovací přenosy souborů mezi serverem a klientem jsou iniciovány skripty na straně web serverů. Druhým jsou běžné přenosy mezi uživatelskými stanicemi v síti při sdílení souborů. Ale co když nemáme přístup ke vzdálenému uzlu, abychom na něj instalovali a spouštěli potřebné skripty či programy a nemůžeme ani na/z něj nic kopírovat?

Pro účely měření existuje spousta profesionálního i open source software, zde bych chtěl představit zajímavý způsob, jak k problému přistupuje program NetDoppler. A vystačí si jenom s ICMP pakety a bez spolupráce se vzdáleným uzlem.

Throughput v programu NetDoppler

Zvláštností testování v programu NetDoppler je kombinované použití jednotlivých paketů i jejich proudu (tzv. packet stream). Základní v podstatě velmi jednoduchou ideou, jak simulovat přenos většího objemu dat, čili proudu paketů je, že budeme na cíl posílat ICMP pakety s délkou větší než MTU daného síťového spoje (Maximum Transmission Unit, identifikuje maximální velikost paketu, kterou je jednotlivý síťový uzel schopen přenášet). Pokud dorazí na směrovač paket o velikosti větší, než kterou je schopen přenést (> MTU), musí zajistit tzv. fragmentaci, neboli rozdělení paketu na menší části (=MTU). Fragmenty pak procházejí přes síť jako samostatné datagramy (případně se cestou mohou dále dělit na uzlu s MTU ještě menším). Cílový uzel pak musí zajistit opětovné složení paketu, neboli defragmentaci. Aby byl koncový uzel schopen fragmenty složit do originálního datagramu, musí být fragmenty příslušně označeny. Toto označování se provádí v příslušných polích IP hlavičky.

Cílový uzel může zaslat odpověď zdroji (ICMP Echo Reply) až přijme celý tento velký Ping paket. A právě z rozdílu dosažené latency pro jednotlivý paket (o velikost rovné právě MTU) a pro jejich souvislý proud (reprezentovaný velkým paketem, jak jsme si právě ukázali) a z rozdílu časů pro jeho první a poslední fragment spočítá program datovou propustnost síťové cesty mezi těmito dvěma uzly. Je logické, že čím větší bude souvislý proud paketů, tím bude výsledek přesnější (bližší reálné hodnotě). Jestli se podíváte na komunikací programu snifferem (síťovým protokolovým analyzátorem), opravdu uvidíte, jak v zadaných intervalech posílá dávky jednoho krátkého a jednoho dlouhého paketu.

Zkušenější síťaře asi vzápětí napadne jedno velké omezení programu – co uzly, které mají nastavené omezení pro odpovědi na ICMP pakety – buď akceptují pakety jen minimální velikosti nebo mají odpovídání vypnuté vůbec. V takovém případě jsme opravdu v koncích. Většina směrovačů a veřejně dostupných serverů na Internetu má z pochopitelných důvodů tyto služby omezeny, naštěstí většina síťových serverů i desktopů tímto z našeho pohledu limitujícím omezením netrpí.

Throughput test programu NetDoppler

Throughput test programu NetDoppler
(klikněte pro zobrazení ve větším rozlišení)

Test programu NetDoppler na měření propustností je možné spustit jednorázově (Quick Test) na zadanou cílovou adresu nebo tzv. Long Term Test. Po levé straně se zobrazují ve stromové struktuře všechny uzly, kterými paket prošel na své cestě k zadanému cíli. Uprostřed je vidět graf časového průběhu testu, v možnostech (Options) je možné nastavit interval a počet opakování (0 = trvale), velikost posílaného IP datagramu, parametry zobrazení atd. Ve spodní části je pak histogram (rozložení četnosti), v pravé části tabulka naměřených hodnot.

A jaká je přesnost tohoto měření? Podle mého porovnání s jinými metodami překvapivě velká, samozřejmě s největší možnou velikostí testovacího paketu (až 32 KB). Ještě upozornění na závěr - měření zpoždění i průchodnosti může být samozřejmě nepříznivě ovlivněno dalšími aktivitami na síti.

Program NetDoppler stahujte na této adrese (po nezbytné registraci).


Vytisknout


    Komentáře k článku

  • 11.12.2012 v 10:55PavelProgram není již na daném odkazu ke stažení
    Je program NetDoppler stále vyvíjen a je stále někde ke stažení?? Děkuju za odpověd.
  • 16.12.2012 v 16:40Luboš KlaškaNetDoppler ke stažení
    Společnost Wildpackets tento program již nepodporuje. Našel jsem jej ve svém archivu. Po jistou dobu bude ke stažení zde. Heslo k archivu je red.shift.fish.
  • 19.9.2014 v 22:04kudaProfesionální i open source software :)
    Dobry den, pri nahodne navsteve Vasich stranek jsem se mj. docetl .... Pro účely měření existuje spousta profesionálního i open source software ....., Vase deleni software na open source a profesionalni je myslim hodne nestastne. Jako sitar byste mohl vedet, ze drtiva vetsina OS na routerech a switchich (zapomenme alespon na chvili proprietarni IOS) je postavena na nejake verzi Linuxu ... , DNS servery, Spam/Virus Gatewaye, Db servery ... open source (odpoved proc tomu tak je Vam s radosti poskytne jakykoliv internetovy vyhledavac), takze mi dovolte malou poznamku, ze s Vasim profesionalnim software se v sitove komunikaci nedostanete dale, nez za prvni switch. Jinak ale diky za clanek/clanky!
  • 23.9.2014 v 15:25Luboš KlaškaRE: Profesionální i open source
    Dobrý den, v článku hovořím o software pro monitorování sítí, ne o OS routerů a switchů, ty bych zde opravdu nepletl. Zde je v mnoha případech velký rozdíl mezi možnostmi open source a profesionálního software, např. pro monitoring paketů open source Ethereal a OmniPeek + sítové sondy od WildPackets a další.
  • 1.2.2017 v 11:19SRNetDoppler nebo jiny free?
    Nemá někdo ještě program NetDoppler na disku? Co používáte v nové době? :-)
  • 1.2.2017 v 12:07SRNetDoppler nebo jiny free?
    Nemá někdo ještě program NetDoppler na disku? Co používáte v nové době? :-)

Vložte Váš komentář k tomuto článku

Máte dotaz? Neváhejte nám napsat.

Pole označená hvězdičkou (*) jsou povinná


Reklama v příspěvcích není dovolena, dodržujte etiketu. Redakce Světa sítí si vyhrazuje právo smazat příspěvěk, který v diskuzi použije vulgární slova a společensky neúnosné výrazy. Délka příspěvku je limitována 1500 znaky.