NTP → Unix 타임스탬프 변환기
NTP을(를) Unix 시간으로 변환합니다. 정확한 공식과 큰 값 지원. 출력: 초, 밀리초, ISO 8601, 가독 형식.
1900-01-01 UTC 이후의 초
현재 시간 — NTP 타임스탬프—
Unix 타임스탬프(초)—
NTP 타임스탬프란?
Network Time Protocol은 시간을 1900년 1월 1일 00:00:00 UTC부터 셉니다. 고전적인 64비트 NTP 타임스탬프는 32비트 초 카운트와 32비트 초 소수부로 나뉩니다. 이 변환기는 정수 초 필드(변환이 필요한 가장 흔한 값)를 다룹니다.
- epoch: 1900-01-01 00:00:00 UTC
- 형식: 32비트 초 + 32비트 초 소수(약 233피코초 해상도)
- 현재 값은 약 3.9 × 10^9
- 나타나는 곳: NTP/SNTP 패킷, RADIUS, 일부 로깅 및 텔레메트리 형식
NTP를 Unix 타임스탬프로 변환하는 법
1900년과 1970년 사이에는 2,208,988,800초가 있습니다. 이 상수를 NTP 초 필드에서 빼 Unix 초를 얻습니다.
- Unix seconds = NTP − 2208988800
- 예: 3908988800 → 1700000000 → 2023-11-14 22:13:20 UTC
- 역방향: NTP = Unix seconds + 2208988800
- 32비트 소수 필드 ÷ 2^32가 초 미만 부분을 줌
NTP 에라와 2036 롤오버
32비트 초 필드는 약 136년마다 오버플로됩니다. 첫 번째 NTP 에라는 2036년 2월 7일에 끝나며, 이후 초 카운터가 0으로 되돌아가고 '에라 번호'를 별도로 추적해야 합니다. 2,208,988,800을 무턱대고 빼는 것은 에라 0 안에서만 작동합니다; 2036 롤오버 이후 타임스탬프는 에라당 2^32초를 더해야 합니다. 오늘 날짜에는 단순 뺄셈이 맞습니다.
- 에라 0은 1900년부터 2036-02-07까지를 포함
- 롤오버 후에는 오프셋을 빼기 전에 4294967296 × eraNumber를 더함
- NTP 타임스탬프는 UTC이며 초 필드에 윤초를 인코딩하지 않음
관련 타임스탬프 형식 변환기
인접한 시간 프로토콜
NTP가 가장 흔하지만, 주변 생태계에는 다음이 포함됩니다:
- SNTP: 단순 NTP, 같은 와이어 형식, 더 낮은 정밀도와 시계 규율 없음
- PTP(IEEE 1588): 금융과 방송에서 쓰이는 나노초 정밀도 프로토콜 — 와이어 형식은 다르지만 epoch 개념은 유사
- Stratum 0 하드웨어(원자시계, GPS 수신기)가 Stratum 1 서버에 시드를 제공하고, 그 서버가 클라이언트에 서비스
- NTP 타임스탬프는 RADIUS Accounting(Event-Timestamp)이나 많은 IPsec 구현 같은 프로토콜에 내장됨
- UTC 윤초 처리를 위해 NTP는 leap indicator 필드의 비트 플래그를 사용함; 초 필드 자체는 점프하지 않음
FAQ
- NTP epoch란?
- NTP는 1900년 1월 1일 00:00:00 UTC부터의 초를 셉니다.
- NTP 시간을 Unix 시간으로 변환하려면?
- NTP 초 값에서 2,208,988,800초를 빼서 Unix 타임스탬프를 얻으세요.
- 2036년에 NTP는 어떻게 되나?
- 32비트 초 카운터가 2036년 2월 7일에 오버플로되어 0으로 되돌아가며 NTP 시대 1이 시작됩니다. 변환기는 이후 타임스탬프를 올바르게 해석하려면 시대 번호를 추적해야 합니다.