네트워크 정리 13. IPv4 주소의 개념과 클래스 주소
1. 개요
IPv4 주소란 TCP/IP에서 각 장치가 인터넷으로의 연결을 확인하는 IP 계층에서 사용되는
식별자 IP 주소, 또는 인터넷 주소라고 한다.
IPv4 주소는 32비트 주소로, 라우터나 호스트의 인터넷 연결을 범용적이고 유일하게 구별할 수 있도록
해준다. IP 주소는 장치가 다른 네트워크로 이동 시, 변경되기 때문에 라우터나 호스트가
아닌 소속 네트워크로부터 부여받은 주소다.
2. 설명
IPv4 주소에 대해서 정리해보려 한다.
2-1. 주소 공간 (Address Space)
IPv4는 32비트의 주소를 사용하므로 주소공간이 2^32 (약 40억 인터넷 연결)이 된다.
2-2. 표기법 (Notation)
IPv4 주소를 나타내기 위해선 2진수 표기법, 점 10진수 표기법, 16진수 표기법을 사용한다.
32비트인 주소를 8비트씩 짤라서 4개로 표기한다.
- 2진수 (Binary) : 10000000 00010000 00000100 00011111
- 점 10진수 (Dotted decimal) : 128.16.4.31
- 16진수 (Hexadecimal) : 80 A0 04 1F
로 표기할 수 있다. 위에 있는 주소는 다 같은 주소다.
2-3. 계층적 구조 (Hierarchy in Addressing)
32비트인 IPv4 주소는 두 부분으로 구분되는 계층적 구조다.
- 프리픽스 (Prefix) : 네트워크 주소를 정의하는 부분, 32 이하의 n 비트
- 서픽스 (Suffix) : 노드(장치의 인터넷 연결)를 정의하는 부분, (32-n) 비트
이 비트 수를 M이라 치면, 2^m의 수만큼 노드를 연결할 수 있다. - 32비트 중, prefix인 n비트가 있고, 나머지 비트는 서픽스가 된다.
2-4. 클래스 기반의 주소지정 (Classful addressing)
- IPv4 주소는 소, 대규모 네트워크를 지원하기 위해 세가지 고정된 프리픽스로 설계되어 있다.
- 5개의 클래스 (클래스 A, B, C, D)로 구분한다.
간단하게 설명하면 고정된 prefix(네트워크 이름), suffix(연결 가능한 기기 수)를 지정해서 제공하는 것이다.
A클래스의 경우, 2^8(128) 개의 네트워크를 만들 수 있다. 그리고 A클래스 하나로 2^24개의 기기에
네트워크로 연결할 수 있다. 정확하게 말하면 첫번째와 마지막 주소는 사용할 수 없으니 126개를 만들 수 있다.
B클래스의 경우, 2^16(65536) 개의 네트워크, 2^16개의 노드에 연결할 수 있다.
C클래스의 경우, 2^24 개의 네트워크, 2^8(128)개의 노드에 연결할 수 있다.
나중에 설명할 부분이지만 D클래스는 멀티캐스트용, E클래스는 실험용이다.
Class | Prefixes | First Byte |
A | 8bits | 0 ~ 127 |
B | 16bits | 128 ~ 191 |
C | 24bits | 192 ~ 223 |
D | 해당되는 게 없다. | 224 ~ 239 |
E | 해당되는 게 없다. | 240 ~ 255 |
32비트 중, prefix를 제외한 부분이 suffix가 되니, prefix의 길이가 짧을 수록, 연결할 수 있는
노드의 수가 늘어난다.
점유율로 보면, A클래스 : 50%, B클래스 : 25%, C클래스 : 12.5%, D클래스 : 6.25%, E클래스 : 6.25%
2-5. 클래스 기반의 주소지정(Classful Addressing) 이슈
- 주소 고갈 (Address Depletion)
- 적절히 주소가 분배되지 않아 인터넷 연결을 위해 할당할 수 있는 주소가 남아있지 않은 현상
(간단한 예로, A클래스의 경우, 2^24 (약 1600만개)의 노드를 가질 수 있는데, 이걸 다 쓰긴 힘들다.)
- 특정 블록 전체가 낭비되는 현상 - 서브네팅과 슈퍼네팅 (Subnetting and Supernetting)
- 주소 고갈을 완화하기 위한 방안이다.
- 서브넷 : 하나의 네트워크를 다수의 서브 네트워크로 만드는 것 (1개의 네트워크, 16개의 호스트가
있다면, 4개의 네트워크, 4개의 호스트 이런 식으로 분리하는 것)
- 슈퍼넷 : 규모가 작은 네트워크 다수를 묶어서 하나의 대규모 네트워크처럼 운용 (조건 만족 시) - 클래스 기반의 주소 지정의 장점 (Advantage of Classful Addressing)
- 주소가 길어지면 각 클래스의 프리픽스가 고정되어 있기 때문에 주소의 클래스를 쉽게 찾고
프리픽스의 길이를 즉시 알 수 있는 게 장점이다.