The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Атака на протоколы на основе UDP, приводящая к зацикливанию обмена пакетами, opennews (ok), 20-Мрт-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


71. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +1 +/
Сообщение от Аноним (71), 21-Мрт-24, 03:57 
Про то, что TCP уже давным давно посылает не по одному пакету и ждёт ACK, а шлёт сразу целую кучу пронумерованных пакетов и ждёт на каждый из них отдельно ACK, сдвигая постепенно окно, конечно же говорить никто не будет, ага. Только не надо утверждать при этом, что HTTP всё равно летать по UDP быстрее будет - вам всё равно понадобятся ВСЕ данные в том порядке, в каком они пришли. Вы всё равно навесите поверх свою реализацию, только при этом проиграете на том, что не сможете контролировать наполнение канала связи, т.к. UDP просто не способен это делать.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

73. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от Аноним (23), 21-Мрт-24, 06:29 
>Про то, что TCP уже давным давно посылает не по одному пакету и ждёт ACK, а шлёт сразу целую кучу пронумерованных пакетов и ждёт на каждый из них отдельно ACK, сдвигая постепенно окно, конечно же говорить никто не будет, ага.

Можем и сказать, и это хорошая штука, но мера "половинчатая". То есть, это позволяет не зависеть от последовательности p-a-p-a-p-a, но всё равно не позволяет получать p-пакеты не по-порядку, потом запрашивая пропавшие.

>Только не надо утверждать при этом, что HTTP всё равно летать по UDP быстрее будет - вам всё равно понадобятся ВСЕ данные в том порядке, в каком они пришли.

Неправда ваша. Во-первых, не всё, что мы делаем, это HTTP. Во-вторых, см цитату выше. Сейчас уже никто не рендерит страницу "сверху вниз", страница получается целиком, потом рендерится. В этом смысле порядок сообщений вам не очень-то нужен. Вам нужно получить страницу целиком.

Это не значит, что порядок сообщений _никогда_ не нужен.

Ответить | Правка | Наверх | Cообщить модератору

82. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от Аноним (82), 21-Мрт-24, 13:15 
> не сможете контролировать наполнение канала связи, т.к. UDP просто не способен это делать.

TCP строго говоря тоже не способен. Он "аккуратно" разгоняется, чтобы не превысить лимиты. А контроль наполнения идёт по обратной связи - получению ACK (частично можно и по icmp). Если не видно ACK - значит где-то что-то переполнилось и потерялось. Если ACK приходят быстро и в большом количестве - можно уверенно разгоняться дальше.

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

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

84. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от _oleg_ (ok), 21-Мрт-24, 13:24 
А ещё есть ECN...
Ответить | Правка | Наверх | Cообщить модератору

85. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от Аноним (82), 21-Мрт-24, 14:41 
Можно там всё при желании.
> It is possible to use ECN with protocols layered above UDP. More recent UDP based protocols such as QUIC are using ECN for congestion control.

Вопрос поддержки лучше не поднимать ;) Просто если звёзды сложились неправильно, то про ECN никто никогда и не узнает. Даже в tcp лет 15 ecn готовили к включению в дефолте.

Ответить | Правка | Наверх | Cообщить модератору

86. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от _oleg_ (ok), 21-Мрт-24, 15:22 
> Можно там всё при желании.
>> It is possible to use ECN with protocols layered above UDP. More recent UDP based protocols such as QUIC are using ECN for congestion control.
> Вопрос поддержки лучше не поднимать ;) Просто если звёзды сложились неправильно, то
> про ECN никто никогда и не узнает. Даже в tcp лет
> 15 ecn готовили к включению в дефолте.

ECN в UDP это круто, но, если я правильно понял, тут нужна поддержка именно на уровне приложения, в любом случае (даже когда датут этим порулить с этого уровня). В то время, когда с tcp, если оно настроено в ОС, то будет работать для всех.

Ответить | Правка | Наверх | Cообщить модератору

89. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от Аноним (82), 21-Мрт-24, 16:43 
Про application level правильное замечание. Все эти протоколы нужны для обслуживания приложений. И с точки зрения приложения ни TCP ни UDP часто не подходят. SCTP/DSCP почаще подходит, но тоже не всегда... И в итоге спор а что же лучше перерастает в холивары.

SEQPACKET часто будет лучше, но он слабо распространён и не имеет "правильного и однозначного" решения (это так важно, что прям пипец как важно! НЕ МОЖЕТ СУЩЕСТВОВАТЬ корректной реализации SEQPACKET, которая подойдёт всем; остаются перекосы либо в сторону TCP, либо в сторону UDP, а как сделать правильно - непонятно...).

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

Ответить | Правка | Наверх | Cообщить модератору

90. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от _oleg_ (ok), 21-Мрт-24, 16:58 
> Про application level правильное замечание. Все эти протоколы нужны для обслуживания приложений.
> И с точки зрения приложения ни TCP ни UDP часто не
> подходят. SCTP/DSCP почаще подходит, но тоже не всегда... И в итоге
> спор а что же лучше перерастает в холивары.

Ну хз что там подходит, что нет. Понятно, что чем ждать стандартизации и распространения во всех ОС/железках очередных фишек TCP, проще с точки зрения разрабов приложения нагородить быстро своё поверх UDP. Но, imho, правильнее было бы иметь всё таки по итогу какой-то более-менее стандартизированный набор расширений для TCP или UDP для online игр, видеовещания и т.п., которые бы со временем поддержали все на уровне ОС/железа. А разрабам надо было только выставить верные флаги в вызове socket(), что бы получить требуемый сервис. И не городить всякое.


> Поэтому разработчикам приложений приходится выбирать - разбирать пакеты в потоке (TCP),
> или нумеровать пакеты UDP и делать досылку (и еще правильно разбить/нарезать
> пакеты, т.к. размер датаграммы ограничен). Вот собственно и весь вопрос.

Так и живём.

Ответить | Правка | Наверх | Cообщить модератору

97. "Атака на протоколы на основе UDP, приводящая к зацикливанию ..."  +/
Сообщение от Электрон (-), 23-Мрт-24, 06:59 
> вам всё равно понадобятся ВСЕ данные в том порядке, в каком они пришли.

Нет, если используется multiplexing потоков внутри этого одного соединения. Следует из высказывания выше про Head of Line Blocking. А QUIC это делает, только не знаю на каком уровне это задействовано в браузерах.

Ответить | Правка | К родителю #71 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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