NTP-NTP 서버의 정확도는 어떻습니까?


52

내 서버와 다른 컴퓨터에서 시계가 항상 표류하므로 정확한 상태를 유지하기 위해 동기화되어야합니다.

NTP 서버 시계는 어떻게 표류하지 않고 항상 올바르게 유지됩니까?


3
NTP 프로토콜이 어떻게 두 컴퓨터가 신뢰할 수없는 네트워크를 통해 시간을 동기화 할 수 있는지에 대한 요약에 관심이있을 것입니다.
Xavier Nodet

@XavierNodet 확실하지만,이 질문에 대한 것은 아닙니다. 나는 당신이 당신 자신의 질문을 할 것을 제안합니다 (아직 요청되지 않았다고 가정합니다; 먼저 검색하십시오). 이 질문은 NTP 서버의 시계가 어떻게 표류 할 수 없는지, 현대 하드웨어 시계는 표류하는 방법을 묻고 있습니다.
CVn

@XavierNodet 여기에서도 동일합니다. 나는 일이 어떻게 그리고 왜 작동하는지에 대해 배우는 것을 좋아합니다! :)
Jason

답변:


58

NTP 서버는 정확한 시간을 유지하기 위해 매우 정확한 시계를 사용합니다. 중앙 NTP 서버의 일반적인 시간 소스는 원자 시계 또는 GPS 수신기입니다 (GPS 위성에는 원자 시계가 내장되어 있음을 기억하십시오). 이 시계는 정확한 시간 기준을 제공하기 때문에 정확한 것으로 정의됩니다. GPS 또는 원자 시계에 대해서는 마법이 없으므로 시간을 정확히 알려줍니다. 원자 시계의 작동 방식으로 인해 시계는 시간에 대해 한 번 들었고 정확한 시간을 계속 알려줍니다 ( 두 번째는 원자 효과 측면에서 정의 되기 때문에 ). 실제로 GPS 시간은 우리가 더 많이 사용 하는 UTC와 구별 된다는 점에 주목할 가치가 있습니다. 이 원자 시계는 차례로 동기화됩니다.국제 원자력 시간 또는 TAI 만 정확하게 시간의 흐름뿐만 아니라 말하지하기 위해 시간을.

인터넷과 같은 네트워크에 연결된 한 시스템에서 정확한 시간을 확보 한 후에는 신뢰할 수없는 네트워크를 통해 호스트간에 정확한 시간을 전송할 수있는 프로토콜 엔지니어링이 중요합니다. 이와 관련하여 계층 2 (또는 실제 시간 원본과 거리가 먼) NTP 서버는 NTP 서버 세트에 대해 동기화하는 데스크탑 시스템과 다르지 않습니다.

NTP 서버 또는 다른 곳에서 얻은 정확한 시간이 몇 번이고 로컬 시계의 전진 속도 (알기 쉬운)를 알면 "믿는 정확한 시간"에 대한 로컬 시계의 드리프트 속도 "시간의 흐름. 잠긴 후에는이 값을 사용하여 로컬 실시간 클럭 자체가 매우 부정확 한 경우에도 로컬 클럭을 지속적으로 조정하여 정확한 시간 경과에 매우 근접한 값을보고 할 수 있습니다. 로컬 시계가 매우 불규칙 하지 않으면 업스트림 타임 소스를 어떤 이유로 든 사용할 수없는 경우에도 정확한 시간을 유지할 수 있습니다. 일부 NTP 클라이언트 구현 (아마도 대부분의 ntpd데몬 또는 시스템 서비스 구현)이이를 수행하고 다른 NTP 클라이언트 구현 (예 : ntpd의 동반자)ntpdate시계를 한 번만 설정하면 안됩니다. 이것은 일반적으로 클럭 드리프트 측정 값을 저장하기 때문에 드리프트 파일 이라고합니다. 그러나 엄격하게 말해서 디스크에 특정 파일로 저장할 필요는 없습니다.

NTP에서 계층 0은 정의상 정확한 시간 소스입니다. 계층 1은 계층 0 시간 소스를 시간 소스로 사용하는 시스템입니다 (따라서 계층 0 시간 소스보다 약간 덜 정확합니다). 계층 2는 계층 1 소스와 시간이 동기화되어 있기 때문에 계층 1보다 정확도가 약간 떨어집니다. 등등. 실제로,이 정확도 손실은 너무 작아서 가장 극단적 인 경우를 제외하고는 거의 무시할 수 있습니다.


