Pasivní měření rychlosti á la Turris

Na Internetu existuje mnoho stránek a nástrojů, pomocí kterých si můžete změřit rychlost svého připojení do Internetu. Zde může být ale nevýhodou fakt, že pro přesné změření rychlosti potřebujete server, který má alespoň stejně rychlou přípojku, jako je rychlost té Vaší – a to se týká i všech prvků na trase od Vás na vzdálený server. Ačkoliv to v dnešní době nebude ve většině případů problémem, je tuto skutečnost potřeba brát v potaz, zejména pokud máte nadstandardně rychlou přípojku (tedy řádově stovky Mbit/s).

V rámci projektu Turris jsme se rozhodli použít odlišnou metodiku, která měření rychlosti provádí pasivně. Pasivní měření má tu výhodu, že je možné provádět ho bez jakéhokoliv zbytečného vytěžování linky – data získáváme „zadarmo“ během sledování provozu, který přes router přirozeně protéká – tímto způsobem také dostáváme informaci, jakou rychlost připojení router skutečně využívá, na rozdíl od „aktivních“ metod, které informují o tom, jakou rychlost router může teoreticky využívat. K pasivnímu měření rychlosti se na routeru Turris potom používá jedna z mnoha sond našeho nástroje ucollect. Tato sonda se jmenuje Bandwidth.

Metodika měření pluginem Bandwidth

Sonda se dívá na všechny pakety, které prochází přes WAN rozhraní z Internetu a do Internetu a sčítá jejich velikosti. Tím dostaneme pro specifikovanou časovou jednotku počet přenesených bytů a je možné spočítat aktuální přenosovou rychlost. Implementace této jednoduché metody je poměrně přímočará, v praxi je třeba pouze najít vhodné parametry měření.

Hlavním parametrem, který ovlivňuje výsledky měření, je délka časového úseku použitého pro výpočet aktuální rychlosti, který bude poskytovat reálné dílčí hodnoty. Sonda Bandwidth proto pracuje s časovými okénky různých délek, která nám umožnila analyzovat problém a nalézt nejvhodnější hodnotu.

Problém, který vzniká s okénky delších časových úseků, spočívá v nutnosti, aby se linka saturovala na celou délku okénka. Pokud použijeme časové okénko velikosti 10 sekund a linku se podaří stažením malého souboru vytížit pouze po dobu 5 sekund, tak přepočtem na základní jednotku, což jsou byty za sekundu, dostaneme pouze poloviční hodnotu. Z tohoto pohledu tedy potřebujeme co nejkratší okénka.

S velmi krátkými okénky ovšem nastává jiný problém. Síťové prvky mají obvykle buffery, ve kterých uchovávají několik paketů a pokud dojde na síti ke krátkému zdržení, tak se tyto buffery vyprázdní najednou. Proto se může stát, že se v daném časovém okénku objeví více paketů než odpovídá reálné propustnosti linky.

Realizace pasivního měření tedy znamenala nalézt velikost okénka, pro které nebudeme dostávat zkreslená data a přitom bude šance, že k saturování linky dojde i za relativně běžného provozu a ne pouze v případech, kdy uživatel stahuje velká data. Nakonec jsme empirickou metodou určili nejvhodnější velikost okénka na dvě sekundy. Z hodnoty těchto dvousekundových okének se průběžně vypočítává pětiminutové maximum, které se následně pomocí nástroje Ucollect odešle na server.

Na serveru se tedy ukládá informace, jaké bylo maximum dosažené rychlosti během pětiminutových úseků. A protože je mnoho přípojek agregovaných, není zajímavé jen globální maximum z těchto hodnot, ale právě maxima za některé časové jednotky – např.  za hodinu, kdy je možné pozorovat, jak rychlost Vašeho připojení ovlivňuje aktivita ostatních uživatelů podle denní doby.

 

Zpracování a zobrazování dat

Nasbíraná data jsou jednou denně, společně s ostatními statistikami z routerů, zkopírována do databáze pro stránky www.turris.cz. V tomto okamžiku dochází k několika důležitým operacím. V první řadě jsou hodnoty agregovány do oken o velikosti jedné hodiny, a to tak, že se pro danou hodinu vždy ukládá maximální hodnota dosažené rychlosti.

