본문으로 바로가기
728x90
반응형

'Network Protocols Handbook' pdf를 참고하였습니다.

더 자세한 내용은 아래의 링크에서 RFC 문서를 참고해주세요.

 

https://www.rfc-editor.org/rfc/rfc958

 

RFC 958: Network Time Protocol (NTP)

 

www.rfc-editor.org

NTP는 각 장비들의 간에 네트워크를 통해서 시간을 동기화하기 위해 사용하는 프로토콜입니다.

 

리눅스에서는 ntpd 서비스나 chrony 서비를 통하여 시간을 동기화 합니다.

 

이때 사용하는 프로토콜이 ntp입니다.

 

일상파에서 광파까지 속도로 작동하는 크고 다양한 인터넷에서 시간을 동기화하고 시간 분포를 조정하는 메커니즘을 제공합니다.

마스터/슬레이브 구성에서 작동하는 타임 서버의 분산 하위 네트워크가 유선 또는 무선을 통해 하위 네트워크 내의 논리적 시계와 국가 시간 표준을 동기화하는 반환 가능한 시간 설계를 사용합니다.

NTP 서버는 라우팅 알고리즘과 타임 서비스를 통해 시간을 재배포할 수 있다.

NTP는 클럭 오프셋, 왕복 지연 및 분산의 세 가지 기능을 가지고 설계되었습니다.

클럭 오프셋은 본인의 클럭을 기준이 되는 클럭과 일치하도록 조정하는 값을 나타냅니다.

왕복 지연은 지정된 시간에 특정 서버에 시간 데이터가 도착하도록 메시지를 전송하는 기능을 제공합니다.

분산은 기준 클럭에 대한 로컬 클럭의 최대 오차를 나타냅니다.

 

대부분의 호스트 타임 서버는 다른 피어 타임 서버를 통해 동기화되기 때문에 이 세 가지 기능에는 각각 두 개의 구성 요소가 있습니다.

 

이 구성 요소는 표준 시간의 기본 참조 소스를 기준으로 피어에 의해 결정되고 피어를 기준으로 호스트에 의해 측정됩니다.

이러한 각 구성요소는 서브넷 자체의 오류 제어 및 관리를 용이하게 하기 위해 프로토콜에서 별도로 유지됩니다.

오프셋 및 지연의 정밀 측정뿐만 아니라 최종 최대 오차 한계도 제공하므로 사용자 인터페이스가 시간뿐만 아니라 시간의 품질도 결정할 수 있습니다.

NTP는 시간 프로토콜과 ICMP 타임스탬프 메시지에서 발전했지만, 특히 다중 게이트웨이, 고도로 분산된 지연 및 신뢰할 수 없는 네트워크를 포함하는 일반적인 인터넷 경로에서 사용될 때에도 정확성과 견고성을 유지하도록 설계되었습니다.

 

NTP는 현재 4버전이고, 모든 버전과 호환이 됩니다.

 

서버간의 시간 동기화는 아주 중요하므로, 대부분의 프로젝트에서는 NTP를 사용합니다.

 

이번에는 프로토콜 구조에 대해 알아보겠습니다.

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

LI : Leep Inditacor, 현재 월의 마지막 날 끝에 삽입될 윤초 경고

 

VN : Version Number, 메시지 정보에 대한 값

 

0 : Reserved

1 : Symmetric active

3. Client

4. Server

5. Broadcast

6. NTP control message

 

Stratum : 이 패킷이 속해있는 Stratum 계층 레벨

 

Poll : Poll Interval, 연속 메시지 간의 최대 간격(초)을 나타내는 부호 있는 정수

 

Precision : 로컬 클럭의 정밀도를 나타내는 부호 있는 정수(초)

 

Root delay :  왕복 지연을 나타내는 부호 있는 고정점 번호(초), 비트 15와 16 사이의 분수 포인트.

 

Root Dispersion : 비트 15와 16 사이에 분수 포인트가 있는 초 단위로 기본 기준 소스에 상대적인 공칭 오차를 나타내는 부호 없는 고정점 번호

 

Reference Identifier : 특정 참조 식별자

 

Originate Timestamp : 요청이 64비트 타임스탬프 형식으로 서버에 대한 클라이언트를 떠난 시간

 

Receive Timestamp : 요청이 서버에 64비트 타임스탬프 형식으로 도착한 시간입니다.

 

Transmit Timestamp : 응답이 64비트 타임스탬프 형식으로 클라이언트를 위해 서버를 떠난 시간

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

오늘은 NTP에 대해 알아보았습니다.

 

포스팅은 여기까지입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형