1
각각 "높은 지층"이 낮은 지층 번호를 의미하는 것은 아니며 답에서 제거해야합니다. S2가 S1보다 높습니다. Prof. Mills (일명 Prof NTP)의 설명을 살펴 보려면 "NTP 서브넷은 각 계층에 계층이라고하는 숫자가 할당 된 수준의 계층 구조로 작동합니다. 최저 수준의 계층 1 (기본) 서버는 직접 동기화됩니다. "국가 시간 서비스 ... 다음으로 높은 수준 의 Stratra 2 (보조) 서버는 Stratum 1 서버 등으로 동기화됩니다." eecis.udel.edu/~mills/ntp/html/warp.html
dfc

2
더 낫지 만 나는 계층 0이 "정확한 시간 소스"라고 생각하지 않습니다. Stratum 0은 단순히 일종의 기준 클럭임을 의미합니다. 그것이 S0 클럭이라고해서 그것이 제대로 작동한다는 것을 의미하지는 않습니다. 지층 레벨은 정확도를 보장하지 않는 기준 클럭과의 거리에 관한 것입니다.
dfc

@ dfc 나는 대답을 더 좋게 만들 수 있기 때문에 입력에 감사드립니다. 즉, S0이 정확하다는 것을 의미하지는 않는다는 귀하의 진술에 동의하지 않습니다. 어쩌면 그것은 매우 엄격한 의미 일 수도 있지만, S0 클럭에 의해 주어진 시간이 정확하지 않으면, 그 클럭은 실제로 S0 소스로서 쓸모가 없습니다. Ergo, S0 클럭이 정확합니다. 또는 다른 방법으로, 격리 된 호스트 집합이있는 경우 그 중 하나가 S0 시간 소스에 연결되고 다른 모든 호스트가 동기화되는 경우 S0 소스 가 제공 한 시간은 해당 호스트에 관한 정확한 시간입니다. TAI에 대해 걱정할 필요가 없습니다.
CVn

10

네트워크 타임 키핑에서 서버가 시간 소스를 얻는 방법을 알려주는 사양을 Stratum Level이라고합니다. 레벨이 낮을수록 해당 서버의 시간 유지가 더 좋습니다.

Stratum level 0 장치가 네트워크에 직접 연결되어 있지 않습니다. 그것들은 실제 시간 기록 장치 자체이며 실제 시간을 얻으려면 컴퓨터에 연결되어 있어야합니다. 이 컴퓨터는 Stratum level 1 NTP 서버가됩니다.

Stratum 레벨 1에 연결하는 컴퓨터는 시간 서버가 될 수도 있지만 그 다음에는 Stratum 레벨 2가됩니다. 컴퓨터가 타임 서버에 연결 될수록 계층 레벨이 낮을수록 시간을 더 정확하게 유지할 수 있습니다.

Stratum 레벨 0 장치에는 TAI (국제 원자 시간)에 참여하는 원자 시계가 포함됩니다.또는 그것에 동기화되고, 그러한 클럭에 의해 전송 된 시간 신호의 수신기. 가장 일반적으로 GPS PPS 신호를 포함하는 적절한 인터페이스를 갖춘 GPS 타임 키핑 수신기입니다. GPS가 여러 위성에서 양호한 잠금을 가질 때 PPS 신호는 초당 하나의 펄스를 보내고 해당 펄스의 리딩 에지는 해당 초의 실제 시작의 나노초 내에 있습니다. GPS 수신기의 사양에 따라 PPS 신호가 다소 정확할 수 있습니다. 각 GPS 위성에는 원자 시계가 있기 때문입니다. GPS 수신기가 듣고있는 GPS 위성의 위치와 위치를 찾으면 RF 전파를 수정하고 GPS 수신기에서 원자 시계를 갖는 것만큼이나 정확한 시간을 줄 수 있습니다.

따라서 Stratum 레벨 1 서버는 원자 시계 또는 GPS 수신기에 연결되고 NTP 서버는 이에 연결됩니다. 빈번한 조정으로 계층 레벨 2 또는 3 서버에 연결하더라도 나노초 단위로 측정 된 타이밍 정확도를 컴퓨터에 제공합니다. 그러나 더 나은 타이밍이 필요하면 계층 1 서버에 연결하거나 적절한 시간 기록 GPS 수신기를 구입하여 자신이 직접 계층 1이됩니다.


