Développement d'un zond pour mesurer la vitesse d'Internet

Développement d'un zond pour mesurer la vitesse d'Internet
Bonjour Ă  tous les utilisateurs de Habra.

Je lis constamment des articles sur Habré sur le développement de telle ou telle fonctionnalité sur Malinka. J'ai décidé de partager mon travail ici.

Préhistoire

Je travaille pour une entreprise qui fournit des services de tĂ©lĂ©vision par cĂąble et d'accĂšs Ă  Internet. Et, comme cela arrive dans de telles entreprises, j'entends pĂ©riodiquement des plaintes concernant l'incohĂ©rence du plan tarifaire avec ce qui est indiquĂ© dans le contrat. Soit l'utilisateur se plaint du faible dĂ©bit « via cĂąble », soit des pings Ă©levĂ©s de certains services, parfois de l'absence totale d'Internet Ă  certaines heures de la journĂ©e. Souvent, de telles plaintes aboutissent Ă  un pool de demandes, sur la base desquelles l'un des employĂ©s se rend « sur place » avec un ordinateur portable en Ă©tat de marche, sur lequel toutes les mesures sont prises. Et, souvent, il s’avĂšre que tout va bien avec la vitesse. Et le faible dĂ©bit se fait effectivement sur un tĂ©lĂ©phone portable, via wi-fi, sur le balcon. Eh bien, ou quelque chose de similaire.

Malheureusement, il n'est pas possible de se rendre chez un abonné, par exemple, à 21h37, alors qu'il a les débits les plus bas. AprÚs tout, les horaires de travail des salariés sont limités. Remplacer le routeur n'a aucun effet, car... La gamme de fréquences du Wi-Fi dans notre pays est terriblement encombrée.

Pour la petite histoire — le fournisseur d'État de la RĂ©publique de BiĂ©lorussie active de force le Wi-Fi sur tous les appareils fournis et diffuse le SSID ByFly Ă  partir de chaque appareil. MĂȘme si l'abonnĂ© ne dispose pas de service Internet, mais seulement d'un tĂ©lĂ©phone rĂ©sidentiel. Cela a Ă©tĂ© fait pour des ventes supplĂ©mentaires. Vous pouvez acheter une carte auprĂšs de cet opĂ©rateur dans un kiosque, vous connecter Ă  n'importe quel point nommĂ© ByFly et, en saisissant les donnĂ©es de la carte, recevoir des services Internet. Compte tenu d’une couverture proche de 100 % des villes et d’une couverture importante du secteur privĂ© et des zones rurales, trouver un point de connexion ne pose pas de problĂšme.

Les observations de nos canaux de communication externes montrent qu'il existe une rĂ©serve de bande passante donnĂ©e. Et les abonnĂ©s ne consomment pas la totalitĂ© des chaĂźnes disponibles, mĂȘme aux heures de pointe. Nous sommes trĂšs sĂ©rieux Ă  ce sujet. L’utilisation de diffĂ©rents services et de diffĂ©rents serveurs de mesure de vitesse a conduit Ă  des rĂ©sultats intĂ©ressants. Il s'avĂšre que tous les services ne sont pas Ă©galement utiles... Surtout le soir. Et il ne faut absolument pas leur faire confiance. De nombreux opĂ©rateurs du mĂȘme rĂ©seau Ookla ne disposent pas de canaux de communication larges ou travaillent en parallĂšle. Cela signifie que le soir, il est souvent presque impossible d'obtenir un rĂ©sultat honnĂȘte. Oui, et les autoroutes s'avĂšrent ĂȘtre un pĂ©chĂ©. Par exemple, les tentatives de mesure de la vitesse au Japon donnent des rĂ©sultats extrĂȘmement dĂ©sastreux...

Décision principale

Développement d'un zond pour mesurer la vitesse d'Internet
La photo est Ă  titre indicatif.

Deux serveurs de contrĂŽle de vitesse ont Ă©tĂ© dĂ©ployĂ©s. Le premier est LibreSpeed, la deuxiĂšme - Test de vitesse d'OOKLA. Les performances des deux services ont Ă©tĂ© comparĂ©es. AprĂšs tout, nous avons dĂ©cidĂ© de nous arrĂȘter Ă  Ookla parce que... jusqu'Ă  90 % des abonnĂ©s utilisent ce service.

Ensuite, des instructions ont Ă©tĂ© rĂ©digĂ©es Ă  l'intention des utilisateurs et des employĂ©s sur la maniĂšre de mesurer les vitesses Ă  l'intĂ©rieur et Ă  l'extĂ©rieur du rĂ©seau. Ceux. Lorsque le test dĂ©marre, par dĂ©faut la vitesse au sein du rĂ©seau est mesurĂ©e. Le serveur est situĂ© au niveau de notre tĂȘte de rĂ©seau, et la solution Ookla sĂ©lectionne par dĂ©faut le serveur le plus proche de l'abonnĂ©. Nous vĂ©rifions ainsi le fonctionnement de notre propre rĂ©seau de transmission de donnĂ©es.

