요약

  • NIST의 최초 인터넷 시각 서버는 ACTS 전화 서비스에 전화를 걸어 자신의 시계를 점검했다. 초기 실험에서는 3,000초마다 한 번 전화를 걸었다.
  • 이후 운영 기록은 요청 응답과 정확한 시각 유지가 별도의 관심을 필요로 했음을 보여준다. 모뎀 고장부터 침묵을 2037년으로 오해한 클라이언트 소프트웨어까지 다양한 문제가 있었다.

전화 요금이 붙은 시계

다른 컴퓨터에 시각을 알려주던 기계는 자신의 상태를 알아보기 위해 전화를 걸어야 했다. 이 구성에는 어딘가 소박하게 마음이 끌리는 면이 있다. 인터넷의 시계는 집에 전화하는 일만 잊지 않으면 네트워크에 시각을 제공할 수 있었다.

루다 레빈(Judah Levine)은1993년 PTTI 회의발표 논문에서 새로운 NIST 인터넷 시각 서비스(Internet Time Service)를 소개했다. 최초의 서버는 콜로라도주 볼더에 있었다. 이 서버는 Daytime, Time, NTP 형식으로 요청에 응답하며, 서로 다른 종류의 컴퓨터에 미국 국립표준기술연구소(NIST)가 유지하는 시각 체계인 UTC(NIST)를 얻는 길을 열어주었다.

논문의 서버 동기화 설명은 색다른 배관 구조를 보여준다. 처음에는 서버가 자동 컴퓨터 시각 서비스인 ACTS에 3,000초마다 한 번씩 전화를 걸었다. 보고된 실험에서 이 통화들은 서버의 시계를 UTC(NIST) 기준 약 0.8밀리초 RMS 이내로 유지했다. 이후 네트워크 전송 과정에서 사용자에게 전달되는 시각에 자체적인 불확실성이 더해졌다.

전화기의 역할이 바뀐 것이다. 레빈이 예로 든 인터넷 클라이언트는 스스로 유료 전화를 걸지 않고도 시각을 얻을 수 있었다. 기준 점검은 상류에서 이루어졌고, 한 대의 관리된 시계가 다른 기계들의 요청에 응답했다.

두 개의 연결, 두 가지 임무

NIST의2002년 5월 운영 보고서는 2001년 11월 기준 서비스를 다루며 이 구성을 명확히 설명한다. 각 시각 서버에는 전용 전화선에 연결된 아날로그 모뎀이 있었고, 주기적으로 볼더의 ACTS에 전화를 걸었다. 수신 전화는 무시되었다. 인터넷의 요청은 이더넷을 통해 처리되었다.

소프트웨어도 역할을 나눴다. 한 그룹의 백그라운드 프로세스는 시각 코드를 제공했고, 다른 프로세스는 서버의 시계를 조정했다. 교정 통화는 보통 몇 시간마다 이루어졌고 약 15초 정도 지속되었다. 통화 사이에는 소프트웨어가 발진기 모델을 활용해 계속 보정을 이어갔다. 짧은 대화가 더 긴 기간의 유용한 시간 유지를 사들인 셈이었다.

일부 기계에는 추가적인 도움이 있었다. 볼더 서버는 현지 기준원에서 초당 1펄스(one-pulse-per-second) 신호를 직접 받았다. 일부 원격 서버에는 루비듐 장비가 있어 단기 안정성을 개선하고, 통화를 할 수 없는 경우 제한적인 홀드오버(holdover)를 제공했다. 서비스는 동일한 공개 인터페이스를 유지하며 서로 다른 물리적 구성을 수용했다.

여전히 응답하던, 불편한 하루

전화 회선에 장애가 생기면 서버는 인터넷 응답에는 문제가 없으면서도 ACTS와의 시계 동기화를 잃을 수 있었다. NIST는 전화선 고장과 ACTS 서비스 측 문제를 모두 기록했다. 따라서 요청이 성공하더라도 클라이언트에게는 또 다른 질문이 남았다. 응답한 시계의 상태는 어떠한가?

부분 장애 상황에서 서버들은 대체로 불량 상태 정보를 응답에 포함했다. 대부분의 클라이언트 프로그램은 이를 확인하고 다른 서버로 옮겨갔다. 그러지 않는 프로그램도 있었다. 오래된 Time 형식은 상태를 담을 필드가 없어 더 큰 문제를 낳았다.

NIST는 침묵을 시도했다. 보고서에 따르면 많은 클라이언트 프로그램은 응답이 없는 상황을 2037년의 시각으로 해석했다. 분노하는 편지가 이어졌다. 없는 응답이 어느새 의도치 않은 시간 여행이 되었고, 고객 서신까지 붙었다.

이 작은 에피소드는 운영 역사의 축소판이다. 아픈 시계에 대한 엔지니어의 상식적인 대응은, 이미 다른 곳에 설치되어 있던 소프트웨어와 정면으로 부딪혔다. 서비스는 그 기계들이 사용할 수 있는 형태로 장애를 전달해야만 했다.

시계의 그다지 화려하지 않은 주변 장치

2001년 11월 기준으로 보고서는 시험 설비를 제외하고 14대의 운영 서버를 집계했다. NIST는 서비스를 중앙에서 관리했고, 원격 호스트 소재지의 직원들이 하드웨어 수리를 도왔다. 제조사 유지보수 계약이 부품과 인력을 제공했다. 새 소프트웨어는 공개 서버 대열에 들어가기 전에 내부 서버에서 시험되었다.

방화 금고에는 테이프도 있었다. 디스크 이미지와 함께 하드웨어 구성과 소프트웨어 개정 이력을 기록한 노트가 보관되었다. 이는 정밀 시계에 꼭 필요한 동반물이었다. 기계가 고장나면 누군가는 작업 상태를 어떻게 복원하는지 알아야 했다.

공개 인터페이스 덕분에 시각을 얻는 일은 쉬워 보였다. 그 이면에는 전화 회선, 시계 모델, 수리 체계, 복구 가능한 구성이 있었다. 인터넷은 편리한 시계를 얻었다. 그러나 그 시계에는 여전히 해야 할 잔일이 남아 있었다.