Razvoj zonda za mjerenje brzine interneta

Razvoj zonda za mjerenje brzine interneta
Dobar dan svim korisnicima Habre.

Stalno čitam članke na Habréu o razvoju ove ili one funkcionalnosti na Malinki. Odlučio sam da ovdje podijelim svoj rad.

prapovijest

Radim za kompaniju koja pruža usluge kablovske televizije i pristupa internetu. I, kao što se dešava u takvim kompanijama, povremeno čujem pritužbe na neusklađenost tarifnog plana sa onim što je navedeno u ugovoru. Ili se korisnik žali na malu brzinu „preko kabla“, zatim na visoke pingove određenih servisa, ponekad i na potpuno odsustvo interneta u određeno doba dana. Često takve pritužbe završe u grupi zahtjeva, na osnovu kojih neko od zaposlenika odlazi „na lice mjesta“ sa ispravnim laptopom, na kojem se vrše sva mjerenja. I često se ispostavi da je sve u redu sa brzinom. A mala brzina je zapravo na mobilnom telefonu, preko wi-fija, na balkonu. Pa, ili nešto slično.

Nažalost, nije moguće otići do pretplatnika, na primjer, u 21:37, kada ima najniže brzine. Uostalom, radno vrijeme zaposlenih je ograničeno. Zamjena rutera nema efekta, jer... Frekvencijski opseg za wi-fi u našoj zemlji je užasno pretrpan.

Za referencu — državni provajder u Republici Bjelorusiji prisilno uključuje wi-fi na svim uređajima koji su dati na korištenje i emituje ByFly SSID sa svakog uređaja. Čak i ako pretplatnik nema Internet uslugu, već samo kućni telefon. To je urađeno radi dodatne prodaje. Kod ovog operatera možete kupiti karticu na kiosku, povezati se na bilo koju tačku pod nazivom ByFly i unosom podataka sa kartice dobiti internet usluge. S obzirom na skoro 100% pokrivenost gradova i značajnu pokrivenost privatnog sektora i ruralnih područja, pronalaženje priključne tačke nije problem.

Posmatranja naših eksternih komunikacijskih kanala pokazuju da postoji određena rezerva propusnog opsega. A pretplatnici ne troše ukupno dostupne kanale, čak ni tokom špica. Veoma smo ozbiljni u vezi ovoga. Upotreba različitih servisa i različitih servera za mjerenje brzine dovela je do zanimljivih rezultata. Ispostavilo se da nisu sve usluge podjednako korisne... Pogotovo uveče. I ne treba im definitivno vjerovati. Mnogi operateri iste Ookla mreže nemaju široke komunikacijske kanale ili rade jedan uz drugi. To znači da je navečer često gotovo nemoguće dobiti pošten rezultat. Da, i autoputevi su grešni. Na primjer, pokušaji mjerenja brzine u Japanu pokazuju izuzetno katastrofalne rezultate...

Primarna odluka

Razvoj zonda za mjerenje brzine interneta
Fotografija je samo u ilustrativne svrhe.

Postavljena su dva servera za kontrolu brzine. Prvi je LibreSpeed, drugi - Test brzine od OOKLA. Upoređen je učinak obje usluge. Na kraju krajeva, odlučili smo da stanemo u Ookla jer... do 90% pretplatnika koristi ovu uslugu.

Zatim su napisana uputstva za korisnike i zaposlene kako da mere brzine unutar i van mreže. One. Kada test počne, standardno se mjeri brzina unutar mreže. Server se nalazi na našem glavnom dijelu, a Ookla rješenje po defaultu bira server najbliži pretplatniku. Na taj način provjeravamo rad vlastite mreže za prijenos podataka.

Za mjerenje brzine unutar zemlje (imamo zasebnu mrežu za telekom operatere, koja objedinjuje sve operatere i glavne data centre unutar zemlje), potrebno je odabrati provajdera unutar zemlje i izvršiti drugo mjerenje. Empirijski smo identificirali nekoliko servera koji daju manje ili više stabilne rezultate u bilo koje doba dana i naveli ih prema preporukama u uputama.

