NTP 서버는 어떻게 정확하게 관리합니까?
많은 사람들이 정확한 시간 설정을 유지하는 컴퓨터 및 기타 장치에 때때로 문제가 있었지만 NTP 서버와의 빠른 동기화는 모든 것을 다시 만듭니다. 그러나 자체 장치가 정확성을 잃을 수있는 경우 NTP 서버가 그토록 정확한 상태를 유지하는 방법?
오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 중심 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..
사진 제공 : 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와 같이 한 번만 시계를 설정)은 그렇지 않습니다. 이것을 일반적으로 a라고합니다. 드리프트 파일 클럭 드리프트 측정 값을 지속적으로 저장하기 때문에 엄격하게 말하면 디스크에 특정 파일로 저장할 필요가 없습니다.
NTP에서 계층 0은 정의에 따라 정확한 시간 원본입니다. Stratum 1은 Stratum 0 시간 소스를 시간 소스로 사용하는 시스템입니다 (따라서 Stratum 0 시간 소스보다 약간 정확하지 않습니다). Stratum 2는 Stratum 1 소스에 대해 시간을 동기화하므로 Stratum 1보다 약간 덜 정확합니다. 실제로 이러한 정확성의 상실은 매우 작아서 극단적으로 극단적 인 경우는 거의 없지만.
설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..