Sviluppu di una zona per a misurazione di a velocità di Internet

Sviluppu di una zona per a misurazione di a velocità di Internet
Bona sera à tutti l'utilizatori di Habra.

Leghje constantemente articuli nantu à Habré nantu à u sviluppu di questa o quella funziunalità in Malinka. Aghju decisu di sparte u mo travagliu quì.

Pristoria

U travagliu per una cumpagnia chì furnisce servizii di televisione per cable è accessu à Internet. E, cum'è succede in tali cumpagnie, aghju intesu periodicamente lagnanza nantu à l'incongruenza di u pianu di tariffu cù ciò chì hè dichjaratu in u cuntrattu. Sia l'utilizatore si lamenta di a bassa velocità "via cable", poi di l'alti pings di certi servizii, qualchì volta di l'absenza cumpleta di Internet in certi tempi di u ghjornu. Spessu, tali lagnanza finiscinu in una piscina di dumande, basatu nantu à quale unu di l'impiegati va "in situ" cù un laptop di travagliu, nantu à quale tutte e misure sò pigliate. E, spessu, si trova chì tuttu hè bè cù a vitezza. È a bassa velocità hè in realtà in un telefuninu, via wi-fi, in u balcone. Bè, o qualcosa di simile.

Sfurtunatamente, ùn hè micca pussibule di andà à un abbonatu, per esempiu, à 21:37, quandu hà a più bassa velocità. Dopu tuttu, l'ora di travagliu di l'impiegati hè limitata. A rimpiazzà u router ùn hà micca effettu, perchè ... A gamma di frequenze per u wi-fi in u nostru paese hè sfurtunatamenti.

Per riferimentu - u fornitore statale in a Republica di Bielorussia accende a forza di Wi-Fi in tutti i dispositi disposti per l'usu è trasmette u ByFly SSID da ogni dispusitivu. Ancu s'è l'abbonatu ùn hà micca serviziu Internet, ma solu un telefunu di casa. Questu hè statu fattu per vendite supplementari. Pudete cumprà una carta da questu operatore in un kiosk, cunnette à qualsiasi puntu chjamatu ByFly è, inserendu i dati da a carta, riceve servizii Internet. Data a cobertura quasi 100% di e cità è una cobertura significativa di u settore privatu è di e zone rurale, truvà un puntu di cunnessione ùn hè micca un prublema.

Osservazioni di i nostri canali di cumunicazione esterni mostranu chì ci hè una riserva di larghezza di banda. È l'abbonati ùn cunsumanu micca i canali dispunibili in tuttu, ancu durante l'ora di punta. Semu assai serii annantu à questu. L'usu di diversi servizii è diversi servitori di misurazione di velocità hà purtatu à risultati interessanti. Ci hè chì micca tutti i servizii sò ugualmente utili ... In particulare in a sera. È ùn avete micca definitu di fiducia in elli. Parechji operatori di a listessa rete Ookla ùn anu micca canali di cumunicazione largu, o travaglianu back to back. Questu significa chì à a sera hè spessu quasi impussibile di ottene un risultatu onestu. Iè, è l'autostrade sò peccati. Per esempiu, i tentativi di misurà a velocità in Giappone mostranu risultati estremamente disastrosi ...

Decisione primaria

Sviluppu di una zona per a misurazione di a velocità di Internet
A foto hè solu per scopi illustrativi.

Dui servitori di cuntrollu di velocità sò stati implementati. U primu hè LibreSpeed, u sicondu - Speedtest da OOKLA. U rendiment di i dui servizii hè statu paragunatu. Dopu tuttu, avemu decisu di piantà à Ookla perchè... finu à u 90% di l'abbonati utilizanu stu serviziu.

In seguitu, l'istruzzioni sò state scritte per l'utilizatori è l'impiegati nantu à cumu misurà a velocità in a reta è fora. Quelli. Quandu a prova principia, per automaticamente a velocità in a reta hè misurata. U servitore hè situatu à u nostru capu, è a suluzione Ookla per automaticamente selezziunate u servitore più vicinu à l'abbonatu. In questu modu, cuntrollemu u funziunamentu di a nostra propria reta di trasmissione di dati.

Per misurà a velocità in u paese (avemu una reta separata per l'operatori di telecomunicazioni, chì unisce tutti l'operatori è i principali centri di dati in u paese), avete bisognu di selezziunà un fornitore in u paese è piglià una seconda misurazione. Avemu identificatu empiricamente parechji servitori chì dà risultati più o menu stabili in ogni mumentu di u ghjornu è l'anu listatu cum'è ricumandemu in l'istruzzioni.

