İnternet hızını ölçmek için bir bölgenin geliştirilmesi

İnternet hızını ölçmek için bir bölgenin geliştirilmesi
Tüm Habra kullanıcılarına iyi günler.

Habré'de Malinka'daki şu veya bu işlevselliğin gelişimi hakkında sürekli makaleler okuyorum. Çalışmalarımı burada paylaşmaya karar verdim.

tarih öncesi

Kablolu televizyon ve internet erişimi hizmetleri sağlayan bir şirkette çalışıyorum. Ve bu tür şirketlerde olduğu gibi, tarife planının sözleşmede belirtilenlerle tutarsızlığına ilişkin periyodik olarak şikayetler duyuyorum. Kullanıcı ya "kablo aracılığıyla" düşük hızdan, sonra belirli hizmetlerin yüksek pinglerinden, bazen de günün belirli saatlerinde İnternet'in tamamen yokluğundan şikayet eder. Çoğu zaman, bu tür şikayetler, çalışanlardan hangisinin tüm ölçümlerin yapıldığı çalışan bir dizüstü bilgisayarla "sahaya" gittiğine bağlı olarak bir talep havuzuyla sonuçlanır. Ve çoğu zaman hızda her şeyin yolunda olduğu ortaya çıkıyor. Ve düşük hız aslında bir cep telefonunda, wi-fi aracılığıyla, balkonda. Peki ya da benzer bir şey.

Maalesef bir abonenin en düşük hızlara sahip olduğu saat 21:37'de yanına gitmek mümkün değil. Sonuçta çalışanların çalışma saatleri sınırlıdır. Yönlendiriciyi değiştirmenin hiçbir etkisi yoktur, çünkü... Ülkemizde wi-fi frekans aralığı ne yazık ki darmadağın.

Kayıt için — Belarus Cumhuriyeti'ndeki devlet sağlayıcısı, kullanım için sağlanan tüm cihazlarda Wi-Fi'yi zorla açar ve her cihazdan ByFly SSID'sini yayınlar. Abonenin İnternet hizmeti olmasa da yalnızca ev telefonu olsa bile. Bu ek satışlar için yapıldı. Kiosk üzerinden bu operatörden kart satın alabilir, ByFly isimli herhangi bir noktaya bağlanabilir ve karttaki verileri girerek internet hizmeti alabilirsiniz. Şehirlerin neredeyse %100 kapsandığı ve özel sektörün ve kırsal alanların önemli ölçüde kapsandığı göz önüne alındığında, bir bağlantı noktası bulmak sorun değil.

Harici iletişim kanallarımızın gözlemleri belirli bir bant genişliği rezervinin olduğunu gösteriyor. Aboneler ise trafiğin yoğun olduğu saatlerde dahi mevcut kanalların toplamını tüketmiyor. Bu konuda çok ciddiyiz. Farklı hizmetlerin ve farklı hız ölçüm sunucularının kullanılması ilginç sonuçlara yol açtı. Görünüşe göre tüm hizmetler eşit derecede faydalı değil... Özellikle akşamları. Ve onlara kesinlikle güvenmemelisiniz. Aynı Ookla ağının birçok operatörünün geniş iletişim kanalları yoktur veya arka arkaya çalışırlar. Bu, akşamları dürüst bir sonuç almanın neredeyse imkansız olduğu anlamına gelir. Evet ve otoyolların günah olduğu ortaya çıktı. Örneğin Japonya'da hız ölçümüne yönelik girişimler son derece feci sonuçlar veriyor...

Birincil karar

İnternet hızını ölçmek için bir bölgenin geliştirilmesi
Fotoğraf açıklama amaçlıdır.

İki hız kontrol sunucusu devreye alındı. Birincisi Serbest Hız, ikinci - OOKLA'dan Speedtest. Her iki hizmetin performansı karşılaştırıldı. Sonuçta Ookla'da durmaya karar verdik çünkü... Abonelerin %90'a kadarı bu hizmeti kullanıyor.

Daha sonra kullanıcılar ve çalışanlar için ağ içindeki ve dışındaki hızların nasıl ölçüleceğine ilişkin talimatlar yazıldı. Onlar. Test başladığında varsayılan olarak ağ içindeki hız ölçülür. Sunucu bizim merkezimizde bulunur ve Ookla çözümü varsayılan olarak aboneye en yakın sunucuyu seçer. Bu şekilde kendi veri iletim ağımızın çalışmasını kontrol ediyoruz.

Ülke içindeki hızı ölçmek için (telekom operatörleri için ülke içindeki tüm operatörleri ve ana veri merkezlerini birleştiren ayrı bir ağımız var), ülke içinden bir sağlayıcı seçip ikinci bir ölçüm yapmanız gerekir. Günün herhangi bir saatinde az çok istikrarlı sonuçlar veren birkaç sunucuyu deneysel olarak belirledik ve bunları talimatlarda önerildiği şekilde listeledik.

