Я работал над разработкой клиент-серверного приложения на Python поверх UDP. И клиент, и сервер подключены через беспроводное соединение (в режиме ad-hoc wifi), и мне было интересно рассчитать задержку между передачей и приемом сообщения. Клиентский хост и серверный хост оба являются Linux-машиной (Ubuntu 18.04), и их часы синхронизируются NTP-сервером (запущенным на хост-сервере). Направление данных в значительной степени от клиента к серверу
В настоящее время при создании сообщения на клиенте я использовал
datetime.datetime.time(datetime.datetime.now())))
функция из Python 3.7 datetime module , чтобы получить текущее время и связать его с исходным сообщением. При получении на стороне сервера к каждому полученному сообщению я также добавляю машинное время сервера в сообщение с той же функцией python.
Проблема, с которой я сталкиваюсь, заключается в том, что первое сообщение, которое я получаю на стороне сервера, имеет следующий вывод:
message format: message+ sent time + receive time
1st message : message + 21.27.25.326574 +21.28.22.440932
2nd message : message + 21.27.25.326846 +21.28.22.441178
3rd message : message + 21.27.25.326962 +21.28.22.441178
.
.
.
Похоже, что этот вывод включает не только задержку передачи и приема, но также время обработки и буферизации как отправителя, так и получателя. Как мне добавить временные метки на нижнем уровне (как уровень Link) сетевого стека при отправке и получении сообщения с использованием python?