Назад | Перейти на главную страницу

Расчет пропускной способности UDP на основе размера пакета, скорости запросов и задержки

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

Вам следует задать вопрос, сколько запросов вам нужно обрабатывать в секунду. Этот номер отсутствует в вашем вопросе, и поэтому на исходный вопрос нельзя ответить должным образом.

Однако в вашем вопросе есть несколько цифр, на которые я могу дать ответ.

Прежде всего вы упоминаете размер запроса 100 байт и размер ответа 200 байт. Служба UDP, в которой ответы больше, чем запросы, потенциально может быть использована для атак отражения. Это необходимо учитывать при разработке протоколов на основе UDP.

Еще одно важное соображение - это возможность ошибочной интерпретации паразитного пакета как запроса.

Вы упомянули возможность использования 80 потоков. Службы на основе TCP в основном используют большое количество потоков, потому что они часто спроектированы так, что для каждого соединения требуется поток, и этот поток может проводить много времени, просто ожидая клиента.

Таких периодов ожидания не будет в службе на основе UDP. Это означает, что вам следует использовать только 80 потоков, если вы ожидаете, что все 80 потоков будут выполнять фактическую обработку параллельно. Для этого требуется довольно мощная машина, на которой 80 потоков будут параллельно выполнять фактическую обработку.

Если вы выполняете тяжелую обработку без предварительной проверки IP-адреса клиента, вы станете легкой мишенью для DoS-атак.

Если вы реализуете протокол на основе UDP и используете несколько потоков, вы, вероятно, делаете это неправильно.