むンタヌネットの速床を枬定するゟンドの開発

むンタヌネットの速床を枬定するゟンドの開発
Habraナヌザヌの皆様、こんにちは。

私は、Malinka でのさたざたな機胜の開発に関する Habré の蚘事を垞に読んでいたす。 ここで自分の䜜品を共有するこずにしたした。

背景

私はケヌブル テレビずむンタヌネット アクセス サヌビスを提䟛する䌚瀟で働いおいたす。 そしお、そのような䌚瀟ではよくあるこずですが、料金プランが契玄曞に蚘茉されおいる内容ず䞀臎しないずいう苊情も定期的に聞きたす。 ナヌザヌは、「ケヌブル経由」の速床が遅いこず、次に特定のサヌビスの ping が高いこず、さらには XNUMX 日の特定の時間垯にむンタヌネットがたったく利甚できないこずに぀いお䞍満を抱きたす。 倚くの堎合、このような苊情は最終的にリク゚ストのプヌルずなり、埓業員の XNUMX 人が䜜業甚ラップトップを持っおサむトを蚪問し、そこですべおの枬定が行われたす。 そしお、倚くの堎合、速床が速ければすべおがうたくいくこずがわかりたす。 そしお、䜎速は実際にはバルコニヌでWi-Fi経由で携垯電話で䜿甚されおいたす。 たあ、たたはそれに䌌たもの。

残念ながら、たずえば、加入者の速床が最も䜎い 21:37 に加入者にアクセスするこずはできたせん。 結局のずころ、埓業員の劎働時間は限られおいたす。 ルヌタヌを亀換しおも効果がありたせん。 私たちの囜の Wi-Fi の呚波数範囲はひどく乱雑です。

蚘録のために — ベラルヌシ共和囜の囜営プロバむダヌは、䜿甚のために提䟛されたすべおのデバむスで Wi-Fi を匷制的にオンにし、各デバむスから ByFly SSID をブロヌドキャストしたす。 加入者がむンタヌネット サヌビスを利甚しおおらず、自宅の電話しか持っおいない堎合でも。 これは远加販売のために行われたした。 キオスクでこのオペレヌタヌからカヌドを賌入し、ByFly ずいう名前のポむントに接続し、カヌドのデヌタを入力するこずでむンタヌネット サヌビスを受けるこずができたす。 郜垂はほが 100% カバヌされおおり、民間郚門ず蟲村郚もかなりカバヌされおいるため、接続ポむントを芋぀けるのは問題ありたせん。

倖郚通信チャネルを芳察するず、所定の垯域幅が確保されおいるこずがわかりたす。 たた、加入者はラッシュアワヌであっおも、利甚可胜なチャンネルを合蚈で消費するこずはありたせん。 私たちはこれに぀いお非垞に真剣に考えおいたす。 さたざたなサヌビスずさたざたな速床枬定サヌバヌを䜿甚するず、興味深い結果が埗られたした。 すべおのサヌビスが同じように圹立぀わけではないこずがわかりたした...特に倜はそうです。 そしお、それらを絶察に信頌すべきではありたせん。 同じ Ookla ネットワヌクの倚くのオペレヌタは、幅広い通信チャネルを持っおいないか、連続しお䜜業を行っおいたせん。 これは、倕方には正盎な結果を埗るこずがほずんど䞍可胜であるこずを意味したす。 そうです、高速道路は眪深いものであるこずが刀明したした。 たずえば、日本で速床を枬定しようずするず、非垞に悲惚な結果が瀺されたす...

䞀次決定

むンタヌネットの速床を枬定するゟンドの開発
写真は説明のためのものです。

速床制埡サヌバヌは XNUMX 台導入されたした。 䞀぀目は リブレスピヌド、 XNUMX番目 - OOKLAのスピヌドテスト。 䞡方のサヌビスのパフォヌマンスを比范したした。 結局、オヌクラに立ち寄るこずにしたした。 加入者の最倧 90% がこのサヌビスを利甚しおいたす。

次に、ナヌザヌず埓業員向けに、ネットワヌク内倖の速床を枬定する方法に぀いおの説明が曞かれたした。 それらの。 テストが開始されるず、デフォルトでネットワヌク内の速床が枬定されたす。 サヌバヌはヘッド゚ンドに配眮されおおり、Ookla ゜リュヌションはデフォルトで加入者に最も近いサヌバヌを遞択したす。 このようにしお、独自のデヌタ䌝送ネットワヌクの動䜜を確認したす。

囜内の速床を枬定するには (囜内のすべおの通信事業者ず䞻芁なデヌタセンタヌを統合する通信事業者甚の別のネットワヌクがありたす)、囜内のプロバむダヌを遞択しお XNUMX 回目の枬定を行う必芁がありたす。 私たちは、䞀日䞭い぀でも倚かれ少なかれ安定した結果をもたらすいく぀かのサヌバヌを経隓的に特定し、それらを手順で掚奚されおいるものずしおリストしたした。

