Измерить задержку в одну сторону?

Есть ли (оптимально бесплатный) инструмент для измерения односторонней задержки ?

Вариант использования проверяет, задержан ли сетевой трафик f.ex. tcтечет как надо.

Как минимум, приложение должно вызываться с IP-адресом одного хоста и сообщать о задержках в каждом направлении. Вполне допустимо запускать сервер на целевом хосте.

Он должен работать на (по крайней мере, виртуализированном) Linux . Помогло бы, если бы было бесплатно.

Есть ф.экс. RFC от 2016 года , посвященный этому вопросу , а также этому вопросу cs.SX. Любые инструменты, которые реализуют это или другие инструменты измерения задержки?

Примечание: ping и traceroute не являются допустимыми ответами, они не измеряют одностороннюю задержку.

Ответы (1)

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

Если вы не можете напрямую подключить оба конца к эталону времени, такому как атомные часы, которые имеют гарантированно синхронизированное время, лучшее, что вы, вероятно, сможете сделать, это многократно обмениваться значениями времени между двумя машинами и устанавливать изменчивость в различия, т.е. если в одном случае разница между двумя временами составляет 1,03 миллисекунды, а в следующем - 3,02 миллисекунды, то либо одна машина имеет плохие часы и / или очередь обработки сообщений, особенно вероятно, если одна или обе являются машинами Windows или сетевой задержкой изменилось.

Не совсем ответ, но слишком длинный для комментария.

Как насчет двух хостов Linux с временем ntp?
@MK Я разумно уверен, что вы не получите требуемой точности синхронизации между часами, если оба сервера не подключены к одному и тому же серверу времени с примерно одинаковой длиной кабеля.
Как насчет того, если обе виртуальные машины работают на одном хосте? (вопрос обновлен)
@MK даже между двумя виртуальными машинами на одном хосте существует вероятность некоторой разницы между временем обслуживания запросов на время, которое, вероятно, будет того же порядка, что и задержка через виртуальную сеть между двумя виртуальными машинами. Я также подозреваю, что временного разрешения на многих платформах будет недостаточно для калибровки такого времени.
Итак, этот ответ выглядит следующим образом: это не сработает, если вы не используете специальную настройку оборудования.