Pagbuo ng isang zond para sa pagsukat ng bilis ng Internet

Pagbuo ng isang zond para sa pagsukat ng bilis ng Internet
Magandang hapon sa lahat ng gumagamit ng Habra.

Patuloy akong nagbabasa ng mga artikulo sa HabrΓ© tungkol sa pagbuo ng ito o ang pag-andar na iyon sa Malinka. Nagpasya akong ibahagi ang aking trabaho dito.

prehistory

Nagtatrabaho ako sa isang kumpanyang nagbibigay ng cable television at mga serbisyo sa internet access. At, tulad ng nangyayari sa mga naturang kumpanya, pana-panahon akong nakakarinig ng mga reklamo tungkol sa hindi pagkakapare-pareho ng plano ng taripa sa kung ano ang nakasaad sa kontrata. Alinman ang gumagamit ay nagreklamo tungkol sa mababang bilis "sa pamamagitan ng cable", pagkatapos ay tungkol sa mataas na ping ng ilang mga serbisyo, kung minsan tungkol sa kumpletong kawalan ng Internet sa ilang mga oras ng araw. Kadalasan, ang mga naturang reklamo ay nauuwi sa isang pool ng mga kahilingan, batay sa kung saan ang isa sa mga empleyado ay "on site" na may gumaganang laptop, kung saan ang lahat ng mga sukat ay kinuha. At, madalas, lumalabas na ang lahat ay maayos sa bilis. At ang mababang bilis ay talagang nasa isang mobile phone, sa pamamagitan ng wi-fi, sa balkonahe. Well, o isang bagay na katulad.

Sa kasamaang palad, hindi posible na pumunta sa isang subscriber, halimbawa, sa 21:37, kapag siya ay may pinakamababang bilis. Kung tutuusin, limitado ang oras ng pagtatrabaho ng mga empleyado. Ang pagpapalit ng router ay walang epekto, dahil... Ang hanay ng frequency para sa wi-fi sa ating bansa ay kalat-kalat.

Para sa the record β€” ang tagapagbigay ng estado sa Republika ng Belarus ay puwersahang i-on ang wi-fi sa lahat ng mga device na ibinigay para sa paggamit at i-broadcast ang ByFly SSID mula sa bawat device. Kahit na ang subscriber ay walang serbisyo sa Internet, ngunit isang telepono lamang sa bahay. Ginawa ito para sa karagdagang mga benta. Maaari kang bumili ng card mula sa operator na ito sa isang kiosk, kumonekta sa anumang puntong pinangalanang ByFly at, sa pamamagitan ng pagpasok ng data mula sa card, makatanggap ng mga serbisyo sa Internet. Dahil sa halos 100% na saklaw ng mga lungsod at makabuluhang saklaw ng pribadong sektor at mga rural na lugar, ang paghahanap ng punto ng koneksyon ay hindi isang problema.

Ang mga obserbasyon sa aming mga panlabas na channel ng komunikasyon ay nagpapakita na mayroong ibinigay na reserbang bandwidth. At ang mga subscriber ay hindi kumukonsumo ng mga magagamit na channel sa kabuuan, kahit na sa oras ng pagmamadali. Seryoso kami dito. Ang paggamit ng iba't ibang mga serbisyo at iba't ibang mga server ng pagsukat ng bilis ay humantong sa mga kawili-wiling resulta. Lumalabas na hindi lahat ng serbisyo ay pantay na kapaki-pakinabang... Lalo na sa gabi. At hindi ka dapat magtiwala sa kanila. Maraming mga operator ng parehong network ng Ookla ay walang malawak na mga channel ng komunikasyon, o gumagana nang pabalik-balik. Nangangahulugan ito na sa gabi ay madalas na halos imposible na makakuha ng isang matapat na resulta. Oo, at ang mga lansangan ay naging makasalanan. Halimbawa, ang mga pagtatangka na sukatin ang bilis sa Japan ay nagpapakita ng lubhang nakapipinsalang mga resulta...

Pangunahing desisyon

Pagbuo ng isang zond para sa pagsukat ng bilis ng Internet
Ang larawan ay para sa mga layuning panglarawan lamang.

Dalawang speed control server ang na-deploy. Ang una ay LibreSpeed, ang ikalawa - Speedtest mula sa OOKLA. Ang pagganap ng parehong mga serbisyo ay inihambing. Pagkatapos ng lahat, nagpasya kaming huminto sa Ookla dahil... hanggang 90% ng mga subscriber ang gumagamit ng serbisyong ito.

Susunod, isinulat ang mga tagubilin para sa mga user at empleyado kung paano sukatin ang mga bilis sa loob at labas ng network. Yung. Kapag nagsimula ang pagsubok, bilang default ang bilis sa loob ng network ay sinusukat. Ang server ay matatagpuan sa aming headend, at ang Ookla solution bilang default ay pinipili ang server na pinakamalapit sa subscriber. Sa ganitong paraan sinusuri namin ang pagpapatakbo ng sarili naming network ng paghahatid ng data.

Para sukatin ang bilis sa loob ng bansa (mayroon kaming hiwalay na network para sa mga operator ng telecom, na pinag-iisa ang lahat ng operator at pangunahing data center sa loob ng bansa), kailangan mong pumili ng provider sa loob ng bansa at magsagawa ng pangalawang pagsukat. Kami ay empirikal na natukoy ang ilang mga server na nagbibigay ng higit pa o hindi gaanong matatag na mga resulta sa anumang oras ng araw at inilista ang mga ito bilang inirerekomenda sa mga tagubilin.

