기술(IT)

시간동기화의 기술 NTP(Network Time Protocol)

2019. 10. 28.
728x90

NTP(Network Time Protocol)는 패킷 교환, 가변 지연 데이터 네트워크를 통한 컴퓨터 시스템 간의 클럭 동기화를 위한 네트워킹 프로토콜이다.  NTP는 현재 사용에서 가장 오래된 인터넷 프로토콜 중 하나이다. NTP는 모든 참여 컴퓨터를 UTC(Coordinated Universal Time)의 몇 밀리초 이내에 동기화하기 위한 것이다. 마르줄로 알고리즘의 수정 버전인 교차 알고리즘을 사용하여 정확한 시간 서버를 선택하고 가변 네트워크 지연 시간의 영향을 완화하도록 설계되었다. NTP는 보통 공공 인터넷 상에서 수십 밀리초 이내로 시간을 유지할 수 있으며 이상적인 조건 하에서 1 밀리초 이상의 정확도를 달성할 수 있다. 비대칭 경로와 네트워크 혼잡은 100 ms 이상의 오류를 일으킬 수 있다. 프로토콜은 대개 클라이언트-서버 모델의 관점에서 설명되지만, 두 동기가 다른 것을 잠재적 시간 소스로 간주하는 피어-투-피어 관계에서 쉽게 사용될 수 있다. 포트 번호 123에서 UDP를 사용하여 송신 및 수신 타임스탬프 구현 그들은 또한 방송이나 멀티캐스팅을 사용할 수 있는데, 클라이언트는 초기 왕복 보정 교환 후에 수동적으로 시간 업데이트를 들을 수 있다. NTP는 임박한 도약 2차 조정의 경고를 제공하지만, 지역 시간대나 서머타임에 대한 정보는 전송되지 않는다. 현재 프로토콜은 버전 4(NTPv4)이며, RFC 5905에 문서화된 제안된 표준이다. 그것은 RFC 1305에 명시한 버전 3과 역호환된다.

네트워크 시간 동기화 기술은 아마도 뉴욕 내셔널 컴퓨터 컨퍼런스에서 대서양 횡단 위성 네트워크를 통해 실행되는 최초의 인터넷 서비스 공개 시연에 사용되었다. 이 기술은 1981년 IEN(Internet Engineering Note) 173에 기술되었다. 그때나 지금이나 그 밖의 관련 네트워크 툴도 이용할 수 있었다. 여기에는 ICMP 타임스탬프 및 IP 타임스탬프 옵션(RFC 781)뿐만 아니라, 사건 시간 기록을 위한 데이타임 및 시간 프로토콜이 포함된다. 보다 완벽한 동기화 시스템에는 NTP의 데이터 분석과 시계 규율 알고리즘이 부족하지만, 모든 클라이언트를 위한 서버를 지정하기 위한 선택 알고리즘을 사용하는 Unix 데몬 시간 및 NTP 계층 모델과 유사한 서버의 계층을 사용하는 DTSS(Digital Time Synchronization Service)가 포함된다. NTPv1 프로토콜의 훨씬 더 완전한 사양이 관련 알고리즘과 함께 RFC 1059에 발표되었다. 그것은 RFC 956에 문서화된 실험 결과와 클럭 필터 알고리즘을 그렸고 클라이언트-서버와 피어-투-피어 모드를 설명하는 첫 번째 버전이었다. RFC 1119는 NTPv2를 주 머신을 통해 정의하고, 그 작동을 설명하는 의사코드로 출판되었다. 그것은 둘 다 NTPv4로 살아남은 관리 프로토콜과 암호 인증 체계를 도입했다. NTPv2의 디자인은 DTSS 커뮤니티의 공식적인 정확성 원칙이 결여되어 있다는 비판을 받았다. 그들의 대체 설계에는 마르줄로의 알고리즘이 포함되었는데, 이 알고리즘의 수정 버전은 NTP에 즉시 추가되었다. 이 시대의 알고리즘의 대부분은 NTPv4에서도 크게 살아남았다. RFC 1305는 NTPv3를 정의했다. RFC는 참조 클럭에서 최종 클라이언트에 이르기까지 모든 오류 발생원의 분석을 포함했으며, 이를 통해 여러 후보가 동의하지 않는 것으로 보이는 최적의 서버를 선택하는 데 도움이 되는 메트릭을 계산할 수 있었다. 방송 모드가 도입되었다. 이후, 새로운 기능이 추가되고 알고리즘이 개선됨에 따라, 새로운 프로토콜 버전이 필요하다는 것이 명백해졌다. 2010년에는 NTPv4에 대한 제안된 사양을 수록한 RFC 5905가 발표되었다. 

NTP는 계층적이고 반계층적인 시간 소스 시스템을 사용한다. 이 계층의 각 수준은 지층이라고 불리며, 상단의 기준시계에 대해 0부터 시작하는 숫자가 할당된다. 계층 n 서버에 동기화된 서버는 계층 n + 1에서 실행된다. 이 숫자는 기준 시계로부터의 거리를 나타내며 계층의 주기적 의존성을 방지하기 위해 사용된다. 층층이 항상 품질이나 신뢰성을 나타내는 것은 아니다. 다른 층 2 시간 소스보다 높은 품질의 층 3 시간 선원을 찾는 것이 일반적이다. Strata 0, 1, 2, 3에 대한 간략한 설명은 아래와 같다.

Stratum 0
이것들은 원자 시계, GPS 또는 다른 무선 시계와 같은 고정밀 시간 기록 장치들이다. 그들은 연결된 컴퓨터에서 인터럽트와 타임스탬프를 트리거하는 매우 정확한 초당 펄스를 생성한다. 층 0 장치는 기준 시계로도 알려져 있다.

Stratum 1
이 컴퓨터들은 시스템 시간이 연결된 0계층의 몇 마이크로초 이내에 동기화되는 컴퓨터들이다. 계층 1 서버는 무결성 검사 및 백업을 위해 다른 계층 1 서버와 피어싱할 수 있다. 그것들은 또한 Primary Time Server라고도 불린다.

Stratum 2
이들은 네트워크를 통해 계층 1 서버로 동기화되는 컴퓨터들이다. 종종 계층 2 컴퓨터는 여러 계층 1 서버를 쿼리한다. 또한 계층 2 컴퓨터는 피어 그룹의 모든 장치에 더 안정적이고 강력한 시간을 제공하기 위해 다른 계층 2 시스템과 동등할 수 있다.

Stratum 3
이들은 계층 2 서버에 동기화되는 컴퓨터들이다. 그들은 계층 2와 같은 피어링과 데이터 샘플링에 대해 동일한 알고리즘을 채택하고 있으며, 그들 스스로 계층 4 컴퓨터 등의 서버 역할을 할 수 있다. 계층의 상한은 15이며, 계층 16은 장치가 비동기화되었음을 나타내기 위해 사용된다. 각 컴퓨터의 NTP 알고리즘은 모든 클라이언트에 대해 계층 1 서버에 대한 누적 왕복 지연을 최소화하기 위해 Bellman-Ford 최단 경로 스패닝 트리를 구성하기 위해 상호 작용한다.

LIST

댓글

추천 글