Pa, slične akcije za vanjske kanale komunikacije. Pronašli smo velike operatere sa velikim kanalima na speedtest serverima i napisali ih u preporukama (izvinite “Moskva - Rostelecom” i “Riga – Baltcom”, ali ću preporučiti ove čvorove da dobijem adekvatne brojeve. Lično sam dobio do ~870 megabita od ovi serveri u vršnim satima).

Zašto, pitate, takve poteškoće? Sve je vrlo jednostavno. Dobili smo prilično zgodan alat koji nam u sposobnim rukama omogućava da utvrdimo da li postoje problemi u našim mrežama, da li postoje problemi u republičkoj mreži ili postoje problemi sa kičmom. Ako se osoba požali na malu brzinu preuzimanja sa nekog servisa, možemo izmjeriti brzinu pretplatničkog kanala i onda je uporediti sa onim što prima od servisa. I razumno je pokazati da pošteno dodjeljujemo kanal naveden u ugovoru. Možemo objasniti i moguće razloge za takvu razliku u brzinama.

Sekundarno rješenje

Pitanje pada brzine uveče/tokom dana ostaje otvoreno. Kako učiniti istu stvar a da niste kod pretplatnika? Uzmite jeftinu single-board karticu sa gigabitnom mrežom i napravite od nje takozvanu sondu. Uređaj mora mjeriti brzinu duž kabla u datom vremenskom intervalu. Rješenje bi trebalo biti otvorenog koda, što je moguće nepretencioznije, sa pogodnim admin panelom za pregled rezultata mjerenja. Uređaj treba da bude što jeftiniji kako bi se lako mogao zamijeniti i bez straha ostaviti kod pretplatnika n dana.

Реализация

Razvoj zonda za mjerenje brzine interneta

Za osnovu je uzet BananaPI (model M1). Za ovaj izbor zapravo postoje dva razloga.

  1. Gigabitni port.
  2. Samo je ležao u noćnom ormariću.

Zatim je odlučeno da se koristi python klijent speedtest-cli za Speedtest by Ookla servis kao backend za mjerenje brzine. biblioteka Pythonping za mjerenje brzine pinga. Pa i php za admin panel. Za lakšu percepciju koristio sam Bootstrap.

Zbog činjenice da Raspberryjevi resursi nisu fleksibilni, korišćena je kombinacija nginx+php-fpm+sqlite3. Htio sam odustati od MySQL-a zbog njegove težine i suvišnosti. Predviđam pitanje u vezi Iperfa. Morao je biti napušten zbog nemogućnosti korištenja u drugim pravcima osim u lokalnim.

U početku sam pratio put mnogih na ovoj stranici. Modificiran speedtest-cli klijent. Ali onda je, nakon malo razmišljanja, odustao od ove ideje. Napisao sam svoj worker koji koristi mogućnosti originalnog klijenta.

Da bih analizirao pingove, jednostavno sam napisao poseban obrađivač. Iz mjerenja uzimamo prosječnu vrijednost. Alat za ping može rukovati i IP adresom i imenom domene.

Nisam postigao asinhroni rad. U ovom slučaju to nije posebno potrebno.

Admin panel za ocjenjivanje rezultata pokazao se prilično minimalističkim.

Razvoj zonda za mjerenje brzine internetaFig. Glavni administratorski prozor sa rezultatima testiranja

Razvoj zonda za mjerenje brzine internetaFig. Testiranje postavki

Razvoj zonda za mjerenje brzine interneta
Fig. Ažurirajte listu Speedtest servera

To je sve. Ideja je realizovana na kolenima, u slobodno vreme. Terenska testiranja još nisu počela. Ali planiramo lansirati prototipove u bliskoj budućnosti. Mogu ga koristiti i tamošnji provajderi i klijenti provajdera. Niko vam ne smeta da merite kod kuće danonoćno. Jedina stvar koju trebate zapamtiti je da ako aktivno surfate internetom ili preuzimate nešto, tada će mjerenje biti niže od stvarnog. Dakle, idealno bi bilo da sondu ostavite na mreži kao jedinog potrošača saobraćaja.

PS: molim vas nemojte me kritikovati zbog kvaliteta koda. Samouk sam bez iskustva. Izvorni kod za GitHub. Kritika je prihvaćena.

izvor: www.habr.com

Dodajte komentar