[CPP] NTP Sync LocalClockOffset
NTP 는
Network Time Protocol 으로 네트워크를 통해 시간을 동기화 하는 프로토콜입니다.
NTP 서버 시간에 클라이언트 시간을 맞추기 위한 프로토콜입니다.
[현재 시점] 서버의 현재 시간과 클라이언트의 현재 시간이 다를 수 있고,
[지속 되는 상태] 서버의 1초와 클라이언트의 1초가 다를 수 있습니다.
서버 혹은 클라이언트간 시간이 아주 중요한 프로그램에서는
NTP 는 한번만 수행하는 것이 아닌 지속적으로 수행하여 동기화 하게 됩니다.
서버와 클라이언트의 시간 차이를 LocalClockOffset 으로 표기합니다.
여러 클라이언트의 시간을
NTP서버와 동기화하여
각 클라이언트간 시간이 동기화 하도록 하기 위해 사용 되는 값이 offset 입니다.
계산 식은
Timestamp Name ID When Generated
------------------------------------------------------------
Originate Timestamp T1 time request sent by client C1
Receive Timestamp T2 time request received by server S1
Transmit Timestamp T3 time reply sent by server S2
Destination Timestamp T4 time reply received by client C2
The roundtrip delay d and system clock offset t are defined as:
d = (T4 - T1) - (T3 - T2)
t = ((T2 - T1) + (T3 - T4)) / 2.
t = ((S1 - C1) + (S2 - C2)) / 2.
여기서
여기서 서버와 클라리언트가 패킷을 주고 받는데 걸리는 딜레이(delay1, delay2)는 같다고 가정한다.
'Programming > C,CPP,CS' 카테고리의 다른 글
[C#] CS0246 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. (0) | 2020.07.20 |
---|---|
[NTP] CNtpTime, sntp.h, sntp.cpp 의 문제점 정리 (0) | 2019.12.24 |
ActiveX 웹배포 (0) | 2019.12.10 |
ffmpeg sample (0) | 2018.06.20 |
중복 실행 방지 코드 (Mutex) (0) | 2018.04.18 |