Well, katulad na mga aksyon para sa mga panlabas na channel ng komunikasyon. Nakakita kami ng malalaking operator na may malalaking channel sa mga pinakamabilis na server at isinulat ang mga ito sa mga rekomendasyon (paumanhin "Moskva - Rostelecom" at "Riga - Baltcom", ngunit irerekomenda ko ang mga node na ito upang makakuha ng sapat na mga numero. Sa personal, nakatanggap ako ng hanggang ~870 megabits mula sa mga server na ito sa mga oras ng peak).

Bakit, itatanong mo, ang gayong mga paghihirap? Napakasimple ng lahat. Nakatanggap kami ng medyo maginhawang tool na, sa mga may kakayahang kamay, ay nagbibigay-daan sa amin upang matukoy kung may mga problema sa aming mga network, kung may mga problema sa republican network, o kung may mga problema sa backbone. Kung ang isang tao ay nagreklamo tungkol sa mababang bilis ng pag-download mula sa ilang serbisyo, maaari naming sukatin ang bilis ng channel ng subscriber at pagkatapos ay ihambing ito sa kung ano ang natatanggap niya mula sa serbisyo. At makatuwirang ipakita na tapat naming inilalaan ang channel na tinukoy sa kontrata. Maaari rin naming ipaliwanag ang mga posibleng dahilan para sa gayong pagkakaiba sa bilis.

Pangalawang solusyon

Ang tanong ng pagbaba ng bilis sa gabi/sa araw ay nananatiling bukas. Paano gawin ang parehong bagay nang hindi nasa bahay ng subscriber? Kumuha ng murang single-board card na may gigabit network at gumawa ng tinatawag na probe mula dito. Ang aparato ay dapat gumawa ng mga sukat ng bilis kasama ang cable sa isang naibigay na agwat ng oras. Ang solusyon ay dapat na open source, bilang hindi mapagpanggap hangga't maaari, na may maginhawang admin panel para sa pagtingin sa mga resulta ng pagsukat. Ang aparato ay dapat na kasing mura hangga't maaari upang madali itong mapalitan at maiwan sa subscriber sa loob ng n araw nang walang takot.

Pagpapatupad

Pagbuo ng isang zond para sa pagsukat ng bilis ng Internet

Ang BananaPI (modelo M1) ay kinuha bilang batayan. Mayroong talagang dalawang dahilan para sa pagpili na ito.

  1. Gigabit port.
  2. Nakahiga lang ito sa nightstand.

Susunod, napagpasyahan na gamitin ang kliyente ng python speedtest-cli para sa serbisyo ng Speedtest ng Ookla bilang backend para sa pagsukat ng bilis. aklatan Pythonping upang sukatin ang bilis ng ping. Well, at php para sa admin panel. Para sa kadalian ng pang-unawa ginamit ko bootstrap.

Dahil sa ang katunayan na ang mga mapagkukunan ng Raspberry ay hindi nababaluktot, ginamit ang kumbinasyon ng nginx+php-fpm+sqlite3. Nais kong isuko ang MySQL dahil sa kabigatan at kalabisan nito. Inaasahan ko ang isang katanungan tungkol sa Iperf. Kinailangan itong iwanan dahil sa imposibilidad ng paggamit nito sa mga direksyon maliban sa mga lokal.

Sa simula ay sinundan ko ang landas ng marami sa site na ito. Binago ang speedtest-cli client. Ngunit pagkatapos, pagkatapos mag-isip ng kaunti, tinalikuran niya ang ideyang ito. Sumulat ako ng sarili kong manggagawa na gumagamit ng mga kakayahan ng orihinal na kliyente.

Upang pag-aralan ang mga ping, nagsulat lang ako ng isang hiwalay na handler. Kinukuha namin ang average na halaga mula sa pagsukat. Maaaring pangasiwaan ng ping tool ang parehong IP address at domain name.

Hindi ko nakamit ang asynchronous na gawain. Ito ay hindi partikular na kinakailangan sa kasong ito.

Ang admin panel para sa pagsusuri ng mga resulta ay naging medyo minimalistic.

Pagbuo ng isang zond para sa pagsukat ng bilis ng InternetFig. Pangunahing admin window na may mga resulta ng pagsubok

Pagbuo ng isang zond para sa pagsukat ng bilis ng InternetFig. Mga setting ng pagsubok

Pagbuo ng isang zond para sa pagsukat ng bilis ng Internet
Fig. I-update ang listahan ng mga server ng Speedtest

Iyon lang. Ang ideya ay ipinatupad sa aking mga tuhod, sa aking libreng oras. Hindi pa nagsisimula ang mga field test. Ngunit plano naming maglunsad ng mga prototype sa malapit na hinaharap. Maaari itong magamit kapwa ng mga provider doon at ng mga kliyente ng mga provider. Walang nag-iistorbo sa iyo na magsagawa ng mga sukat sa bahay sa buong orasan. Ang tanging bagay na dapat mong tandaan ay kung aktibo kang nag-surf sa Internet o nag-download ng isang bagay, kung gayon ang pagsukat ay magiging mas mababa kaysa sa tunay. Kaya, sa isip, kailangan mong iwanan ang probe sa network bilang ang tanging mamimili ng trapiko.

PS: mangyaring huwag punahin ako para sa kalidad ng code. Self-taught ako na walang karanasan. Source code para sa GitHub. Tinatanggap ang kritisismo.

Pinagmulan: www.habr.com

Magdagdag ng komento