NTP(네트워크 시간 프로토콜)란 무엇인가요?
NTP 또는 "네트워크 시간 프로토콜"은 네트워크에 연결된 장치의 시계를 정확한 시간으로 동기화하는 데 사용되는 프로토콜입니다. 이는 OSI 참조 모델의 응용 계층(7계층)에서 작동하며, 인터넷 엔지니어링 태스크 포스(IETF)의 "RFC 1305"에 정의되어 있습니다.
NTP를 사용하여 시간을 동기화할 때, NTP 클라이언트는 NTP 서버에 요청을 보냅니다. 기본 전송 프로토콜은 UDP이고, 서버의 포트는 UDP 123입니다. NTP 서버는 세슘 원자 시계가 유지하는 국제 원자 시간을 기반으로 하는 시간 표준인 협정 세계시(UTC)로 응답합니다. 지구의 자전 속도에서 파생된 GMT(그리니치 표준시) 등 다른 세계 시간 기준도 있지만, UTC가 가장 널리 사용됩니다. UTC와 UT1 사이에 차이가 있을 수 있으므로 가끔 UTC에 윤초를 삽입하여 지구의 자전과 시간을 더 정확하게 맞추기도 합니다.
NTP 서버는 인터넷에서 계층적으로 구성됩니다. 최상위 NTP 서버는 Stratum 1이라고 하며, 수준이 낮아질수록 Stratum 값이 증가합니다. NTP 서버는 여러 상위 계층 서버와 시계를 동기화합니다. Stratum 1 서버는 GPS 및 원자 시계와 같은 정확한 시간 소스를 포함하는 "Stratum 0"에서 정확한 시간을 얻습니다. Stratum 0 시간 소스는 1마이크로초(1/1,000,000초) 이내로 정확도를 유지하며 Stratum 1 서버에 직접 연결됩니다.
NTP는 네트워크를 통해 시간 데이터를 전달하므로 이러한 지연을 측정하고 조정하여 통신 지연을 고려해야 합니다. NTP는 왕복 통신 시간을 계산하고 이를 사용하여 네트워크 지연을 보정합니다. 하지만 이는 양방향으로 대칭적인 지연이 있다고 가정합니다. 전방 경로 지연과 복귀 경로 지연 사이에 차이가 있는 경우, 그 차이의 절반은 오차 한계에 영향을 미칩니다.