인터넷은 독립적인 다양한 형태의 네트워크들을 엮어내겠다는 아이디어에서 출발했다. 인터넷의 개념을 처음으로 도입한 아파 넷은 이를 위해서 기존의 전화망 이외에 위성을 이용한 통신망이나, 지상의 무선 네트워크 등도 포관해야 했다. 이 때문에 당시 대세를 이루던 전화망 스타일의 서킷을 기반으로 한 네트워크가 아니라, 데이터의 패킷을 중심으로 하는 네트워크 이론과 시스템을 만들 필요가 있었다.
여러 네트워크 기술과 구조를 포관해야 했기 때문에 오픈 아키텍처를 통해서 미래로의 확장성을 우선 확보해야 했다. 다시 말해 어느 한쪽이 송신하고 다른 한쪽이 수신하는 역할을 분담식의 시나리오보다는, 각 네트워크의 말단이 독립적인 역할을 수행하면서 각자의 소통이 가능한 P2P 시나리오를 지원하는 것이 중요했다. 오픈 아키텍처 네트워크에서는 각각의 독립적인 네트워크가 자신들만의 인터페이스를 통해 서비스를 사용자들에게 지공하고, 이들 간의 네트워크를 다시 구성할 수 있어야 한다. 그리고 바로 여기에서 인터넷 서비스를 제공하는 인터넷 서비스 제공자 개념이 나오게 된다.
혁명적인 오픈 아키텍처 네트워크 개념은 다르파의 밥 칸에 의해 1972년 처음으로 소개됐다. 이런 개념이 실질적으로 성공하기 위해서는 신뢰성 있는 네트워크 단말 사이의 통신 프로토콜을 만드는 것이 가장 중요했다. 그 이유는 데이터 중심의 통신을 하다 보면 자연스럽게 다양한 형태의 전파나 전기 간섭, 방해 등이 있을 수 있기 때문이다. 이동하는 환경을 가정할 경우에도 터널을 지나거나, 통신 인프라가 열악한 산간지역 등에서 통신이 끊어지는 것 등에 대해서도 대비해야 한다.
밥 칸이 처음 고안한 것은 다양한 통신 네트워크를 지원하기보다는 주로 지상에서의 무선통신 환경을 대상으로 하는 프로토콜이었다. NCP가 초기의 아파 넷 프로젝트에는 이 NCP가 활용됐다. 그런데 NCP에는 심각한 문제가 있었다. 무엇보다 NCP는 컴퓨터와 같이 고정된 기계 단말의 목적지를 제외하고는 다른 주소를 표현할 방법이 없었다. 구성된 아파 넷에 일단 등록된 기계 이외에는 네트워크에 참여할 수가 없어서 자율적인 확장을 생각했던 인터넷의 개념과 맞지 않았다. 에러 처리가 불완전해서 중간에 패킷이 소실되면 멈추는 일도 많았다. 문제 해결을 위해 밥 칸은 오픈 아키텍처 네트워크 환경에 잘 맞는 새로운 버전의 프로토콜을 만들기로 결심했다. 초기의 NCP는 IMP라는 기계를 위한 일종의 하드웨어 드라이버와 유사한 형태였는데, 오픈 아키텍처 네트워크를 위해서는 통신 프로토콜의 형태로 재정리할 필요가 있었다. 각각의 네트워크는 독립적으로 유지되면서도, 네트워크 간의 네트워크인 인터넷에 접속될 때 특별한 변화나 조작이 없어야 했다. 그리고 데이터 덩어리인 패킷이 목적지에 도달하지 않을 때 멈춰버리기보다는 시간이 지나서 원래 발신한 곳에서 재전송이 일어나야 했으며, 네트워커들 사이를 연결하는 보편적인 블랙박스 같은 것이 필요했다. 이렇게 네트워크 사이를 연결하는 장치가 오늘날 게이트웨이와 라우터라 불리는 것들이다.
사라지는 패킷을 처리하고, 재전송을 원활하게 하게 위해서는 데이터 패킷에 어디로 어떻게 가는 것이 좋은지에 대한 정보를 담고 있어야 했다. 게이트웨이가 패킷을 벗겨서 네트워크가 흘러가는 길의 정보와 인터페이스 처리, 데이터 패킷을 잘게 자르는 등의 정보를 해석할 수 있어야 하는데, 이런 정보를 IP 헤더에 담도록 하였다.
에러 등의 이유로 순서를 가리지 않고 들어오는 데이터 패킷을 나중에 재조합해야 했으며, 전송이 잘 안됐을 거라 여기고 다시 또 전송하는 등 데이터 중복 처리에 대비해야 하므로 체크섬을 계산하도록 했다. 그리고 호스트 사이의 흐름도 제어하고, 전체적인 시스템의 완결성을 위해서는 주소체계도 필요했다.
밥 칸은 1973년 빈튼 서프에게 상세한 디자인과 관련해 도움을 요청한다. 서프는 오리지널 NCP 디자인도 알고 있었고, 무엇보다 당시 운영되던 다양한 컴퓨터 운영체제에 어떻게 이런 내용을 인터페이스로 연결시킬 것인지에 대한 지식을 갖추고 있었기에 최고의 조력자가 될 수 있었다. 밥 칸의 뛰어난 아키텍처 개념에 빈튼 서프의 NCP 및 운영체제에 대한 지식이 합쳐지자 마침내 놀라운 성과가 나왔다. 인터넷 기기들의 소통 언어라 할 수 있는 TCP/IP 프로토콜이 완성된 것이다.
'인터넷의 역사' 카테고리의 다른 글
BBS와 PC통신 (0) | 2020.05.24 |
---|---|
로컬 네트워크 (0) | 2020.05.23 |
해커와 인터넷의 시작 (0) | 2020.05.21 |
오픈소스 운동의 시작 (0) | 2020.05.20 |
유닉스와 리눅스 (0) | 2020.05.18 |
댓글