Dış iletişim kanalları için de benzer eylemler. En hızlı sunucularda geniş kanallara sahip büyük operatörler bulduk ve bunları önerilere yazdık (kusura bakmayın “Moskva - Rostelecom” ve “Riga - Baltcom”, ancak yeterli sayıları elde etmek için bu düğümleri önereceğim. Şahsen ben ~870 megabit'e kadar aldım) Bu sunucular yoğun saatlerde).

Neden bu kadar zorluklar soruyorsunuz? Her şey çok basit. Yetenekli ellerde ağlarımızda sorun olup olmadığını, cumhuriyet ağında sorun olup olmadığını veya omurgada sorun olup olmadığını belirlememize olanak tanıyan oldukça kullanışlı bir araç aldık. Bir kişi bir hizmetin indirme hızının düşük olmasından şikayetçiyse, abonenin kanalının hızını ölçebilir ve ardından bunu hizmetten aldığıyla karşılaştırabiliriz. Ve sözleşmede belirtilen kanalı dürüstçe tahsis ettiğimizi göstermek mantıklıdır. Hızlardaki bu kadar farklılığın olası nedenlerini de açıklayabiliriz.

İkincil çözüm

Akşamları/gündüzleri hız düşüşü sorunu hala açık. Abonenin evinde olmadan aynı şey nasıl yapılır? Gigabit ağı olan ucuz bir tek kartlı kart alın ve ondan sözde bir prob yapın. Cihaz belirli bir zaman aralığında kablo boyunca hız ölçümü yapmalıdır. Çözüm, ölçüm sonuçlarını görüntülemek için kullanışlı bir yönetici paneline sahip, mümkün olduğunca sade, açık kaynak olmalıdır. Cihaz mümkün olduğu kadar ucuz olmalı ki kolayca değiştirilebilsin ve abonenin n gün boyunca korkusuzca elinde kalabilsin.

uygulama

İnternet hızını ölçmek için bir bölgenin geliştirilmesi

BananaPI (model M1) esas alındı. Bu tercihin aslında iki nedeni var.

  1. Gigabit bağlantı noktası.
  2. Komidin üzerinde öylece duruyordu.

Daha sonra python istemcisinin kullanılmasına karar verildi SpeedTest-cli Hız ölçümü için bir arka uç olarak Ookla'nın Speedtest hizmeti için. kütüphane Pythonping Ping hızını ölçmek için. Peki, yönetici paneli için php. Algılama kolaylığı için kullandım çizme atkısı.

Raspberry'nin kaynaklarının esnek olmaması nedeniyle nginx+php-fpm+sqlite3 kombinasyonu kullanıldı. Ağırlığı ve fazlalığı nedeniyle MySQL'den vazgeçmek istedim. Iperf ile ilgili bir soru bekliyorum. Yerel yönler dışında kullanılmasının imkansızlığı nedeniyle terk edilmek zorunda kaldı.

Başlangıçta bu sitedeki birçok kişinin yolunu takip ettim. Speedtest-cli istemcisi değiştirildi. Ancak biraz düşündükten sonra bu fikrinden vazgeçti. Orijinal istemcinin yeteneklerini kullanan kendi çalışanımı yazdım.

Ping'leri analiz etmek için ayrı bir işleyici yazdım. Ölçümden ortalama değeri alıyoruz. Ping aracı hem IP adresini hem de alan adını işleyebilir.

Asenkron çalışmayı başaramadım. Bu durumda özellikle gerekli değildir.

Sonuçların değerlendirilmesine yönelik yönetici panelinin oldukça minimalist olduğu ortaya çıktı.

İnternet hızını ölçmek için bir bölgenin geliştirilmesiŞek. Test sonuçlarını içeren ana yönetici penceresi

İnternet hızını ölçmek için bir bölgenin geliştirilmesiŞek. Test ayarları

İnternet hızını ölçmek için bir bölgenin geliştirilmesi
Şek. Speedtest sunucularının listesini güncelleyin

Bu kadar. Bu fikir boş zamanlarımda dizlerimin üzerinde hayata geçirildi. Saha testleri henüz başlamadı. Ancak yakın gelecekte prototipleri piyasaya sürmeyi planlıyoruz. Hem oradaki sağlayıcılar hem de sağlayıcıların müşterileri tarafından kullanılabilir. Kimse sizi günün her saatinde evde ölçüm yapmanıza rahatsız etmiyor. Hatırlamanız gereken tek şey, internette aktif olarak geziniyorsanız veya bir şey indiriyorsanız, ölçümün gerçek olandan daha düşük olacağıdır. Bu nedenle ideal olarak, sondayı ağdaki tek trafik tüketicisi olarak bırakmanız gerekir.

Not: Lütfen kodun kalitesi nedeniyle beni eleştirmeyin. Hiçbir deneyimim olmadan kendi kendimi yetiştirdim. için kaynak kodu GitHub. Eleştiri kabul edilir.

Kaynak: habr.com

Yorum ekle