ARPANET의 진정한 위대함
이 글은 Two-Bit History의 "The Real Novelty of the ARPANET"을 원작자의 허락 하에 번역한 것입니다. 원문은 여기에서 읽을 수 있습니다.
메리 크리스마스
The Real Novelty of the ARPANET
만약 "ARPANET"이라는 단어로 이미지를 검색해 본다면 1960년대 후반에서 1970년대 초반 동안 정부 연구 네트워크가 어떻게 미국 전역으로 꾸준히 확장되었는지를 보여주는 다양한 지도를 보게 될 것이다. 난 ARPANET에 대해 처음 접하는 대부분의 사람들이 이런 지도 중 하나를 접하게 될 거라고 생각한다.
이런 지도들은 분명 흥미롭다. 모든 컴퓨터들의 위치를 단순한 지도 한 장에 모두 표현할 수 있을 정도로 네트워크에 연결된 컴퓨터들의 수가 적었던 시절이 있었다는 사실은 믿기 힘들 정도다. (굉장히 단순한, 1960년대의 오버헤드 프로젝터로 비추는 다이어그램을 이야기하는 것이다) 하지만 이 지도들의 문제는 대륙을 가로지르는 굵은 선들로 그려져 있어서 ARPANET의 가장 중요한 업적이 미국 전역에 있는 컴퓨터들을 연결한 것이라는 인식을 강화한다는 점이다.
오늘날 인터넷은 우리를 서로 연결해 주는 생명선과도 같다. 공기 중으로 퍼지는 바이러스로 인해 모두가 실내에 갇혀 있는 상황에서도 말이다. 그래서 만약 인터넷이 ARPANET에서 온 거라면, ARPANET 이전의 세상은 완전히 단절된 상태였을 거라고 상상하기 쉽다. 오늘날 만약 인터넷이 없어진다면 우리가 놓일 상황이 그러할 테니까 말이다. 그렇다고 한다면 ARPANET은 그 이전에는 불가능했던, 컴퓨터를 통한 사람들의 연결을 가능하게 했다는 점에서 중요한 사건이었을 것이다.
하지만 이런 관점은 역사를 제대로 이해하지 못한 것이다. 이런 관점은 또한 ARPANET이 진정으로 혁신적이었던 부분을 과소평가하는 것이다.
ARPANET의 등장
워싱턴 힐튼 호텔은 내셔널 몰에서 북동쪽으로 약 1.5마일 떨어진 작은 언덕 꼭대기 근처에 위치하고 있다. 이 호텔은 두 개의 현대적인 흰색 외관이 넓은 반원형으로 펼쳐져 마치 새의 날개를 연상시킨다. 1965년 이 호텔의 완공을 보도한 뉴욕 타임스는 이 건물이 "언덕 꼭대기에 둥지를 튼 갈매기처럼 보인다"고 묘사했다.1
이 호텔의 가장 유명한 특징은 지하에 숨겨져 있다. 차도가 둘러싸고 있는 둥근 공간 아래에는 인터내셔널 볼룸(International Ballroom)이라는 거대한 타원형 행사장이 있다. 이곳은 오랜 시간 동안 워싱턴 D.C.에서 가장 큰 기둥 없는 연회장으로 알려졌다. 1967년에는 이곳에서 도어스(역자: 1967년부터 1971년까지 전성기를 누린 LA 출신의 전설적인 사이키델릭 록 밴드)가 공연을 열었고, 1968년에는 지미 헨드릭스가 공연을 가졌다. 그리고 1972년에는 조금 더 차분한 행사가 이 연회장을 장악했다. 바로 첫 번째 국제 컴퓨팅 통신 회의(International Conference on Computing Communication, ICCC)가 이곳에서 열렸다. 바로 여기서 유망한 연구 프로젝트였던 ARPANET이 처음으로 대중 앞에 공개되었다.
1972년 ICCC는 10월 24일부터 26일까지 진행되었으며 약 800명이 참석했다.2 이 행사는 컴퓨터 네트워킹이라는 신생 분야의 모든 주요 연구자들을 한데 모았다. 인터넷의 선구자인 밥 칸(Bob Kahn)에 따르면, "만약 누군가가 워싱턴 힐튼 호텔에 폭탄을 떨어뜨렸다면, 당시 미국의 네트워킹 커뮤니티 대부분이 파괴되었을 거에요."3
그러나 참석자들 전부가 컴퓨터 과학자였던 건 아니다. 이 회의에 대한 홍보에서는 이 행사가 "사용자 중심"이며 "엔지니어와 통신 전문가뿐 아니라 법률가, 의료 전문가, 경제학자, 정부 관계자"를 위한 것이라고 이야기했다.4 "데이터 네트워크 설계 문제 I"과 그 후속 세션 "데이터 네트워크 설계 문제 II"같은 일부 세션은 매우 기술적이었다. 하지만 대부분의 세션은 홍보에서 예고한 대로 컴퓨터 네트워킹의 잠재적인 사회적/경제적 효과에 초점이 맞춰져 있었다. 오늘날에 보면 무시무시한 선견지명이 있었던 한 발표는 "컴퓨터 데이터 은행에서 개인의 권리를 안전하게 보호하기 위해" 법률 시스템이 사전에 어떤 조치를 취할 수 있을지에 대한 논의를 발전시키고자 했다.5
ARPANET의 시연 의도는 참석자들을 위한 일종의 부가적인 볼거리였다. 인터내셔널 볼룸이나 호텔 하층부의 다른 공간에서 열리는 세션들 사이에 참석자들은 조지타운 볼룸(더 큰 볼룸에서 복도를 따라 내려가면 나오는 더 작은 볼룸/회의실)에 들를 수 있었다.6 거기에는 다양한 제조사의 단말기의 터미널 40대가 설치되어 있었고 ARPANET에 접속할 수 있도록 준비되어 있었다.7 이 단말기들은 덤 터미널(dumb terminal)이었다. 덤 터미널이란 입력과 출력만 처리할 수 있고 자체적인 계산은 수행할 수 없는 기기였다. (사실 1972년 당시 이 터미널들은 하드카피 터미널이었을 가능성이 높다. - 역자: 텔레타이프 머신이라고도 하는데 오늘날의 컴퓨터처럼 화면에 터미널 메시지가 출력되는 게 아니라 출력물을 통해 터미널을 사용할 수 있는 기기였다) 이 터미널들은 모두 TIP(Terminal Interface Message Processor)이라고 불리는, 방 중앙에 위치한 단 위에 있는 컴퓨터에 연결되어 있었다. TIP는 덤 터미널을 ARPANET에 연결하기 위해 특별히 설계된 초기 라우터 유형이었다. ICCC 참석자들은 터미널들과 TIP을 이용해 ARPANET을 구성하던 29개의 호스트 사이트 중 일부에 로그인하고 접근하는 실습을 해볼 수 있었다.8
네트워크가 가진 능력을 선보이기 위해 전국의 호스트 지점에 있던 연구자들은 사용자들이 실습해 볼 수 있는 19개의 간단한 "시나리오"를 준비하기 위해 협력했다. 이 시나리오들은 소책자로 만들어져서, 배선과 터미널의 미로로 조심스럽게 접근하는 회의 참석자들에게 배포되었다.9 이 시나리오들은 새로운 기술이 작동할 뿐 아니라 유용하다는 것을 증명하기 위한 목적이 있었다. 당시 ARPANET은 "차가 없는 고속도로"와 같았고 이를 지원하던 국방부는 이러한 ARPANET의 공개 시연이 네트워크에 대한 더 큰 관심을 불러일으키기를 기대했다.10
이 시나리오들은 ARPANET을 통해 접근할 수 있는 다양한 소프트웨어를 선보였다. 여기에는 프로그래밍 언어 인터프리터가 포함되어 있었다. MIT의 Lisp 기반 언어 인터프리터와 UCLA에서 제공한 Speakeasy라는 수치 계산 환경을 위한 언어의 인터프리터 등이었다. 체스 프로그램과 콘웨이의 생명 게임(Conway’s Game of Life) 등의 게임 프로그램도 있었다. 아마 회의 참석자들에게 가장 인기있었던 것은 인공지능 대화 프로그램들이었다. 여기에는 MIT의
여기에는 프로그래밍 언어 인터프리터가 포함되어 있었는데, MIT의 Lisp 기반 언어와 UCLA에서 제공한 Speakeasy라는 수치 계산 환경이 있었다. 또한 게임 프로그램도 있었는데, 체스 프로그램과 Conway의 생명 게임 구현이 포함되었다. 그리고 아마도 회의 참석자들에게 가장 인기 있었던 것은 여러 인공지능 대화 프로그램이었다. 여기에는 MIT의 조셉 와이젠바움(Joseph Weizenbaum)이 개발한 유명한 ELIZA 대화 프로그램도 포함되어 있었다.
시나리오를 준비한 연구자들은 사용자가 터미널에서 입력해야 할 각 명령어를 신중히 정리했다. 이는 특정 ARPANET 호스트에 연결하기 위해 사용하는 명령어의 순서가 호스트에 따라 달라질 수 있었기 때문에 매우 중요한 작업이었다. 예를 들어 MIT 인공지능 연구소의 PDP-10 미니컴퓨터에서 호스팅된 AI 체스 프로그램을 실습해 보고자 하는 회의 참석자들은 다음과 같은 명령어를 입력하도록 안내받았다.
아래에 있는 [LF]
, [SP]
, [CR]
은 각각 줄 바꿈(Line Feed), 공백(Space), 캐리지 리턴(Carriage Return) 키를 의미한다. 각 명령어에 대한 설명은 //
뒤에 덧붙여져 있지만 //
가 원문에서 사용된 주석 형식은 아니다.
@r [LF] // Reset the TIP
@e [SP] r [LF] // TIP 대신 호스트에 문자를 출력(echo)하는 "Echo remote" 설정
@L [SP] 134 [LF] // 번호 134인 호스트에 연결
Connect to host number 134
:login [SP] iccXXX [CR] // MIT AI Lab의 시스템에 로그인, "XXX"는 사용자의 이니셜
:chess [CR] // 체스 프로그램 실행
회의 참석자들이 해당 명령어를 성공적으로 입력하면 당시로서는 가장 최첨단이었던 체스 소프트웨어를 직접 사용해볼 수 있었다. 체스 보드의 레이아웃은 다음과 같이 표시되었다:
BR BN BB BQ BK BB BN BR
BP BP BP BP ** BP BP BP
-- ** -- ** -- ** -- **
** -- ** -- BP -- ** --
-- ** -- ** WP ** -- **
** -- ** -- ** -- ** --
WP WP WP WP -- WP WP WP
WR WN WB WQ WK WB WN WR
반면 UCLA의 IBM System/360에 연결하고 Speakeasy 수치 계산 환경을 실행하려면 회의 참석자들은 다음과 같은 명령어를 입력해야 했다:
@r [LF] // Reset the TIP
@t [SP] o [SP] L [LF] // "Transmit on line feed" setting
@i [SP] L [LF] // "Insert line feed" setting, i.e. send line feed with each carriage return
@L [SP] 65 [LF] // Connect to host number 65
tso // Connect to IBM Time-Sharing Option system
logon [SP] icX [CR] // Log in with username, where "X" should be a freely chosen digit
iccc [CR] // This is the password (so secure!)
speakez [CR] // Start Speakeasy
이런 명령어들을 성공적으로 실행하면 참석자들은 그들이 터미널에 행렬을 입력하는 속도만큼이나 빠르게 행렬을 곱하거나 전치(transpose)하는 등의 연산을 수행할 수 있었다.
:+! a=m*transpose(m);a [CR]
:+! eigenvals(a) [CR]
많은 참석자들은 이 시연에 깊은 인상을 받았다. 하지만 우리가 오늘날의 시점에서 예상할 법한 이유 때문은 아니었다. 우리가 여기서 이해해야 할 중요한 맥락은 1972년에도 원격으로 컴퓨터를 사용하는 것이 새로운 일이 아니었다는 것이다. 다른 도시에 있는 컴퓨터에 접속하는 것도 마찬가지로 1972년에 그다지 새로운 일이 아니었다. 텔레타이프 장치가 멀리 떨어져 있는 컴퓨터와 통신하는 데 사용된 지 10년도 넘은 시점이었다. ICCC가 열리기 만으로 5년쯤 전에 시애틀의 고등학교에 다니던 빌 게이츠는 도시 반대편에 있는 제너럴 일렉트릭 컴퓨터에서 그의 첫 번째 BASIC 프로그램을 실행하고 있었다. 호스트 컴퓨터에 로그인해 몇 가지 명령을 실행하거나 텍스트 기반 게임을 즐기는 일은 그 당시에 이미 일상적이었다. 여기서 선보인 소프트웨어는 꽤 흥미로웠지만, 지금까지 두 가지 시나리오에 대해 언급한 내용들은 ARPANET 없이도 당시에 충분히 가능했던 일들이었다.
물론 내부 원리에서는 새로운 부분들이 있었다. ICCC에 참석한 법률가, 정책 입안자, 경제학자들은 아마 기발한 체스 프로그램과 챗봇에 감탄했을 것이다. 하지만 네트워킹 전문가들에게 더 관심을 끌었던 것은 ARPANET 프로젝트가 무엇을 이루어냈는지에 대해 더 잘 보여준 두 가지 다른 시나리오였다.
그 첫번째 시나리오는 MIT의 ITS 운영체제에서 실행되는 NETWRK
라는 프로그램에 대한 거였다. NETWRK
명령어는 ARPANET의 운영 상태에 관한 다양한 부분을 보고할 수 있는 여러 하위 명령어의 진입점이었다. SURVEY
하위 명령어는 네트워크에서 작동 중이며 사용 가능한 호스트를 보고했다. 모든 호스트는 단일 목록에 담겼다. 그리고 SUMMARY.OF.SURVEY
하위 명령어는 이전에 실행된 SURVEY
결과를 집계하여 각 호스트의 "가동률(up percentage)"과 각 호스트가 메시지에 응답하는 데 걸린 평균 시간을 보고했다. SUMMARY.OF.SURVEY
하위 명령어의 출력 결과는 다음과 같은 표로 표시되었다.
--HOST-- -#- -%-UP- -RESP-
UCLA-NMC 001 097% 00.80
SRI-ARC 002 068% 01.23
UCSB-75 003 059% 00.63
...
호스트 번호 필드는 보시다시피 최대 세 자리 숫자만 입력할 수 있도록 되어 있었다(하!). 다른 NETWRK
하위 명령어를 사용하면 더 긴 기간에 걸친 조사 결과를 요약한 걸 확인하거나 특정 호스트의 조사 결과 로그를 자세히 살펴볼 수도 있었다.
두 번째 시나리오는 스탠포드에서 개발중이던 SRI-ARC 온라인 시스템이라는 소프트웨어였다. 이건 다양한 기능을 갖춘 정교한 시스템이었는데(더글러스 엥겔바트(Douglas Engelbart)가 "모든 데모의 어머니"라고 불리는 시연에서 보여주었던 바로 그 소프트웨어 시스템이었다) 이 시스템의 여러 기능 중 하나는 UC 산타바바라의 호스트에서 실행되는 기본적인 파일 호스팅 서비스를 활용하는 것이었다. 회의 참석자들은 워싱턴 힐튼의 터미널에서 copy
명령어를 실행하고 컴퓨터가 던지는 몇 가지 질문에 답하면 스탠포트에서 생성된 파일을 UCSB 호스트로 복사할 수 있었다.
다음 코드의 [ESC]
, [SP]
, 그리고 [CR]
은 각각 이스케이프, 공백, 그리고 캐리지 리턴(carriage return) 키를 의미한다. 괄호 안의 단어는 컴퓨터가 출력하는 프롬프트다. 세 번째 줄에서는 이스케이프 키를 사용해 파일 이름을 자동 완성한다. 여기서 복사되는 파일은 <system>sample.txt;1
이라고 불렸다. 끝에 붙은 숫자 1은 버전 번호를 나타내고 <system>
은 디렉터리를 나타낸다. 이 파일 이름 규칙은 TENEX 운영 체제에서 사용되던 것이다.11
@copy
(TO/FROM UCSB) to
(FILE) <system>sample [ESC] .TXT;1 [CR]
(CREATE/REPLACE) create
이 두 가지 시나리오는 처음에 보았던 두 가지 시나리오와 별로 달라 보이지 않을 수 있다. 하지만 이건 사실 매우 놀라운 것이었다. ARPANET에서는 인간이 컴퓨터와 소통할 수 있을 뿐만 아니라 컴퓨터들끼리도 소통할 수 있다는 것을 분명히 보여줬기 때문이다. SURVEY
명령어에 의해 MIT에서 수집된 결과는 사람이 매번 각 기계에 로그인해서 가동 상태를 확인하여 만들어진 게 아니다. 이 결과는 네트워크 상에 있는 다른 기계들과 어떻게 소통해야 하는지 알고 있는 프로그램이 수집한 것이었다. 마찬가지로, 스탠포드에서 UCSB로의 파일 전송도 스탠포드나 UCSB 터미널에서 사람이 어떤 조작을 가한 것이 아니었다. 워싱턴 D.C.에 있는 터미널 사용자가 소프트웨어를 실행하기만 하면 두 컴퓨터가 서로 소통하여 파일을 전송할 수 있었다. 더 놀라운 점은 인터내셔널 볼룸에 있었던 40개의 단말기 중 어떤 것을 사용하든 상관없이 거의 똑같은 명령어 입력을 통해 MIT의 네트워크 모니터링 통계 확인이나 UCSB에 파일을 저장하는 동작을 할 수 있었다는 점이다.
이것이 ARPANET에서 완전히 새로웠던 부분이다. ICCC의 시연은 단순히 인간이 원격으로 컴퓨터와 통신하는 것이나 원격 입출력(remote I/O)을 시연한 게 아니었다. 이건 소프트웨어가 원격으로 다른 소프트웨어와 소통할 수 있다는 것에 대한 시연이었고, 이것은 그 전까지 아무도 본 적이 없는 것이었다.
ARPANET 프로젝트에서 중요했던 부분이 호스트의 지도에 그려져 있던 전국에 걸친 컴퓨터들의 물리적인 연결(어차피 그건 임대된 전화선들이었고 그런 연결은 이미 전부터 존재하고 있었다)이 아니라 소프트웨어 간의 소통이라는 것을 이해하기 위해서는 1966년 ARPANET 프로젝트가 시작되기 전의 상황을 생각해 보아야 한다. 당시 펜타곤(역자: 미국 국방부)의 ARPA 사무실에는 터미널 룸이라는 게 있었다. 거기에는 3개의 터미널이 있었는데 이들은 각각 다른 장소에 있는 다른 제조사의 컴퓨터와 연결되어 있었다. 하나는 MIT에, 하나는 UC 버클리에, 그리고 하나는 산타모니카에 있었다.12 워싱턴 D.C.에서도 이 세 컴퓨터를 사용할 수 있다는 점은 ARPA 직원들에게 편리한 일이었다. 반면 불편했던 점은 3개의 각각 다른 제조사 컴퓨터를 구매하고 유지보수하고 3개의 다른 로그인 절차를 기억해야 했으며 3가지 다른 컴퓨터 환경에 익숙해져야 한다는 것이었다. 이 터미널들은 나란히 놓여 있었지만 사실상 배선으로 연결되어 있는 호스트 컴퓨터의 확장이었고, 그들은 다른 제조사의 컴퓨터들이었기에 서로 다르게 작동했다. 원격으로 컴퓨터와 통신하는 건 ARPANET 이전에도 가능했다. 문제는 컴퓨터 시스템들 간에 호환되지 않는 부분들(heterogeneity)이 통신의 복잡성을 제한했다는 점이었다.
바로 지금, 모두 모여서
여기서 강조하고 싶은 것은 다음 2가지 설명 사이에는 중요한 차이가 있다는 것이다.
- 설명 A: ARPANET은 최초로 컴퓨터를 통해 서로 다른 지역에 있는 사람들을 연결했다.
- 설명 B: ARPANET은 최초로 컴퓨터 시스템 간의 연결을 가능하게 했다.
이건 사소한 부분을 따지는 것처럼 보일 수도 있지만, A는 중요한 역사를 생략하는 설명이다.
먼저, 역사학자 조이 리시 랜킨(Joy Lisi Rankin)은 ARPANET이 등장하기 이전부터 사람들이 사이버 공간에서 소통하고 있었다는 사실을 밝혀냈다. 랜킨의 저서 A People’s History of Computing in the United States를 보면 시분할 네트워크(time-sharing network) 상에 존재했던 여러 디지털 커뮤니티를 설명한다. 이들은 ARPANET 이전에 혹은 ARPANET과 독립적으로 존재했다. 이런 시분할 네트워크는 엄밀히 말하면 컴퓨터 네트워크는 아니었다. 어딘가의 지하실에 있는 하나의 메인프레임 컴퓨터가 계산을 처리하고, 여러 덤 터미널을 통해 그 계산 능력을 제공하는 구조였기 때문이다. 이는 미국 전역으로 촉수를 뻗은 뚱뚱한 지하 생물 같은 거였다. 그러나 이런 시스템들은 오늘날 "네트워크"라는 단어가 함축하고 있는 대부분의 사회적 행동들을 가능하게 해줬다.
예를 들어 다트머스 시분할 시스템을 북동부 지역의 대학교와 고등학교들로 확장한 키위트 네트워크(Kiewit Network)에서는 고등학생들이 협업하여 "가십 파일(gossip file)"을 유지했다. 이를 통해 학생들은 협력하여 다른 학교에서 일어난 흥미로운 사건들을 기록하고 유지하며 "코네티컷에서 메인까지 이어진 사회적 연결"을 만들었다.13 한편, 마운트 홀리오크 대학(Mount Holyoke College)의 여성들은 네트워크를 통해 다트머스 대학의 남성들과 소통했으며, 어쩌면 데이트를 주선하거나 남자친구와 연락을 유지했을지도 모른다.14 이 모든 일이 1960년대에 이미 벌어지고 있었다. 랜킨은 시분할 네트워크를 통한 이런 교류를 무시한다면 지난 50년간 미국 디지털 문화의 발전을 이해하는 데 필요한 것들을 놓치게 될 수 있다고 주장한다. 이는 "실리콘밸리 신화(Silicon Valley mythology)"를 강화하여, 모든 것을 소수 창업자들의 개인적 천재성에만 돌리는 서사를 만들게 된다.
ARPANET으로 돌아오자. 컴퓨터를 물리적으로 연결하는 것이 아니라 컴퓨터 시스템들을 연결하는 것이 핵심이었다는 걸 이해하면 ARPANET의 혁신적인 이야기를 할 때 강조할 내용이 달라질 수 있다. ARPANET은 최초의 패킷 교환 네트워크였으며, 이를 실현하기 위해 엄청난 공학적 노력이 투입되었다. 하지만 ARPANET이 단순히 최초의 패킷 교환 네트워크였기 때문에 혁신적이었다고만 말하고 그치는 건 큰 실수라고 생각한다. ARPANET은 전국의 컴퓨터 과학자들이 더 쉽게 협력할 수 있도록 하는 의도였다. ARPANET은 매사추세츠와 캘리포니아 간에 데이터를 효율적으로 주고받는 방법에 대한 것이기도 했지만, 서로 다른 운영체제와 다양한 언어로 작성된 프로그램들이 서로 어떻게 상호작용할 수 있는지에 대한 것이기도 했다. 즉 ARPANET은 최초의 패킷 교환 네트워크였을 뿐 아니라 놀라운 표준화 성공 사례이기도 했다. 이 점은 내게 특히 흥미로웠다. 내가 실패한 표준들에 대하여 여러 번 글을 썼기 때문이다.(글1 글2 글3)
ARPANET을 위한 프로토콜의 개발은 그 당시에도 부수적인 작업으로 간주되었다. 따라서 자연스럽게 대부분 대학원생들로 이루어진 그룹에 맡겨졌다. 이 그룹은 1968년 8월에 UC 산타바바라에서 첫 미팅을 가졌으며15 이후 네트워크 작업 그룹(Network Working Group)으로 알려지게 되었다. 이 첫 회의에는 12명이 참석했으며 대부분은 이후 장비가 준비되었을 때 ARPANET의 첫 호스트 지점이 될 4개의 대학을 대표하는 사람들이었다.16 당시 UCLA 대학원생이었던 스티브 크로커(Steve Crocker)는 이 회의에 참석했었다. 그는 나와의 Zoom 통화에서 그 첫 회의가 모두 젊은 남성들로 구성되어 있었으며 회의를 주재한 엘머 샤피로(Elmer Shapiro)가 38살 정도로 아마도 가장 나이가 많은 사람이었을 것이라고 말했다. ARPA는 컴퓨터들이 연결된 후 컴퓨터들이 서로 어떻게 소통할지를 정할 책임자를 따로 두지는 않았지만, 그것에 대한 어느 정도의 조정이 필요하다는 것은 분명했다. 그 그룹은 계속 회의를 가졌고 크로커는 더 많은 경험과 권위를 가진 어떤 "진짜 어른"이 어딘가에서 나타나서 그룹을 이끌어 줄 거라고 기대했지만 그런 일은 결코 일어나지 않았다. 네트워크 작업 그룹은 ARPA의 암묵적인 승인을 받았고(그들의 회의를 위해서는 많은 장거리 이동이 필요했는데 이 비용은 ARPA 자금으로 지원되었다) 결국 그들이 전담하게 되었다.17
네트워크 작업 그룹은 막대한 도전에 직면했다. 누구도 이전에 컴퓨터 시스템들을 범용적으로 연결하려는 시도를 한 적이 없었다. 이는 1960년대 후반의 컴퓨팅 환경에서 일반적으로 받아들여지던 모든 가정에 반하는 일이었다.
그 당시의 전형적인 메인프레임들은 마치 자기가 세상에서 유일한 컴퓨터인 양 굴었다. 두 개의 서로 다른 컴퓨터 사이에서 몇 비트의 데이터를 왔다갔다 이동시키는 데 필요한 최소한의 통신조차도 명확하거나 쉬운 방식이 없었다. 컴퓨터들을 물리적으로 연결할 수는 있었다. 하지만 일단 연결된 후에는 그들끼리 어떻게 서로 얘기하게 만들 것인가? 그 시기의 컴퓨터는 자기에게 직접 붙어 있는 장치들하고만 상호작용을 했다. 마치 군주가 종들과 얘기하는 식이었다. 메인 컴퓨터에 연결된 모든 주변 장치들은 각각 특정 작업을 담당했는데 언제든 주인님이 내리는 명령을 수행할 준비가 되어 있었다. 컴퓨터는 이런 종류의 상호작용에 맞추어 설계되었다. 컴퓨터는 카드리더기, 단말기, 테이프 단위장치 등에게 명령어를 전송했고 모든 대화의 시작은 컴퓨터에서 시작되었다. 만약 다른 장치가 컴퓨터의 어깨를 툭 건드리면서 "안녕, 나도 컴퓨터야"라고 말하는 신호를 보낸다면 그 컴퓨터는 깜짝 놀라 쓰러질 것이다.18
그 결과 네트워크 작업 그룹의 초기 진척 속도는 느렸다.19 이 그룹은 첫 번째 회의를 연 지 거의 2년이 지난 1970년 6월이 되어서야 비로소 어떤 프로토콜에 대한 "공식" 사양을 확정할 수 있었다.20
하지만 1972년 ICCC에서 ARPANET을 시연하는 시점에는 모든 핵심 프로토콜이 준비되어 있었다. 체스 시나리오와 같은 사례는 이 프로토콜들 중 다수를 사용했다. 사용자가 @echo remote
의 단축형인 @e r
명령어를 실행하면 새로운 TELNET 가상 텔레타이프 프로토콜의 기능을 이용해서 TIP가 원격 호스트에게 사용자 입력을 echo 하도록 지시하하는 기능을 했다. 이후 사용자가 @L 134
(@login 134
의 단축) 명령어를 실행하면 TIP가 134번 호스트와의 초기 연결 프로토콜을 호출하고 이에 따라 원격 호스트가 연결에 필요한 모든 리소스를 할당하고 사용자를 TELNET 세션으로 연결시켰다. (이 프로토콜은 회의 직전에서야 준비되었기 때문에, 앞서 설명한 파일 전송 시나리오는 아마도 파일 전송 프로토콜(File Transfer Protocol)을 사용했을 가능성이 높다.21) 이 모든 프로토콜은 "레벨 3" 프로토콜로 알려졌고 그 밑에 레벨 2에는 호스트 간 프로토콜(host-to-host protocol, 호스트 간에 메시지를 주고받을 때 사용하는 기본 형식을 정의)이 있었다. 그리고 레벨 1에는 호스트와 IMP 간의 프로토콜(호스트가 자신이 연결된 라우팅 장비와 통신하는 방법을 정의)이 있었다. 놀랍게도, 이 모든 프로토콜이 문제없이 작동했다.
내 생각에 네트워크 작업 그룹이 모든 걸 시간에 맞춰 준비하고 더 나아가 이 작업에서 뛰어난 성과를 낼 수 있었던 이유는 표준화를 위해 개방적이고 격식에 얽매이지 않는 접근 방식을 도입했기 때문이다. 이런 방식을 대표하는 게 그 유명한 Request For Comments(RFC) 문서이다. 이 문서들은 원래 네트워크 작업 그룹 멤버들 사이에서 회의 간에 연락을 유지하고 아이디어에 대한 피드백을 요청하기 위한 수단이었으며 재래식 우편으로 공유되었다. 이 "Request for Comments"라는 형식은 첫 번째 RFC를 작성했으며 초기에 RFC 메일링 리스트를 감독했던 스티브 크로커가 제안했다. 그룹이 추구하던 개방적이고 협력적인 생태계를 강조하기 위해서였다. 이런 형식과 문서의 가용성 덕분에 프로토콜 설계 과정은 다양한 아이디어와 기존 아이디어의 변형이 융합되는 용광로와 같아졌고, 누구도 체면을 잃지 않으면서 최고의 아이디어가 등장할 수 있는 배경이 되었다. RFC 프로세스는 엄청난 성공을 거뒀고 반세기가 지난 오늘날에도 인터넷 표준을 명시하는 데 사용되고 있다.
나는 우리가 ARPANET의 영향에 대해 이야기할 때 네트워킹 작업 그룹의 바로 이러한 유산들을 강조해야 한다고 생각한다. 오늘날 인터넷의 가장 마법 같은 점 중 하나는 지구 반대편에 있는 삶들과도 연결될 수 있다는 점이다. 하지만 이는 19세기부터 존재해온 기술이라고 해도 과언이 아니다. 물리적 거리는 ARPANET 이전에 이미 전신(telegraph)으로 정복되었다. ARPANET은 물리적 거리가 아니라 각 호스트 지점에서 사용되던 운영체제, 문자 코드, 프로그래밍 언어, 조직 정책 사이의 논리적 거리를 정복했다. 최초의 패킷 교환 네트워크를 구현한 건 물론 중요한 공학적 업적이었다. 하지만 서로 협력하도록 설계되지 않은 컴퓨터들이 잘 연결될 수 있는 표준을 합의하는 문제는 ARPANET 구축에 관련된 두 가지 큰 문제 중 더 어려운 과제였다. 그리고 이 문제를 해결한 것이야말로 ARPANET 이야기의 가장 놀라운 부분이다.
1981년 ARPA는 ARPANET의 첫 10년 역사를 되돌아보는 "완료 보고서(Completion Report)"를 발간했다. "성공적이었던 시도의 기술적인 측면과 원래 의도했던 대로 실현되지 못한 시도의 측면"이라는 장황한 제목의 섹션에서 저자들은 이렇게 썼다.
ARPANET의 개발 과정에서 가장 어려운 작업은 다양한 제조사와, 같은 제조사에서 나왔음에도 다양한 운영체제를 가진 여러 독립적인 호스트 컴퓨터 시스템이 그들의 서로 다른 특성에도 불구하고 서로 통신할 수 있도록 만드는 시도였다. 이 시도는 성공적으로 입증되었다.22
이건 미국 연방 정부라는 권위 있는 출처에서 나온 문장이다.
만약 이 글이 재미있었다면, 비슷한 글이 4주마다 올라옵니다! 트위터에서 @TwoBitHistory를 팔로우하거나, RSS 피드를 구독하여 새로운 글이 올라올 때 놓치지 않도록 하세요.
Footnotes
-
"Hilton Hotel Opens in Capital Today." The New York Times, 20 March 1965, https://www.nytimes.com/1965/03/20/archives/hilton-hotel-opens-in-capital-today.html?searchResultPosition=1. Accessed 7 Feb. 2021 ↩
-
James Pelkey. Entrepreneurial Capitalism and Innovation: A History of Computer Communications 1968-1988, Chapter 4, Section 12, 2007, http://www.historyofcomputercommunications.info/Book/4/4.12-ICCC%20Demonstration71-72.html. Accessed 7 Feb. 2021 ↩
-
Katie Hafner and Matthew Lyon. Where Wizards Stay Up Late: The Origins of the Internet. New York, Simon & Schuster, 1996, p. 178(번역본: 케이티 해프너, 매튜 라이언 지음, 이재범 옮김, 『아무도 알려주지 않은 인터넷의 기원: 누가 인터넷을 만들었는가』, 지식함지, 2016) ↩
-
"International Conference on Computer Communication.", Computer, vol. 5, no. 4, 1972, p. c2, https://www.computer.org/csdl/magazine/co/1972/04/01641562/13rRUxNmPIA. Accessed 7 Feb. 2021 ↩
-
"Program for the International Conference on Computer Communication." The Papers of Clay T. Whitehead, Box 42, https://d3so5znv45ku4h.cloudfront.net/Box+042/013_Speech-International+Conference+on+Computer+Communications,+Washington,+DC,+October+24,+1972.pdf. Accessed 7 Feb. 2021 ↩
-
사실 ARPANET 시연에 사용된 방이 정확히 어떤 방이었는지 명확하지는 않다. 많은 출처에서 "볼룸"에 대해서 언급하는데 워싱턴 힐튼에서는 "조지타운"이라는 이름의 방을 회의실로 간주하는 듯 하다. 따라서 시연은 아마 인터내셔널 볼룸에서 이루어졌을 것이다. 하지만 RFC 372에서는 시연 장소로 "조지타운 볼룸"이 예약되었다고 암시하고 있다. 워싱턴 힐튼의 층별 평면도는 여기에서 확인할 수 있다. ↩
-
Hafner, p. 179. ↩
-
ibid., p. 178 ↩
-
Bob Metcalfe. "Scenarios for Using the ARPANET." Collections-Computer History Museum, https://www.computerhistory.org/collections/catalog/102784024. Accessed 7 Feb. 2021. ↩
-
Hafner, p. 176 ↩
-
Robert H. Thomas. “Planning for ACCAT Remote Site Operations.” BBN Report No. 3677, October 1977, https://apps.dtic.mil/sti/pdfs/ADA046366.pdf. Accessed 7 Feb. 2021 ↩
-
Hafner, p. 12 ↩
-
Joy Lisi Rankin. A People’s History of Computing in the United States. Cambridge, MA, Harvard University Press, 2018, p. 84. ↩
-
Rankin, p. 93 ↩
-
Steve Crocker. Personal interview. 17 Dec. 2020. ↩
-
크로커가 내게 이 회의의 회의록을 보내주었다. 회의록에는 회의에 참석한 모두의 목록이 있었다. ↩
-
스티브 크로커의 인터뷰 ↩
-
Hafner, p. 146, 번역본의 194p에서 재인용 ↩
-
"Completion Report / A History of the ARPANET: The First Decade." BBN Report No. 4799, April 1981, https://walden-family.com/bbn/arpanet-completion-report.pdf, p. II-13 ↩
-
RFC 54, "Official Protocol Proffering"의 이야기이다. ↩
-
Hafner, p. 175 ↩
-
"Completion Report / A History of the ARPANET: The First Decade", p. II-29. ↩