Ebbè, azzioni simili per i canali di cumunicazione esterni. Avemu trovu grandi operatori cù grandi canali nantu à i servitori di speedtest è l'hà scrittu in cunsiglii (scusate "Moskva - Rostelecom" è "Riga - Baltcom", ma ricumanderaghju questi nodi per ottene numeri adatti. In modu persunale, aghju ricevutu finu à ~ 870 megabits da questi servitori durante l'ore di punta).

Perchè, dumandate, tali difficultà? Tuttu hè assai simplice. Avemu ricivutu un strumentu abbastanza còmuda chì, in mani capaci, ci permette di determinà s'ellu ci sò prublemi in i nostri rete, s'ellu ci sò prublemi in a reta republicana, o s'ellu ci sò prublemi cù a spina. Se una persona si lamenta di a bassa velocità di scaricamentu da qualchì serviziu, pudemu misurà a velocità di u canali di l'abbonatu è poi paragunà cù ciò chì riceve da u serviziu. È hè ragiunate per dimustrà chì avemu onestamente attribuite u canali specificati in u cuntrattu. Pudemu ancu spiegà e pussibuli ragiuni per una tale differenza di velocità.

Soluzione secundaria

A quistione di a calata di velocità in a sera / durante u ghjornu ferma aperta. Cumu fà a stessa cosa senza esse in casa di l'abbonatu? Pigliate una carta à bordu unicu cù una reta di gigabit è fate una cusì chjamata sonda. U dispusitivu deve piglià misure di velocità longu u cable à un intervallu di tempu determinatu. A suluzione deve esse open source, cum'è senza pretensione pussibule, cù un pannellu amministratore cunvene per vede i risultati di misurazione. U dispusitivu duveria esse u più prezzu pussibule in modu chì pò esse facilmente rimpiazzatu è lasciatu cù l'abbonatu per n ghjorni senza teme.

Реализация

Sviluppu di una zona per a misurazione di a velocità di Internet

BananaPI (mudellu M1) hè stata presa cum'è una basa. Ci hè veramente dui motivi per sta scelta.

  1. Port Gigabit.
  2. Era solu stendu in a tavula di notte.

Dopu, hè statu decisu di utilizà u cliente python speedtest-cli per u serviziu Speedtest da Ookla cum'è backend per a misurazione di a velocità. biblioteca Pythonping per misurà a velocità di ping. Ebbè, è php per u panel admin. Per facilità di percepzioni aghju utilizatu bootstrap.

A causa di u fattu chì i risorse di Raspberry ùn sò micca flessibili, a cumminazzioni nginx + php-fpm + sqlite3 hè stata utilizata. Vuliu rinunzià à MySQL per via di a so pesante è a redundanza. Aghju anticipatu una dumanda riguardanti Iperf. Duvia esse abbandunatu per via di l'impossibilità di usà in direzzione altru ch'è quelli lucali.

In principiu, aghju seguitu a strada di parechji in stu situ. Modificatu u cliente speedtest-cli. Ma dopu, dopu avè pensatu un pocu, abbandunò sta idea. Aghju scrittu u mo propiu travagliadore chì usa e capacità di u cliente originale.

Per analizà i pings, aghju scrittu solu un gestore separatu. Pigliemu u valore mediu da a misurazione. U strumentu ping pò trattà sia l'indirizzu IP è u nome di duminiu.

Ùn aghju micca u travagliu asincronu. Ùn hè micca particularmente necessariu in questu casu.

U pannellu di amministrazione per a valutazione di i risultati hè stata abbastanza minimalista.

Sviluppu di una zona per a misurazione di a velocità di InternetFig. Finestra di amministrazione principale cù risultati di teste

Sviluppu di una zona per a misurazione di a velocità di InternetFig. Paràmetri di prova

Sviluppu di una zona per a misurazione di a velocità di Internet
Fig. Aghjurnate a lista di i servitori Speedtest

Eccu tuttu. L'idea hè stata implementata nantu à i mo ghjinochji, in u mo tempu liberu. I testi di campu ùn sò ancu cuminciati. Ma avemu pensatu à lancià prototipi in un futuru vicinu. Pò esse usatu sia da i fornituri è da i clienti di i fornituri. Nimu ùn vi preoccupa di piglià misure in casa intornu à u ghjornu. L'unicu ciò chì duvete ricurdà hè chì, se navigate attivamente in Internet o scaricate qualcosa, allora a misurazione serà più bassa di quella vera. Allora, idealmente, avete bisognu di lascià a sonda in a reta cum'è l'unicu cunsumadore di trafficu.

PS: per piacè ùn mi criticate micca per a qualità di u codice. Sò autodidatta senza sperienza. codice fonte per GitHub. A critica hè accettata.

Source: www.habr.com

Add a comment