요약

  • 1969년 10월 29일 Charley Kline은 UCLA에서 Bill Duvall이 있는 SRI 호스트에 원격 로그인하려 했다. Leonard Kleinrock의 후일 회고에 따르면 L과 O는 도착했고 G를 넣자 SRI 호스트가 다운됐다.
  • Kleinrock은 원인을 SRI 호스트의 메모리 오버플로로 봤고 UCLA 호스트, 두 IMP, 장거리 회선을 원인에서 제외했다. 소프트웨어를 약간 고친 뒤 다음 시도는 성공했다.
  • UCLA의 손글씨 로그에는 “UCLA와 SRI 호스트 간 통신.”라는 여섯 단어만 남았다. RFC 1은 이미 IMP와 호스트의 소프트웨어를 나눠 설명했다. 이 시험은 그 경계가 실제 운용에서 어디에 놓이는지 보여줬다.

분석

전화는 양쪽 기계의 증인이었다

목표는 SRI의 원격 시분할 시스템에 로그인하는 것이었다. Kline이 UCLA에서 L-O-G를 입력하면, SRI 호스트가 I-N을 돌려보내 단말기에 “LOGIN”을 완성하는 방식이었다. 여러 컴퓨터를 연결한다는 큰 구상이 두 방에서 글자 하나씩 확인할 수 있는 짧은 절차로 바뀌었다.

Kleinrock은 Kline이 UCLA 3420호실에 있었고 Bill Duvall은 SRI에 있었다고 회고했다. 양쪽은 전화 통화를 유지하며 글자가 도착했는지 확인했다. 전화가 ARPANET 데이터를 전달한 것은 아니다. 두 사람이 각자 자기 기계의 동작을 맞춰보기 위한 통신선이었다. 초기 네트워크에서는 상대편이 말로 확인한 “받았다”가 패킷과 나란히 놓인 영수증이었다.

연결도에는 호스트 두 대가 선으로 이어져 있다고 표시할 수 있다. 하지만 원격 운영체제가 명령을 받아들이고, 필요한 메모리를 확보하고, 세션을 유지한 뒤 답을 돌려줄지는 선 하나로 알 수 없다. 로그인 시험은 데이터가 도착한 다음, 수신 호스트가 맡은 일을 확인했다.

G에서 고장 책임이 드러났다

Kline이 L을 입력하자 Duvall이 도착을 확인했다. O도 마찬가지였다. G를 입력했을 때 SRI 호스트가 다운됐다. Kleinrock은 2012년 구술사 인터뷰에서 SRI 호스트의 메모리 오버플로가 원인이었다고 말했다. UCLA 호스트, 두 Interface Message Processor, 장거리 회선은 원인에서 제외했다. 팀이 소프트웨어를 조금 수정했고, 얼마 뒤 다음 시도는 제대로 동작했다.

고장 위치를 알면 누가 고칠지도 정해진다. 회선이 끊겼다면 전송 담당자의 일이었을 것이다. Kleinrock의 회고에서 입력은 원격 호스트까지 도착했고 처리는 그곳에서 멈췄다. IMP는 교환을 SRI 호스트까지 옮겼고, 세션을 계속하려면 SRI 팀이 자기 소프트웨어를 손봐야 했다.

공개 자료에는 SRI의 메모리 덤프도, 실패한 G와 재시도에 각각 시간을 찍은 패킷 기록도 없다. 메모리 덤프는 고장 경로를 독립적으로 확인하고, 패킷 기록은 밤 10시 30분 로그가 두 시도 중 어느 쪽을 가리키는지 밝혀줄 자료다.

로그는 성공을 적었다

Computer History Museum의 1960년대 인터넷사는 10월 29일 UCLA와 SRI 사이의 첫 호스트 간 연결을 UCLA의 손글씨 로그로 확인한다. 첫 로그인은 SRI 호스트를 다운시켰고 다음 시도는 성공했다고 설명한다. 박물관이 공개한 UCLA IMP 로그 이미지 박물관의 로그 설명 페이지에는 밤 10시 30분과 양쪽 끝이 적혀 있다. 이 페이지는 박물관의 11월 21일 항목에 실려 있지만, 이미지 설명은 10월 29일 로그를 가리킨다.

Kleinrock은 Kline의 기록이 이 사건에 남은 유일한 기록이었다고 회고했다. 한 줄은 “UCLA와 SRI 호스트 간 통신.”다. 두 호스트가 통신했다는 결과를 남겼다. G, 다운된 호스트, 소프트웨어 수정, 두 번째 시도는 적지 않았다. 이 부분은 나중에 녹음한 Kleinrock의 회고에서 나온다. 운용 기록은 결과를, 구술사는 그 결과까지의 과정을 보탠다.

공통 네트워크는 호스트 앞에서 역할을 넘겼다

1969년 4월 7일 Steve Crocker는 RFC 1, “Host Software”를 발표했다. 네트워크 소프트웨어는 IMP와 각 호스트에 나뉘어 있었고 BBN이 IMP 소프트웨어를 정했으며 호스트 그룹은 호스트 소프트웨어에 합의해야 한다고 적었다. 이 문서는 당시의 설계를 설명하지만 10월 고장의 상세 로그는 아니다.

공통 계층은 메시지를 호스트까지 보냈다. 명령 해석, 메모리 사용, 프로세스 유지, 응답 반환은 수신 호스트가 맡았다. 작업도 운영자도 나뉘어 있었다. G는 이 구분을 짧게 보여줬다. 두 글자는 전달됐고 세 번째 글자에서 원격 컴퓨터가 멈췄다.

전달 성공만으로 로그인 완료를 선언할 수 없었던 이유다. 문자가 도착했다는 네트워크 결과에 더해 SRI 호스트가 계속 실행되며 예상한 IN을 반환해야 했다. Kline과 Duvall은 양끝에서 결과를 확인했다. 중간 장비의 초록색 표시등은 애플리케이션의 답을 대신하지 못했다.

역사적 성취에는 수리 작업도 들어 있다

10월 29일 시험은 가동 중인 네트워크에서 이뤄졌다. 특정 입력이 호스트를 멈췄고, 팀은 소프트웨어를 고쳤으며, 재시도는 성공했다. 누가 명령을 보냈는지, 어디서 멈췄는지, 누가 고쳤는지가 보이는 운용 사건이다.

공유 인터페이스가 데이터 교환을 가능하게 했다. 그 교환을 쓸 수 있는 세션으로 만드는 일은 각 호스트에 남아 있었다. G는 SRI에 도착했지만 첫 시도는 세션을 끝내지 못했다. UCLA 로그가 연결 성공을 보존했고, Kleinrock의 기억은 그 앞에 있었던 고장과 수정을 이어 붙였다.

출처