Я пытаюсь создать простой клиент SNTP в C, используя API сокетов Berkeley, но у меня возникают проблемы с вычислением скорректированного времени из ответного сообщения. Я получил это от RFC2030 .
Когда ответ сервера получен, клиент определяет пункт назначения
Переменная метки времени как время прибытия в соответствии с его часами в
Формат отметки времени NTP. В следующей таблице приведены четыре
метки времени.
- Исходная временная метка (T1): запрос времени, отправленный клиентом
- Отметка времени получения (T2): запрос времени получен сервером
- Метка времени передачи (T3): время, отправленное сервером
- Метка времени назначения (T4): время, полученное клиентом
Насколько я могу судить, я могу рассчитать скорректированное текущее время, взяв время клиента и добавив к нему смещение времени t , со смещением времени, определенным как
t = ((T2 - T1) + (T3 - T4)) / 2
Мне нужно знать T4 , чтобы сделать этот расчет, но это не часть сообщения пакета. Как я могу получить эту метку времени?