Я пытаюсь собрать данные о времени, которое требуется HTTP-запросу для перехода от одного узла к другому в сети, вот простая топология сети, над которой я работаю: я использую Raspberry Pi 4 модель B
PC ---- RaspPi(1) ---- RaspPi(2) ---- RaspPi(n) ---- ...
У каждого из этих узлов есть собственное приложение, которое может работать с HTTP, идея сбора данных такова: предположим, у меня есть HTTP-запрос с RaspPi (n) в качестве пункта назначения, теперь, когда запрос проходит через каждый узел, я вышел из системы. TIMESTAMP, когда он достигает узла, с этого момента я могу вычислить DeltaT
, то есть время, необходимое для прохождения моего запроса между двумя последовательными узлами.
Я пробовал использовать:
Date now = Calendar.getInstance();
TimeStamp ts = new TimeStamp(now.getTime());
А также
System.currentTimeMillis()
чтобы получить TIMESTAMP, проблема в том, что собранные мной данные имеют отрицательное значение DeltaT, например: TIMESTAMP в RaspPi (2) предшествует TIMESTAMP в RaspPi (1). Я немного поискал и обнаружил, что 2 метода, которые я использовал выше, не монотонны (Источник 1 и Источник 2). Итак, я подумываю использовать еще один метод - использовать System.nanoTime()
, но он, похоже, не работает на разных JVM, а это все мои сетевые узлы.
Я не знаю, есть ли лучший подход к сбору этих данных или какая-то работа, которую я могу сделать, чтобы исправить те методы, которые я использовал.
Пожалуйста, дайте мне знать, если я не ясно выразился. Спасибо за прочтение.