Pour mesurer la vitesse dans le pays (nous disposons d'un réseau distinct pour les opérateurs de télécommunications, qui regroupe tous les opérateurs et les principaux centres de données du pays), vous devez sélectionner un fournisseur dans le pays et effectuer une deuxiÚme mesure. Nous avons identifié empiriquement plusieurs serveurs qui donnent des résultats plus ou moins stables à tout moment de la journée et les avons répertoriés comme recommandé dans la notice.

Eh bien, des actions similaires pour les canaux de communication externes. Nous avons trouvĂ© de grands opĂ©rateurs avec de grandes chaĂźnes sur les serveurs speedtest et les avons Ă©crits dans des recommandations (dĂ©solĂ© "Moskva - Rostelecom" et "Riga - Baltcom", mais je recommanderai ces nƓuds pour obtenir des chiffres adĂ©quats. Personnellement, j'ai reçu jusqu'Ă  ~ 870 mĂ©gabits de ces serveurs aux heures de pointe).

Pourquoi, demandez-vous, de telles difficultĂ©s ? Tout est trĂšs simple. Nous avons reçu un outil assez pratique qui, entre des mains compĂ©tentes, nous permet de dĂ©terminer s'il y a des problĂšmes dans nos rĂ©seaux, s'il y a des problĂšmes dans le rĂ©seau rĂ©publicain ou s'il y a des problĂšmes avec le backbone. Si une personne se plaint d’une faible vitesse de tĂ©lĂ©chargement d’un service, nous pouvons mesurer la vitesse de la chaĂźne de l’abonnĂ© puis la comparer avec ce qu’elle reçoit du service. Et il est raisonnable de montrer que nous attribuons honnĂȘtement le canal spĂ©cifiĂ© dans le contrat. On peut Ă©galement expliquer les raisons possibles d’une telle diffĂ©rence de vitesses.

Solution secondaire

La question de la baisse de vitesse le soir/le jour reste ouverte. Comment faire la mĂȘme chose sans ĂȘtre au domicile de l’abonnĂ© ? Prenez une carte monocarte bon marchĂ© avec un rĂ©seau Gigabit et faites-en une soi-disant sonde. L'appareil doit effectuer des mesures de vitesse le long du cĂąble Ă  un intervalle de temps donnĂ©. La solution doit ĂȘtre open source, aussi simple que possible, avec un panneau d'administration pratique pour visualiser les rĂ©sultats des mesures. L'appareil doit ĂȘtre le moins cher possible afin qu'il puisse ĂȘtre facilement remplacĂ© et laissĂ© Ă  l'abonnĂ© pendant n jours sans crainte.

exécution

Développement d'un zond pour mesurer la vitesse d'Internet

BananaPI (modÚle M1) a été pris comme base. Il y a en réalité deux raisons à ce choix.

  1. Port Gigabit.
  2. Il traĂźnait juste sur la table de nuit.

Ensuite, il a été décidé d'utiliser le client python speedtest-cli pour le service Speedtest by Ookla comme backend pour mesurer la vitesse. BibliothÚque Pythonping pour mesurer la vitesse de ping. Eh bien, et php pour le panneau d'administration. Pour faciliter la perception, j'ai utilisé bootstrap.

En raison du fait que les ressources de Raspberry ne sont pas flexibles, la combinaison nginx+php-fpm+sqlite3 a Ă©tĂ© utilisĂ©e. Je voulais abandonner MySQL Ă  cause de sa lourdeur et de sa redondance. J'anticipe une question concernant Iperf. Il a dĂ» ĂȘtre abandonnĂ© en raison de l'impossibilitĂ© de l'utiliser dans des directions autres que locales.

Au départ, j'ai suivi le chemin de beaucoup sur ce site. Modification du client speedtest-cli. Mais ensuite, aprÚs avoir réfléchi un peu, il a abandonné cette idée. J'ai écrit mon propre travailleur qui utilise les capacités du client d'origine.

Pour analyser les pings, j'ai simplement écrit un gestionnaire distinct. Nous prenons la valeur moyenne de la mesure. L'outil ping peut gérer à la fois l'adresse IP et le nom de domaine.

Je n'ai pas rĂ©alisĂ© de travail asynchrone. Ce n’est pas particuliĂšrement nĂ©cessaire dans ce cas.

Le panneau d'administration permettant d'évaluer les résultats s'est avéré assez minimaliste.

DĂ©veloppement d'un zond pour mesurer la vitesse d'InternetFig. FenĂȘtre d'administration principale avec les rĂ©sultats des tests

Développement d'un zond pour mesurer la vitesse d'InternetFig. ParamÚtres de test

Développement d'un zond pour mesurer la vitesse d'Internet
Fig. Mettre Ă  jour la liste des serveurs Speedtest

C'est tout. L'idĂ©e a Ă©tĂ© mise en Ɠuvre Ă  genoux, pendant mon temps libre. Les tests sur le terrain n'ont pas encore commencĂ©. Mais nous prĂ©voyons de lancer des prototypes dans un avenir proche. Il peut ĂȘtre utilisĂ© aussi bien par les prestataires que par les clients des prestataires. Personne ne vous dĂ©range pour prendre des mesures Ă  la maison XNUMX heures sur XNUMX. La seule chose dont vous devez vous rappeler est que si vous surfez activement sur Internet ou tĂ©lĂ©chargez quelque chose, la mesure sera infĂ©rieure Ă  la mesure rĂ©elle. Donc, idĂ©alement, vous devez laisser la sonde sur le rĂ©seau en tant que seul consommateur de trafic.

PS : s'il vous plaßt, ne me critiquez pas pour la qualité du code. Je suis autodidacte sans expérience. Code source pour GitHub. La critique est acceptée.

Source: habr.com

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster