IP 주소에 대해서는 한번 정리를 했다. 주소의 관리와 할당을 보다 쉽게 하기 위해 5가지 클래스로 나눈다고 했다.
Classful IP Addressing의 필요성
1980년대 초에 IP주소는 두개의 부분으로 나눴다. 앞의 8비트를 NID(네트워크 ID), 뒤의 24비트를 HID(호스트 ID)라고 한다. 따라서 총 256개의 네트워크가 있고, 한 네트워크당 16M개의 호스트가 있었다.
이 방식은 작은 조직이라도 하나의 네트워크를 구매하려면 16M개의 호스트를 구매해야 했다. 그래서 클래스별 IP 주소 지정 방식이 필요해졌다.
Classful IP Addressing
32비트 IP 주소는 5개의 하위 클래스로 나뉜다. 각 클래스에는 유효한 IP 주소 범위가 있다. 클래스 D와 E는 각각 멀티캐스트와 실험 목적으로 예약되어 있다. 첫 8비트로 IP주소의 클래스를 구분할 수 있다. A, B, C클래스는 NID와 HID의 길이가 다르므로, 각 클래스에서 가능한 총 네트워크와 호스트 수가 다르다.
각 네트워크의 첫 번째 IP는 네트워크 번호이고, 마지막 IP는 브로드캐스트용이다.
클래스 A
클래스 A에 속하는 IP 주소는 다수의 호스트가 있는 네트워크에 할당된다.
NID는 8비트 길이이고, HID는 24비트 길이이다.
클래스 A의 첫번째 8비트의 상위 비트는 항상 0으로 설정된다. 나머지 7비트는 NID를 결정한다. HID의 24비트는 네트워크의 모든 호스트를 결정한다. 클래스 A의 기본 서브넷 마스크는 255.xxx이다.
클래스 B
클래스 B에 속하는 IP 주소는 중규모 네트워크부터 대규모 네트워크까지의 네트워크에 할당된다.
NID는 16비트 길이이고, HID는 16비트 길이이다.
클래스 B의 첫번째 8비트의 상위 비트는 항상 10으로 설정된다. 나머지 14비트는 네트워크 ID를 결정한다. HID의 16비트는 네트워크의 모든 호스트를 결정한다. 클래스 B의 기본 서브넷 마스크는 255.255.xx이다.
클래스 C
클래스 C에 속하는 IP 주소는 소규모 네트워크에 할당된다.
NID는 24비트 길이이고, HID는 8비트 길이이다.
클래스 C의 첫번째 8비트의 상위 비트는 항상 110으로 설정된다. 나머지 21비트는 네트워크 ID를 결정한다. HID의 8비트는 네트워크의 모든 호스트를 결정한다. 클래스 C의 기본 서브넷 마스크는 255.255.255.x이다.
클래스 D
클래스 D에 속하는 IP 주소는 멀티캐스팅을 위해 예약되어 있다. 클래스 D의 첫번째 8비트의 상위 비트는 항상 1110으로 설정된다.
클래스 D는 서브넷 마스크가 없다.
클래스 E
클래스 E에 속하는 IP 주소는 실험 및 연구 목적으로 예약되어 있다.
특수 IP 주소
169.254.0.0 – 169.254.0.16 : 링크 로컬 주소
127.0.0.0 – 127.255.255.255 : 루프백 주소
0.0.0.0 – 0.0.0.8 : 현재 네트워크 내에서 통신하는 데 사용됩니다.
호스트 ID 할당 규칙
호스트 ID는 네트워크 내의 호스트를 식별하는 데 사용된다. 호스트 ID는 다음 규칙에 따라 할당된다.
- 모든 네트워크 내에서 호스트 ID는 해당 네트워크에서 유일해야한다.
- 모든 비트가 0으로 설정된 호스트 ID는 네트워크 ID를 나타내는데 사용되므로 할당할 수 없다.
- 모든 비트가 1로 설정된 호스트 ID는 해당 네트워크에 있는 모든 호스트에 패킷을 전송하는 브로드캐스트 주소로 예약되어 있기 때문에 할당할 수 없다.
네트워크 ID 할당 규칙
동일한 물리적 네트워크에 위치한 호스트는 네트워크 ID로 식별되며, 동일한 물리적 네트워크에 있는 모든 호스트는 동일한 네트워크 ID가 할당된다. 네트워크 ID는 다음 규칙에 따라 할당된다.
- 네트워크 ID는 127로 시작할 수 없다. 127은 클래스 A 주소에 속하고, 내부 루프백 기능을 위해 예약되어 있다.
- 네트워크 ID의 모든 비트가 1로 설정되면 IP 브로드캐스트 주소로 사용하도록 예약되어 있으므로 사용할 수 없다.
- 네트워크 ID의 모든 비트가 0으로 설정되면 로컬 네트워크의 특정 호스트를 나타내는 데 사용되며 라우팅되지 않으므로 사용할 수 없다.
클래스별 주소 지정의 문제점
클래스별 주소 지정의 문제점은 수백만 개의 클래스 A 주소가 낭비되고, 많은 수의 클래스 B 주소가 낭비되는 반면, 클래스 C에서 사용 가능한 주소가 너무 적어 요구를 충족할 수 없다는 것이다.
예를 들어 어떤 조직에 2000개의 호스트가 필요하다면, 그 조직에 클래스 B 네트워크를 제공할 것이다. 클래스 B가 제공할 수 있는 호스트는 65536개에 달하고, 클래스 C는 단 256개의 호스트밖에 제공할 수 없기 때문에, 약 4만 5천개의 호스트가 낭비된다.
이런 문제 때문에 클래스별 네트워킹은 1993년에 클래스 없는 도메인간 라우팅(Classless Inter-Domain Routing, CIDR)으로 대체되었다.
결론
클래스별 IP 주소 지정은 초기 네트워킹의 기본 방법이었다. 네트워크 크기에 따라 IP 주소를 구성했지만, 유연성과 효율성에 한계가 있었다. CIDR의 개발은 서브넷팅을 보다 정밀하게 제어하고 주소 할당을 최적화함으로써 이러한 문제를 해결했다.
다음에는 CIDR에 대해서도 알아보기로 하자.
'CS' 카테고리의 다른 글
라우팅 (0) | 2024.12.16 |
---|---|
Classless Inter Domain Routing(CIDR) (0) | 2024.12.15 |
IP주소 (0) | 2024.12.14 |
OSI 3계층: 네트워크 계층 (0) | 2024.12.13 |
OSI 2계층 : 데이터 링크 계층 (0) | 2024.12.12 |