V druhé řadě jsou vypočítány hodnoty některých významných kvantilů pro každou hodinu. Konkrétně se jedná o 1., 25., 50., 75. a 99. percentil. V případě 50. percentilu (mediánu) daná hodnota tedy rozděluje uživatele na dvě stejně velké skupiny, kde první má rychlost přípojky vyšší a druhá nižší. To tedy znamená, že pokud by veškerá konektivita do Internetu byla v danou hodinu limitována rychlostí, která odpovídá mediánu, 50 % uživatelů by toto omezení nepostřehlo. Medián (a kvantily obecně) jsme volili proto, že je na rozdíl od průměru méně náchylný na vliv extrémních hodnot, v našem případě několika málo uživatelů s extrémně rychlým připojením.

Tato statistická data jsou uchovávána po neomezenou dobu a je tak možné sledovat trendy využívání pásma internetového připojení – grafy naleznete na stránce se souhrnem globálních statistik na webu projektu Turris.

Pozornější čtenáři si na denní statistice možná všimnou faktu, že mezi druhou a třetí hodinou ranní dochází k významnějšímu využití linky u drtivé většiny routerů, které se na grafu projevuje jako „zub“ v čase 2:00 (tedy mezi druhou a třetí hodinou ranní). Tato „anomálie“ má prostý důvod – v čase 2:33 probíhá pravidelná aktualizace seznamu balíčků, které je možné v Turrisu instalovat prostřednictvím správce balíků opkg.

V rozhraní s uživatelskými statistikami je poté možné sledovat trendy využití šířky pásma pro upload a download jednoho konkrétního routeru – každá hodnota pak znamená, jaké maximální rychlosti bylo za poslední hodinu (resp. den nebo měsíc) dosaženo. Tato informace potom uživateli může osvětlit, do jaké míry rychlost svého připojení využívá nebo zda připojení opravdu dosahuje rychlosti uváděné poskytovatelem, přičemž, jak vyplývá z povahy metodiky, maximální rychlost přípojky bude v grafu viditelná v tom případě, že byla linka během zobrazovaného časového úseku alespoň na dvě sekundy plně vytížena. V grafu se zároveň zobrazují statistické hodnoty z globálních statistik – lze tedy snadno porovnat, jak si na tom Vaše připojení vede v porovnání s ostatními.

Pokud potom máte připojení do Internetu, které je nějakým způsobem limitováno, může Váš graf rychlosti připojení vypadat například takto, jako u routeru, který je připojen prostřednictvím 8 Mbit ADSL linky:

8 Mbit ADSL bandwidth

Charakteristickou vlastností standardních metod měření rychlosti je také to, že ačkoliv máte rychlé připojení, jeho maximální rychlost využíváte možná jen zanedbatelnou část času, který na Internetu trávíte, a to už buď z toho důvodu, že připojení dostatečně nevyužíváte, nebo kvůli tomu, co bylo uvedeno výše – Vámi navštěvované servery nemají „dostatečně tlusté trubky“, kterými by mohla téct data k Vám. Do budoucna tedy v rámci pasivního měření připravujeme rozšíření těchto statistik o informaci, jaký podíl času router využíval pásmo o určité rychlosti – ze současných dat je sice možné určit, jaká byla využita maximální rychlost, ale již ne to, jak dlouho touto rychlostí klient stahoval či nahrával data do Internetu. I v současném stavu se ale jedná o statistiku, která pravděpodobně nemá v českém Internetu obdoby.

Robin Obůrka a Jan Čermák

Autor:

Komentáře (3)

  1. S. Kaleta říká:

    Dobrý den,
    používám router Turris (viz níže), ale nedaří s mi pasivní měření rozchodit.Nebyl by někde k dispozici návod?

    Děkuji.
    S. Kaleta

    Verze firmwaru: OpenWrt turris 14.07 / LuCI 39a5f33635f2558ac0f459103ad80bcad2d2dd83 Branch (0.12+git-15.092.31318-39a5f33)
    Verze jádra: 3.10.49-1dcf043c772053ee39cecddc9cff3577-9

    • Jan Čermák říká:

      Dobrý den,

      zprovoznění pasivního měření by nemělo vyžadovat žádné úsilí – součástí aplikace uCollect je plugin, který měření obstarává a odesílá výsledky na server. S jednodenním odstupem (resp. k aktualizaci dochází jednou denně) se pak zobrazují v profilu routeru na portálu http://www.turris.cz.

      Pokud jsem jen Váš problém nepochopil správně, napište nám prosím na tech.support@turris.cz, podívali bychom se, co je špatně.

  2. S. Kaleta říká:

    Aha, a já to hledal přímo v administraci routeru. Tím se to vysvětluje. Díky :-)
    SK

Zanechte komentář