Как измерить свободу в интернете
Материалы ИноСМИ содержат оценки исключительно зарубежных СМИ и не отражают позицию редакции ИноСМИ
Пользователи помогли собрать коллекцию из миллионов замеров сети, которые полностью опубликованы на сайте OONI Explorer, вероятно, самом большом публично доступном ресурсе, посвящённом цензуре в Интернете. Благодаря пользователям ooniprobe, мы раскрыли масштабы волны цензуры в Эфиопии в прошлом году, а также подробности многочисленных случаев цензуры в других странах мира.
Мария Ксину (Maria Xynou)
РИМ — В прошлом году в Эфиопии во время волны политических протестов, сопровождавшихся жертвами, правительство страны заблокировало более 15 медиа-сайтов, также мобильное приложение WhatsApp. Кроме того, был закрыт доступ к сайтам, выступающим за свободу слова и за права LGBTQ+, а также к инструментам обхода цензуры, таким как Tor и Psiphon.
Всё это стало известно благодаря программе под названием ooniprobe, созданной для измерения сетевого трафика и выявления случаев цензуры в Интернете.
Пользователи помогли собрать коллекцию из миллионов замеров сети, которые полностью опубликованы на сайте OONI Explorer, вероятно, самом большом публично доступном ресурсе, посвящённом цензуре в Интернете. Благодаря пользователям ooniprobe, мы раскрыли масштабы волны цензуры в Эфиопии в прошлом году, а также подробности многочисленных случаев цензуры в других странах мира.
В прошлом году в Уганде местные группы использовали ooniprobe во время всеобщих выборов, когда правительство блокировало социальные сети.
В 2015 году приложение ooniprobe пригодилось в Малайзии. Премьер-министр страны Наджиб Разак, обвинявшийся в том, что он перевёл почти $700 млн из государственного инвестиционного фонда 1MDB на свой личный банковский счёт, попытался заблокировать новостные сайты и блоги, сообщавшие об этом скандале. Именно программа сетевых измерений ooniprobe позволила группам гражданского общества Малайзии собрать данные, доказывающие факт блокировок.
Разумеется, цензура применяется не только для защиты политически могущественных лиц. Её могут использовать и для укрепления социальных и культурных норм. Например, в Индонезии низкий уровень социальной толерантности к гомосексуальности, возможно, сыграл важную роль в блокировке многочисленных сайтов LGBTQ+, хотя официально эта страна не ограничивает права LGBTQ+.
В Таиланде в течение последних трёх лет интернет-провайдеры блокировали доступ к сайтам, которые, как считается, оскорбляют королевскую семью страны. Здесь, впрочем, у них есть юридическое оправдание: в Таиланде действует строгий запрет на «оскорбление величества» (lèse-majesté), который защищает высших членов королевской семьи от оскорблений или угроз. К другим случаям легально оправданной цензуры в интернете относится блокировка сайтов с откровенно сексуальным контентом в странах, где запрещена порнография.
Следует упомянуть случаи, когда мотивация цензуры неясна. Почему, например, в Малайзии заблокировали сайт знакомств? В некоторых странах интернет-провайдеры, похоже, занимаются цензурой сайтов по собственному усмотрению. По данным ooniprobe, множество интернет-провайдеров Таиланда одновременно заблокировали доступ к различным сайтам (от новостных изданий и «Викиликс» до порнографии), что указывает на вероятность получения неких смутных указаний от властей.
До появления ooniprobe подобные случаи цензуры было трудно отследить, что приводило к отсутствию ответственности, поскольку власти и интернет-провайдеры полностью отрицали свою причастность к ним. Даже когда власти официально объявляют списки заблокированных сайтов, они могут включать в них не все цели. Тем временем, интернет-провайдеры не всегда выполняют официальные приказы о снятии блокировок. Например, недавно обнаружилось, что Vimeo и Reddit заблокированы в некоторых сетях в Индонезии, хотя официальный запрет на эти сайты был отменён более двух лет назад.
Благодаря ooniprobe, пользователи имеют возможность не только обнаруживать случаи интернет-цензуры, но и получать важные подробности о том, как, когда, где и кем осуществляется эта цензура. Например, тест на веб-подключение OONI предназначен для анализа методов блокировки сайтов — через закрытие доменных имён, блокирование TCP/IP или прозрачный HTTP прокси-сервер.
Другие тесты ooniprobe предназначены для анализа доступности мессенджеров, а именно, WhatsApp, Telegram и Facebook Messenger, внутри сетей, а также доступности инструментов обхода цензуры, таких как Tor, Psiphon и Lantern.
Глубина данных OONI способствует укреплению столь необходимых подотчётности и надзора. Юристы могут использовать данные OONI для оценки законности цензуры в Интернете в своих странах и потенциально представлять их в качестве доказательства в судах. Журналисты, расследователи, защитники прав человека тоже могут пользоваться этими данными в своей работе. Наконец, проекты обхода цензуры, подобные Tor, могут использовать полученные OONI данные о новых случаях цензуры для выработки собственных инструментов и стратегий.
Данные OONI помогают оживлению общественной дискуссии о законности, необходимости и пропорциональности цензуры в Интернете. Это делает его критически важным инструментом для защиты прав человека в Интернете и за его пределами.
Как измерить скорость вашего домашнего интернета
Хватит ждать загрузки, пора что-то делать с медленным интернет-соединением! Тестирование скорости вашего интернета не потребует никаких особенных приспособлений, и займет всего несколько минут, но именно оно поможет вам понять, как именно решить эту проблему раз и навсегда. Мы расскажем вам о нескольких трюках, которые помогут достичь максимально точных результатов этого эксперимента.
Подготовка к тестированию интернет-соединения
Во-первых, по возможности стоит воспользоваться проводным соединением. Таким образом, вам не придется беспокоиться о влиянии каких бы то ни было случайных помех на передачу сигнала по Wi-Fi. Если в вашей домашней сети есть еще какие-нибудь устройства с проводным подключением, подсоедините свой тестировочный компьютер напрямую к модему. Так вы исключите всякую возможность посторонних воздействий на результаты вашего теста.
Если же у вас нет иной возможности подключения к интернету, кроме беспроводной, и ваше устройство просто лишено порта Ethernet, — примете все возможные меры к устранению помех. Убедитесь, что ваш Wi-Fi роутер находится далеко от других электронных приборов, особенно таких, как беспроводные телефоны, а также временно отсоедините все остальные приборы от вашей домашней беспроводной сети.
Непосредственно перед началом тестирования еще раз проверьте, не занят ли ваш компьютер скачиванием обновлений где-нибудь в фоновых процессах прямо в эту минуту. Здесь вам поможет Диспетчер задач Windows (вызывается одновременным нажатием клавиш control-alt-delete) или Мониторинг системы MacOS, где можно посмотреть статистику сетевой активности компьютера.
Клик по заголовку «Сеть» в Диспетчере задач Windows или Мониторинге системы MacOS покажет вам, какие из работающих программ в данный момент отправляют и получают информацию посредством сетевого соединения |
Закройте или остановите все приложения на вашем компьютере, чтобы они не вздумали скачивать обновления прямо во время тестирования. Процент загрузки канала может и не снизиться до полного нуля, но вам лучше постараться, чтобы эта цифра приблизилась к нулю как можно ближе. Если же окажется, что ваша операционная система качает обновления именно в этот момент, выбор у вас невелик — придется подождать, пока она не закачает все, а тестирование провести позже.
Если вы испытываете какие-то проблемы с подключением к интернету, сейчас самое время перегрузить ваш модем или роутер. Выключите их и отсоедините кабель питания на некоторое время, после чего проделайте те же операции в обратном порядке: подсоедините кабель и включите прибор.
Как протестировать скорость домашнего интернета?
Самым популярным сайтом для проверки вашего интернет-соединения является Ookla Speedtest.net. Все, что вам нужно — интернет-браузер с включенной опцией JavaScript (по умолчанию она обычно включена, разве что по какой-то причине вы отключили ее самостоятельно) и установленным плеером Adobe Flash. Если же у вас есть свои резоны не пользоваться Adobe Flash, существует пара альтернативных решений. Есть версия Ookla Speedtest.net на HTML 5 или же можно воспользоваться тестом Speedof. me, также сделанным под HTML 5.
Speedof.me — основанный на HTML 5 графический тестировочный инструмент, которому не нужен Adobe Flash |
Все, что вам нужно сделать для проверки скорости вашего соединения в обоих направлениях — нажать на кнопку «Начать тест» (Begin Test). Это может занять от нескольких секунд до нескольких минут, в зависимости от мощности вашего канала.
Это еще не все возможности для тестирования вашего широкополосного соединения. Также мы можем предложить вам тест для измерения скорости от MegaPath или их же Speed Test Plus, который впридачу к измерению «сырой» скорости оценивает реальное качество вашего соединения. Возможно, ваш собственный интернет-провайдер тоже может предложить инструменты для измерения скорости соединения, хотя с ними, возможно, придется повозиться. Ну и наконец, производители роутеров все чаще разрабатывают собственные приложения для оценки скорости соединения, либо вшитые в программную оболочку самого устройства, либо (а также, возможно, дополнительно) — в виде мобильного приложения. Хотя в последнем случае, конечно, вам придется проводить тестирование посредством беспроводного соединения.
Многие производители роутеров, например, LinkSys, включают утилиты для измерения скорости в заводской комплект ПО или разрабатывают мобильные приложения для этих целей |
Как локализовать проблему?
Не особенно удивляйтесь, если вам не удастся достичь верхнего предела скоростей, заявленных вашим провайдером. Почти никто таких высоких цифр не получает. Однако если ваше соединение значительно медленнее, чем вам обещали, причиной может быть целый перечень различных факторов. Среди возможных причин — неполадки как в вашем оборудовании, так и на другом конце провода, у вашего провайдера. Многие провайдеры создают на своих сайтах специальную страницу технической поддержки, где вы можете посмотреть, насколько они в курсе ваших проблем с их сервисом.
Если никаких поводов для волнения на странице провайдера пока не наблюдается, нелишне будет проинспектировать собственную технику. Для начала попробуйте воспользоваться другим компьютером. Если на другой машине результаты окажутся приемлемыми — что ж, причина найдена сразу. Если же и второй компьютер также демонстрирует черепашьи темпы, проведите еще один комплекс тестов после принятия каждой из следующих мер.
- Попробуйте заменить кабель, которым вы подсоединяете компьютер к роутеру. Также можно заменить кабель, соединяющий ваш роутер с точкой доступа к интернету: DSL, оптоволоконным или кабельным модемом.
- Убедитесь, что с роутером все в порядке: выключите его или выньте провод из розетки на минуту-другую, после чего снова включите обратно. Следите за обновлениями программного обеспечения роутера, чтобы на нем всегда стояла самая свежая версия встроенной программы. Буде нелишне обновить ее, если вы давно этого не делали.
- Если улучшений так и не наблюдается, попробуйте перезагрузить ваш DSL, оптоволоконный или кабельный модем.
Если же вы проделали все эти шаги, а никаких изменений к лучшему так и не произошло — увы, пришло время звонить в техническую поддержку вашего интернет-провайдера.
Прокомментируйте первым!
Измерение вашей домашней сети — Инициатива DSI Internet Equity
В своем последнем посте я описал общедоступные наборы данных для понимания справедливости в доступе в Интернет. Также полезно иметь возможность измерять соединения напрямую. Это позволит нам развертывать тесты в определенных наборах домохозяйств и измерять параметры сети, которые необходимы в «реальном мире».
Я разделю эти измерения на три «корзины»:
- Основные параметры , такие как пропускная способность и задержка, которые можно измерить с помощью активных тестов
- Потребление , что влечет за собой более серьезные технические проблемы и заслуживает отдельной статьи, и
- Производительность приложений , измеряемая либо объективными показателями, такими как разрешение видео, либо субъективными, такими как воспринимаемое человеком качество видео.
Этот пост посвящен первой группе. Сначала я опишу некоторые из этих измерений: почему они важны и как их выполнять. Пост носит технический характер, но, если не считать кода, большая часть первой половины должна быть удобочитаема для людей, интересующихся политикой в отношении Интернета. Вторая часть описывает еще несколько шагов, которые технически ориентированный читатель может выполнить, чтобы завершить тесты и запустить их дома.
Пропускная способность
Для большинства потребителей и политиков первый (и единственный) вопрос: «Насколько быстро соединение?» Формально это пропускная способность сети, и, конечно же, она имеет восходящую и нисходящую составляющую. Это измеряется в мегабитах в секунду (Мбит/с), а обычный порог для базовой широкополосной связи составляет «25/3» (25 Мбит/с входящий, 3 Мбит/с входящий).
Восходящие и нисходящие каналы обычно довольно асимметричны, с большим количеством загрузок, чем загрузок. Технические причины этого связаны с координацией сигналов в каждом направлении (телекоммуникационная компания может эффективно упаковать исходящие данные, но вы и ваши соседи не можете сделать то же самое) и высокими помехами, существующими в центрах обработки данных на сильных исходящих, но слабых входящих сигналы. Асимметрия также отражает «традиционные модели» использования (больше людей смотрят телевизор, чем управляют собственными студиями). И, вероятно, есть некоторый гистерезис в ценообразовании.
Помимо входящих и исходящих сигналов, следует также различать производительность на разных протоколах. Двумя распространенными транспортными протоколами Интернета являются TCP (протокол управления транспортом) и UDP (протокол пользовательских дейтаграмм). Практическая разница в том, что TCP обеспечивает доставку данных, а UDP — нет. Таким образом, TCP используется для таких вещей, как файлы и веб-ресурсы, тогда как UDP используется для видео и голоса, которые имеют высокие требования к пропускной способности, но терпимы к некоторым потерям. (Видео с отсутствующим кадром по-прежнему можно смотреть.) Таким образом, мы должны протестировать как загрузку, так и загрузку, а также TCP и UDP.
TCP/Speedtest
Для пропускной способности TCP мы возьмем Ookla Speedtest в качестве золотого стандарта. (Полное раскрытие, поскольку нам нравятся данные Ookla в DSI, мы работаем над их лицензированием для нашей работы.) Вы можете запустить тест скорости онлайн, но есть также инструмент командной строки и действительно библиотека Python. Мы можем установить их через
$ pip install speedtest-cli $ sudo apt установить speedtest-cli
и запустить их из CLI как
$ speedtest
или в скрипте как
из импорта speedtest Speedtest с = тест скорости () s.get_best_server() с.загрузить() с.загрузить() s.results.dict()
По умолчанию тест будет запускаться на ближайшем сервере (с самым низким пингом) в сети Ookla. Затем вы можете получить загрузок
и загрузок
элементов из словаря (а также задержку и джиттер).
UDP /
iperf3
Для пропускной способности UDP мне нравится iperf3
: он невероятно настраиваемый и простой в использовании. Для этого требуется удаленный сервер с довольно мощным и надежным соединением. К счастью, университет предоставляет это.
Первые $ apt install iperf3
на каждой машине. Затем запустите удаленный сервер ( -s
) в качестве демона ( -D
) на порту 12345 ( -p
):
$ iperf3 -s -D -p 12345
и позвонить из дома:
$ iperf3 -c my_remote.io -p 12345 -b 30M -R -u -i 0
Таким образом, я получаю доступ к хосту my_remote.io
в качестве клиента ( -c
) через порт ( -p
) 12345. Я запускаю тест с пропускной способностью ( -b
) 30 Мбит/с в « обратное» направление ( -R
) с сервера мне, т.е. загрузка, используя UDP ( -u
) и, кстати, я не хочу получать отчеты через равные промежутки времени ( -i 0
).
Вы также можете протестировать загрузку (отбросьте -R
) или TCP (без -u
). Для тестов TCP с высокой пропускной способностью вам может потребоваться установить несколько параллельных потоков (скажем,
-P 10
), чтобы насытить канал. Вам нужно будет запустить тест с пропускной способностью, которая, как вы ожидаете, превысит то, что предусмотрено вашим интернет-провайдером. Имейте в виду, что этот тест действительно использует данные. Хотя это немного, это также не то, что вы хотите планировать каждую минуту: это израсходует ваш ежемесячный лимит в 1,2 ТБ с Comcast.
Задержка
Задержка — это просто «сколько времени» требуется для того, чтобы что-то прибыло. Например, если у вас есть собственный спутник, вы можете достичь высокой пропускной способности, но ваша задержка останется большой. Ваши данные буквально должны отправиться в Космос и обратно, и даже свету (электромагнитным волнам) для этого требуется время.
Типичные задержки составляют десятки миллисекунд. В Чикаго сети распространения контента (CDN) и совместное размещение сервисов размещают большинство ресурсов всего в 8 миллисекундах от меня. Google и Netflix навязывают свои серверы интернет-провайдерам, в то время как Chicago Tribune использует Akamai для распространения контента, а Sun Times использует его быстро. Эти серверы, вероятно, почти в моем районе. Но Википедия и Амазон требуют немного больше времени — 30 мс или около того — и вы действительно можете определить геолокацию серверов на западном побережье. Если я навещаю своих родственников в сельской местности Огайо, ни одна крупная служба не находится менее чем в 22 мс.
В любом случае, эти задержки достаточно короткие, чтобы вы в основном не испытывали задержек при просмотре из-за задержки. Мы будем измерять два типа задержки: ping
и DNS. Однако вы можете протестировать и другие, например, время простого веб-рукопожатия (т. е. HTTP-запрос GET).
Эхо-запрос ICMP /
ping
Первая задержка — это время прохождения туда и обратно (RTT) до сервера и обратно. Почти каждый, кто прикасался к командной строке, знает это как ping
, и оно вошло в общеупотребительный лексикон («Я пропингую вас»). Это способ, которым большинство технически подкованных людей проверяют, подключены ли они к интернет-соединению (
ping google.com
). Технически я буду использовать стандартный ICMP вместо UDP ping. Но я буду использовать несколько дополнительных опций, чем обычно:
$ ping -c 10 -i 0.25 -w 5 -q google.com
Это означает, что я хочу упаковать 10 запросов ( -c
, count) в Google, один за другим с интервалом ( -i
) всего в 0,25 секунды между ними. Я не хочу ждать более 5 секунд ( -w
) для любого пакета, и не хочу привычного отчета по каждому пакету ( -q
, тихо). Я просто хочу эти сочные последние строки, которые говорят мне RTT:
--- статистика пинга google.com --- 10 пакетов передано, 10 получено, 0% потери пакетов, время 2259 мс rtt min/avg/max/mdev = 24,270/32,479/41,457/5,210 мс
Чтобы по-настоящему проверить свою связь, я люблю использовать различные распространенные сервисы: Google и Youtube, Facebook, Amazon, Wikipedia, газеты (Tribune и Sun Times) и университет, в котором я работаю. Будьте осторожны, чтобы не все сервисы отвечали на эхо-запросы. Netflix нет и не делает
www.uchicago.edu
; в этом случае я использую отдел CS.
Задержка DNS /
dig
При доступе к веб-странице вам необходимо знать, где она находится. К сожалению, nytimes.com
— отличная мнемоника, но не реальное местоположение. Ваш компьютер ищет это для вас «на лету» в системе доменных имен. Например, New York Times находится в сети быстрого распространения по адресу 151.101.1.164
, хотя и не отображается с этого адреса.
Время, которое требуется вашему компьютеру для выполнения этого поиска, называется задержкой DNS, и его легко измерить с помощью dig
или nslookup
:
$ dig nytimes.com
Очень большое предупреждение о задержках DNS заключается в том, что «кэшей» предостаточно. Это означает, что и ваш компьютер, и ваш домашний маршрутизатор, и ваш локальный интернет-провайдер могут отказаться пересылать ваш поиск и вместо этого ответить: «Эй, я уже видел этот запрос раньше!! Я знаю, что он хранится где-то здесь в кеше…» Так что в большинстве случаев ваш компьютер найдет кого-то с ответом, не заходя в Cloudflare (1. 1.1.1), Google (8.8.8.8) или вашего интернет-провайдера. (74.74.74.74, в моем случае). Из-за этих кешей существует реальная неопределенность в том, что вы хотите измерить: вы хотите измерить время, необходимое для достижения сервера, или время, которое обычно требуется вашему компьютеру, чтобы получить ответ? Последний часто равен «0», поэтому, если вы хотите получить нетривиальный ответ, вам придется сделать что-то вроде:
$ копать @8.8.8.8 nytimes.com
, чтобы заставить копать
, чтобы добраться до Google (в данном случае).
Обратите внимание, что может потребоваться запустить их явно в «классическом» и «современном» пространстве IP (IPv4 и IPv6). Существуют также библиотеки python для поиска DNS, такие как getdns или dnspython, но я не нашел их для значительного облегчения в этом приложении.
Прыжки в Интернет /
traceroute
Задержки измеряют время требуется для доступа к другому серверу; мы могли бы также проверить это «топологически». Сколько шагов нужно, чтобы добраться до некоторого ресурса? Если сеть плохо настроена или имеет плохие соглашения о «пиринге» с другими сетями, вам может потребоваться много «прыжков», чтобы добраться до места назначения, и вы можете столкнуться с низкой производительностью. Подумайте о путешествии на самолете с 12 пересадками.
Это действительно может случиться. Например, если я попытаюсь добраться до ЦЕРНа (Европейской лаборатории физики элементарных частиц, где я когда-то работал), путь будет совсем другим, если я начну с университета, а не с дома. Путь от университета проходит по выделенному каналу с высокой пропускной способностью, спонсируемому Министерством энергетики, до Брукхейвенской национальной лаборатории на Лонг-Айленде. С другой стороны, Comcast отправляет мой запрос из дома по коммерческому каналу, через отели оператора Google в Нью-Йорке.
Вы можете измерить это с помощью программы под названием traceroute
. Дизайн traceroute
очень элегантен: он работает, многократно запрашивая ресурс с разными настройками времени жизни (TTL). Грубо говоря, он сначала запрашивает у Интернета «пожалуйста, найдите мою цель за 1 шаг!» И Интернет пытается и, конечно же, терпит неудачу, но сообщает местонахождение этого одноэтапного сбоя. Теперь
traceroute
записывает местоположение этого первого шага и спрашивает: «Пожалуйста, найдите мою цель за 2 шага!» который также терпит неудачу, но сообщает о местонахождении второго шага. Это продолжается до тех пор, пока не будет достигнут ресурс, выстраивая путь.
В тестовой настройке я запускаю это как
$ traceroute -m 15 -N 32 -w3 lxplus.cern.ch
Это означает, что нужно выполнить максимум ( -m
) из 15 шагов, до 32 попыток за раз ( -N
, число), ожидая ( -w
) до 3 секунд, чтобы услышать ответ на каждом и нацелен на lxplus
узлов входа в CERN.
Обратите внимание, что на traceroute
отвечает даже меньше серверов, чем на ping
( lxplus
нет). В некоторых приложениях меня может больше интересовать начало трассировки, чем конечный путь к отдельному ресурсу. В зависимости от того, что я знаю о пути, я могу остановить traceroute до его завершения. Например, я могу захотеть узнать количество шагов до «магистрали» Интернета. Маршруты трассировки, начинающиеся на Comcast в Чикаго, почти все на выходе проходят через узлы Comcasts ibone, поэтому я выбираю
| grep -m 1 ibone
, чтобы обрезать запросы, как только они достигнут выхода.
Устройства
Доступ в Интернет — это больше, чем скорость. Другим важным аспектом является то, как люди используют Интернет, а также разнообразие и пригодность устройств, которые они используют для подключения к нему. Моя домашняя сеть видит около дюжины устройств в день (мои родственники присматривают за моим сыном), и с тех пор, как я начал записывать, в сети было 16 уникальных устройств. Один человек использует несколько ноутбуков (угадайте, кто), и у всех, кроме этого человека, есть смартфон. Есть Chromecasts, принтер, несколько Kindles и так далее.
Другие домохозяйства могут видеть гораздо меньше устройств, и эти устройства могут быть более или менее подходящими для онлайн-работы или учебы. Например, моя жена использует свой ноутбук для обучения, и ее телефон просто не годится для этой цели. Для большинства людей необходимы оба устройства.
Подсчет устройств в сети можно выполнять несколькими способами. Конечно, сам маршрутизатор знает, и он может сказать вам напрямую. Например, мой маршрутизатор Netgear Nighthawk предоставляет API, который может сообщать о своих настройках, количестве устройств и даже потреблении с течением времени (в зависимости от того, как настроен маршрутизатор). Turris Omnia — это маршрутизатор OpenWRT, также известный как Linux-бокс, с доступом к беспроводному интерфейсу из командной строки.
Но даже без этого уровня доступа мы можем получить информацию от маршрутизатора. Один из способов сделать это — буквально искать устройство по каждому адресу в локальной сети. Мы можем сделать это, используя
nmap
(который вам, возможно, придется установить):
$ nmap -sn 192.168.1.0/24
Это запускает сканирование ping
( -sn
) всех 256 адресов (последний байт адреса) в 192.168.1.0
, предполагая, что адрес вашего маршрутизатора 192.168.1.1
вместо 10.0.0.1
.
Сделав это, вы можете просто получить список адресов из кеша, используя инструмент arp
$ arp -i eth0 -e
, где -i eth0
ограничивает отчет интерфейсом Ethernet, а -e
просто указывает выходной формат. Это покажет все подключенные устройства.
Web Performance
В конечном итоге важны не технические параметры Интернета, а то, как он работает для людей. Измерение «качества взаимодействия» (QoE) пользователей — огромная проблема, но мы можем нанести первый удар по ней, записав время, необходимое для загрузки обычных веб-страниц — своего рода «человеческую» задержку.
Конечно, мы не хотим на самом деле посещать страницы, поэтому мы можем просто попросить Chrome сделать это в «безголовом» режиме (без окна), используя пакет selenium python для управления браузером chromium-chromedriver
, », который вам нужно установить:
$ sudo apt install chromium-chromedriver $ pip3 установить селен
Рассчитать время загрузки страницы для питона New York Times так же просто, как
из веб-драйвера импорта селена. параметры = webdriver.ChromeOptions() options.add_argument("размер окна=1200x600") options.add_argument("без головы") драйвер = webdriver.Chrome (параметры = параметры) начало = время.время() driver.get("https://www.nytimes.com/") конец = время.время()
Другими словами, создайте браузер, установите его параметры (и сделайте его безголовым!) и затем просто измерьте время загрузки!
Потребление
Как и в случае с количеством устройств, реальное равенство в доступе в Интернет зависит не только от наличия или отсутствия соединения, но и от того, как мы получаем доступ к ресурсу и используем его. Я подозреваю, что модели потребления — объем данных, расписания, устройства, ресурсы — сильно различаются между домами. Это связано с огромными и критическими проблемами конфиденциальности, которые я не буду здесь затрагивать, но мы хотим их измерить.
Потребление и производительность приложения технически более важны, чем уже перечисленные измерения. Проблема в том, что вам нужно встать на пути трафика — вам нужно увидеть его, чтобы измерить. Есть как минимум четыре способа сделать это: (1) проводное оборудование (переключатель зеркалирования), (2) беспроводное оборудование (анализ пакетов), (3) программное обеспечение (подмена arp) или (4) сам маршрутизатор (если вы можете получить к нему доступ). Сохраню подробности для следующего поста.
Если вас просто интересует производительность Интернета для политики, пост заканчивается здесь — или вы можете зайти на SamKnows. Но если вы хотите попробовать это у себя дома, читайте дальше!
Я обернул тесты, описанные выше, в небольшой скрипт Python, который вы можете найти на GitHub.
Для регулярного и надежного выполнения этих тестов вам потребуется устройство с проводным подключением Ethernet к маршрутизатору. Соединение Ethernet важно: мы не хотим измерять задержку, помехи или другие артефакты интерфейса Wi-Fi. На практике я использовал raspberry pi, хотя это мог быть и jetson nano, и сам роутер. Большинство операционных систем Linux будут работать нормально. Я использовал Ubuntu Server 20.04, что оказалось немного сложнее, а pi OS была проще. В этом посте предполагается, что у вас есть такая машина, но я также написал подробную инструкцию для этого.
Чтобы запускать тесты через равные промежутки времени, мы можем использовать заданий cron
для их планирования. Расписание задач crontab
состоит из трех строк. Каждую минуту, кроме получаса, мы запускаем тесты на пинг, DNS, количество устройств, количество переходов и потребление.
# m h dom mon dow команда 3-29,33-59 * * * * /home/me/netrics/net_measures.py -p -d -n -t -c
И каждый второй час в час мы запускаем тесты скорости и рендеринга:
0 */2 * * * /home/me/netrics/net_measures.py -s -r
, пока тест iperf3 UDP работает полчаса:
30 */2 * * * /home/me/netrics/net_measures.py -i -r
Что касается приборной панели, Гильерме Мартинс из CDAC предложил influx и grafana для регистрации и визуализации. Я думаю, что это был отличный совет (в частности, приток). Когда я начал его использовать, я обнаружил, что стек influx/grafana — это классика домашних IoT-проектов, в том числе, в частности, для регистрации спидтестов (1, 2, 3, 4)!
Таким образом, скрипт завершает работу, пересылая свои данные в облако притока:
из netrc import netrc из influxdb импортировать InfluxDBClient из influxdb_client.client.write_api импортировать СИНХРОННО influx_url = "https://us-east-1-1.aws.cloud2.influxdata.com/" influx_orgID, _, influx_token = netrc().authenticators("influx") influx_client = InfluxDBClient (url = influx_url, orgID = influx_orgID, токен = приток_токен) influx_write = influx_client.write_api(write_options = SYNCHRONOUS).write influx_write("my_bucket", "my_org", ##bucket/org [{"измерение": "сети", "tags": {"install": "installation_location"}, "поля": измерения, "время": datetime.utcnow() }])
Сначала я перешел на бесплатный уровень Influx Cloud (срок действия данных истекает через 30 дней), а затем также перешел на базу данных и экземпляр Grafana, которые Гильерме запускал для группы.
На этом этапе мы можем настроить информационные панели по своему усмотрению или просто сохранить данные для будущего анализа. Панели мониторинга, которые мы можем создать с помощью InfluxCloud или grafana, очень похожи, но у каждой есть свои сильные стороны. Grafana включает поддержку легенд, в то время как InfluxCloud предлагает собственные гистограммы (!) и позволяет использовать разные промежутки времени на разных графиках. Графана-версия показана ниже.
Насколько велик Интернет и как мы его измеряем?
Эта веб-страница занимает около 1 мегабайта на нашем сервере.
Для контекста: это всего лишь около 1/8000 th USB-накопителя, который может быть у вас в кармане. Вы можете сохранить эту страницу тысячу раз, прежде чем достигнете гигабайта памяти — меру, к которой мы привыкли в наши дни. Эту страницу и сервер, на котором она находится, можно представить как песчинку на пляже, которым является Интернет. Верхнего предела объема данных, хранимых в Интернете, не существует. (если только вы не начнете считать, сколько меди нам нужно для изготовления печатных плат). Интернет продолжает расти, начиная от скромного сервера для обмена научными статьями и заканчивая глобальной сетью систем, которые мы видим сегодня.
Зетабайт
В 2020 году объем данных в Интернете достиг 64 зетабайт. Зетабайт — это около триллиона гигабайт.
Один из способов оценить размер Интернета — посмотреть на объем информации, созданной, собранной, скопированной и потребляемой в Интернете. Согласно ежегодному отчету Cisco о глобальном веб-трафике, годовой глобальный веб-трафик впервые превысил зеттабайт (ZB) в 2015 году. Ожидается, что к 2025 году он достигнет 175 ZB.
По оценкам Cisco, к 2023 году почти две трети населения мира будут иметь доступ к Интернету, а это 5,3 миллиарда пользователей. По их оценкам, к 2023 году количество подключенных к Интернету устройств более чем в три раза превысит численность населения9.0003
Поскольку у нас все быстрее и быстрее Интернет-соединения, разработчики, как правило, меньше сосредотачиваются на создании эффективных веб-сайтов и онлайн-впечатлений, а больше на создании визуально привлекательных сайтов, таких как социальные сети, социальные сети и видеоигры. Такие веб-сайты меняют философию разработчиков. В прошлом мы заботились об оптимизации Интернета, чтобы оборудование с более низкими характеристиками могло достаточно быстро загружать страницы. Сегодня мы транслируем видео с высоким разрешением и высокой частотой кадров, даже не задумываясь.
Зеттабайт — эталонный показатель, на который аналитики ориентируются в качестве ключевой вехи подключения с самого первого дня, и это один из ключевых показателей в ежегодном отчете Cisco о глобальном веб-трафике.
К августу 2022 года проиндексированная сеть насчитывала 1,9 миллиарда веб-сайтов, и это только та активность, которую достигают поисковые системы. Многие страницы в Интернете не индексируются, и невидимая глубина Интернета ошеломляет. Поисковые системы — это надежная метрика, которая находит миллиарды результатов, включая веб-сайты, размещенные по всему миру. Создаются бесчисленные веб-сайты, которые приносят с собой еще больше контента, которому нужно где-то занять место.
Экспоненциальный потенциал
Учитывая всю эту активность, сколько именно данных мы имеем в виду в «Глобальной сфере данных»? Это общие данные, созданные, захваченные или реплицированные, но не обязательно сохраненные.
В 2017 году NodeGraph сообщил, что в нашей цифровой вселенной было 2,7 зеттабайта (ZB) данных. PwC считает, что в 2019 году этот показатель достиг 4,4 ZB , а по оценке Statista мы достигнем 120 ZB данных в 2023 году. На самом деле, IDC прогнозирует, что данные в мире вырастут до 175 ZB к 2025 году! Это звучит смехотворно много, но сколько же это данных?
Давайте разберем, насколько велик зеттабайт:
- Гигабайт равен 1024 мегабайтам
- Терабайт равен 1024 гигабайтам
- Петабайт равен 1024 терабайтам
- Эксабайт равен 1024 петабайтам
- Зеттабайт равен 1024 эксабайтам (т. это 1 048 576 петабайт, 1 073 741 824 терабайта, 1 099 511 627 776 гигабайт или 1 125 899 910 000 000 мегабайт !)
Когда этот малыш разгонится до 88 миль в час
Все понял? Мы могли бы стать больше! Но вместо того, чтобы немного упростить визуализацию того, сколько данных может быть в мире через пять лет, вот несколько примеров из IDC:
- . Если вы храните 175 ZB на DVD, стопки DVD будет достаточно.
Ваш комментарий будет первым