4
저렴한 GPS 수신기를 추가하여 Raspberry PI 컴퓨터를 Stratum 1 NTP 서버로 바꾸는 많은 사람들이 있습니다. 네트워크에 $ 80 미만의 전체 Stratum 레벨 1 서버를 보유 할 수 있습니다. google.com/search?q=raspberry+pi+ntp+gps+pps
Adam Davis

2
이론상 GPS 수신기가 장착 된 스마트 폰 (현재는 거의 전부)이 0/1 장치 일 수 있습니까?
Bob

1
전화가 GPS 수신기의 pps 출력을 사용했다면 가능합니다. CDMA 전화도 정확한 타이밍을 사용해야하므로 CDMA 칩셋은 전화 프로세서의 계층 레벨 0 소스 일 수도 있습니다. oem gps 모듈과 라즈베리 파이는 더 저렴합니다.
Adam Davis

2
그러나 Raspberry Pi는 다소 색다른 저품질 네트워크 어댑터 (LAN9512 칩)를 사용하기 때문에 훌륭한 NTP 서버를 만들지 않습니다.
duskwuff

1
@duskwuff 예, 그러나 인터넷을 통해 많은 Stratum 레벨 2 서버보다 낫습니다. 서버와 클라이언트 모두에 NTP 설정이 올바르게 구성되어 있으면 저품질 USB 기반 LAN 칩으로 인한 지터와 오프셋을 극복 할 수 있습니다. 비용 때문에이기는 것은 어렵지만 조금 더 지출하면이 사소한 문제를 해결할 수 있습니다.
Adam Davis

3

모든 클럭은 어느 정도 표류합니다. 타이밍 신호의 소스와 얼마나 잘 추적되는지에 따라 다릅니다. PC에서는 요즘 HPET이지만 PC에 과부하가 걸리면 얼마나 많은 진드기가 사라 졌는지 추적 할 수 없습니다.

컴퓨터와 통신하는 NTP 서버도 시간을 잃을 가능성이 있지만 시간이 더 좋은 소스로 돌아갑니다.

궁극적으로 더 좋은 소스는 원자 시계와 같은 매우 정확한 시계입니다. NTP를 머신 네트워크로 생각할 수 있습니다. 각 머신에는 시간에 의존하는 여러 소스가 있으며보다 정확한 것으로 자신의 시간을 왜곡시킵니다.

이것은 지층을 선언하는 출처에 의해 관리됩니다. 원자 또는 GPS 시계는 지층 0이며 시간에 대한 권한입니다. 그로부터 나오는 각 계층은 다음 계층-계층 1이며, 시간 소스를 온전하게 검사하기 위해 동일한 레벨의 피어와 함께 여러 계층 0 소스를 검사합니다.

지층 2 또는 3 시간 소스와 대화하고있는 것 같습니다.


1

다른 사람들이 작성한 것은 사실입니다 : Stratum 1 서버는 Stratum 0 장치에서 시간을 얻습니다. 어떤 시간 간격이 발생하는지는 알 수 없지만 시간 간격이 매우 정확하다고 생각합니다.

n> 1 인 Stratum n 서버는 NTP를 통해 Stratum n-1 서버에서 시간을 가져옵니다. 즉, 일정한 간격으로 동기화됩니다. NTP 서비스를 시작하면 동기화가 아주 짧은 간격으로 이루어지고 시간이지나면서 간격이 증가하기 시작합니다. 결국 간격은 약 17 분인 1024 초입니다.

해결되지 않은 것은 그 시간 사이에 무슨 일이 일어나는가? drift file 이라는 기능이 있습니다 . NTP가 로컬 클록과 기준 클록 사이의 드리프트를 모니터링하는 데 도움이됩니다. 로컬 클럭의 주파수는 감지 된 드리프트에 따라 조정되므로 서버 폴 사이의 시간도 정확합니다.

다른 NTP 구현은 다른 기능을 사용할 수도 있지만 일반적으로 클럭 주파수를 조정해야 할 필요성과 능력이 있습니다.


그러나 드리프트 파일은 특정 소프트웨어 구현의 구현 세부 사항이며 NTP 서버의 하드웨어 시계가 어떻게 정확한지와는 관련이 없다고 주장합니다.
CVn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.