Найти тему
Техно плюс

Тихий план по ускорению работы Интернета

Оглавление

Инженеры и крупные компании продвигают технологию под названием L4S, которая, по их словам, может значительно ускорить работу в Интернете. Но как?

Несколько месяцев назад я понизил уровень своего Интернета, перейдя с тарифного плана 900 Мбит/с на план 200 Мбит/с. Теперь я обнаружил, что загрузка веб-сайтов иногда может занимать мучительно много времени, что HD-видео на YouTube приходится останавливать и буферизовать, когда я переключаюсь между ними, и что видеозвонки могут быть раздражающе прерывистыми.

Иллюстрация Уго Эрреры / Грань
Иллюстрация Уго Эрреры / Грань

Другими словами, практически ничего не изменилось. У меня были точно такие же проблемы, даже когда у меня был почти гигабитный сервис загрузки, и, вероятно, я не одинок. Я уверен, что у многих из вас также был опыт проклинать медленно загружающийся веб-сайт и приходить в еще большее замешательство, когда “тест скорости” говорит, что ваш Интернет должен быть способен воспроизводить десятки потоков Netflix в формате 4K одновременно. Итак, что это дает?

Как и в любой проблеме, здесь играет роль множество факторов. Но основным из них является задержка, или количество времени, необходимое вашему устройству для отправки данных на сервер и получения данных обратно — не имеет значения, какой пропускной способностью вы располагаете, если ваши пакеты (небольшие пакеты данных, которые передаются по сети) где-то застревают.

Но хотя люди имеют некоторое представление о том, как работает задержка, благодаря популярным тестам скорости, включая показатель “ping”, распространенные методы ее измерения не всегда дают полную картину.

Хорошей новостью является то, что есть план практически устранить задержку, и крупные компании, такие как Apple, Google, Comcast, Charter, Nvidia, Valve, Nokia, Ericsson, материнская компания T-Mobile Deutsche Telekom и другие, проявили интерес. Это новый интернет-стандарт под названием L4S, который был доработан и опубликован в январе, и он может серьезно сократить количество времени, которое мы тратим на ожидание загрузки веб-страниц или потоков, и сократить количество сбоев в видеозвонках.

Это также могло бы помочь изменить наше представление о скорости Интернета и помочь разработчикам создавать приложения, которые просто невозможны в нынешних реалиях Интернета.

Однако, прежде чем мы поговорим о L4S, нам следует заложить некоторые основы.

Почему мой интернет такой медленный?

Существует множество потенциальных причин. Интернет - это серия трубок, обширная сеть взаимосвязанных маршрутизаторов, коммутаторов, оптоволоконных кабелей и многого другого, которые соединяют ваше устройство с сервером (или, часто, несколькими серверами) где-либо. Если в какой-либо точке этого пути возникнет узкое место, ваш опыт серфинга может пострадать.

И существует множество потенциальных узких мест — сервер, на котором размещено видео, которое вы хотите посмотреть, может иметь ограниченную пропускную способность для загрузки, жизненно важная часть инфраструктуры Интернета может выйти из строя, что означает, что данные должны перемещаться дальше, чтобы добраться до вас, ваш компьютер может испытывать трудности с обработкой данных и т.д.

Реальная выгода заключается в том, что звено с наименьшей пропускной способностью в цепочке определяет пределы возможного. Вы могли бы подключиться к самому быстрому серверу, какой только можно вообразить, через соединение со скоростью 8 Гбит /с, и если ваш маршрутизатор может обрабатывать только 10 Мбит / с данных одновременно, это то, чем вы будете ограничены.

О, и еще, каждая задержка суммируется, поэтому, если ваш компьютер добавляет 20 миллисекунд задержки, а ваш маршрутизатор добавляет 50 миллисекунд задержки, вы в конечном итоге ждете, по крайней мере, 70 миллисекунд, пока что-то произойдет. (Это совершенно произвольные примеры, но вы поняли суть.)

В последние годы сетевые инженеры и исследователи начали высказывать опасения по поводу того, что системы управления трафиком, предназначенные для обеспечения того, чтобы сетевое оборудование не перегружалось, на самом деле могут замедлять работу. Частью проблемы является так называемое “раздувание буфера”.

Это звучит как враг-зомби из "Последнего из нас"

