Я хочу создать тестовое приложение для проверки сетевой производительности различных систем. Для этого я планирую, чтобы эта машина отправляла кадры Ethernet через частную (в противном случае незанятую) сеть на другую машину (или устройство), которая просто получает сообщение и отправляет его обратно. Отправляющее приложение будет записывать общее время в оба конца (среди прочего).
Цель тестов - увидеть, как конкретная система (компоненты ОС + и т. Д.) Работает , когда дело касается сетевого трафика. Это показано как машина А на рисунке ниже.Обратите внимание, что меня не интересует производительность сетевой инфраструктуры (коммутаторы, кабели и т. Д.) - я пытаюсь проверить производительность сетевого трафика внутри машины A (т. Е. От когда он попадает в сетевую карту до тех пор, пока не достигнет пространства пользователя)
Мы (попытаемся) измерить все виды вещей, одна вещь - это общий проход сообщения в оба конца, а также такие вещи, как задержка прерывания машины A, общие издержки драйвера и т. д. • Машина A будет системой реального времени. Но для поддержки этих тестов мне нужна отдельная машина, которая может возвращать сообщения и другими способами добавлять сетевые стимулы к тестируемой системе. Эта отдельная машина - это машина B на картинке ниже, и именно об этом идет этот вопрос.
Я хочу разработать приложение, которое могло бы получать и возвращать эти сообщения с максимально стабильной (и желательно низкой) задержкой. Я надеюсь получить задержки, которые будут постоянными, по крайней мере, в течение нескольких микросекунд. Для простоты я хотел бы сделать это в ОС общего назначения, такой как Windows или Linux, но я открыт для других предложений. На машине не будет никакой другой нагрузки (ЦП или какой-либо другой), кроме операционной системы и моего тестового приложения.
Я подумал о следующих подходах:
Есть ли какие-либо другие подходы или, возможно, фреймворки, которые уже делают это? О чем еще мне нужно подумать, чтобы получить стабильную и низкую задержку? Какой подход рекомендуется?