Симуляция потери пакетов

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20799
Статус: nulla salus bello
ОС: Debian GNU/Linux

Симуляция потери пакетов

Сообщение Bizdelnick »

Нужно протестировать, как ведёт себя программа в случае потери пакетов (конкретно интересует UDP). Про tc знаю, но может быть, кто-нибудь подскажет более простой вариант, например, работающий как враппер, чтобы не мешать работе всей системы?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dionysius
Сообщения: 523
ОС: Manjaro
Контактная информация:

Re: Симуляция потери пакетов

Сообщение Dionysius »

Вот такая штука не подойдёт: https://github.com/Shopify/toxiproxy ?
Заявлена как TCP-прокси, но в коде тестов нашёл, что UDP вроде как тоже можно
https://github.com/Shopify/toxiproxy/blob/7abcb6f9cf95d2fb27244435e22b16bda14ab5c3/_examples/tests/cluster.yml#L15
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20799
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Симуляция потери пакетов

Сообщение Bizdelnick »

Dionysius писал:
06.11.2023 20:42
Заявлена как TCP-прокси, но в коде тестов нашёл, что UDP вроде как тоже можно
Нет, там только TCP. Да и вообще такой вариант предполагает настройку приложения на отправку запросов на конкретный адрес:порт, а в моём случае такого нет (там DNS). Неплохо бы добавить, конечно, но не сейчас.
Поясню: речь про gross. Словил сегфолт, последняя запись в логе — что не получен ответ от сервера, корка не сохранилась. Вот пытаюсь воспроизвести теперь.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20799
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Симуляция потери пакетов

Сообщение Bizdelnick »

Раз готового не нашлось, решил вопрос подменой функции recvfrom. Просто отбрасываю половину полученного. Ошибка воспроизвелась, а может быть, и не одна она там, буду ковырять.
код (да, он не потокобезопасный, ну и пофиг)
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить