인터넷은 독립적인 다양한 형태의 네트워크들을 엮어내겠다는 아이디어에서 시작했다. 인터넷의 개념을 처음으로 도입한 ARPANET은 이를 위해서 기존의 전화망 이외에 위성을 이용한 통신망이나, 지상의 무선 네트워크 등도 포괄해야 했기 때문에 당시 대세를 이루던 전화망 스타일의 서킷(circuit)기반의 네트워크가 아니라 데이터의 패킷을 중심으로 하는 네트워크 이론과 시스템을 만들 필요가 있었다.


또한, 여러 네트워크 기술들과 구조를 포괄해야 하기 때문에, 오픈 아키텍처(open architecture)를 통해서 미래로의 확장성도 확보하고, 어느 한쪽이 송신을 하고 다른 편이 수신을 하는 역할을 분담하는 시나리오보다는 각 네트워크의 말단이 독립적인 역할을 수행하면서 각자의 소통이 가능한 P2P(Peer-to-Peer, 각각의 말단이 대등하게 주고받는 형태) 시나리오를 지원해야 했다. 오픈 아키텍처 네트워크에서는 각각의 독립적인 네트워크가 자신들만의 인터페이스를 통해 서비스를 사용자들에게 제공하고, 이들 간의 네트워크를 다시 구성할 수 있게 되어야 하는데, 여기에서 인터넷 서비스를 제공하는 인터넷 서비스 제공자(ISP, Internet Service Provider) 개념이 나오게 된다. 



인터넷 통신의 핵심, TCP/IP 프로토콜의 탄생


이처럼 혁명적인 오픈 아키텍처 네트워크 개념은 DARPA의 밥 칸(Bob Kahn)에 의해 1972년 처음으로 소개되었는데, 이런 개념이 실질적으로 성공하기 위해서는 신뢰성 있는 네트워크 단말 사이의 통신 프로토콜(Protocol)을 만드는 것이 가장 중요하였다. 그 이유는 데이터 중심의 통신을 하다보면 자연스럽게 다양한 형태의 전파나 전기간섭, 방해 등이 있을 수 있기 때문이다. 이동하는 환경을 가정할 경우에도 터널을 지나거나, 통신 인프라가 열악한 산간지역 등에서 통신이 끊어지는 것 등에 대해서도 대비해야 한다. 


밥 칸이 처음 고안한 것은 다양한 통신 네트워크를 지원하기 보다는 주로 지상에서의 무선통신 환경을 대상으로 하는 프로토콜이었는데, 이것이 NCP(Network Control Protocol)이다. 초기의 ARPANET 프로젝트에는 NCP가 활용되었는데, 1969년 IMP(Interface Message Processor)라는 장치를 이용하여 4개의 노드인 UCLA, 산타바바라 캘리포니아 주립대학, SRI(Stanford Research Institute), 유타주립대학을 연결했던 역사적 사건에도 NCP가 호스트간 통신을 담당했다. 그런데, NCP에는 심각한 문제가 있었다. 무엇보다 NCP는 컴퓨터와 같은 기계 단말의 고정된 목적지를 제외한 주소를 표현할 방법이 없었다. 쉽게 이야기하면 일단 구성된 ARPANET에 등록된 기계 이외에는 네트워크에 참여할 수가 없기에 자율적인 확장을 생각했던 인터넷의 개념과는 맞지 않았다. 또한 에러 처리가 불완전해서 중간에 패킷이 소실되면 멈추는 일도 많았다. 


이 문제를 해결하기 위해서 밥 칸은 오픈 아키텍처 네트워크 환경에 잘 맞는 새로운 버전의 프로토콜을 만들기로 결심하였다. 초기의 NCP는 IMP라는 기계를 위한 일종의 하드웨어 드라이버와 유사한 형태였는데, 오픈 아키텍처 네트워크를 위해서는 통신 프로토콜의 형태로 재정의할 필요가 있었다. 각각의 네트워크는 독립적으로 유지되면서도, 네트워크 간의 네트워크인 인터넷에 접속될 때 특별한 변화나 조작이 없어야 했다. 데이터 덩어리인 패킷이 목적지에 도달하지 않는 일이 있으면, 멈추기 보다는 시간이 지나면 원래 발신한 곳에서 재전송이 일어나야 했으며, 네트워크들 사이를 연결하는 어떤 보편적인 블랙박스 같은 것이 필요했다. 이렇게 네트워크 사이를 연결하는 장치는 이후에 게이트웨이(gateway)와 라우터(router)라고 부르게 된다. 또 하나의 중요한 이슈는 주소와 관련된 것이다. 사라지는 패킷을 처리하고, 재전송을 원활하게 하기 위해서는 데이터 패킷에 어디로 어떻게 가는 것이 좋은지에 대한 정보를 담고 있어야 했다. 게이트웨이가 패킷을 벗겨서 네트워크가 흘러가는 길의 정보(루트, route)와 인터페이스 처리, 필요하다면 데이터 패킷을 잘게 자르는 등의 정보를 해석할 수 있어야 했는데, 이런 정보를 IP(Internet Protocol) 헤더에 담도록 하였다. 또한, 에러 등의 이유로 순서를 가리지 않고 들어오는 데이터 패킷을 나중에 재조합을 하고, 잘 전송되었는지 모르고 다시 전송한 데이터와 같은 중복처리도 해야하므로 체크섬을 계산하도록 했다. 또한, 호스트 사이의 흐름도 제어하고, 전체적인 시스템의 완결성을 위해서는 주소체계도 필요하였다. 이렇게 해야할 일이 많아지자, 밥 칸은 1973년 빈트 서프(Vint Cerf)에게 상세한 디자인과 관련한 도움을 요청한다. 


빈트 서프는 오리지널 NCP 디자인도 알고 있었고, 무엇보다 당시 운영되던 다양한 컴퓨터 운영체제에 어떻게 이런 내용을 인터페이스로 연결시킬 것인지에 대한 지식을 갖추고 있었기에 최고의 조력자가 될 수 있었다. 밥 칸의 뛰어난 아키텍처 개념에 빈트 서프의 NCP 및 운영체제에 대한 지식이 합쳐지자 결국 성과가 나오게 되었는데, 이것이 바로 오늘날의 인터넷 기기들의 소통언어라고 할 수 있는 TCP/IP(Transmission Control Protocl / Internet Protocol) 프로토콜이다. TCP/IP는 1973년 9월 서섹스(Sussex) 대학에서 열린 컨퍼런스에서 조직된 INWG(International Network Working Group)에서 처음으로 발표되었으며, 빈트 서프는 이 그룹의 의장으로 초대되어 TCP/IP로 전 세계를 엮어나가는 역사적인 활동을 시작한다.



이더넷의 등장


TCP/IP 프로토콜과는 별도로 제록스 파크 연구소에서는 이더넷(Eternet)이라는 새로운 네트워크 기술이 연구되고 있었다. 이더넷은 원래 제록스 파크에서 1973년 로버트 멧칼프(Robert Metcalfe)가 박사 학위를 위해 연구하던 ALOHAnet의 아이디어에서 메모를 하나 적은 것이 발단이 되었다. 이를 좀더 체계화를 해서 1975년 제록스 파크 연구소에서는 특허를 출원하고, 1976년에 로버트 멧칼프와 데이비드 복스(David Boggs)가 <이더넷: 분산 패킷교환 로컬 컴퓨터 네트워크(Ethernet: Distributed Packet-Switching For Local Computer Networks)>라는 책을 통해 정체를 공개했다. 멧칼프는 개인용 컴퓨터와 당시 급부상하던 가정과 사무실 등에서의 LAN (Local Area Network) 사용을 촉진하기 위해 1979년에 제록스를 떠나 3Com으로 자리를 옮긴 뒤에 DEC, 인텔과 제록스 등을 설득하여 1980년 이더넷 표준을 채택하도록 하였고, 실제로 이더넷이 널리 보급되면서 LAN의 시대가 열리고, 사무실에서 PC를 활발하게 쓰게 되었다. 이 과정에서 3Com은 세계적인 회사로 성장하였다. 무선의 시대로 넘어오기는 했지만, 아직도 이더넷 시장은 여전히 커지고 있어서 2010년에는 160억 달러를 넘었다.


어쨌든 이더넷이 개발되고 있을 당시의 제록스 파크에서는 이렇게 LAN이 금방 활성화될 것이라고는 상상하지 못했다고 한다. 이는 인터넷과 관련한 프로토콜을 디자인한 빈트 서프나 밥 칸도 별로 다르지 않아서, 가능한 주소의 수가 32비트 정도면 충분하다고 여겼다. 그래서, 현재와 같은 4바이트의 32비트 IP 주소체계가 세워지게 되는데, 이제는 주소가 완전히 포화가 되어 IPv6라고 불리는 128비트 주소체계로 전환되고 있으니 기술과 미래를 예측한다는 것이 얼마나 어려운지를 상징적으로 보여준다.



(다음 회에 계속 ...)



참고자료:


Brief History of the Internet

Ethernet 위키피디아 홈페이지


저작자 표시 비영리
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

WRITTEN BY
하이컨셉
미래는 하이컨셉, 하이터치의 세계라고 합니다. 너무 메마르고 딱딱한 이야기보다는 글로벌 시대에 어울리는 세계 각국의 이야기, 그리고 의학과 과학을 포함한 미래에 대한 이야기의 세계로 여러분을 초대합니다.

받은 트랙백이 없고 ,



DARPA에서는 버클리 대학에 유닉스 개발을 맡기고, 네트워크 망과 관련한 프로토콜로 TCP/IP를 유닉스를 포함시키고자 했다. TCP/IP(Transmission Control Protocol / Internet Protocol)는 빈톤 서프(Vinton Cerf)밥 칸(Bob Khan)이 고안한 것으로 오늘날의 인터넷의 근간을 이루는 프로토콜로 인터넷 상에 있는 컴퓨터끼리 데이터를 주고 받는 방법을 정의하고 있다. 

DARPA는 TCP/IP 프로토콜을 C언어로 구현하는 프로젝트를 버클리 대학이 아니라 보스턴에 있는 BBN(Bolt, Beranek and Newman)이라는 회사에 맡겼다. 그런데, BBN이 작성한 TCP/IP 코드를 버클리의 빌 조이가 마음에 들어하지 않았다. 천재개발자라고 불리는 그답게, 빌 조이는 BBN의 코드를 단순히 마음에 들지 않아했을 뿐 아니라 자신이 더욱 뛰어난 TCP/IP 코드를 작성한 뒤에 이것을 BSD 유닉스에 탑재하겠다고 DARPA에 주장을 하였다. DARPA에서 큰 돈을 투자해서 이 분야에서 최고라고 했던 기업에 맡겨서 작성한 코드는 제대로 작동하지 않았고, 버클리 대학의 20대 대학원생인 빌 조이가 작성한 코드가 더 뛰어난 성능을 보인 것이다. 어쨌든 이렇게 작성된 빌 조이의 TCP/IP 코드는 주로 이더넷으로 구성된 대학의 네트워크에서 최적의 성능을 보였고, 뛰어난 운영체제에 분산된 네트워크 환경에 최적화된 프로토콜을 멋지게 통합함으로써 오늘날의 인터넷이 기지개를 펼 수 있는 기반을 마련하였다.

인터넷에게 있어 TCP/IP는 가장 핵심적인 기능을 담당한 인프라와도 같은 것이다. 90년대 이후에 인터넷이 급격하게 팽창했을 때에도 BSD 유닉스의 TCP/IP는 이를 무리없이 처리하였고, 그리고 실제로 이것이 이후 AT&T와의 법정소송에서 BSD 유닉스가 승리하게 만드는 결정적인 원인이 된다.


AT&T와 버클리의 법정 싸움

벨 연구소에서 개발된 유닉스는 AT&T가 1984년 반독점법에 의해 여러 회사로 강제분할이 되면서 새로운 운명을 받아들게 된다. AT&T가 더 이상 독점기업이 아니었기 때문에, 미국 정부 입장에서는 AT&T가 유닉스를 상업화하는 것에 대해 더 이상 제동을 걸기 어려워진다. AT&T는 공공적인 측면을 감안하여 1년에 99달러라는 저렴한 가격에 이미 많은 대학과 기업에 라이센스를 주고 있었는데, 상업화의 길이 열리자 라이센스 비용을 25만 달러까지 올렸다. 그런데, 버클리의 BSD 유닉스가 널리 활용이 되기 시작했고, 버클리의 CSRG 출신들이 설립한 BSDi 라는 회사와 버클리 대학에서 저렴한 비용에 자신들의 유닉스를 판매되었기 때문에 사업에 난항을 겪게 되었다. 그러자, AT&T는 1992년 BSDi와 버클리 대학이 자신들의 코드를 훔쳤다며 미국 법정에 제소를 하였다.

그런데, 당시 AT&T가 상업화의 중요한 제품인 시스템 5(System 5)에는 많은 BSD 유닉스의 코드를 사용하고 있었는데, 그 중에서 TCP/IP 코드는 기능적으로 가장 중요한 역할을 담당한 것이기도 하였다. 버클리 대학은 자신들의 코드를 해당 소스의 저작권이 버클리 대학에 있다는 것만 명시하면 무엇이든 할 수 있도록 했는데, 정작 AT&T는 저작권 문구를 삭제하고 마치 자신들이 개발한 것처럼 시스템 5를 판매하고 있었던 것이다. 이 사실이 밝혀지자 버클리 대학의 변호사들이 AT&T를 맞고소하게 되었는데, 이로 인해 소송은 AT&T에 불리한 양상으로 흘러가게 되었다. 결국 벨 연구소에서 고유로 작성한 코드를 제거하는 조건으로 이 소송은 합의에 이르게 되는데, 버클리 대학의 뛰어난 해커들은 벨 연구소에서 만들어진 코드를 완전히 없애고 BSD 유닉스를 완전히 자유로운 운영체제로 만드는데 성공한다.


천재 개발자 빌 조이

어찌보면 빌 조이의 TCP/IP에 대한 치기어린 고집이 오픈소스 정신을 완고한 저작권 법정에서 살려낸 것이다. 빌 조이는 TCP/IP 뿐만 아니라, 화면의 특정위치에 커서를 배치할 수 있는 새로운 터미널 기기들에서 쉽게 사용할 수 있는 vi 편집기도 작성을 했는데, 아직도 이 편집기는 전 세계에서 널리 쓰이고 있으며 어떤 종류의 유닉스 계열의 운영체제에도 기본적으로 탑재되는 중요한 소프트웨어이다. 

개발자인 빌 조이에 대해서도 주변의 다양한 평가가 있다. 그가 작성한 코드는 지저분하고 다른 사람들이 읽기가 매우 힘든 것으로 악명 높아서, 유지보수하는데 엄청난 애를 먹었다고 한다. 그런데, 확실한 것은 뛰어난 개발자라도 일주일 이상 걸릴 일을 빌 조이는 자신 만의 방식으로 하루 정도에 해결을 했다고 한다. 그는 매우 방대한 코드를 순식간에 읽고, 이를 간단하게 정리하는 능력이 매우 뛰어나서 대규모 코드를 금방 고치는데 일가견이 있었다. 생활에서도 그런 그의 능력이 간혹 나타나기도 하였는데, 여러 가지 일을 전혀 간섭을 받지 않고 나누어서 한꺼번에 처리하는 멀티태스킹 능력이 대단했다고 전해진다.

이렇게 뛰어난 개발자였기에, 빌 조이는 리눅스의 정신을 그다지 좋아하지 않는다. 그는 오픈소스의 힘이 수많은 개발자들의 참여와 열정에서 나온다는 리눅스의 평등주의적인 윤리관을 믿지 않았다. 리눅스의 기저에는 모든 개발자들이 뛰어난 코드를 작성하지 못해도, 여럿이 함께 코드를 검토하고 개발을 한다면 결국 위대한 코드가 나타날 수 있다는 믿음이 깔려 있다. 그에 비해 빌 조이는 참여하는 대부분의 개발자들은 실력이 떨어지며, 그 중에서 버그를 찾아내고 이를 제대로 개선할 수 있는 사람은 몇몇에 불과하다고 주장한다. 오픈소스 개발방법론 자체를 부정하는 것은 아니지만, 몇몇 핵심개발자들의 역할이 그만큼 중요하다는 것이다. 그의 이런 시각에 대해서는    많은 논란의 여지가 있다. 


어쨌든 빌 조이와 버클리 등이 관여한 오픈소스 운동은 버클리 캠퍼스에서 시작된 자유언론운동(Free Speech Movement)의 또 하나의 변형으로 보아도 무방할 듯하다. 소스코드는 어찌보면 독특한 언어로 만들어진 시처럼 보이지만, 실제로 작동하는 기계의 언어이기도 하다. 이 언어는 컴퓨터로 하여금 어떤 동작을 하도록 만들고, 컴퓨터의 동작에 의한 상황변화에 따른 상태를 컴퓨터에게 들을 수 있는 대화의 도구이다. 그리고, 이런 컴퓨터들의 네트워크는 자유로운 연설과 이야기의 가장 중요한 무기가 되었다. 인터넷의 힘에 의해 해방의 기운을 느낀 버클리의 해커들은 “기계로서의 컴퓨터”의 인간성을 회복시키고 인간과 기계, 그리고 기계를 매개로 한 인간과 인간의 의사소통을 촉진시켰다. 이것이 해커들과 자유언론운동, 그리고 오늘날의 인터넷을 따로 떼어놓고 생각할 수 없는 이유이다.

(다음 편에 계속 ...)


저작자 표시 비영리
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

WRITTEN BY
하이컨셉
미래는 하이컨셉, 하이터치의 세계라고 합니다. 너무 메마르고 딱딱한 이야기보다는 글로벌 시대에 어울리는 세계 각국의 이야기, 그리고 의학과 과학을 포함한 미래에 대한 이야기의 세계로 여러분을 초대합니다.

받은 트랙백이 없고 ,