요약

  • RFC 796은 여러 망의 호스트, 단말, 프로세스, 논리 주소를 32비트 인터넷 주소의 로컬 부분에 넣는 방법을 기록했다. 부족한 자리는 때로 0으로 채웠다.
  • PRNET 호스트의 16비트 번호는 이동해도 따라갈 수 있었고, SATNET의 한 물리 호스트에는 여러 논리 주소가 붙을 수 있었다. 반면 ARPANET의 논리 호스트 칸은 당시 IMP가 기능을 지원하지 않아 0으로 남았다.

주소표만 보면 일이 단순하다. 32비트 봉투에 망 번호를 적고 나머지는 현지 주소로 쓴다. 그런데 현지에 도착하면 무선 호스트가 자리를 옮겼고, 위성망의 컴퓨터에는 이름이 여럿이고, ARPANET 장비에는 사용하지 못하는 칸까지 있다. Jon Postel이 1981년 9월 쓴 RFC 796은 이 불청객들을 억지로 같은 사람으로 만들지 않고 한 봉투에 넣는 주소 대응표였다. 봉투 규격은 통일했지만 속지까지 똑같이 인쇄하지는 않았다.

Postel은 당시의 클래스별 주소 모양부터 그렸다. 클래스 A는 맨 앞의 구분 비트 다음에 망 번호 7비트와 로컬 주소 24비트를 놓았다. 클래스 B는 14비트와 16비트, 클래스 C는 21비트와 8비트로 나뉘었다. 앞쪽 번호가 어느 망인지를 정하면 뒤쪽 비트를 해석할 차례다. AUTODIN II, ARPANET, 분산 컴퓨팅망, MIT LCSNET, 패킷 무선망, 위성망은 이 차례에서 서로 다른 사전을 꺼냈다.

AUTODIN II의 가입자 번호는 호스트나 단말을 가리키는 16비트 값이었다. 위치와 별개로 번호를 부여할 수 있었고, 클래스 A의 24비트 로컬 부분에서는 앞쪽 한 옥텟을 0으로 채운 뒤 그 값을 넣었다. PRNET도 16비트 호스트 번호를 0 옥텟 뒤에 두었다. 무선 호스트가 이동할 수 있었기 때문에 위치와 독립된 번호가 실제로 중요했다. 문서에는 PRNET 망 번호가 여섯 개 나온다. 바깥 번호는 어떤 무선망인지 알려주고, 안쪽 번호는 호스트를 가리켰다. 호스트가 길을 달린다고 주소의 마지막 16비트가 지도를 따라 다시 쓰이는 것은 아니었다.

ARPANET에서는 96비트 리더 안의 24비트 주소가 호스트, 논리 호스트, IMP 필드로 갈라졌다. 이 24비트는 IP 주소의 로컬 부분에 그대로 들어갈 수 있었다. 다만 그림에 논리 호스트 칸이 있다고 해서 당시 IMP가 논리 호스트 주소 지정을 할 수 있었던 것은 아니다. Postel은 그 기능을 아직 지원하지 않아 리더의 해당 칸에 0을 쓴다고 적었다. 실험망 EDN도 비슷한 필드 구성과 같은 제약을 따랐다. 설계도에 빈 좌석을 그려 두는 일과 실제 손님을 태우는 일은 다르다.

COMSAT와 UCL의 분산 컴퓨팅망은 16비트를 호스트 식별자 HID 8비트와 프로세스 식별자 PID 8비트로 나누고 앞에 0 옥텟을 붙였다. MIT LCSNET에는 여러 32비트 로컬 형식이 있었으며, 흔히 쓰는 형식의 아래쪽 24비트, 곧 서브넷·예약·호스트 부분을 IP의 로컬 영역에 담았다. COMSAT/UCL 대목에는 원문 자체의 숫자 충돌도 있다. 문장은 두 망의 번호를 29와 30이라고 쓰지만 바로 옆 그림의 첫 옥텟에는 18이 찍혀 있다. 보기 좋은 그림을 골라 문장을 지워 버리면 충돌이 해결되는 것이 아니라 기록이 사라진다.

위성망에서는 물리 장비와 주소 사이의 간격이 더 선명하다. SATNET의 16비트 호스트 주소는 지상국 위치와 관계없이 부여할 수 있었고, 한 물리 호스트가 여러 논리 주소를 가질 수 있었다. IP 로컬 부분에는 0 옥텟 다음에 그 16비트 값을 넣었다. WBCNET에서도 한 장비에 여러 논리 주소가 허용됐지만, 그 주소는 HAP 번호와 로컬 주소로 갈라졌다. IP 그림에서는 0 옥텟이 두 조각 사이에 놓였다. 같은 0이라도 위치가 달라지면 읽는 규칙도 달라진다.

이 문서의 일곱 쪽은 공통 IP 주소가 해낸 일을 솔직하게 보여준다. 0은 길이를 맞추는 패딩일 수도 있고, 당시 IMP가 쓰지 못하던 기능의 자리일 수도 있었다. 끝의 비트는 단말, 프로세스, 이동식 무선 호스트, 한 장비의 여러 논리 이름 중 하나를 가리킬 수 있었다. 공통 주소가 힘을 발휘하려면 먼저 망 번호를 보고 그 망의 로컬 규칙을 읽어야 했다. 주소는 하나의 언어였지만, 마지막 문장은 각 망의 억양으로 끝났다.