Сценарии отказа для надежного UDP?

Каким может быть хороший список сценариев отказа для тестирования надежного уровня UDP? Я думал о следующих случаях:

  • Отбрасывать пакеты данных
  • Отбрасывать пакеты ACK, NAK
  • Отправка пакетов вне очереди.
  • Отбросьте первоначальные пакеты для рукопожатия
  • Отбрасывать пакеты закрытия/отключения
  • Дублирующиеся пакеты

Пожалуйста, помогите определить другие случаи, которые должен обрабатывать надежный UDP?


person Sunil    schedule 24.11.2009    source источник
comment
Не существует такого понятия, как надежный уровень UDP: вы не можете изменить уровень UDP (если только вы не участвуете в IETF и не имеете сильного влияния на органы по стандартизации), но вы можете реализовать клиентский протокол, который поверх UDP. Указанный клиентский протокол может поддерживать функции надежности.   -  person jldupont    schedule 26.11.2009


Ответы (3)


Список, который вы дали, звучит довольно хорошо. Также подумайте о:

  • Пакеты с большой задержкой (большинство пакетов проходят нормально, но один или два задерживаются на несколько минут);
  • Дубликаты с большой задержкой (когда оригинал пришел быстро, а дубликат прибыл с задержкой в ​​несколько минут);
  • Бесшумное отбрасывание всех пакетов выше определенного размера (как в однонаправленном, так и в двунаправленном случаях);
  • Очень переменные задержки;
  • Тесты переноса порядкового номера.
person caf    schedule 25.11.2009

Вы пытались преднамеренно испортить пакеты в пути?

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

  1. хост A отправляет сообщение хосту B
  2. B успешно получает сообщение и отвечает ACK
  3. ACK теряется в сети
  4. A ожидает истечения времени ожидания и повторно отправляет сообщение (повторяет шаги 1–3)
  5. хост A превышает количество повторных попыток и считает, что отправка не удалась, но хост B фактически обработал сообщение
person intgr    schedule 24.11.2009

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

person t0mm13b    schedule 24.11.2009
comment
Да, UDP является ненадежным протоколом, но вы можете сделать его надежным, реализовав TCP-подтверждение поверх UDP — так же, как TCP делает поверх ненадежного IP-уровня. Надежный не означает безупречный; это просто означает, что вы будете уведомлены о сбоях. - person intgr; 24.11.2009
comment
Спасибо intgr за наводку... не знал, что это можно сделать! Ваше здоровье! :) - person t0mm13b; 24.11.2009
comment
.... но фактический уровень сервера, то есть UDP, по-прежнему не имеет соединения и ненадежен. Если кто-то реализует протокол поверх UDP, то это просто ДРУГОЙ протокол поверх UDP. - person jldupont; 26.11.2009
comment
Похоже, что для сетевого сайта появляется новый stackoverflow: packetdrop.net - person jldupont; 26.11.2009
comment
Прохладный! Спасибо jldupont за внимание к этому - с нетерпением жду возможности проверить это...! ;) - person t0mm13b; 26.11.2009