크리스티안 알고리즘

기준 시각을 알려주는 서버가 있다는 전제하에,
네트워크에서 메시지가 이동하는 시간을 고려하여, 시간을 구하는 기본적인 시각 동기화 기법이다.
다음과 같이 진행된다.
- 클라이언트에서 서버로 문의를 보내는 시각 $T_{1}$ 을 기록하고, 서버로 문의를 보낸다.
- 서버에서는 문의를 받은 시각 $T_{2}$ ,와 응답을 보내는 시각 $T_{3}$ 를 함께 클라이언트로 보낸다.
- $T_{4}$ 에 응답이 도착한다.
이 상황에서 $T_{4}$ 시점에 올바른 시각은 $T_{3} + T_{resp}$ 가 된다.
클라이언트가 알고있는 정보는 $T_{1}, T_{2}, T_{3}$ 인데,
$T_{req} = T_{2} - T_{1}$ 이고 $T_{req}$ 와 $T_{resp}$ 가 같다고 가정하면
$T_{4}$ 시점에 시각을 $T_{3} + (T_{2} - T_{1})$ 으로 설정함으로써 시간을 맞출 수 있다.
크리스티안 알고리즘은 RTT 타임이 짧은, 주로 저지연 인트라넷에서 사용된다.
또한 클라이언트가 요청을 보내고 도착하는 시간과, 서버가 응답을 보내고 도착하는 시간이 같다는 가정하에 이루어지므로
오차가 있을수밖에 없다
버클리 알고리즘
주로 분산 환경에서 노드 간의 시간을 동기화하기 위해 사용하는 기법이다.
이 기법에서는 네트워크의 노드에 정확한 시간 소스가 없거나 UTC 서버가 없다고 가정한다.
- 네트워크 풀 안에서 한 노드가 마스터 노드로 선정되고 나머지 노드는 슬레이브 역할을 한다.
- 마스터 노드는 주기적으로 슬레이브 노드들에게 ping을 보내고 크리스티안 알고리즘을 사용하여 해당 노드의 시간을 가져온다.
- 마스터 노드는 수신된 모든 시간과 자신의 시각을 평균하여 구한다.
- 각 슬레이브의 시간과 평균 시간의 차이(음수 혹은 양수)를 보내주어 평균 시간에 맞출 수 있도록 한다.


네트워크 시간 프로토콜(Network Time Protocol, NTP)

NTP는 애플리케이션 계층에서 작동하는 프로토콜로,
정확한 시각을 필요로 하는 장치들과 기준 시각을 제공하는 서버들이 그림과 같이 계층을 형성하고 있다.
일반 장치들은 Stratum 3의 NTP 서버들과 연결되며, 크리스티안 알고리즘에 따라 각자의 시계를 보정한다.
계층의 최상위에는 원자시계 또는 GPS 시계와 같은 매우 정확한 시간 리소스가 있다.
이러한 시간 리소스는 Stratum 0 서버라고 하며 Startum 1, 2, 3등 아래 NTP 서버와 연결된다.
크리스티안 알고리즘, 버클리 알고리즘, NTP 등이 존재하지만 완전한 시간 동기화가 이루어지기는 힘들다.
Berkeley algorithm - Wikipedia
From Wikipedia, the free encyclopedia Method of clock synchronisation The Berkeley algorithm is a method of clock synchronisation in distributed computing which assumes no machine has an accurate time source. It was developed by Gusella and Zatti at the Un
en.wikipedia.org
Cristian's algorithm - Wikipedia
From Wikipedia, the free encyclopedia Cristian's algorithm (introduced by Flaviu Cristian in 1989)[1] is a method for clock synchronization which can be used in many fields of distributive computer science but is primarily used in low-latency intranets. Cr
en.wikipedia.org
Cristian's Algorithm - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
Berkeley's Algorithm - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
네트워크 타임 프로토콜 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 네트워크 타임 프로토콜(Network Time Protocol, NTP)은 패킷 교환, 가변 레이턴시 데이터 네트워크를 통해 컴퓨터 시스템 간 시간 동기화를 위한 네트워크 프로토콜이
ko.wikipedia.org