Верно? Но чтобы понять, что на самом деле представляет собой раздувание буфера, мы сначала должны понять, что такое буферы. Как мы уже упоминали, работа в сети - это своего рода танец; каждая часть сети (например, коммутаторы, маршрутизаторы, модемы и т.д.) имеет свое собственное ограничение на объем данных, который она может обрабатывать.

Но поскольку устройства, подключенные к сети, и объем трафика, с которым им приходится иметь дело, постоянно меняются, ни один из наших телефонов или компьютеров на самом деле не знает, сколько данных нужно отправлять за один раз.

Чтобы понять это, они, как правило, начинают отправлять данные с одной скоростью. Если все идет хорошо, они будут увеличивать ее снова и снова, пока что-то не пойдет не так. Традиционно, когда что-то идет не так, пакеты отбрасываются; маршрутизатор где-то получает данные быстрее, чем может их отправить, и говорит: “О нет, я не могу справиться с этим прямо сейчас”, и просто избавляется от них. Очень похоже.

Хотя отбрасывание пакетов обычно не приводит к потере данных — мы убедились, что компьютеры достаточно умны, чтобы просто отправить эти пакеты повторно, если это необходимо, — это все равно определенно не идеально. Таким образом, отправитель получает сообщение о том, что пакеты были отброшены, и временно снижает скорость передачи данных, прежде чем немедленно увеличить ее снова, просто на случай, если что-то изменилось в течение последних нескольких миллисекунд.

Это потому, что иногда перегрузка данными, приводящая к сбою пакетов, носит временный характер; возможно, кто-то в вашей сети пытается отправить изображение в Discord, и если бы ваш маршрутизатор мог просто подождать, пока это не пройдет, вы могли бы продолжить видеозвонок без проблем. Это также одна из причин, по которой во многие сетевые устройства встроены буферы.

Если устройство получает слишком много пакетов одновременно, оно может временно сохранить их, поместив в очередь для отправки. Это позволяет системам обрабатывать огромные объемы данных и сглаживать всплески трафика, которые в противном случае могли бы вызвать проблемы.

Я не понимаю — это звучит как хорошая вещь

Это так! Но проблема, о которой беспокоятся некоторые люди, заключается в том, что буферы стали действительно большими, чтобы гарантировать бесперебойную работу. Это означает, что пакетам, возможно, придется ждать в очереди (иногда буквально) секунду, прежде чем продолжить свое путешествие.

Для некоторых типов трафика это не имеет большого значения; YouTube и Netflix также имеют буферы на вашем устройстве, поэтому вам не нужен следующий фрагмент видео прямо сейчас. Но если вы совершаете видеозвонок или пользуетесь сервисом потоковой передачи игр, таким как GeForce Now, задержка, вызванная буфером (или несколькими буферами в цепочке), на самом деле может стать реальной проблемой.

В настоящее время существует несколько способов справиться с этим, и в прошлом было предпринято немало попыток написать алгоритмы, которые контролируют перегрузку с учетом как пропускной способности (или объема передаваемых данных), так и меньшей задержки.

Но многие из них не совсем хорошо сочетаются с нынешними широко используемыми системами контроля перегрузки, что может означать, что их внедрение в некоторых частях Интернета повредит другим частям.

Я плачу за гигабитный Интернет — как у меня все еще могут быть проблемы с задержкой?

Это уловка интернет-провайдера, или ISP, в маркетинге. Когда пользователи говорят, что хотят “более быстрый” Интернет, они имеют в виду, что хотят, чтобы с момента, когда они просят о чем-то, до момента, когда они это получат, проходило меньше времени. Однако интернет-провайдеры продают соединения по емкости: сколько данных вы можете получить за один раз?

Было время, когда увеличение пропускной способности действительно сокращало количество времени, которое вы тратили на ожидание. Если вы загружаете девятимегабайтный MP3-файл с абсолютно легального веб-сайта, это займет много времени при скорости подключения 56 килобит в секунду — около 21 с половиной минуты. Подключитесь к невероятно быстрому соединению со скоростью 10 Мбит/с, и вы получите песню менее чем за 10 секунд.

