나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-09-29 19:47:40

NTP

1. 개요2. 상세3. 주요 NTP 서버4. NTP가 필요한 이유

1. 개요

Network Time Protocol, 네트워크 타임 프로토콜

인터넷에 연결된 장비의 날짜/시간을 동기화 하는데 사용하는 프로토콜

2. 상세

NTP 는 RFC 958 으로 1965년에 David L. Mills에 의해 최초로 제안되었다. 이후 여러 개선안이 나온 뒤, 2010년 RFC 5905 로 NTP v4 이 정립되었다.

동작은 아주 간단한데, NTP server 에 현재 시각을 물어 보고, 그 응답을 받으면 컴퓨터의 시각을 변경한다. 참고로, NTP server 는 무조건 UTC 기준으로만 동작하며, 각국의 timezone 에 맞게 변환하여 사용해야 한다. 섬머타임을 적용하는 나라/지역의 경우도 각자 알아서 변환해서 써야 한다.

전송시간을 보정하는 기능도 RFC 에 언급되어 있으나, 구조상 정확도는 높지 않다.

무선 통신망처럼 정말 미세한 시간 동기화 기능이 필요한 장비의 경우 PTP(Precision Time Protocol)라는 프로토콜을 이용해서 동기화 한다.

3. 주요 NTP 서버

NTP 서버의 시간이 부정확하다면, 이에 동기화 되는 장비의 시간도 부정확해진다. 그래서, 최상위 NTP 서버는 원자시계와 동기화 되어 정확한 시간을 보장해 주며, 이는 국가기관 또는 대기업에서 따로 관리한다. 미국 국립표준기술연구소(NIST)나 한국표준과학연구원(KRISS) 등에서 관리하는 NTP 서버가 가장 정확하긴 하지만, 이런 최상위 서버는 일반 사용자의 접근을 허용하지 않는 편이다.

일반 사용자라면 아래 나열된 서버를 사용하는 것이 권장된다. 이들 서버도 최상위 NTP 서버와 동기화 되어 동작하기 때문에, 충분히 정밀하게 동작한다.

4. NTP가 필요한 이유

컴퓨터를 비롯한 대부분의 전자 장비는 '클럭(clock)'이라고 부르는 동작 주파수가 존재하며, 해당 장비는 이 주파수에 동기화 되어 동작한다. CPU 가 1GHz 로 동작한다느니 하는 식으로 표현한다. 이를 위해서 수정 진동자(crystal oscillator)로 일정한 진동을 발생시키고, 이것에 적당한 비율로 변조하여 사용한다. 또한, 컴퓨터 내부의 시계도 이 진동자에 맞추어 동작한다. 사실상 쿼츠 시계가 컴퓨터 내부에 들어 있는 셈이다.

그런데, 이 수정 진동자는 제품별 편차가 있을 뿐만 아니라, 온도/습도 등의 외부 환경에 의해서도 빨라지거나 느려지는 등 오차가 존재한다.

또한, 전원이 꺼진 상태에서도 수정 진동자를 유지하기 위해서 컴퓨터의 메인 보드에는 수은전지가 장착되어 있다. 만약 전지가 방전되면 시간이 멈추거나 초기화되어 버린다. 어떤 장비들은 아예 수은 전지가 없어서, 장비 전원이 새로 켜지면 반드시 시간을 재설정 해야 하는 경우도 있다. 일반적으로 초기화 되면 유닉스 시간 기준 0 에 해당하는 1970년 1월 1일로 설정된다.

컴퓨터(또는 장비)마다 시간이 다르게 동작한다면, 불편함이 발생하기에 이를 동기화 하여 사용할 필요가 있다.