우리 중 많은 사람들이 정확한 시간 설정을 유지하는 컴퓨터 및 기타 장치에 가끔 문제가 있었지만 NTP 서버와의 빠른 동기화는 모든 것을 다시 잘 만듭니다. 그러나 우리 장치가 정확도를 잃을 수 있다면 NTP 서버가 어떻게 그렇게 정확하게 유지 될 수 있을까요?
오늘의 질문 및 답변 세션은 커뮤니티 중심의 Q & A 웹 사이트 그룹 인 Stack Exchange의 하위 부문 인 SuperUser가 제공 한 것입니다.
사진 제공 : LEOL30 (Flickr) .
질문
수퍼 유저 독자 인 Frank Thornton은 NTP 서버가 어떻게 그렇게 정확하게 유지 될 수 있는지 알고 싶어합니다.
내 서버와 다른 컴퓨터에서 시계가 항상 드리프트되므로 정확한 상태를 유지하려면 동기화해야합니다. NTP 서버 시계가 어떻게 드리프트를 방지하고 항상 그렇게 정확하게 유지합니까?
NTP 서버는 어떻게 그렇게 정확한 상태를 유지합니까?
대답
수퍼 유저 기고자 인 Michael Kjorling이 우리에게 답을줍니다.
NTP 서버는 정확한 시간 유지를 위해 매우 정확한 시계에 의존합니다. 중앙 NTP 서버의 일반적인 시간 소스는 원자 시계 또는 GPS 수신기입니다 (GPS 위성에는 원자 시계가 내장되어 있음을 기억하십시오). 이러한 시계는 매우 정확한 시간 참조를 제공하므로 정확하다고 정의됩니다.
정확한 시간을 알려주는 GPS 나 원자 시계에는 마법 같은 것이 없습니다. 원자 시계가 작동하는 방식 때문에 그들은 한때 몇시인지를 들었을 때 아주 능숙합니다. 유지 정확한 시간 (이후 두 번째는 원자 효과로 정의됩니다. ). 사실, 그것은 주목할 가치가 있습니다 GPS 시간은 UTC와 다릅니다. 우리가 보는 데 더 익숙하다는 것입니다. 이 원자 시계는 차례로 동기화됩니다. 국제 원자 시간 또는 TAI 시간의 흐름을 정확하게 알리기 위해서뿐만 아니라 그만큼 시각.
인터넷과 같은 네트워크에 연결된 한 시스템에서 정확한 시간을 확보하면 신뢰할 수없는 네트워크를 통해 호스트간에 정확한 시간을 전송할 수있는 프로토콜 엔지니어링의 문제입니다. 이와 관련하여 Stratum 2 (또는 실제 시간 원본에서 더 먼) NTP 서버는 NTP 서버 집합에 대해 동기화하는 데스크톱 시스템과 다르지 않습니다.
몇 가지 정확한 시간 (NTP 서버 또는 다른 곳에서 얻음)이 있고 로컬 시계의 발전 속도 (결정하기 쉬움)를 알 때까지 "정확한 것으로 믿어 진 ”시간의 흐름. 일단 고정되면이 값을 사용하여 로컬 실시간 시계 자체가 매우 부정확하더라도 정확한 시간 경과에 매우 가까운 값을보고하도록 로컬 시계를 지속적으로 조정할 수 있습니다. 현지 시계가 높지 않은 한 이상한 사람 , 어떤 이유로 든 업스트림 시간 원본을 사용할 수 없게 되더라도 일정 시간 동안 정확한 시간을 유지할 수 있습니다.
일부 NTP 클라이언트 구현 (대부분의 ntpd 데몬 또는 시스템 서비스 구현)은이 작업을 수행하고 다른 구현 (예 : 단순히 시계를 한 번 설정하는 ntpd의 동반자 ntpdate)은 수행하지 않습니다. 이것은 일반적으로 드리프트 파일 클럭 드리프트 측정 값을 지속적으로 저장하지만 엄밀히 말하면 디스크에 특정 파일로 저장할 필요가 없기 때문입니다.
NTP에서 Stratum 0은 정의상 정확한 시간 소스입니다. Stratum 1은 Stratum 0 시간 소스를 시간 소스로 사용하는 시스템입니다 (따라서 Stratum 0 시간 소스보다 약간 덜 정확합니다). Stratum 2는 Stratum 1 소스에 대해 시간을 동기화하기 때문에 Stratum 1보다 약간 덜 정확합니다. 실제로 이러한 정확도 손실은 매우 적기 때문에 가장 극단적 인 경우를 제외한 모든 경우에서 완전히 무시할 수 있습니다.
설명에 추가 할 것이 있습니까? 댓글에서 소리를 내십시오. 기술에 정통한 다른 Stack Exchange 사용자의 답변을 더 읽고 싶으신가요? 여기에서 전체 토론 스레드를 확인하십시오. .