Но время, затрачиваемое на передачу данных, становится все менее заметным по мере увеличения пропускной способности; вы не заметите разницы между загрузкой песни, которая занимает 0,72 секунды при скорости 100 Мбит/с, и той, которая занимает 0,288 секунды при скорости 250 Мбит/с, хотя технически это меньше половины времени. (Кроме того, на самом деле это занимает больше времени, потому что процесс загрузки песни включает в себя не только передачу данных).

Цифры имеют немного большее значение, когда вы загружаете файлы большего размера, но в какой-то момент вы все равно получаете меньшую отдачу; разница между потоковой передачей фильма в формате 4K в 30 раз быстрее, чем вы можете его посмотреть, и в пять раз быстрее, чем вы можете его посмотреть, не особенно важна.

Несоответствие между нашей “скоростью” Интернета (обычно люди имеют в виду пропускную способность — вопрос не столько в том, насколько быстро едет грузовик доставки, сколько в том, сколько он может перевезти в поездке) и тем, как мы воспринимаем эти соединения с высокой пропускной способностью, становится очевидным, когда простые веб-страницы загружаются медленно теоретически, мы должны иметь возможность загружать текст, изображения и javascript с молниеносной скоростью.

Однако загрузка веб-страницы означает несколько циклов обратной связи между нашими устройствами и серверами, поэтому проблемы с задержкой многократно возрастают. Пакеты, зависающие на 25 миллисекунд, могут действительно накапливаться, когда им приходится совершать путешествие 10 или 20 раз.

Объем данных, которые мы можем переместить за один раз через наше интернет — соединение, не является узким местом - это время, которое наши пакеты тратят на перемещение между устройствами. Таким образом, увеличение емкости не поможет.

Итак, что же такое L4S, и как это ускорит мой доступ в Интернет?

L4S означает низкую задержку, низкие потери, масштабируемую пропускную способность, и его цель - убедиться, что ваши пакеты тратят как можно меньше времени на ненужное ожидание в очереди, уменьшая необходимость в постановке в очередь.

Для этого он работает над сокращением цикла обратной связи с задержкой; когда начинается перегрузка, L4S означает, что ваши устройства узнают об этом почти сразу и могут начать что-то делать для устранения проблемы. Обычно это означает небольшое снижение объема передаваемых данных.

Как мы уже говорили ранее, наши устройства постоянно ускоряются, затем замедляются и повторяют этот цикл, потому что объем данных, с которыми приходится иметь дело соединениям в сети, постоянно меняется. Но отбрасывание пакетов не является хорошим сигналом, особенно когда буферы являются частью уравнения — ваше устройство не поймет, что оно отправляет слишком много данных, пока оно не отправит слишком много данных, что означает, что ему приходится жестко ограничивать их.

Однако L4S устраняет задержку между возникновением проблемы и тем, как каждое устройство в цепочке узнает о ней. Это упрощает поддержание хорошей пропускной способности без дополнительной задержки, которая увеличивает время, необходимое для передачи данных.

Хорошо, но как он это делает? Это волшебство?

Нет, это не магия, хотя технически она достаточно сложна, и мне бы хотелось, чтобы это было так, потому что тогда я мог бы просто отмахнуться от нее рукой. Если вы действительно хотите вникнуть в это (и вы много знаете о сетевых технологиях), вы можете ознакомиться со спецификацией на веб-сайте рабочей группы Internet Engineering Task Force.

Для всех остальных я постараюсь изложить это настолько кратко, насколько смогу, не приукрашивая слишком многого. Стандарт L4S добавляет к пакетам индикатор, который сообщает, испытывали ли они перегрузку на пути от одного устройства к другому. Если они проплывают прямо через него, проблем нет, и ничего не происходит.

Но если им приходится ждать в очереди больше указанного времени, они помечаются как столкнувшиеся с заторами. Таким образом, устройства могут немедленно начать вносить коррективы, чтобы предотвратить усугубление перегрузки и, возможно, полностью устранить ее. Это позволяет передавать данные настолько быстро, насколько это возможно, и избавляет от сбоев и мер по смягчению последствий, которые могут увеличить задержку в работе других систем.

Нужны ли нам L4S?

С точки зрения сокращения задержки в Интернете, L4S или что-то в этом роде является “довольно необходимой вещью”, по словам Грега Уайта, технолога научно-исследовательской фирмы CableLabs, который помогал работать над стандартом. “Эта задержка буферизации обычно составляет от сотен миллисекунд до даже тысяч миллисекунд в некоторых случаях. Некоторые из более ранних исправлений для раздувания буфера сократили этот показатель до десятков миллисекунд, но L4S сокращает его до однозначных миллисекунд.”

