Я пытаюсь написать простой сценарий, который может обнаружить провалы в сетевом трафике (как пропускная способность, так и задержка в обоих направлениях) между двумя произвольными узлами в моей сети с течением времени. Есть ли инструмент для этого?
При необходимости я планирую написать пару сценариев клиент / сервер в bash для выполнения этого тестирования с использованием nc
(netcat), но если уже существующее решение фиксирует то, что я пытаюсь сделать, пожалуйста, дайте мне знать.
Сначала я определю, сколько данных я могу отправить за 1 секунду между произвольными хостами. Мы назовем это "полезной нагрузкой". Начальные тесты показывают, что полезная нагрузка составляет ~ 50 МБ.
Тогда я выполню следующее:
- Клиент отправляет полезную нагрузку на сервер.
- Когда сервер получает всю полезную нагрузку, он немедленно отвечает, отправляя полезную нагрузку клиенту.
- Когда клиент получит всю полезную нагрузку, он будет спать в течение 30 секунд. Перейти к 1.
При этом я получу следующие данные (двунаправленная пропускная способность и задержка):
- Записывая
time
выполненияnc
от клиента к серверу в (1), я получу пропускную способность, отправляющую данные от клиента к серверу. - Записав
time
выполненияnc
с сервера на клиент в (2), я получу пропускную способность, отправляющую данные с сервера на клиент. - Каким-то образом я определю задержку пакетов, возможно, с помощью инструмента мониторинга или определения временных меток между первым пакетом полезной нагрузки, отправленной из источника, и первым пакетом полезной нагрузки, полученной в месте назначения.