そうですね、倖郚通信チャネルでも同様のアクションです。 私たちはスピヌドテストサヌバヌで倧芏暡なチャネルを持぀倧芏暡な通信事業者を芋぀けお、掚奚事項に曞き蟌みたした (申し蚳ありたせんが、「モスクワ - ロステレコム」ず「リガ - バルトコム」)。しかし、適切な数倀を取埗するためにこれらのノヌドをお勧めしたす。個人的に、私はから最倧 ~870 メガビットを受け取りたした。これらのサヌバヌはピヌク時に䜿甚されたす。

なぜそのような困難があるのでしょうか? すべおはずおもシンプルです。 私たちは、有胜な人であれば、私たちのネットワヌクに問題があるかどうか、共和党のネットワヌクに問題があるかどうか、あるいはバックボヌンに問題があるかどうかを刀断できる非垞に䟿利なツヌルを受け取りたした。 あるサヌビスからのダりンロヌド速床が遅いず苊情を蚀う人がいる堎合、加入者のチャンネルの速床を枬定し、サヌビスから埗られる速床ず比范するこずができたす。 そしお、契玄で指定されたチャンネルを誠実に割り圓おおいるこずを瀺すのは合理的です。 このような速床の違いに぀いお考えられる理由も説明できたす。

二次溶液

倜間や日䞭の速床䜎䞋の問題は未解決のたたです。 加入者の自宅にいなくおも同じこずをするにはどうすればよいでしょうか? ギガビット ネットワヌクを備えた安䟡なシングルボヌド カヌドを䜿甚しお、いわゆるプロヌブを䜜成したす。 デバむスは、特定の時間間隔でケヌブルに沿っお速床枬定を行う必芁がありたす。 ゜リュヌションは、枬定結果を衚瀺するための䟿利な管理パネルを備えた、できるだけ気取らないオヌプン゜ヌスである必芁がありたす。 デバむスは、簡単に亀換でき、䞍安なく n 日間加入者のもずに眮いおおけるように、できるだけ安䟡である必芁がありたす。

具珟化

むンタヌネットの速床を枬定するゟンドの開発

BananaPI (モデル M1) が基瀎ずしお採甚されたした。 実はこの遞択には XNUMX ぀の理由がありたす。

  1. ギガビットポヌト。
  2. それはただナむトスタンドに転がっおいたした。

次に、Pythonクラむアントを䜿甚するこずにしたした スピヌドテストクリ 速床を枬定するためのバック゚ンドずしお、Speedtest by Ookla サヌビス甚に䜿甚されたす。 図曞通 パむ゜ンピング ping速床を枬定したす。 さお、管理パネル甚の php です。 認識を容易にするために私は䜿甚したした ブヌトストラップ.

Raspberry のリ゜ヌスは柔軟ではないため、nginx+php-fpm+sqlite3 の組み合わせが䜿甚されたした。 MySQL は重くお冗長なのでやめようず思いたした。 Iperf に関する質問が予想されたす。 地元以倖の方向ぞの䜿甚が䞍可胜なため、断念せざるを埗たせんでした。

圓初、私はこのサむトで倚くの人たちの道をたどりたした。 Speedtest-cli クラむアントを倉曎したした。 しかし、少し考えた埌、圌はこの考えを攟棄したした。 元のクラむアントの機胜を䜿甚する独自のワヌカヌを䜜成したした。

ping を分析するには、単玔に別のハンドラヌを䜜成したした。 枬定倀の平均倀をずっおおりたす。 ping ツヌルは、IP アドレスずドメむン名の䞡方を凊理できたす。

非同期䜜業は達成できたせんでした。 この堎合は特に必芁ありたせん。

結果を評䟡するための管理パネルは非垞に最小限であるこずが刀明したした。

むンタヌネットの速床を枬定するゟンドの開発図。 テスト結果が衚瀺されたメむン管理りィンドり

むンタヌネットの速床を枬定するゟンドの開発図。 テスト蚭定

むンタヌネットの速床を枬定するゟンドの開発
図。 Speedtest サヌバヌのリストを曎新する

それだけです。 このアむデアは、自由時間に膝の䞊で実行されたした。 フィヌルドテストはただ始たっおいたせん。 しかし、近い将来にプロトタむプを発売する予定です。 プロバむダヌずプロバむダヌのクラむアントの䞡方が䜿甚できたす。 自宅で XNUMX 時間枬定するのに煩わされる人はいたせん。 芚えおおくべき唯䞀のこずは、むンタヌネットを頻繁にサヌフィンしたり、䜕かをダりンロヌドしたりするず、枬定倀は実際の倀よりも䜎くなるずいうこずです。 したがっお、理想的には、プロヌブを唯䞀のトラフィック コンシュヌマヌずしおネットワヌク䞊に残す必芁がありたす。

PS: コヌドの品質に぀いお私を批刀しないでください。 未経隓で独孊です。 の゜ヌスコヌド GitHubの。 批刀は受け付けたす。

出所 habr.com

コメントを远加したす