인터넷 시계, 얼마나 정확할까? HTTP Date & Git 커밋 분석

by DD
5개월 전
조회수 43

인터넷 상의 시계 동기화 문제는 생각보다 복잡하며, NTP와 같은 프로토콜에도 불구하고 오차가 발생함

저자는 HTTP Date 헤더를 분석하여 웹 서버의 시계 오차를 측정하고, Git 커밋 기록을 통해 과거의 시계 오차를 추적함

연구 결과, 대부분의 웹 서버는 정확한 시간을 유지하지만, 시간대 설정 오류, 자동화 시스템의 버그 등으로 인해 오차가 발생함

HTTP Date 헤더를 이용한 시계 오차 측정

저자는 HTTP HEAD 요청을 통해 웹 서버의 Date 헤더 값을 수집하여 시계 오차를 측정했다. 구체적으로, CDN 캐싱 문제를 해결하기 위해 미래의 시간을 가진 헤더만 고려하고, TLS 인증서 검증을 비활성화하여 데이터 수집 범위를 넓혔다. 따라서, 시스템 시계 오차를 최소화하기 위해 systemd-timesyncd를 사용했다.

Git 커밋 기록 분석을 통한 과거 시계 오차 추적

저자는 Linux 커널의 Git 커밋 기록을 분석하여 과거의 시계 오차를 추적했다. 구체적으로, author timecommit time의 차이를 분석하여 시간 여행 커밋을 식별했다. 반면, 시간대 설정 오류날짜 형식 파싱 오류로 인해 발생하는 오차를 발견했다. 결과적으로, 자동화 시스템의 버그가 시계 오차의 주요 원인임을 확인했다.

실제 시스템 적용 시 고려사항

시계 오차는 분산 시스템에서 데이터 일관성 문제를 야기할 수 있다. 따라서, NTP 서버를 사용하여 시계를 동기화하고, 타임스탬프 처리 시 오차를 고려해야 한다. 구체적으로, 시간대 설정에 주의하고, 자동화 스크립트의 버그를 방지해야 한다. 결과적으로, 로그 기록모니터링 시스템을 통해 시계 오차를 지속적으로 감시해야 한다.

Measuring out-of-sync clocks on the Internet