Ngembangkeun zond pikeun ngukur kagancangan Internét

Ngembangkeun zond pikeun ngukur kagancangan Internét
Wilujeng siang ka sadaya pangguna Habra.

Kuring teras-terasan maca tulisan ngeunaan Habré ngeunaan pamekaran fungsionalitas ieu atanapi éta dina Malinka. Kuring mutuskeun pikeun ngabagi karya kuring di dieu.

prasajarah

Abdi damel di perusahaan anu nyayogikeun televisi kabel sareng jasa aksés Internét. Sareng, sapertos anu kajantenan di perusahaan sapertos kitu, kuring périodik ngadangu keluhan ngeunaan inconsistency tina rencana tarif sareng anu dinyatakeun dina kontrak. Boh pamaké complains ngeunaan speed low "via kabel", lajeng ngeunaan pings luhur jasa tangtu, sakapeung ngeunaan henteuna lengkep Internet dina waktu nu tangtu dina sapoe. Seringna, keluhan sapertos kitu ditungtungan ku sakumpulan pamundut, anu memicu kunjungan ka situs ku salah sahiji karyawan anu nganggo laptop anu damel, dimana sadaya pangukuran dicandak. Jeung, mindeng, tétéla yén sagalana geus rupa jeung speed. Jeung speed low sabenerna dina handphone, via wi-fi, dina balkon. Muhun, atawa hal sarupa.

Hanjakal, teu mungkin mun buka palanggan a, contona, dina 21:37, nalika anjeunna boga speeds panghandapna. Barina ogé, jam gawé pagawé diwatesan. Ngaganti router teu boga pangaruh, sabab ... Rentang frékuénsi pikeun wi-fi di nagara urang téh woefully cluttered.

keur catetan — panyadia kaayaan di Républik Bélarus sacara paksa ngahurungkeun wi-fi dina sadaya alat anu disayogikeun pikeun dianggo sareng nyiarkeun ByFly SSID tina unggal alat. Sanajan palanggan teu boga layanan Internet, tapi ngan telepon imah. Hal ieu dilakukeun pikeun penjualan tambahan. Anjeun tiasa mésér kartu ti operator ieu di kios, sambungkeun ka titik mana waé anu dingaranan ByFly sareng, ku ngalebetkeun data tina kartu, nampi jasa Internét. Dibikeun ampir 100% liputan kota sareng sinyalna signifikan tina sektor swasta sareng padésan, milarian titik sambungan henteu janten masalah.

Observasi saluran komunikasi éksternal kami nunjukkeun yén aya cadangan rubakpita anu dipasihkeun. Sareng palanggan henteu ngonsumsi saluran anu sayogi sacara total, bahkan nalika jam sibuk. Kami serius pisan ngeunaan ieu. Pamakéan layanan béda jeung server pangukuran speed béda ngarah ka hasil metot. Tétéla teu kabéh jasa sarua mangpaatna... Utamana dina soré. Sareng anjeun henteu kedah percanten ka aranjeunna. Seueur operator jaringan Ookla anu sami henteu gaduh saluran komunikasi anu lega, atanapi damel deui. Ieu ngandung harti yén dina magrib mindeng ampir teu mungkin pikeun meunangkeun hasil jujur. Leres, sareng jalan tol janten dosa. Salaku conto, usaha pikeun ngukur kagancangan di Jepang nunjukkeun hasil anu parah pisan...

Kaputusan primér

Ngembangkeun zond pikeun ngukur kagancangan Internét
Poto kanggo tujuan ilustrasi wungkul.

Dua server kontrol speed ieu deployed. Anu kahiji nyaéta LibreSpeed, kadua - Speedtest ti OOKLA. Kinerja duanana jasa ieu dibandingkeun. Barina ogé, urang mutuskeun pikeun eureun di Ookla sabab ... nepi ka 90% palanggan ngagunakeun jasa ieu.

Salajengna, paréntah ditulis pikeun pangguna sareng karyawan ngeunaan cara ngukur kecepatan di jero sareng di luar jaringan. Jelema. Nalika tés dimimitian, sacara standar laju dina jaringan diukur. Serverna aya di headend kami, sareng solusi Ookla sacara standar milih server anu paling caket sareng palanggan. Ku cara kieu urang pariksa operasi jaringan pangiriman data urang sorangan.

Pikeun ngukur kagancangan di jero nagara (urang gaduh jaringan anu misah pikeun operator telekomunikasi, anu ngahijikeun sadaya operator sareng pusat data utama di nagara éta), anjeun kedah milih panyadia di nagara éta sareng nyandak pangukuran kadua. Kami sacara émpiris ngaidentipikasi sababaraha server anu masihan hasil langkung atanapi kirang stabil iraha waé dina sapoe sareng parantos didaptarkeun sakumaha anu disarankeun dina petunjuk.

