거의 모든 인터넷의 역사 (14) – TCP/IP와 이더넷의 탄생

from Wikipedia.org
from Wikipedia.org

인터넷은 독립적인 다양한 형태의 네트워크들을 엮어내겠다는 아이디어에서 시작했다. 인터넷의 개념을 처음으로 도입한 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라고 불리는 6바이트 주소체계로 전환되고 있으니 기술과 미래를 예측한다는 것이 얼마나 어려운지를 상징적으로 보여준다.

(다음 회에 계속 …)

참고자료:
Brief History of the Internet
Ethernet 위키피디아 홈페이지

글 : 정지훈
출처 : http://health20.kr/2972

%d bloggers like this: