В последнее время замечаю огромное количество информации по поводу замедления Великого, но очень мало где видел конкретику о том, как именно это работает. Одно лишь отчаяние "мы все умрём".
Сразу скажу, что буду говорить обо всём, что известно на данный момент. Понятно, что с этим разбирался далеко не один я: огромное спасибо обывателям ntc party форума за проделанный ресёрч.
Так вот, начнём сначала, с злополучного GGC. Официальное заявление было, что кэш сервера устарели и долго не обновлялись, но у многих возникло такое скептическое чувство: "до этого работали, а тут в один момент всё поломалось". К тому же есть статья на википедии, которая утверждает, что разговоры про эти GGC шли еще с 2018 года. Да и если это были они, у нас бы плохо работала львиная доля гугл сервисов, включая Google Drive, Google PlayMarket, Google Images. А оно работает прекрасно, как и прежде.
Дальше рассмотрим идею, что это вообще гугл тестирует ограничение загрузчиков типа yt-dlp, потому что, в первую очередь, проблемы коснулись именно их. Идея на самом деле интересная, потому что действительно на современных протоколах (QUIC) всё хорошо работает, а проблемы есть только на старом добром TCP (сейчас ходят слухи, что и QUIC начали ограничивать, и, вроде как, я могу это подтвердить). Эту и предыдущую идеи мы опровергнем далее.
Как только я начал разбираться с этой проблемой и открыл Wireshark, меня ждали логи, состоящие наполовину из красных полос. Я не стал особо думать над тем, как именно замедляется ютуб со стороны TCP, но сразу стало понятно, что замедление искусственное, потому что если бы это были GGC, они бы либо не работали вообще, либо просто скорость была маленькая, а тут тонны потерянных пакетов. А еще забавно, что с QUIC, который автоматом работает в хроме такого вообще не происходило и скорость была в норме. Я начал искать и вспомнил про один очень крутой форум по обходу всяких подобных приколов с цензурой интернета, ntc party. Там я нашёл, как именно замедляется ютуб и контрпример, подтверждающий на 100%, что это проделки большого брата.
Но перед тем, как назвать способ замедления, давайте подумаем, а как они могут вообще определить, что я смотрю ютуб просто видя raw ip пакеты. Пойдём с самого низкого уровня, который может их заинтересовать, IP. Что тут есть? IP адрес. И это очень мощный инструмент, правда если их не тысячи, и если на них работает только один сервис, googlevideo. В случае огромной инфраструктуры гугла их банально сложно получить, я уже не говорю про то, что если на одном айпишнике работают, скажем гуглвидео и гугл плеймаркет, а ведь вероятность такая есть, это же GGC как никак. Тогда обрубая одно, обрубим и другое. Что делать? Посмотрим выше. На TCP мало чего интересного, поднимаемся еще выше. А дальше TLS. И это всё? Почти... Да, современные протоколы сделаны так, чтобы шифровать всё, что можно. Но есть только одно исключение. В спецификации TLS есть такая вещь, как SNI. Она передаётся серверу и говорит ему, к какому именно сайту мы хотим подключиться и, следовательно, какой именно сертификат нам давать. Что-то типа Host в HTTP, но для TLS. Так вот, этот самый SNI спокойно себе передаётся в незашифрованном виде. Было много спецификаций, предлагающих его зашифровать, но мэйнстримом оно не стало. К тому же, провайдеры блокировали такие подключения, чтобы не мешали следить за юзерами.
Так вот, SNI лежит в незашифрованном виде в Client Hello, и, обнаружив его, мы можем коннмарком пометить соединение и выкидывать рандомные пакеты.
Что мы видим в этом curl запросе? У curl'a есть возможность подключаться к серверу с его именем, но вместо резолвинга DNS поставить какой-нибудь свой айпи. При этом вся информация более высокого уровня будет передаваться, как будто мы используем именно это имя. Такое поведение заставляет curl подменять тот самый SNI (ну еще и Host, но это нас не особенно интересует). -k флаг используется, чтобы отключить проверку сертификатов (она провалится, потому что speedtest.selectel.ru будет нам давать свой сертификат, но никак не желаемый от гуглвидео). И если запустить это запрос, то мы получим весёлую скорость в 120 килобайт на начале, и дальше она пойдёт на спад. Даже до нуля может дойти. А теперь замените любую букву в googlevideo на другую и скорость прыгнет до нормальной скорости интернета. Всё стало на свои места.
Как с этим бороться?
Конечно, способы борьбы существуют. Для этого будем думать в сторону манглинга (изменения) пакетов. Но если мы просто заменим googlevideo.com на yandex.ru, получим ошибку сертификатов. И не факт что браузер вообще позволит отключить эту проверку для гуглвидео и нормально будет с этим жить. Так что же делать?
Вспомнить про то, что ТСПУ - это всё-таки очень высоконагруженная штука, которая вряд ли будет запоминать, что и когда мы там отправляли в сеть, и, соответственно, если мы просто разобьем наш запрос на два в середине SNI, то О Чудо! Всё начинает работать. В моём случае не понадобились даже фейковые Client Hello или задержка между пакетами (но вроде как ему всё-таки нужен обратный порядок пакетов: сначала идёт хвост, потом голова).
Как разбивать? Есть два варианта: фрагментами IP и на уровне сегментации TCP. У меня лично фрагментация IP сначала работала на половину, а потом и вообще отвалилась. Возможно, провайдеру не понравилось. Идём выше, к TCP. И тут у них всё очень приятно работает. Даже несмотря на то, что я, казалось бы, из одного пакета сделал два, поменял размеры двух пакетов, я не нарушил никаких правил TCP соединения: Ack по количеству доставленных байт - вещь.
Готовые средства обхода. Ну и самое вкусненькое. Я лично написал[censored] которое направлено только на ютуб. Также для Windows существует[censored] под линукс еще есть[censored] Существует[censored] который работает как прокси (Windows/Linux). Также есть[censored] работает как "фейковый впн". Советую прочитать[censored] о том, как использовать эти средства. Если есть желание погрузиться глубже в эту тему, вот тут можно посмотреть подробнее:[censored] and[censored]
> А теперь замените любую букву в googlevideo на другую и скорость прыгнет до нормальной скорости интернета. Всё стало на свои места.
Собственно о чём и так было понятно. "Устаревание серверов" - это просто перекладывание ответственности, это не мы замедляем - это ютуб сам сломался. Но не совсем сломался, а чуть-чуть, ну чтоб вы не сильно расстроились, когда "сломается" совсем.
Мне одно непонятно: вот заблокировали Инстаграм, отлично, но при этом жена Хинштейна, куча политиков, общественных деятелей - продолжает им пользоваться, демонстративно практически - в чём смысл таких запретов? Есть какое-то рациональное объяснение? Или чтобы просто было?
Ты посмотри как много готовых решений как обойти замедление ютупа и все раздаются бесплатно и все синхронно размещаются на всех информационных площадках...
> Ты посмотри как много готовых решений как обойти замедление ютупа и все раздаются бесплатно и все синхронно размещаются на всех информационных площадках...
GoodbyeDPI - он вообще не про юпуп, просто его можно для этого использовать.
Вопрос к тем кто разбирается, насколько безопасно использовать это решение?
Ну то есть так то за мной следит и меня ограничивает моё родное КГБ, а тут непонятный англоязычный Виталя (ValdikSS).
Я не умею препарировать exe-шники, как понять что там не спрятана какая-нибудь гадость?
В russia-blacklist.txt у него довольно интересная подборка сайтов) я про 95% и не слышал никогда.
Мне больше непонятно, почему фейсбук, инстаграм и даже окулус заблокировали, а вотсапом от той же экстремистской компании мета все продолжают пользоваться.
> Пойдём с самого низкого уровня, который может их заинтересовать, IP. Что тут есть? IP адрес. И это очень мощный инструмент, правда если их не тысячи, и если на них работает только один сервис, googlevideo.
Вроде есть ещё MAC и тут всё проще, не?
Я сварщик ненастоящий, но вопрос имею. ))
> вот заблокировали Инстаграм, отлично, но при этом жена Хинштейна, куча политиков, общественных деятелей - продолжает им пользоваться, демонстративно практически - в чём смысл таких запретов? Есть какое-то рациональное объяснение?
В одном из банков как-то посчитали, что если при выплате кэшбека округлять до рублей, а копейки не выплачивать, то можно нормально сэкономить. Количество держателей карт тогда уже перевалило за 1 млн. Ну, т.е., к примеру, ты получишь не 15 руб. 97 коп., а просто 15 руб.
Понимая, что не все клиенты будут таким поворотом довольны, ответственные за направление спустили сотрудникам скритп по работе с возражением: " но, какого хера стали меньше начислять?". Скрипт был простой: "это для вашего же удобства, чтобы былр удобнее считать!".
Про жену Хинштейна, политиков и общественных деятелей можно предложить такой вариант: "это интеллектуальная элита общества, они не подвержены вражеской пропаганде, в отличие от тупого быдла". Хотя, наверное, время такой риторики ещё не пришло
> Мне больше непонятно, почему фейсбук, инстаграм и даже окулус заблокировали, а вотсапом от той же экстремистской компании мета все продолжают пользоваться
wa является мессенджером, а не социальной сетью. Так объясняли
> Ты посмотри как много готовых решений как обойти замедление ютупа и все раздаются бесплатно и все синхронно размещаются на всех информационных площадках...
>
Нет пока удобных готовых решений. Программы по всем ссылкам кроме авторской были разработаны для обхода других блокировок и те, которые я проверил, для Ютуба не работают. А авторский проект не для массового пользователя. Только под Линукс, нужно компилировать, без дополнительных настроек (которые нужно подбирать опытным путём) работает не со всеми браузерами.
> в чём смысл таких запретов? Есть какое-то рациональное объяснение?
Снижение конверсии. Каждый препон, даже банальная капча, или неправильно расположенная кнопка снижают аудиторию сервиса. А блокировка снижает ее в разы.
> Мне больше непонятно, почему фейсбук, инстаграм и даже окулус заблокировали, а вотсапом от той же экстремистской компании мета все продолжают пользоваться.
Если пользоваться принципом "когда непонятно, значит деньги", можно предположить, что за вотсапп занесли достаточно, а за фейсбук недостаточно. Потому что он важнее для вражеских спецслужб. Говорят, даже ракеты наводят с его помощью.
>
> Так вот, начнём сначала, с злополучного GGC. Официальное заявление было, что кэш сервера устарели и долго не обновлялись, но у многих возникло такое скептическое чувство: "до этого работали, а тут в один момент всё поломалось". К тому же есть статья на википедии, которая утверждает, что разговоры про эти GGC шли еще с 2018 года. Да и если это были они, у нас бы плохо работала львиная доля гугл сервисов, включая Google Drive, Google PlayMarket, Google Images. А оно работает прекрасно, как и прежде.
Хинштейн всех сдал. Почему вообще, поднимается вопрос: "А кто же это сделал?", непонятно.
> Москва. 25 июля. INTERFAX.RU - Председатель комитета Госдумы по информационной политике Александр Хинштейн заявил о готовящихся мерах по
> замедлению загрузки YouTube на стационарных компьютерах.
> но при этом жена Хинштейна, куча политиков, общественных деятелей - продолжает им пользоваться, демонстративно практически
Вот для этого школу Ильина и городят, чтобы появление таких вопросов уже сразу внутри головы блокировалось Врождённым Чувством Ранга.
Понимать же надо: жена депутата Хинштейна она же жена депутата Хинштейна, а не водопроводчика Иванова, потому и может пользоваться всем чем ей надо!
Не. MAC это сетевой адрес на уровне железа. По сути -- номер сетевой карты. Поменяли железо (апгрейд, ремонт) -- поменяли MAC. С его помощью можно различать устройства пользователя, например. Но смысл блокировки -- не устройства пользователя различать, а выдавать пользователю говно если пользователь качает данные с определённого ресурса. У ресурса куча адресов и они могут меняться. Плюс, один адрес может отвечать за несколько сервисов. Поэтому такая фильтрация (по адресу) плохо подходит. Ну а MAC здесь подходит ещё меньше.
> Мне одно непонятно: вот заблокировали Инстаграм, отлично, но при этом жена Хинштейна, куча политиков, общественных деятелей - продолжает им пользоваться,
Жене Хинштейна можно. А нам велено не пользоваться.
> Мне больше непонятно, почему фейсбук, инстаграм и даже окулус заблокировали, а вотсапом от той же экстремистской компании мета все продолжают пользоваться.
Видимо в госдуме им пользуются, а на ТГ переходить не с руки, сложен больно=)
> Ты посмотри как много готовых решений как обойти замедление ютупа и все раздаются бесплатно и все синхронно размещаются на всех информационных площадках...
Полагаешь это не просто так, и это враги рода человеческого раздают эти решения, чтобы мы и дальше продолжали зомбироваться богомерзским ютубом без замедления?
Согласен, ютуб замедляют для нашего же блага, а мы, быдло, мало того что не понимаем этого, так ещё и противодействуем!!!
Кстати, последней каплей, после которой всё и началось, стал бан ютубом страницы Шамана. Зачем нужен ресурс, на котором нельзя смотреть шамана, я вас спрашиваю?
>
> Кстати, последней каплей, после которой всё и началось, стал бан ютубом страницы Шамана. Зачем нужен ресурс, на котором нельзя смотреть шамана, я вас спрашиваю?
А то что перед этим забанили сперва каналы российских СМИ, потом российских телеведущих, потом блоггеров, оказывающих прямую поддержку властям, потом блоггеров, которые просто не тех людей пригласили, а потом уже перешли к бану каналов, которые были замечены в прошлом в публикации материалов СМИ РФ - это хуйня из под коня, да.
Интересно, почему никому в голову не приходит, в том числе и нашим контентмейкерам, что каналы, у которых российская аудитория, и которая ходит на ютуб без ВПН, для гугла говно на палке, не приносящее денег, и с ними можно делать, что угодно?
> Ты посмотри как много готовых решений как обойти замедление ютупа и все раздаются бесплатно и все синхронно размещаются на всех информационных площадках...
Да. Есть куча альтернативных источников, откуда ты можешь смотреть любимые СМИ РФ. А ютуб — это крупнейшая в мире библиотеке видеоконтента, на любые темы и на любых языках. Банить её — самострел в чистом виде и очередной удар по собственному населению, вместо реального врага. Очередное исполнение концепции "Бомбить Воронеж", чтобы враги боялись.
ЗЫ Самый пиздец в том, что они как нашкодившие школьники, даже не хватает смелости взять ответственность за свои поступки и сказать: "Да, режем скорость". Вместо этого втирают дичь про технические причины. Мол оборудование Гугл устарело, два года не ломалось, но есть чуйка что с этой среды начнёт. И точно.
ValdikSS - очень известный в сетевой безопасности специалист с большим бэкграундом в рунете. Есть открытые им уязвимости, публикации и прочее. Whitehat, по терминологии ИБ, короче.
А так-то да, никому верить нельзя!
> Есть куча альтернативных источников, откуда ты можешь смотреть любимые СМИ РФ. А ютуб — это крупнейшая в мире библиотеке видеоконтента, на любые темы и на любых языках. Банить её — самострел в чистом виде и очередной удар по собственному населению, вместо реального врага. Очередное исполнение концепции "Бомбить Воронеж", чтобы враги боялись.
А зачем в СССР иностранное радио глушили? А зачем в США ходят разговоры про запрет тиктока? Ютуб это в первую очередь средство пропаганды под управлением наших врагов, (как и Википедия и Твитер и Инстаграм), а потом уже библиотека.
Главная цель пересадить - большинство российских пользователей и производителей контента на отечественную платформу, подконтрольную нашему государству и подключить к собственной пропаганде, а не вражеской.
Но ни одна отечественная платформа не выиграет конкуренцию у Ютуба, если его немного не придушить.
> Ну то есть так то за мной следит и меня ограничивает моё родное КГБ, а тут непонятный англоязычный Виталя (ValdikSS).
> Я не умею препарировать exe-шники, как понять что там не спрятана какая-нибудь гадость?
>
> В russia-blacklist.txt у него довольно интересная подборка сайтов) я про 95% и не слышал никогда.
Никак, так же как и с кряками к софту на рутрекере.
> Это понятно, но разве по MACу нельзя отследить страну поставки и блокирнуть эту партию\серию если нужно?
>
Страну поставки сетевой карты и даже производителя по MACу можно определить, только не понятно, что это даст. Серверное оборудование не такое уж и разнообразное чтобы можно было различить -- вот это используется только для ютуба, а вот то -- для гугл докс.
Когда речь идёт о сервисе, раскиданном на несколько дата центров, MAC не фигурирует вообще. Я сетевой инженер не настоящий, но вряд ли в интернет пакете хранится вся цепочка MAC адресов оборудования через которое прошёл пакет. А без этого определить начальный сервер не представляется возможным. MAC имеет смысл только при прямой связи двух устройств. Например, провайдер-роутер, роутер-компьютер.
"Я тут смотрел как ноут разобрать...
Пока шли рекламы я передумал. Слишком долго ждать инфы.
Пока ждал технического контента узнал: чем правильно стирать, куда ехать отдыхать, где и за сколько купить квартиру. Понял что работаю не там и выключил."
Так то конкуренцию у гугла точно выиграть.
А про отношение отечественных платформ к контентмейкерам иногда рассказывают ребята с IXBT.games. Тоже впечатляет.
Хотя, понятно, что политика у ютуб явно не пророссийская и требования роскомнадзора они не исполняют и каналы удаляют и сделать с этим ничего не получается.
Отличный пример привёл. И? Помогло это СССР?
Внезапно выяснилось, что запреты как контрпропаганда нифига не работают, а иногда работают в другую сторону. Мол власти это скрывают, значит там ПравдаЪ!
> Главная цель пересадить - большинство российских пользователей и производителей контента на отечественную платформу, подконтрольную нашему государству и подключить к собственной пропаганде, а не вражеской.
Цель понятна, непонятны средства. Создавать что-то намного сложнее, чем запрещать. Поэтому все известные "убийцы" ютуба и википедии оказались фуфлом и отмывом денег. И так и будет, души ютуб, не души.
> Но ни одна отечественная платформа не выиграет конкуренцию у Ютуба, если его немного не придушить.
Как-то яндексу удалось занять долю рынка при работающем гугле и других поисковиках. Странно, правда?
> Да. Есть куча альтернативных источников, откуда ты можешь смотреть любимые СМИ РФ.
Причем тут я, можно узнать? Ты пишешь "заблокировали после бана Шамана", подразумевая что "после"="по причине". Это - лютая хуета. Я эту лютую хуету опровергаю. Вопросы?
> А ютуб — это крупнейшая в мире библиотеке видеоконтента
А еще средство пропаганды, на которое власти больше не имеют никакого влияния. В смысле - вообще. Теперь гугл может банить или продвигать любой контент, который посчитает нужным. В том числе - откровенно враждебный. Причем не просто "может", он уже это делает. Считаешь, этому не нужно противостоять? Молодец. Возьми с полки дополнительную пару мозгов.
> А вот такой вопрос. Как планируется пересадить иностранных производителей контента на рутуб?
Никак, иностранный контент останется на youtube. В этом же и цель - отключить массового зрителя от неподконтрольного иностранного контента.
Да он большинству и нахрен не сдался.
Если пересадить всех российских производителей контента на рутуб, то 95% тех, кто сейчас бьётся и хрипт, и не вспомнят чего они так youtube защищали. А оставшиеся 5% будут пользоваться двумя платформами и ходить за роликами на иностранном языке через vpn.
> А вот такой вопрос. Как планируется пересадить иностранных производителей контента на рутуб?
Никак, естественно. Зачем тебе иностранные производители контента? Ты не дурное, случаем, задумал?
На рутубе есть всё что тебе нужно, как и любому другому законопослушному гражданину РФ.
Вотт тебе первый канал. Вотт тебе рен-тв. Вотт тебе Шаман. Что тебе надо то ещё?
> Как-то яндексу удалось занять долю рынка при работающем гугле и других поисковиках. Странно, правда?
Алиса яндексная вон даже с ЧатГПТ конкурирует. По своему, но тем не менее. И я думаю, спокойно может конкурировать с Кортаной от майкрософт (а она, в отличии от Алисы, только собирается стать умным домом).
И наш coub нормально живёт не смотря на тик-токи и шортсы ютуба.
Вспомнят. По словам тех же ребят с ixbt, когда им кидали страйки на контент по сталкеру 2, то единственной платформой на которой можно было подать аппеляцию и добиться результата был ютуб. Ни вк плей, ни рутуб до конструктивного диалога не снизошли.
Думаю это не единственное в чем наши ресурсы проигрывают ютубу по работе с контентмейкерами.
> Причем тут я, можно узнать? Ты пишешь "заблокировали после бана Шамана", подразумевая что "после"="по причине". Это - лютая хуета. Я эту лютую хуету опровергаю. Вопросы?
Про Шамана — это шутка. Неужели твоего мозга не хватило даже на то чтобы это понять? :))
> А еще средство пропаганды, на которое власти больше не имеют никакого влияния. В смысле - вообще. Теперь гугл может банить или продвигать любой контент, который посчитает нужным.
Внезапно, владелец ресурса не хочет чтобы на его ресурсе размещали инфу, которая ему не нравится. Так везде. И на вотте, и на опере, и на ютубе. Кто бы мог подумать!!!
> Считаешь, этому не нужно противостоять?
Бесконечными запретами? Конечно нельзя.
> Возьми с полки дополнительную пару мозгов.
Воспользуйся своим советом сам. Из тебя выйдет, или даже уже вышел, замечательный депутат или чиновник. Запретить и нипущать!!!
В позднем - уже от безысходности и идеологической некомпетентности, не позволяющей в моменте противостоять западной пропаганде иначе чем вот так.
Чем закончилось - известно, восторгами от жвачки и джинсов в социуме, стоило только приоткрыть шторку.
> зачем в США ходят разговоры про запрет тиктока?
От некомпетентности же.
Слабеют пред Китаем.
> Ютуб это в первую очередь средство пропаганды под управлением наших врагов, (как и Википедия и Твитер и Инстаграм), а потом уже библиотека.
Да, а машины это в первую очередь средство давления на пролетариат в руках капитала, а не техпрогресс.
Поэтому станем же луддитами.
> Главная цель пересадить - большинство российских пользователей и производителей контента на отечественную платформу, подконтрольную нашему государству и подключить к собственной пропаганде, а не вражеской.
Да сразу отрубить инет всем и оставить просто ящик.
Сразу все проблемы решены будут.
А то вдруг и на платформе не будет ожидаемого, зачем эти риски.
***
Идеологическая компетентность, создание своих решений за десятилетия до, их раскрутка, вбирание в себя моря контента и миллиардной аудитории - ну зачем это все, если можно применить рубильник, правда?
> Алиса яндексная вон даже с ЧатГПТ конкурирует. По своему, но тем не менее. И я думаю, спокойно может конкурировать с Кортаной от майкрософт (а она, в отличии от Алисы, только собирается стать умным домом).
Да, нормальный продукт найдёт свою долю рынка всегда. Но это же делать надо. Это сложно. Запрещать просто.
Думаешь если бы Голос Америки на русском лил в уши советским гражданам бесконтрольно, но было бы лучше? 91 год наступил бы ещё раньше.
> Поэтому все известные "убийцы" ютуба и википедии оказались фуфлом и отмывом денег. И так и будет, души ютуб, не души.
Это не так, теперь у них есть шанс вырасти во что-то приличное. Хоть один на выстрелит. Свято место пусто не бывает.
> Как-то яндексу удалось занять долю рынка при работающем гугле и других поисковиках. Странно, правда?
Яндекс на год старше Гугла и это Гуглу скорее удалось занять долю на российском рынке при работающем Яндексе. А ты попробуй вывести новый поисковик сейчас на рынок, сколько это тебе будет стоить? Ну так чтобы сразу занять долю рынка и никто не сказал бы, что у тебя просто фуфло и отмыв денег.
надзор »
Привет, Хабр!
В последнее время замечаю огромное количество информации по поводу замедления Великого, но очень мало где видел конкретику о том, как именно это работает. Одно лишь отчаяние "мы все умрём".
Сразу скажу, что буду говорить обо всём, что известно на данный момент. Понятно, что с этим разбирался далеко не один я: огромное спасибо обывателям ntc party форума за проделанный ресёрч.
Так вот, начнём сначала, с злополучного GGC. Официальное заявление было, что кэш сервера устарели и долго не обновлялись, но у многих возникло такое скептическое чувство: "до этого работали, а тут в один момент всё поломалось". К тому же есть статья на википедии, которая утверждает, что разговоры про эти GGC шли еще с 2018 года. Да и если это были они, у нас бы плохо работала львиная доля гугл сервисов, включая Google Drive, Google PlayMarket, Google Images. А оно работает прекрасно, как и прежде.
Дальше рассмотрим идею, что это вообще гугл тестирует ограничение загрузчиков типа yt-dlp, потому что, в первую очередь, проблемы коснулись именно их. Идея на самом деле интересная, потому что действительно на современных протоколах (QUIC) всё хорошо работает, а проблемы есть только на старом добром TCP (сейчас ходят слухи, что и QUIC начали ограничивать, и, вроде как, я могу это подтвердить). Эту и предыдущую идеи мы опровергнем далее.
Как только я начал разбираться с этой проблемой и открыл Wireshark, меня ждали логи, состоящие наполовину из красных полос. Я не стал особо думать над тем, как именно замедляется ютуб со стороны TCP, но сразу стало понятно, что замедление искусственное, потому что если бы это были GGC, они бы либо не работали вообще, либо просто скорость была маленькая, а тут тонны потерянных пакетов. А еще забавно, что с QUIC, который автоматом работает в хроме такого вообще не происходило и скорость была в норме. Я начал искать и вспомнил про один очень крутой форум по обходу всяких подобных приколов с цензурой интернета, ntc party. Там я нашёл, как именно замедляется ютуб и контрпример, подтверждающий на 100%, что это проделки большого брата.
Но перед тем, как назвать способ замедления, давайте подумаем, а как они могут вообще определить, что я смотрю ютуб просто видя raw ip пакеты. Пойдём с самого низкого уровня, который может их заинтересовать, IP. Что тут есть? IP адрес. И это очень мощный инструмент, правда если их не тысячи, и если на них работает только один сервис, googlevideo. В случае огромной инфраструктуры гугла их банально сложно получить, я уже не говорю про то, что если на одном айпишнике работают, скажем гуглвидео и гугл плеймаркет, а ведь вероятность такая есть, это же GGC как никак. Тогда обрубая одно, обрубим и другое. Что делать? Посмотрим выше. На TCP мало чего интересного, поднимаемся еще выше. А дальше TLS. И это всё? Почти... Да, современные протоколы сделаны так, чтобы шифровать всё, что можно. Но есть только одно исключение. В спецификации TLS есть такая вещь, как SNI. Она передаётся серверу и говорит ему, к какому именно сайту мы хотим подключиться и, следовательно, какой именно сертификат нам давать. Что-то типа Host в HTTP, но для TLS. Так вот, этот самый SNI спокойно себе передаётся в незашифрованном виде. Было много спецификаций, предлагающих его зашифровать, но мэйнстримом оно не стало. К тому же, провайдеры блокировали такие подключения, чтобы не мешали следить за юзерами.
Так вот, SNI лежит в незашифрованном виде в Client Hello, и, обнаружив его, мы можем коннмарком пометить соединение и выкидывать рандомные пакеты.
Я знаю, что вы ждёте пруфов, господа, и вот они:
curl --connect-to ::speedtest.selectel.ru[censored] -k -o/dev/null
Что мы видим в этом curl запросе? У curl'a есть возможность подключаться к серверу с его именем, но вместо резолвинга DNS поставить какой-нибудь свой айпи. При этом вся информация более высокого уровня будет передаваться, как будто мы используем именно это имя. Такое поведение заставляет curl подменять тот самый SNI (ну еще и Host, но это нас не особенно интересует). -k флаг используется, чтобы отключить проверку сертификатов (она провалится, потому что speedtest.selectel.ru будет нам давать свой сертификат, но никак не желаемый от гуглвидео). И если запустить это запрос, то мы получим весёлую скорость в 120 килобайт на начале, и дальше она пойдёт на спад. Даже до нуля может дойти. А теперь замените любую букву в googlevideo на другую и скорость прыгнет до нормальной скорости интернета. Всё стало на свои места.
Как с этим бороться?
Конечно, способы борьбы существуют. Для этого будем думать в сторону манглинга (изменения) пакетов. Но если мы просто заменим googlevideo.com на yandex.ru, получим ошибку сертификатов. И не факт что браузер вообще позволит отключить эту проверку для гуглвидео и нормально будет с этим жить. Так что же делать?
Вспомнить про то, что ТСПУ - это всё-таки очень высоконагруженная штука, которая вряд ли будет запоминать, что и когда мы там отправляли в сеть, и, соответственно, если мы просто разобьем наш запрос на два в середине SNI, то О Чудо! Всё начинает работать. В моём случае не понадобились даже фейковые Client Hello или задержка между пакетами (но вроде как ему всё-таки нужен обратный порядок пакетов: сначала идёт хвост, потом голова).
Как разбивать? Есть два варианта: фрагментами IP и на уровне сегментации TCP. У меня лично фрагментация IP сначала работала на половину, а потом и вообще отвалилась. Возможно, провайдеру не понравилось. Идём выше, к TCP. И тут у них всё очень приятно работает. Даже несмотря на то, что я, казалось бы, из одного пакета сделал два, поменял размеры двух пакетов, я не нарушил никаких правил TCP соединения: Ack по количеству доставленных байт - вещь.
Готовые средства обхода. Ну и самое вкусненькое. Я лично написал[censored] которое направлено только на ютуб. Также для Windows существует[censored] под линукс еще есть[censored] Существует[censored] который работает как прокси (Windows/Linux). Также есть[censored] работает как "фейковый впн". Советую прочитать[censored] о том, как использовать эти средства. Если есть желание погрузиться глубже в эту тему, вот тут можно посмотреть подробнее:[censored] and[censored]