Nya, tindakan anu sami pikeun saluran komunikasi éksternal. Kami mendakan operator ageung sareng saluran ageung dina server panggancangna sareng nyeratna dina rekomendasi (punten "Moskva - Rostelecom" sareng "Riga - Baltcom", tapi kuring bakal nyarankeun titik-titik ieu pikeun nampi nomer anu nyukupan. Pribadi, kuring nampi dugi ka ~ 870 megabits tina server ieu salila jam puncak).

Naha, anjeun naros, kasusah sapertos kitu? Sagalana basajan pisan. Kami nampi alat anu cukup merenah anu, dina panangan anu sanggup, ngamungkinkeun urang pikeun nangtoskeun naha aya masalah dina jaringan kami, naha aya masalah dina jaringan republik, atanapi naha aya masalah sareng tulang tonggong. Upami aya jalma ngawadul ngeunaan laju unduhan anu rendah tina sababaraha jasa, urang tiasa ngukur kagancangan saluran palanggan teras dibandingkeun sareng naon anu ditampi tina jasa éta. Sareng wajar pikeun nunjukkeun yén kami jujur ​​​​alokasi saluran anu dijelaskeun dina kontrak. Urang ogé tiasa ngajelaskeun alesan anu mungkin pikeun bédana laju.

Solusi sékundér

Soal turunna laju peuting/beurang tetep kabuka. Kumaha cara ngalakukeun hal anu sami tanpa aya di bumi palanggan? Candak kartu papan tunggal anu murah sareng jaringan gigabit sareng ngadamel usik anu disebut. Alat kedah ngukur kagancangan sapanjang kabel dina interval waktos anu ditangtukeun. Solusina kedah open source, sakumaha unpretentious sabisa, sareng panel admin anu merenah pikeun ningali hasil pangukuran. alat nu kudu jadi murah sabisa meh bisa gampang diganti tur ditinggalkeun ku palanggan pikeun n poé tanpa sieun.

Реализация

Ngembangkeun zond pikeun ngukur kagancangan Internét

BananaPI (model M1) dicandak salaku dadasar. Sabenerna aya dua alesan pikeun pilihan ieu.

  1. port Gigabit.
  2. Ieu ngan ngagolér dina nightstand.

Salajengna, éta mutuskeun pikeun ngagunakeun klien python speedtest-cli pikeun layanan Speedtest ku Ookla salaku backend pikeun ngukur speed. perpustakaan Pythonping pikeun ngukur laju ping. Nya, sareng php pikeun panel admin. Pikeun betah persépsi I dipaké bootstrap.

Kusabab kanyataan yén sumberdaya Raspberry henteu fleksibel, kombinasi nginx + php-fpm + sqlite3 dianggo. Kuring hayang nyerah MySQL kusabab heaviness sarta redundancy na. Kuring antisipasi patarosan ngeunaan Iperf. Éta kedah ditinggalkeun kusabab teu mungkin ngagunakeun éta dina arah sanés ti anu lokal.

Mimitina kuring nuturkeun jalur seueur dina situs ieu. Ngarobah klien speedtest-cli. Tapi saterusna, sanggeus mikir saeutik, manéhna ninggalkeun gagasan ieu. Kuring nulis pagawe kuring sorangan anu ngagunakeun kamampuhan tina klien aslina.

Pikeun nganalisis ping, kuring ngan ukur nyerat panangan anu misah. Kami nyandak nilai rata-rata tina pangukuran. Alat ping tiasa ngadamel alamat IP sareng nami domain.

Kuring teu ngahontal karya Asynchronous. Ieu teu utamana diperlukeun dina hal ieu.

Panel admin pikeun meunteun hasil tétéla rada minimalis.

Ngembangkeun zond pikeun ngukur kagancangan InternétGbr. Jandéla admin utama kalayan hasil tés

Ngembangkeun zond pikeun ngukur kagancangan InternétGbr. Setélan tés

Ngembangkeun zond pikeun ngukur kagancangan Internét
Gbr. Apdet daptar server Speedtest

Éta hungkul. Ide ieu dilaksanakeun dina tuur kuring, dina waktu luang kuring. Tés lapangan teu acan dimimitian. Tapi kami rencanana pikeun ngajalankeun prototipe dina mangsa nu bakal datang. Éta tiasa dianggo ku panyadia di dinya sareng ku klien panyadia. Teu aya anu ngaganggu anjeun nyandak pangukuran di bumi sakitar jam. Hiji-hijina hal anu anjeun kedah émut nyaéta upami anjeun aktip ngajelajah Internét atanapi ngaunduh hiji hal, maka pangukuranna bakal langkung handap tibatan anu asli. Janten, idéal, anjeun kedah ngantunkeun usik dina jaringan salaku hiji-hijina konsumen lalu lintas.

PS: punten ulah nyempad kuring pikeun kualitas kode. Abdi otodidak tanpa pangalaman. Kode sumber pikeun GitHub. Kritik ditampi.

sumber: www.habr.com

Tambahkeun komentar