Очевидно, что это могло бы помочь сделать повседневное пользование Интернетом приятнее. “В наши дни для большинства людей просмотр веб-страниц в большей степени ограничен временем в пути туда и обратно, чем пропускной способностью соединения. Помимо примерно шести - 10 мегабит в секунду, задержка играет большую роль в определении того, насколько быстро загружается веб-страница”.

Однако сверхнизкая задержка может оказаться жизненно важной для потенциальных вариантов использования в будущем. Мы затронули потоковую передачу игр, которая может превратиться в неразбериху при слишком большой задержке, но представьте, что произошло бы, если бы вы пытались транслировать игру в виртуальной реальности. В этом случае слишком большое отставание может не просто сделать игру менее увлекательной, но и даже вызвать рвоту.

Чего не могут сделать L4S?

Что ж, это не может нарушить законы физики. Данные могут передаваться очень быстро, и иногда им приходится проходить долгий путь. В качестве примера, если бы я пытался совершить видеозвонок с кем — то в Перте, Австралия, задержка была бы, по крайней мере, 51 мс в каждую сторону - именно столько времени требуется свету, чтобы пройти по прямой линии от того места, где я живу, туда, предполагая, что он проходит через вакуум. На самом деле, это займет немного больше времени.

Свет распространяется немного медленнее по волоконно-оптическим кабелям, и для передачи данных потребовалось бы несколько дополнительных переходов по пути, поскольку, насколько мне известно, на самом деле прямой линии от моего дома до Перта нет.

Вот почему большинство сервисов, которые не работают с данными в режиме реального времени, попытаются кэшировать их ближе к тому месту, где вы живете. Если вы смотрите что-то популярное на Netflix или YouTube, скорее всего, вы получаете эти данные с сервера, расположенного относительно близко к тому месту, где вы живете, даже если он находится далеко от основных центров обработки данных этих компаний.

L4S ничего не может поделать с этим физическим отставанием. Тем не менее это могло бы предотвратить значительное дополнительное отставание.

Итак, когда я это получу?

Это большой вопрос для любой сетевой технологии, особенно после того, как на внедрение IPV6, усовершенствования способа поиска компьютерами друг друга в Интернете, как известно, ушло более десяти лет. Итак, вот плохая новость: по большей части L4S пока не используется в дикой природе.

Тем не менее есть несколько громких имен, участвующих в его разработке. Когда мы поговорили с Уайтом из CableLabs, он сказал, что сегодня уже существует около 20 кабельных модемов, поддерживающих это, и что несколько интернет-провайдеров, таких, как Comcast, Charter и Virgin Media, приняли участие в мероприятиях, направленных на тестирование того, как аппаратное и программное обеспечение для предварительного выпуска работает с L4S. Такие компании, как Nokia, Vodafone и Google, также приняли участие, так что определенный интерес определенно есть.

Apple уделила еще больше внимания L4S на WWDC 2023, включив поддержку бета-версии в iOS 16 и macOS Ventura. В этом видео объясняется, что, когда разработчики используют некоторые из существующих фреймворков, поддержка L4S встроена автоматически без изменения какого-либо кода. Apple постепенно внедряет L4S для случайного набора пользователей с iOS 17 и macOS Sonoma, в то время как разработчики могут включить его для тестирования.

Как включить L4S для тестирования на iPhone. Изображение: Apple
Как включить L4S для тестирования на iPhone. Изображение: Apple

Примерно в то же время, что и WWDC, Comcast объявила о первых в отрасли полевых испытаниях L4S в сотрудничестве с Apple, Nvidia и Valve. Таким образом, контент-провайдеры могут отмечать свой трафик (например, потоковую передачу игр Nvidia GeForce Now), а клиенты на пробных рынках с совместимым оборудованием, таким как Xfinity 10G Gateway XB7 / XB8, Arris S33 или Netgear CM1000v2 gateway, могут воспользоваться этим прямо сейчас.

По словам Джейсона Ливингуда, вице-президента Comcast по технологической политике, продуктам и стандартам (и человека, чьи твиты в первую очередь привлекли наше внимание к L4S), “DOCSIS с низкой задержкой (LLD) является ключевым компонентом сети Xfinity 10G”, которая включает в себя L4S, и компания узнала многое из испытаний он может использовать для внесения изменений в следующем году, готовясь к возможному запуску.

Другим фактором, помогающим L4S, является то, что он широко совместим с системами контроля перегрузки, используемыми сегодня. Трафик, использующий его, и более старые протоколы могут сосуществовать, не ухудшая работу друг друга, и поскольку это не предложение "все или ничего", его можно внедрять постепенно. Это гораздо более вероятно, чем исправление, которое потребовало бы от всех внести серьезные изменения одновременно.

Тем не менее предстоит проделать еще много работы, прежде чем ваш следующий вызов Zoom сможет выполняться практически без задержек. Не каждый переход в сети должен поддерживать L4S, чтобы это имело значение, но те, которые обычно являются узкими местами, таковы.

(Уайт говорит, что в США это обычно означает ваш Wi-Fi-маршрутизатор или ссылки в вашей “сети доступа”, то есть оборудование, которое вы используете для подключения к своему интернет-провайдеру и которое ваш интернет-провайдер использует для подключения ко всем остальным.) Это также имеет значение на другом конце; серверы, к которым вы подключаетесь, также должны будут поддерживать это.

По большей части отдельным приложениям не нужно слишком сильно меняться, чтобы поддерживать его, особенно если они перекладывают задачу решения сетевых проблем на операционную систему вашего устройства. (Хотя это предполагает, что ваша ОС также поддерживает L4S, что пока не обязательно верно для всех.) Однако компаниям, которые пишут свой собственный сетевой код, чтобы добиться максимальной производительности, скорее всего, придется переписать его для поддержки L4S — однако, учитывая выгоды, которые возможны с его помощью, это, вероятно, стоит сделать.

Конечно, мы видели другие многообещающие технологии, которые в конечном итоге не приносят результатов, и может быть сложно преодолеть сценарий "курица и яйцо", который может существовать на ранних этапах жизненного цикла разработки. Зачем сетевым операторам утруждать себя работой по поддержке L4S, когда интернет-трафик его не использует? И если сетевые операторы его не поддерживают, зачем приложениям и сервисам, генерирующим этот трафик, утруждать себя его внедрением?

Как я могу определить, улучшит ли L4S мой Интернет?

Это отличный вопрос. Самым важным показателем будет то, с какой задержкой вы уже сталкиваетесь в повседневной жизни. Как я упоминал ранее, ping иногда используется для измерения задержки, но простое определение вашего среднего значения ping не обязательно расскажет вам всю историю. Что действительно важно, так это каков ваш пинг, когда ваша сеть облагается налогом, и до чего он повышается.

К счастью, некоторые приложения для тестирования скорости начинают отображать эти данные. В мае 2022 года компания Oodla добавила более реалистичный обзор задержки в Speedtest, который является одним из самых популярных инструментов для определения скорости вашего Интернета. Чтобы увидеть это, выполните тест, затем нажмите “подробный результат” и посмотрите раздел “отзывчивость”.

Когда я выполнил тест, он сообщил мне, что мой пинг, когда практически ничего больше не происходило, составлял 17, что кажется довольно хорошим. Но во время теста загрузки, когда я действительно использовал свое соединение, оно увеличилось до 855 миллисекунд — это почти целая секунда, которая показалась бы вечностью, если бы я, скажем, ждал загрузки веб-страницы, особенно если она умножается в несколько раз во время цикла обмена сообщениями поездки.

(Я приглашаю всех, кто пользовался удаленным доступом, рассказать мне, какой я мягкотелый, и вспомнить о тех днях, когда загрузка каждого веб-сайта занимала 10 секунд, в гору по снегу в обе стороны.)

Если вы делаете в Интернете только что-то одно за раз и пользуетесь сайтами, которыми почти никто не пользуется, то, возможно, L4S мало что сделает для вас, если и когда он наконец появится. Но это нереалистичный сценарий. Если мы сможем внедрить эту технологию в наши все более загруженные домашние сети, которые мы используем для посещения тех же сайтов, что и все остальные, есть вероятность, что это может стать тихой революцией в работе пользователей в Интернете.

И как только у большинства людей это появится, они смогут приступить к разработке приложений, которые не могли бы существовать без сверхнизкой задержки.