들어가며

인터넷 상의 Host들은 서로 정보를 주고 받기 위해 네트워크를 타고 통신을 한다. 그런데 이렇게 통신을 할 때 각 Host들이 가지고 있는 고유한 물리 주소인 MAC 주소를 이용하여 다른 네트워크에 속한 목적지 Host와 통신을 한다면 MAC 주소는 비계층적 구조의 고유번호이기 때문에 목적지 Host를 탐색하기 어렵고, 라우팅 테이블 또한 매우 커져 라우터가 다운될 수도 있다.
이로 인해 필요한 것이 IP 주소이다. IP 주소는 네트워크 부분과 해당 네트워크에 속한 Host 부분(계층적 구조의 주소)으로 이루어져 있기 때문에 라우팅 테이블을 네트워크 별로 기록할 수 있게 되고, 이로 인해 목적지 Host를 탐색하는데 훨씬 용이하다.
이제 이러한 IP 주소 체계에 대해서 조금 더 자세히 알아보도록 하자.
초기의 Class 기반 IP 주소 체계
IPv4의 경우의 IP 주소는 32bit로, 네트워크의 주소인 prefix와 해당 네트워크에 속한 Host의 주소인 suffix로 구성되어 있다.
그리고 초기의 IP 주소 체계는 아래와 같이 5개의 Class를 기반으로 나누어져 있었다.

IP 주소의 Class 중 D와 E는 각각 멀티캐스트용으로 사용되는 주소, 연구용으로 사용되는 주소이므로 여기서는 A, B, C를 중심으로 알아보도록 하자.
위와 같이 IP 주소를 Class로 나눈 것은 네트워크의 크기에 따라 구분짓기 위해서이다. 즉, 하나의 네트워크가 Host의 수를 몇 개까지 가질 수 있는가에 따라서 클래스가 나뉘는 것이다.
위 그림을 통해 알 수 있듯이, prefix 부분이 작으면(클래스 A) 해당 네트워크에 연결된 Host의 수가 많아지는 것이므로 큰 네트워크에 적합하고, prefix 부분이 크면(클래스 C) 해당 네트워크에 연결된 Host의 수가 적어지는 것이므로 작은 네트워크에 적합하다. 초기에는 이처럼 Class를 기반으로 네트워크의 크기에 따라서 IP 주소를 할당해주었다.
그런데 인터넷이 점점 커지면서 Class 기반의 주소 체계를 사용하는 데 문제점이 발생했다.
인터넷에는 Class 기반의 주소 체계에서 정한 크기의 네트워크만 존재하는 것이 아니고, 정말 다양한 종류의 네트워크들이 존재할 뿐만 아니라 각 네트워크들은 그들 나름대로의 주소 크기를 원한다. 또한 정해진 크기대로만 IP 주소를 할당하다 보니 낭비되는 IP 주소들이 생겨났고, 이로 인해 IP 주소가 점점 부족해지게 되었다.
이러한 Class 기반 주소 체계의 문제점을 해결하기 위해 등장한 개념이 CIDR 주소 체계이다.
CIDR 주소 체계
CIDR 주소 체계는 IPv4 주소를 Class 구분 없이 Network address에 해당하는 prefix와 Host address에 해당하는 suffix로 구분하는 주소 체계이다. 즉, Network prefix의 길이를 자유롭게 설정할 수 있다.
이러한 CIDR 주소 체계를 사용하면 기존 Class 기반 주소 체계보다 유연하게 IP 주소를 할당 받을 수 있으며, 할당 받은 주소 블록을 기반으로 내부적인 부분 네트워크 구성도 가능하다. 이로 인해 IP 주소를 보다 더 효율적으로 사용할 수 있게 된다.
구체적으로 CIDR 주소 체계의 예시를 들어보자면, 200.23.16.0/20(어떤 Class에도 속하지 않음) 이라는 주소 블록을 할당 받았다고 가정해보자. 200.23.16.0/20는 CIDR의 표기법인데, 이는 IP 주소 32bit 중 20bit를 Network prefix로 사용한다는 의미이다. 이를 비트로 표현해보면 다음과 같다.

IP 주소 32bit 중 20bit를 Network prefix로 사용하므로, 나머지 12bit만큼의 IP 주소를 할당할 수 있다. 즉, 이 주소 블록의 범위는 200.23.16.0 ~ 200.23.31.255 인 것이다.
또한 이렇게 할당 받은 주소 블록을 기반으로 다음과 같이 Subnet을 구성할 수도 있다.

위 그림처럼 할당 받은 200.23.16.0/20 주소 블록의 prefix 부분을 3bit 확장해나가서 7개의 더 작은 네트워크 구성할 수도 있다. 이처럼 CIDR 주소 체계는 IP 주소를 Class로 구분하지 않기 때문에 부족해지는 IP 주소를 효율적으로 사용할 수 있도록 해준다.
마치며
이번 포스트에서는 IP 주소 체계에 대해 알아보았다. 구체적으로 초기 Class 기반 주소 체계와 해당 방식의 문제점, 그리고 CIDR 주소 체계에서 Class 기반 주소 체계의 문제점을 어떻게 해결하는지에 대해 다루어보았다. CIDR은 네트워크를 공부하는데 꼭 필요한 지식인 만큼 자주 와서 짚고 넘어가도록 하자.
'Computer Science' 카테고리의 다른 글
프로세스 알아보기 (0) | 2022.02.15 |
---|---|
데이터베이스 인덱스 (0) | 2022.02.12 |
데이터베이스 트랜잭션 (0) | 2022.02.05 |