The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Опубликована библиотека nghttp3 1.0 с реализацией протокола HTTP/3

22.10.2023 10:00

Доступен первый стабильный релиз проекта nghttp3, развивающего библиотеку на языке Си с реализацией протокола HTTP/3. Развиваемый тем же проектом вариант библиотеки для протокола HTTP/2 используется в качестве основы модуля mod_http2, входящего в состав http-сервера Apache. Наработки проекта также задействованы в утилите Curl. Код библиотеки распространяется под лицензией MIT.

Стандарт HTTP/3 определяет использование протокола QUIC (Quick UDP Internet Connections) в качестве транспорта для HTTP/2. QUIC представляет собой надстройку над протоколом UDP, поддерживающую мультиплексирование нескольких соединений и обеспечивающую методы шифрования, эквивалентные TLS/SSL. Протокол был создан в 2013 году компанией Google в качестве альтернативы связке TCP+TLS для Web, решающей проблемы с большим временем установки и согласования соединений в TCP и устраняющей задержки при потере пакетов в процессе передачи данных.

В nghttp3 предоставляется независимая реализация спецификаций RFC 9114 (HTTP/3 поверх протокола QUIC), RFC 920 (технология сжатия заголовков QPACK), RFC 9220 (передача WebSockets поверх HTTP/3) и RFC 9218 (расширяемая схема для управления приоритетами отправки ответов на запросы клиента). Библиотека не зависит от определённых стеков QUIC и поддерживает работу поверх разных реализаций транспортного протокола QUIC. При этом проектом также развивается собственная реализация протокола QUIC - ngtcp2, применяемая по умолчанию. В качестве бэкендов для шифрования данных в ngtcp2 поддерживаются quictls, GnuTLS, BoringSSL, Picotls и wolfSSL. Одновременно с nghttp3 1.0 опубликован и первый стабильный релиз ngtcp2 1.0.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Уязвимость в протоколе HTTP/2, задействованная в крупнейшей DDoS-атаке
  3. OpenNews: Доступен http-сервер Apache 2.4.17 с поддержкой HTTP/2
  4. OpenNews: В кодовую базу nginx добавлен модуль для поддержки HTTP/2
  5. OpenNews: Доступен nginx 1.25.0 с экспериментальной поддержкой HTTP/3
  6. OpenNews: Протокол HTTP/3.0 получил статус предложенного стандарта
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59973-nghttp
Ключевые слова: nghttp, http3, quic
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (132) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, timur.davletshin (ok), 10:23, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А управление потоком там Cubic по дефолту или что?
     
     
  • 2.41, Аноним (-), 18:01, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А управление потоком там Cubic по дефолту или что?

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

     
     
  • 3.49, timur.davletshin (ok), 18:36, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вы только по воскресеньям обдолбанный или всегда? В подавляющем большинстве реализаций Quic используется Cubic. А от BBR давно отказался даже Google (в Chrome тоже Cubic, в Mozilla Cubic). BBRv1 коряв, не дружит с ECN, катастрофически проседает на WiFi из-за того, что pacing мешает агрегации MTU, и только Анонимусы всё ещё его педалируют.
     
     
  • 4.51, Аноним (-), 18:57, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Гугол в mainline ядра уже давно запушил нечто, что уже точно не v1 в его изначал... большой текст свёрнут, показать
     
     
  • 5.63, timur.davletshin (ok), 21:29, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как быстро ты порвался В ядре BBRv1, который НИ ОДНОЙ фичей не был расширен с н... большой текст свёрнут, показать
     
     
  • 6.64, Аноним (-), 21:41, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > It relies on an underlying QUIC stack for flow control and connection management.

    Нате вам на двоих, эксперты! И реализаций QUIC - уже более одной. Вы за все говорите или за какую-то конкретную? Если да - какую именно? Урл сорца? И при чем тут какие-то статистики каких-то атеросов вообще?!

     
     
  • 7.65, timur.davletshin (ok), 21:50, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Chrome, neqo (Firefox), nginx.

    Человек упомянул про беспроводные сети. Проблема в том, что это именно то место, где BBR сливает. Суть проблемы в моём первом посте - pacing ухудшает процент агрегированных MTU (MTU в беспроводных сетях больше, поэтому надо бы объединять Ethernet MTU ~1500).

     
     
  • 8.96, Аноним (-), 18:06, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А это все точно к либе nghttp можно интерфейсить как реализацию quick Или тут... текст свёрнут, показать
     
     
  • 9.99, timur.davletshin (ok), 18:40, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Оно обязано мочь работать с ними, ибо нафиг бы такой Quic кому нужен был ... текст свёрнут, показать
     
     
  • 10.101, Аноним (101), 18:42, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Обязано работать вообще ничего не говорит о шедулинге пакетов и алгоритмах Та... текст свёрнут, показать
     
     
  • 11.102, timur.davletshin (ok), 18:45, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https github com mozilla neqo tree main neqo-transport src cc - нужно ещё Пои... текст свёрнут, показать
     
     
  • 12.137, Аноним (-), 18:36, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как вот это все относится к ВОН ТОЙ либе Она подразумевает, что вы принесете св... большой текст свёрнут, показать
     
  • 11.104, timur.davletshin (ok), 19:10, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сводные данные можешь поискать по Same Standards, Different Decisions A Study ... текст свёрнут, показать
     
  • 8.123, Ivan_83 (ok), 22:24, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Надо на jumbo frame переходить, но чувствую это ещё сложнее чем с IPv6 Хотя по ... текст свёрнут, показать
     
     
  • 9.124, timur.davletshin (ok), 22:44, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Аха, сколько копий сломали о то, как приоритеты пакетов IP агрегировать в беспро... текст свёрнут, показать
     
     
  • 10.129, Ivan_83 (ok), 23:36, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Jumbo это всё что больше 1536 или как то так В принципе вифи может лимитирова... текст свёрнут, показать
     
     
  • 11.131, timur.davletshin (ok), 23:44, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Там ещё мини-джамбо был Позволяет на PPP делать 1500 MTU Его много кто умеет н... текст свёрнут, показать
     
  • 11.135, Аноним (135), 03:54, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так передача же не одним TCP ограничивается ... текст свёрнут, показать
     
  • 9.138, Аноним (-), 18:40, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Даже используя MTU 1500 в интернете можно покушать много интересных вещей Из-... большой текст свёрнут, показать
     
  • 5.66, Аноньимъ (ok), 22:56, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Он на wi-fi при малейшей потере пакетов

    Если у вас потеря пакетов идёт, на вайфай, то каналу связи полная Ж пришла. Никакие чудо алгоритмы транспортного уровня это никак не вылечат.

    Вам нужно ждать подтверждение доставки покета, и нужно перепосылать всё что не дошло.
    И подверждение тоже может не дойти.

     
     
  • 6.68, timur.davletshin (ok), 23:12, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Справедливо, т.к. контроль целостности и retransmit есть в WiFi, но дроп это не лечит. Описываемый вами же сценарий тоже маловероятен, т.к. сейчас есть SACK почти у всех и подтверждения и перепосылки стали "дешевле", чем без оного расширения.
     
  • 6.100, Аноним (101), 18:40, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Радио - нестабильная среда по определению Особенно если это все не в пустыне, в... большой текст свёрнут, показать
     
     
  • 7.105, Аноньимъ (ok), 19:34, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вайфай в зоне покрытия работает нормально, ад начинается только когда вы на гран... большой текст свёрнут, показать
     
     
  • 8.109, timur.davletshin (ok), 20:16, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Управляет потоком тот, кто посылает данные Есть три подхода - по потерям, по за... большой текст свёрнут, показать
     
     
  • 9.113, Аноньимъ (ok), 20:59, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо Как я и думал А попыток таки протоколов в которых сетевые узлы могли... текст свёрнут, показать
     
     
  • 10.115, timur.davletshin (ok), 21:10, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Читай ниже про ECN ... текст свёрнут, показать
     
  • 8.110, timur.davletshin (ok), 20:39, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть ещё управление по задержкам Идея такая, что посылающий пакеты должен каким... большой текст свёрнут, показать
     
  • 8.111, timur.davletshin (ok), 20:45, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    поэтому придумали гибридные и двухрежимные алгоритмы Одни пытаются совмести... текст свёрнут, показать
     
     
  • 9.118, timur.davletshin (ok), 22:01, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я тут ошибся Такие алгоритмы называются двухрежимными ... текст свёрнут, показать
     
  • 8.112, timur.davletshin (ok), 20:50, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть ещё ECN явное уведомление о перегрузке Это поле в пакете IP, которое... большой текст свёрнут, показать
     
     
  • 9.114, Аноньимъ (ok), 21:06, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот Оно Насколько оно распространено вообще По идее, обязать всех это соблюда... текст свёрнут, показать
     
     
  • 10.116, timur.davletshin (ok), 21:15, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зайди в консоль, сделай netstat -s где-то в самом низу есть статистика InNoECTP... большой текст свёрнут, показать
     
  • 10.117, timur.davletshin (ok), 21:25, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Суть разборок с Quic в том, что на самом деле Quic является обычным UDP UDP не ... большой текст свёрнут, показать
     
     
  • 11.122, Ivan_83 (ok), 22:21, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну тут такое себе В том смысле что нетфликсу с фрёй не пришлось городить юзер... текст свёрнут, показать
     
     
  • 12.128, timur.davletshin (ok), 23:06, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, those were the days ... текст свёрнут, показать
     
  • 12.148, _oleg_ (ok), 14:36, 10/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А дело не в том, что его не шейпили А в том, что uTP первой версии было агресси... текст свёрнут, показать
     
  • 8.139, Аноним (-), 19:15, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А эти речи выдают дилетанта Который про интерференцию, поляризацию, отраженку, ... большой текст свёрнут, показать
     
     
  • 9.144, Аноньимъ (ok), 15:19, 26/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, пользоваться вайфаем в яме, под водой, или в свинцовом бункере, я запретить... большой текст свёрнут, показать
     
     
  • 10.149, _oleg_ (ok), 14:48, 10/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажите это RTMP и HLS - ... текст свёрнут, показать
     
  • 7.106, timur.davletshin (ok), 19:54, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > FEC эти чудо-алгоритмы называются. Это даже работает.

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

     
     
  • 8.140, Аноним (140), 19:31, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    FEC это более generic название идеи И если кто не знал их можно комбинировать ... большой текст свёрнут, показать
     
  • 7.107, timur.davletshin (ok), 19:57, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Multi-path + FEC это немного повыше уровня технологий к которому вы привыкли.

    А где вы к этому привыкли? Я прямо хочу услышать у пана про организацию управления потоком и используемый алгоритм. Давай! Это вопрос с подвохом, сразу говорю.

     
  • 7.108, timur.davletshin (ok), 20:02, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В свете этого хотелось бы увидеть пруф что кто-то и правда додумался до кубика
    > в чистом виде в QUIC.

    Ничем незамутнённый Cubic без гибридного старта. Или тебе сорцев недостаточно? Напомню, что сейчас в ядро вроде как пакет улучшений его от Cf собираются принять. А в Quic никакого нет...

     
     
  • 8.141, Аноним (140), 19:36, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сорцев, блин, чего Я посмотрел сорц сабжевой либы А там и сказано что flow co... текст свёрнут, показать
     
  • 7.136, Аноним (135), 03:58, 24/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    FEC вас не спасёт, потому что пропускную способность нельзя взять из вакуума. Если у вас потери не из-за помех вайвая, а из-за перегрузки роутера, то вы своим FEC ему настоящий ddos устройте.

     
     
  • 8.142, Аноним (140), 19:38, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как у вас все просто и универсально то А я думал что проблемы RF каналов крайне... текст свёрнут, показать
     
  • 6.121, Ivan_83 (ok), 22:17, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не важно где именно идёт потеря пакетов.
    Кроме потери пакетов бывает ещё и RTT (пинг) большой.

    В обоих случаях в линухе hybla отлично справляется и выжимает из канала максимум.
    Аналогично RACK+htcp во фре.


    Я в своё время наигрался с этим гоняя IPTV потоки через 5 часовых поясов, и там даже без WiFi сегментов хватало и потерь и проблем из за задержек.
    Стабильно смотрибельный результат давало только то что описано выше.

     
     
  • 7.125, timur.davletshin (ok), 22:49, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > В обоих случаях в линухе hybla отлично справляется и выжимает из канала
    > максимум.

    Не могу подтвердить, что его можно в кач-ве алгоритма общего применения использовать. Он, как BBRv1, применим для каналов в RTT больше 50 мс.

     
     
  • 8.130, Ivan_83 (ok), 23:38, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    htcp работает на больших RTT чуть хуже hybla С hybla вроде нет проблем в локалк... текст свёрнут, показать
     
     
  • 9.133, timur.davletshin (ok), 23:47, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Про htcp ничего не могу сказать, т к не гонял в разных сценариях А вообще поищ... текст свёрнут, показать
     
  • 3.120, Ivan_83 (ok), 22:12, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    CUBIC - фигня, он работает не плохо и не хорошо.
    Гораздо интереснее hybla и htcp тоже не плох.
    BBR - не уверен что хорошо работает.

    На фре RACK отлично работает, и его же вариант выбрал интел и гугол чтобы пихать в свои сетевухи, новость тут недавно была.

     
     
  • 4.126, timur.davletshin (ok), 22:54, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > CUBIC - фигня, он работает не плохо и не хорошо.

    Тут дело не впроизводительности даже. Первый критерий - агрессивность в самом простом случае - LAN. Запускаешь один поток Cubic в простейшем сценарии кабель-тупой свитч-кабель + дефолтный fq-codel на обоих концах. RTT < 2 мс. Запускаешь параллельно SSH и делаешь выхлоп какого-нибудь сислога. Ну как, интерактивно живётся?

    Дальше - больше. Параллельные потоки тестируешь. Не забыть с отложенным запуском. Конкуренцию со стандартными Reno, Cubic и пр.

     
     
  • 5.132, Ivan_83 (ok), 23:46, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У кого что болит :)
    В RACK даже наоборот вроде выключал какую то фичу для учёта соседних соединений, ибо просто не нужно.

    У меня не было никогда большого трафика в локалке и необходимости что то докручивать чтобы интерактивность не страдала, всегда была проблема как отдать контент через линки с потерями или потери+RTT.

     
     
  • 6.134, timur.davletshin (ok), 23:52, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > У кого что болит :)
    > В RACK даже наоборот вроде выключал какую то фичу для учёта соседних
    > соединений, ибо просто не нужно.
    > У меня не было никогда большого трафика в локалке и необходимости что
    > то докручивать чтобы интерактивность не страдала, всегда была проблема как отдать
    > контент через линки с потерями или потери+RTT.

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

     
  • 4.127, timur.davletshin (ok), 23:00, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > CUBIC - фигня, он работает не плохо и не хорошо.
    > Гораздо интереснее hybla и htcp тоже не плох.
    > BBR - не уверен что хорошо работает.
    > На фре RACK отлично работает, и его же вариант выбрал интел и
    > гугол чтобы пихать в свои сетевухи, новость тут недавно была.

    В принципе, если узкое место в WAN, а на роутере AQM + ECN, то любой алгоритм, не игнорирующий ECN, пойдёт (можно даже без ECN). Беда в том, что внутри LAN трафик тоже гоняют и иногда немалый. И это не вещание, пускай хоть 8к, с относительно стабильным битрейтом.

     

  • 1.3, Аноним (3), 10:51, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    можно без шифрования юзать?
    для клиента будет проигрышь в скорости, а для сервера - выигрыш?
     
     
  • 2.5, Аноньимъ (ok), 11:27, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нельзя.
     
  • 2.22, Zulu (?), 15:09, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нет. SSL неотъемлимая часть http/3 спецификации
     
     
  • 3.27, Аноним (27), 15:48, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > спецификации

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

     
     
  • 4.52, Аноньимъ (ok), 18:57, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для внутреннего использования оно нафиг не надо.

    А http3 без quick - это внезапно http2.

     
     
  • 5.55, Аноним (55), 19:25, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ассемблер без event loop это внезапно просто ассемблер.
     
     
  • 6.57, Аноньимъ (ok), 19:28, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А ассемблер без event loop это внезапно просто ассемблер.

    Сумасшедший без сумасшедшего дома внезапно просто сумасшедший.

     
     
  • 7.145, rvs2016 (ok), 03:18, 28/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>> А http3 без quick - это внезапно http2.
    >> А ассемблер без event loop это внезапно просто ассемблер.
    > Сумасшедший без сумасшедшего дома внезапно просто сумасшедший

    Самурай без меча подобен самураю с мечом, но только без меча!

     
  • 3.75, Skullnet (ok), 03:23, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Плохо, потому что если использовать этот протокол поверх Tor/I2P или др. то получается оверхед по шифрованию, потому что сеть и так уже шифруется этими протоколами.
     
     
  • 4.89, Zulu (?), 12:46, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Использовать Тор и жаловаться на оверхед странно. Оверхед это его второе имя.
     

  • 1.4, Sw00p aka Jerom (?), 11:14, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    все "новое" почему-то "поверх", а не  "в корне"
     
     
  • 2.11, Аноним (11), 12:37, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что всё происходит из единого корня - Адам Коммон.
     
     
  • 3.29, Sw00p aka Jerom (?), 16:15, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Потому что всё происходит из единого корня - Адам Коммон.

    лол, кек, а че не Ивана?

     
  • 2.12, Аноним (12), 12:51, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Синтетическая теория эволюции гласит, что все ныне живущие организмы имеют ровно одного общего предка.
     
     
  • 3.18, OpenEcho (?), 14:40, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Синтетическая теория эволюции гласит, что все ныне живущие организмы имеют ровно одного общего предка.

    Ну то оно и видно, - только родственники и могут весь мир поджечь

     

  • 1.6, ИмяХ (?), 11:29, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >>на языке Си

    Ждём новостей про очередную уязвимость, вызванную обращением к уже освобождённой памяти и позволяющую удалённо по сети выполнить произвольный код с рут-правами.

     
  • 1.8, beck (??), 12:06, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    А почему не написано на безопастном Rust?
     
     
  • 2.9, Аноним (9), 12:18, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему не написано на безопастном Rust?

    Хоть на брейнфаке пиши, я разрешаю :)

     
     
  • 3.10, kusb (?), 12:31, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот обычный http прост и это как раз вполне реально!
     
     
  • 4.13, Хру (?), 13:42, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да я бы не сказал, что multipart это прям просто-просто. Особенно если писать не на коленке а для прода.
     
  • 4.24, Аноним (-), 15:27, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот обычный http прост и это как раз вполне реально!

    На память об этом у нас полно прикольных атак типа request smuggling. Когда все типа-реально, но вот фронт и бэк нестандартно скроеный хидер понялся немного по разному, так что вот мы тут админу к его запросу левак подшили - и сервер от лица админа все сам и сделал - под дружный гогот атакующих. Что может быть стебнее чем админ забаненый своим же сервером, например?! :)

    Так что просто да не совсем. Особенно если пайплайнинг какой удумать (конектиться на вообще каждый мелкий запросик оверхеда очень уж дофига и создает траблы по иным линиям) и деление на фронт и бэк.

     
  • 2.14, НяшМяш (ok), 13:46, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Есть, хоть и не завершена, но говорят, что вроде работает:

    https://crates.io/crates/h3/

     
     
  • 3.25, Аноним (25), 15:29, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Есть, хоть и не завершена, но говорят, что вроде работает: https://crates.io/crates/h3/

    А вот еще один адепт хруста который даже не пробовал устриц - но мнение имеет.

     
     
  • 4.85, НяшМяш (ok), 12:11, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А онаним хотя бы сяшечный http3 уже попробовал, или тоже лишь бы экспертом побыть?
     
  • 3.70, Вы забыли заполнить поле Name (?), 23:59, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > вроде работает

    Немножко беременна

     
  • 2.19, OpenEcho (?), 14:50, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А почему не написано на безопастном Rust?

    Наверное потому что не у всех складывается одолеть помесь брэйнфака с ЖС

     
     
  • 3.21, Аноним (21), 14:58, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Наверное потому что не у всех складывается одолеть помесь брэйнфака с ЖС

    Поэтому именно таким кадрам нужно доверять написание критически важных библиотек, да?

     
     
  • 4.26, OpenEcho (?), 15:32, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Проблема не языках, - вообще А в банальном как ни странно, но даже людям работ... большой текст свёрнут, показать
     
     
  • 5.28, Аноним (21), 16:06, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > для каждой работы - есть свой инструмент.

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

    CVE текут рекой десятки лет,
    а вы все ничему, блждат, не научитесь... Воюйте дальше против Раста.

     
     
  • 6.36, Аноним (36), 17:41, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Дак в расте все те же самые дыры. Раст ведь это не настоящий ЯП, он транслируется в llvm-представление, которое затем уже компилится в ассемблер, а далее - в опкоды. И вот этот LLVM написан на небезопасном дырявом C++ и весь код на расте собирается этим кривым дырявым LLVM, во время сборки добавляются переполнения, выходы за границы, use-after-free и т.д.
     
     
  • 7.40, анонист (?), 17:49, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    поэтому настоящие советские программисты с профильным инженерным образованием считают ассемблер непозволительной
    роскошью — они вручную намагничивают участки жёсткого диска
     
     
  • 8.146, rvs2016 (ok), 03:21, 28/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Какого ещё диска Какое намагничивание Они лезвиями вырезают дырки в перфокарта... текст свёрнут, показать
     
  • 7.56, Аноним (21), 19:27, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > во время сборки добавляются переполнения, выходы за границы, use-after-free и т.д.

    Пришло время офигительных историй...

     
     
  • 8.81, Аноним (81), 10:09, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Опеннет-специалисты тм , чо ... текст свёрнут, показать
     
  • 6.42, OpenEcho (?), 18:06, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > CVE текут рекой десятки лет,
    > а вы все ничему, блждат, не научитесь... Воюйте дальше против Раста.

    Можно мне показать хоть один мой пост где я воевал против раста? Семантика языка, да, мне лично не нравится, слишком много перловских/брайнфаковских значков. Усложнение никогда не было в пользу, а вот все гениальное - обычно простое

     
     
  • 7.44, Аноним (21), 18:21, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Усложнение никогда не было в пользу, а вот все гениальное - обычно простое

    Да, да... Достаточно попросить сишника сложить две строки - и наслаждаться цирком, где он в портянке строк эдак на 3-6 "гениально просто" на каждый чих дергает strlen (производительность, ага), сношается с malloc и вылазит за пределы буфера.

     
     
  • 8.48, OpenEcho (?), 18:34, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Причем здесь сишники и ржавые Ты уверен что по русски понимаешь что написанно... текст свёрнут, показать
     
  • 8.50, Аноним (50), 18:48, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –5 +/
    сложение - это операция над числами любой язык который складывает строки - помо... текст свёрнут, показать
     
  • 5.30, Советский инженер (ok), 16:22, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Проблема не языках, - вообще!
    >Если поощряется кодить - "как письмо писать, - быстро"

    Если ты тут не видтишь противоречия, то да, проблема в тебе.

     
     
  • 6.47, OpenEcho (?), 18:31, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >>Проблема не языках, - вообще!
    >>Если поощряется кодить - "как письмо писать, - быстро"
    > Если ты тут не видтишь противоречия, то да, проблема в тебе.

    А можно как  Советский инженер  - бывшему sоветскому инженеру обьяснить, а в чем противоречие? (Я понимаю, что иногда быстро пишу и смысл теряется, но не воткну - где же здесь моя проблема?)

     
     
  • 7.77, Советский инженер (ok), 09:17, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а что так трудно понять что язык как раз то и поощпяет к разным стилям и способам программтрования (кодирования) ?

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

     
     
  • 8.93, OpenEcho (?), 17:57, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А противоречие то здесь при чем и я ... текст свёрнут, показать
     
     
  • 9.95, Советский инженер (ok), 18:05, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я вот правильно понимаю, что ты тут делаеш морду кирпичем, и никак не хочешь при... текст свёрнут, показать
     
  • 9.97, Советский инженер (ok), 18:07, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    снова никаких противаречий ... текст свёрнут, показать
     
  • 3.39, анонист (?), 17:47, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    ты хотя бы зайди на официальный сайт раста да посмотри на него прежде чем ерунду писать.
     
     
  • 4.45, OpenEcho (?), 18:27, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ты хотя бы зайди на официальный сайт раста да посмотри на него прежде чем ерунду писать.

    ерунда - это обилие значков :: [] <> которая больше похоже на опкоды чем на понятный человеческий язык. Я еще промолчу про не закрыте апострофи, которые десятилетиями всегда должны были идти в стэйт машине парами.

    Это правда читаемо для нормального человека?

         let debilko.iter().map(|z|z*4).collect::<Vec<_>>()

    Попробуй не програмировать на этом годик и удивись через год - "а что это ?"

    Лет 40 назад это было очень "круто" у C-шиков понаписать подобную хрень типа
         int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hello, world!\\
    n",'/'/'/'));}read(j,i,p)void*i;{write(j/p+p,i---j,(int)i/(int)i);}

    и чувствовать как они круты, теперь же это - просто ржавый язык, но с тем же подвохом - тяжесть и стоимость сопроводиловки

     
     
  • 5.54, Аноним (55), 19:16, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это правда читаемо для нормального человека?
    > let debilko.iter().map(|z|z*4).collect::<Vec<_>>()

    Даже не знаю где вы такое видели.

     
  • 5.58, Sw00p aka Jerom (?), 19:30, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >больше похоже на опкоды

    рядом даже не лежали :)

     
  • 5.60, Аноним (21), 19:39, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ерунда - это обилие значков :: [] <> которая больше похоже на опкоды чем на понятный человеческий язык.

    Так может есть некая причина, зачем все эти знаки добавили? Или у вас традиционное "не понял я, но  дураки при этом все остальные".

     
     
  • 6.62, scriptkiddis (?), 21:16, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но и ты нам тоже не обьяснишь.
     
  • 5.78, Советский инженер (ok), 09:19, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >ерунда - это обилие значков :: [] <> которая больше похоже на опкоды чем на понятный человеческий язык.

    Cobol & PL/1 давно изобрели, но что-то как-то они не сильно популярны.

     
     
  • 6.94, OpenEcho (?), 18:00, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Cobol & PL/1 давно изобрели, но что-то как-то они не сильно популярны.

    Это Cobol то не популярен ??? А что-ж тогда после стольких десятилетий навалом вакансий?


     
     
  • 7.98, Советский инженер (ok), 18:09, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а "навалом" это сколько в процентах?
    а ты лично хоть одного живого программитса на коболе знаеш?
     
  • 5.82, Аноним (81), 10:28, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Выучить конкретно синтаксис - задача от силы на неделю для любого системного про... большой текст свёрнут, показать
     
     
  • 6.83, Sw00p aka Jerom (?), 10:47, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >ЯПы с "обилием значков" уделали

    лол, кек, ну вот асм как видно уделал всех, опкодов интел архитектуры свыше 1к, да прибудет с вами сила.

     
  • 5.147, rvs2016 (ok), 03:27, 28/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > ерунда - это обилие значков :: [] <>

    ...
    > Это правда читаемо для нормального человека?
    >
    >     let debilko.iter().map(|z|z*4).collect::<Vec<_>>()
    >
    > Попробуй не програмировать на этом годик и удивись через год - "а что это ?"
    >
    > Лет 40 назад это было очень "круто" у C-шиков понаписать подобную хрень типа
    >      int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hello, world!\\n",'/'/'/'));}read(j,i,p)void*i;{write(j/p+p,i---j,(int)i/(int)i);}
    >
    > и чувствовать как они круты

    Так об этом же писали ещё лет 25 назад в "Шутке создателей Си и Юникс":

    Затем Деннис и Брайан разработали по-настоящему извращенный диалект Паскаля, назвав его "A". Когда мы обнаружили, что другие действительно пытаются писать программы на A, мы быстро добавили еще парочку хитрых примочек, создав B, BCPL, и, наконец, Си. Мы остановились, добившись успешной компиляции следующего:

    for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

    Мы не могли даже представить, что современные программисты будут пытаться использовать язык, допускающий подобный оператор! Мы даже собирались продать все это Советам, чтобы отбросить развитие их компьютерного дела на 20 лет назад. Представьте наше удивление, когда AT&T, а также другие американские корпорации начали пытаться использовать UNIX и Си! Более 20 лет ушло на то, чтобы приобрести достаточный опыт для создания хоть немного полезных приложений с использованием этой технологической пародии 60-х.

     
  • 2.20, Аноним (21), 14:57, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А почему не написано на безопастном Rust?

    Потому что его авторам плевать на безопасность. Дареному коню в зубы не смотрят...

    Вот реализация на Rust, провереная Амазоном в бою:

    https://github.com/cloudflare/quiche

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

     
     
  • 3.33, Аноним (25), 16:55, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > есть только для других некомпетентных бракоделов, которые все делают
    > спустя рукава и кладут болт > на здравый рассудок.

    Ну вот ты и используй какое-то куищще от клаудспайвари. А как по мне - чтобы иметь дело с клаудспайварью надо именно потерять рассудок.

     
  • 2.32, Аноним (32), 16:47, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Потому, что на Расте уже написано.
     
  • 2.79, Bob (??), 09:34, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потом освоят $ и перепишут.
     

  • 1.15, Аноним (15), 14:01, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Всё равно все будут использовать libcurl. Она и 1, и 2, и 3 поддерживает, и до кучи других протоколов, и прокси, и имеет всем знакомый и уже обёрнутый для всех языков API. Любая библиотека, желающая конкурировать с libcurl, должна уметь предоставлять совместимый с ней API, и при этом иметь весомые преимущества перед ней.
     
     
  • 2.16, Аноним (16), 14:06, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ну у этой есть весомые преимущества -- через нее работает libcurl
     

  • 1.23, Zulu (?), 15:09, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Есть там и маленький патчик от меня. Мелочь, а приятно.
     
     
  • 2.31, Аноним (25), 16:42, 22/10/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Есть там и маленький патчик от меня. Мелочь, а приятно.

    Спасибо вам, сэр!

     
  • 2.71, Вы забыли заполнить поле Name (?), 00:00, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    readme поправил небось?
     
     
  • 3.73, Zulu (?), 01:02, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > readme поправил небось?

    Нет, но не сильно круче. Потому и написал "маленький". Прекрати портить мне минуту славы.

     

  • 1.37, анонист (?), 17:44, 22/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    большие проекты на сишке это ад; раст реально тема, проигрался тут в playground, очень приятно удивлен.
     
     
  • 2.119, Вы забыли заполнить поле Name (?), 22:09, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > большие проекты
    > проигрался тут в playground, очень приятно удивлен.
    > большие
    > playground

    Большие проекты надо сравнивать с большими.

     

  • 1.74, Skullnet (ok), 02:59, 23/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не понимаю где этот HTTP/3 вообще юзается.

    https://cloudflare-quic.com/

    Тут показывает, что юзает HTTP/2 даже с включенным HTTP/3 в браузере.

     
     
  • 2.80, Аноним (135), 09:40, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пообновляй страницу без Shift.

    У меня не с первого раза грузит по quic. Но раза с третьего грузит.

     
     
  • 3.90, Skullnet (ok), 13:25, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я уже всё перепробовал. Вообще результата ноль.
     
  • 2.87, Zulu (?), 12:42, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При первом обращении всегда идет http/1.1 (если нет prior knowledge, это отдельная история). В http/1.1 ответе может идти upgrade на http/2 и alt-svc на http/3. Если идут оба, то следующий реквест в той же коннекшне пойдет через http/2, а после ее обрыва уже на http/3.
     

  • 1.84, Страдивариус (?), 11:15, 23/10/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это что теперь? Если я пишу клиента, то мне нужно уметь ходить через HTTP/1.1, HTTP/2 и HTTP/3 и для всех этих кейсов нужно использовать три разных библиотеки? Прелестно, например!
     
     
  • 2.88, Zulu (?), 12:44, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Можешь поддерживать только один из протоколов (http/1.1), потому как http/2 и http/3 не замещают его полностью.

    Ну или libcurl и не морочить мозг.

    Но вообще выкрик дурной. "Я пишу ОС, что мне теперь, поддерживать все железо в мире?" Ну не поддерживай, я разрешаю.

     
     
  • 3.91, Страдивариус (?), 14:12, 23/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Можешь поддерживать только один из протоколов (http/1.1), потому как http/2 и http/3
    > не замещают его полностью.
    > Ну или libcurl и не морочить мозг.
    > Но вообще выкрик дурной. "Я пишу ОС, что мне теперь, поддерживать все
    > железо в мире?" Ну не поддерживай, я разрешаю.

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

    В идеале нужна одна библиотека только для http всех версий. В том числе нужна она для того, чтобы очередная версия HTTP получала поддержку в приложении, которое использует эту либу, нахаляву, а не дописыванием поддержки http/4, /5 и т.д.

     
     
  • 4.143, Аноним (143), 21:28, 25/10/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Вот кстати не скажите На удивление libcurl можно как по простому и высокоуровне... большой текст свёрнут, показать
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру