NTP 정확도에 관한 연구 자료가 있습니까?


13

내가 아는 한 NTP 동기화의 정확성은 네트워크에 크게 좌우됩니다. 인터넷을 통해 50 마이크로 초에서 "1 초 미만"까지의 숫자를 보았습니다. 글쎄, 이것은 큰 차이입니다.

정확성 의존성은 연구하기에 좋은 질문이지만 지금까지는 특정 구성이 특정 정확도를 부여한다는 내용의 자료를 찾지 못했습니다.

그것은 말했다되는 http://www.ntp.org/ntpfaq/NTP-s-algo.htm :

NTP 동기화를 유지하려면 서버와 클라이언트간에 128ms 미만의 시간 차이가 필요합니다. 인터넷의 일반적인 정확도는 약 5ms ~ 100ms이며 네트워크 지연에 따라 달라질 수 있습니다. 최근 조사 [2]에 따르면 NTP 서버의 90 %가 100ms 미만의 네트워크 지연을 가지고 있으며 약 99 %가 1 초 이내에 동기화 피어에 동기화되어 있다고합니다.

PPS 동기화를 사용하면 Pentium PC (예 : Linux 실행)에서 50µs의 정확도와 0.1 PPM 미만의 안정성을 얻을 수 있습니다.

그것은 뭔가, 그러나 주제에 대한 좀 더 철저한 분석이 있습니까?


3
나는이 질문에 전혀 연구 노력이 전혀 없다고 생각하고 그 근거로 하향 투표를하고 있지만 OP가 ntp.org 에있는 자료를 읽은 것이 확실하지 않다 . 그 기초. 맹목적으로 배치하고 최상의 것을 기대하는 대신 프로토콜이 광고 된대로 작동하는 이유를 알고 싶어하는 것은 시간 낭비가 아닙니다.
MadHatter

질문을 업데이트 해주셔서 감사합니다. 당신이 왔을 때 답장을 보내면 성가신 느낌 이 들지 만, 질문을 할 때 어디에 있었는지 알려주지 않으면 어떻게 알 수 있습니까? 또한 위에 게시 한 텍스트에는 NTP 서버의 정확성을 연구하는 학술 논문에 대한 포인터가 포함되어 있습니다. 당신은 그것을 읽었으며, 그렇다면 충분하지 않은 이유를 나타낼 수 있습니까?
MadHatter

그럴 수 있지. 이 백서는 NTP 네트워크에 대한 14 세의 전체 설문 조사입니다. 더 많은 링크가 있지만 물론 더 오래되었습니다. Google Scholar와 CiteSeer를 사용해 보았지만 대부분의 링크는 90 년대의 Mills와 Millnar 작품과 동일합니다. 아직 탐색 중이지만 주제와는 거리가 멀고 시간이 오래 걸릴 수 있으므로 커뮤니티에 도움을 요청했습니다.
akalenuk

1
NTP는 14 년 이상 변하지 않았습니다. 왜 정확도가 크게 변했을까요? 아래에 언급 된 바와 같이, NTP는 초정밀 한 의미가 아니며, 1 초 이내에 있어야합니다 (아마도 정보가 부족한 견적의 출처 일 수 있음). 1ms 미만의 정확도가 필요하면 PTP를 사용하고 싶을 것입니다. 나는 매우 광범위한 배포에서 의도 한 것을 정확하게 수행하는 것의 정확성을 연구 할 때 어떤 가치도 볼 수 없습니다.
Chris S

2
실제로, 인용 된 두 작품 중 하나 인 Chris는 인터넷상에서 NTP 서버의 정확성 (항상 우수하지는 않았지만 프로토콜 자체가 아님) 1999 년과 현재 사이에 향상 되었음을 분명히 보여줍니다 . 인터넷이 더 좋기 때문인 것으로 생각합니다. 대기 시간이 이전 보다 다소 낮고 변동이 적습니다. 일부 S1 서버의 품질이 향상 되었기 때문에 (1999 년 논문에 따르면 S1 서버의 가장 일반적인 클럭 소스는 OS 시계!). OP가이 질문을했기 때문에 기쁘다 고 생각합니다.
MadHatter

답변:


14

NTP가 네트워크에서 얼마나 잘 작동하는지 보장 할 수있는 사람은 아무도 없습니다. 네트워크가 인터넷과 시계 서버에 얼마나 잘 연결되어 있는지 알 수 없기 때문입니다. 그러나 ntp.org의 시계 규율 알고리즘 페이지에 따르면

계속해서 계속 실행하면 가정이나 사무실 환경의 고속 LAN에서 NTP 클라이언트가 1 밀리 초 이내에 동기화를 유지할 수 있습니다. 주변 온도 변화가 섭씨 온도보다 낮은 경우 클록 발진기 고유 주파수 오프셋이 100 PPM 이상인 경우에도 클록 발진기 주파수는 PPM (part per million) 내로 훈련됩니다.

LAN과 인터넷 시계 서버 사이의 대기 시간이 길지만 안정적인 대기 시간만큼 정확도에 영향을 미치지는 않습니다.

위의 추정치를 어디에서 얻었는지 ('50 마이크로 초 ~ ... "1 초 미만") 말하지 않으므로 직접 언급하지 않으면 내 경험에 따르면 50us는 거의 없습니다. 당신이 인터넷에 연결하는 젖은 문자열 조각이없고 남극 대륙에서 업스트림 서버를 사용하지 않는 한 1s는 거의 없습니다.

편집 : 질문에 인용 한 텍스트는 1999 년 실제로 ntp 서버의 99 %가 1 초 이내에 동기화되었다는 논문에 대한 포인터를 제공합니다. 다행히도 최근의 작업이 있습니다. 에 이 글 (내가 그들의 그림을 이해한다면 1 올바르게.) 파라나, 브라질, 연방 대학에서 몇몇 저자는 2005 년에 실험을 반복하고, 발견 99 %의 북쪽 - 99.5 %처럼 - 서버로 지금보다 오프셋이 100ms이며 90 %는 10ms 미만의 오프셋을 갖습니다. 이것은 내 경험과 잘 어울립니다 (위 참조).

편집 2 : 하나의 마지막 주름 :이 모든 연구는 로컬 시계의 정확성을 조사하는 것이 아니라 업스트림 참조 시계와 얼마나 다른지 조사합니다. 이것들은 특허 적으로 같은 것이 아닙니다. 그러나 첫 번째는 알 수 없습니다. 시계가 얼마나 잘못되었는지 알기 위해서는 정확히 몇 시인 지 알아야하며, 알고 있다면 왜 처음에 시계를 잘못 설정했을까요? 그냥 어떻게 이러한 연구가 측정하는 것은 알고 있어야 하지 로컬 클럭과 절대 시간의 차이는 있지만, 로컬 클럭 및 레퍼런스 클럭 사이.


+1 나는 풀 서버도 운영했는데, 20ms 이상의 드리프트가 전국적으로 명확하게 모니터링되었다.
Chris S

9

어떤 문제를 해결하려고합니까?

NTP보다 더 정밀한 환경이 필요한 솔루션은 Precision Time Protocol (PTP) 입니다. 과학 컴퓨팅 및 금융 컴퓨팅 응용 프로그램에서 사용했습니다. 그러나 트레이드 오프 가 있습니다 .

centos6 / rhel에서 ptp 시간 동기화 참조


4
"어떤 문제를 해결하려고합니까?" 내가 가장 좋아하는 질문은 항상 묻는다.
mfinni

@mfinni, 고객 중 먼저 제출 한 고객의 순위를 정해야 할 경우 (예 : HFT ) 시간을 정확하게 맞추는 데 도움이됩니다.
Pacerier

6

언급 할만한 몇 가지 사항 :

  • 가상 머신에서 100ms 미만의 클록 지터를 얻는 것은 운이 좋으므로 아래의 모든 것은 물리적 호스트에 대한 것입니다.
  • 100ms 미만의 지터는 거의 모든 작업에서 거의 측정 할 수 없으며 인터넷을 통해 쉽게 달성 할 수 있습니다.
  • 30ms 이하의 지터는 일부 일반적인 서빙 환경에 필요할 수 있으며 (이전 작업에서 로그 상관을 위해 필요), 연결이 "소비자"링크를 통해 연결되지 않은 동일한 대륙 (예 : 위성이 아님)에서 NTP 서버를 사용하여 쉽게 달성 할 수 있습니다. , ADSL, DOCSIS, GPON, UMTS / LTE / HSPA / 등)
  • 아래의 정확도를 위해서는 품질 공급 업체 (예 : Symmetricom)의 하드웨어 NTP 서버를 설치해야합니다.
  • 거의 모든 과학 이외의 응용 프로그램에 대해 동일한 데이터 센터 내에 트리오 (더 적은 수로 수행 할 수 있지만 3 개 또는 5 개를 사용해야하는 이유가 있음)를 가짐으로써 10ms 미만 (종종 1ms 미만)의 로컬 계약 을 쉽게 달성 할 수 있습니다.

5

내 부분에 대한 관심 : 전 Meinberg 요원입니다 :-)

그렇습니다. NTP는 엔드-투-엔드 정밀도를 약. Chrony 또는 ntpd를 실행하는 베어 메탈에서 Linux "클라이언트"를 GPS, 로컬 원자 시계 또는 기타 소스로 훈련 된 Linux 기반 NTP 서버에 동기화하는 경우 지터의 50 us (마이크로 초)입니다.

로컬 GPS가있는 시스템 (PPS 상호 연결 사용)에서는 OS에서 실행중인 ntpd 인스턴스와 해당 PPS refclock 드라이버 입력 사이에 0-2 마이크로 초의 오프셋이 표시 될 수 있습니다.

"LAN을 통해 엔드 투 엔드 (end-end to LAN)"한 나머지 50 개의 버퍼링은 여러 단계의 버퍼링, 가변 IRQ 레이턴시, LAN 및 관련 컴퓨터 버스에서 방해되는 기타 트래픽의 결과입니다. 50은 트래픽이 거의없는 LAN을 의미합니다. 스위치만으로도 마이크로 초의 지터를 추가 할 수 있으며 복잡한 기능을 갖춘 고급 스위치는 대기 시간과 지터를 더 추가합니다. 다시 말해, 실제 LAN에서 실제 LAN 환경에서는 이러한 50 마이크로 초를 달성하기가 매우 어려울 수 있습니다.

마찬가지로, PPS 오프셋의 cca <2us는 IRQ 대기 시간 불확실성과 올바르게 동작하는 PC 하드웨어의 일반 버스 대기 시간 지터에서 비롯됩니다.

NTP와 그 구현 ntpd와 Chrony는 NTP 트랜잭션 왕복 시간을 확실히 측정하고 체계적인 전송 대기 시간 (일방 통행)을 걸러내는 척도로서 왕복의 절반을 빼십시오 (실제로 추가). 또한 이상치 거부, 쿼럼 컨센서스, syspeer 선거 및 NTP 악마가 업스트림 쿼리에 대한 응답을 필터링합니다. 다른 사람들이 말했듯이 Ping 및 Traceroute에 표시되는 밀리 초는 로컬 시계를 직접 오프셋하지 않습니다. 중요한 것은 트랜잭션 왕복의 변동성, 즉 업스트림 NTP 서버 경로의 다른 트래픽입니다. Ntpq -p는 당신의 친구입니다.

TCXO와 함께 타이밍 사용을위한 기본 GPS 수신기는 PPS 출력에서 ​​100-200 ns의 잔류 지터 + 원더를 가질 수 있습니다. GPS가 잠겨있는 한 NTP에 충분합니다. TCXO에서는 이월 성능이 그리 좋지 않습니다. OCXO가 포함 된 품질 타이밍 GPS는 100ns 내에있을 수 있으며, 10-30ns의 잔류 오차 (전세계 UTC에서 오프셋)와 비슷할 수 있습니다.

실제 위성은 오버 헤드로 날아가 대기를 통과하는 경우 GPS 생성기가있는 실험실에서 벤치마킹하는 것보다 수신기에서 약간 더 힘든 게임 일 수 있습니다.

PTP는 망치입니다. 그랜드 마스터, 슬레이브 및 스위치에서 HW 지원이 필요합니다. 그러나 모든 것을 얻으면 낮은 두 자리 수의 나노초까지 잔류 오프셋이 가능합니다. 나는 개인적으로 HW를 지원하는 i210 NIC로 실행하는 ptp4l에서 이것을 보았습니다 (나노 초 해상도의 타임 스탬프).

i210 칩은 놀라운 일입니다. PPS 신호를 입력 또는 출력하는 데 사용할 수있는 4 개의 범용 핀이 있습니다. i210이 포함 된 참조 인텔 애드온 NIC 보드 (및 여러 공급 업체의 OEM 버전)에는 최소 2 개의 GPIO 핀 (Intel에서 호출 한 SDP)에 액세스 할 수있는 핀 헤더가 장착되어 있습니다. PTP 그랜드 마스터 포트를 구현하는 것 외에도 PPS 입력을 활용하여 패킷 캡처에서 정확한 타임 스탬프를 작성할 수 있습니다. 서보 루프를 실행하여 i210의 PHC를 내선 PPS로 미세 조정하려면 정확한 PPS 소스와 맞춤형 소프트웨어가 필요합니다. 테스트 장비에서 이로 인해 잔류 오프셋의 한 자릿수 ns (1 초마다 반복)가 발생했습니다. 이것이 바로 캡처 타임 스탬프에서 얻을 수있는 정밀도입니다. 최신 Linux 커널에서 최근 tcpdump 또는 wireshark를 실행하는 경우 (모든 소프트웨어는 나노초 수준의 해상도를 지원해야합니다). 더 나은 방법 : 나는 정확한 업스트림 10MHz 기준에 고정 된 NIC 클록을 위해 25MHz를 생성하기 위해 간단한 PLL 신시사이저를 구축했다. 그 후, 패킷 캡처 장비의 서보 루프에서 잔류 오프셋이 깨끗한 0으로 떨어졌습니다 (10MHz 참조가 동일한 GPS 상자의 PPS와 위상 동기 적이라는 증거).

PTP 그랜드 마스터는 타임 스탬프에 8ns 당 실제 세분성을 제공하도록 지정할 수 있습니다 (1ns 해상도의 데이터 형식). 기가비트 이더넷은 MAC 내부에서 바이트 클록으로 사용되는 125MHz 클록을 사용하는 경향이 있습니다.이 클록은 아마도 GMII에서도 사용되며 금속성 1000Base-TX (4 쌍)의 심볼 클록이기도합니다. 병렬로, 쌍당 심볼 당 2 비트). 따라서 SERDES와 함께 1000Base-FX (광섬유)를 사용하지 않고 개별 SERDES 비트로 작동하는 PHY의 HW 타임 스탬프 링 장치를 극단으로 구현하지 않는 한 8ns는 기가비트 이더넷에서 현실적으로 기대할 수있는 전부입니다. 일부 칩 데이터 시트 (PTP 지원)는 MII 데이터 경로에 버퍼링이 없으며 일부 지터가 발생할 수 있다고 주장합니다.

PTP 패킷에는 실제로 서브 나노초 단위의 분해능을 허용하는 데이터 유형에 저장된 타임 스탬프가 포함되어 있습니다. 그러나 오늘날 "나노초 이하 분수 필드"는 일반적으로 사용되지 않습니다. AFAIR만이 현재는 White Rabbit 프로젝트 (CERN의 스위스 연구 센터와 관련이 있음) 만 ns 이하의 정밀도를 구현했습니다.

PTP는 HW 가속없이 순수한 소프트웨어로도 제공됩니다. 이 경우 SW 기반 GM 및 SW 기반 클라이언트의 경우 NTP와 유사한 잔류 지터 (예 : 전용이지만 PTP 비 인식 LAN에서 약 50 us)를 얻을 것으로 예상됩니다. 직접 인터커넥트 (중간 스위치 없음)와 SW 전용 클라이언트 (PTP 미 인식 PC NIC)의 HW 그랜드 마스터로부터 마이크로 초 미만의 정밀도를 얻는 것을 기억합니다. NTP와 비교할 때 PTP의 서보는 훨씬 빠르게 수렴됩니다.

"집안일"을하는 동안, 최근 광역 광섬유 경로를 통해 PPS 또는 유사한 "이산 된"타이밍 신호를 전송하는 것이 온도 의존적 ​​전파 시간 "방황"에 취약 할 수 있다는 것이 최근에 나에게 일어났다. 그리고 나는 이것을 실험적으로 테스트 할 방법이 없지만 인터 웹의 일부 소스는 km 당 40에서 76 피코 초와 켈빈 사이의 숫자를 인용합니다. 이러한 종류의 "열 방랑"은 단순한 PPS 전송에서 "대역 내"를 완화하는 것이 불가능하지만, PTP는 표준 경로 지연 측정 (전이중 전송에 의존)에 기초하여이를 기본적으로 사후 보상합니다.

다른 타이밍 기술 / 인터페이스에서 "정밀도"가 어떻게 보이는지에 대한 개요는 너무나 많습니다. 응용 프로그램, 실제 요구 사항에 따라 어느 정도의 정밀도가 충분합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.