IP 주소의 구조와 클래스
IP 프로토콜의 핵심 기능 중 하나는 주소 지정이다.
주소 지정은 IP 주소를 바탕으로 송신지와 수신지를 특정하는 기능이다.
IP 주소가 있어야 패킷을 어느 네트워크의 어떤 호스트로 보낼지 결정할 수 있다.
IPv4 주소는 32비트로 구성된다.
사람이 읽기 쉽게 표현할 때는 8비트씩 끊어 10진수 네 개로 나타낸다.
192.168.0.1
점으로 구분된 8비트 단위를 옥텟이라고 한다.
192 168 0 1
1옥텟 2옥텟 3옥텟 4옥텟
네트워크 주소와 호스트 주소
IP 주소는 크게 두 부분으로 나눌 수 있다.
네트워크 주소
호스트 주소
네트워크 주소는 호스트가 속한 네트워크를 식별하는 부분이다.
네트워크 ID, 네트워크 식별자라고도 부른다.
어떤 호스트가 어느 네트워크에 속해 있는지 나타낸다.
호스트 주소는 해당 네트워크 안에서 특정 호스트를 식별하는 부분이다.
호스트 ID, 호스트 식별자라고도 부른다.
같은 네트워크 안에서 어떤 장치인지를 구분하는 역할을 한다.
예를 들어 어떤 IP 주소가 다음처럼 나뉜다고 하자.
네트워크 주소: 16비트
호스트 주소: 16비트
이 경우 앞의 16비트는 네트워크를 나타내고, 뒤의 16비트는 해당 네트워크 안의 호스트를 나타낸다.
[ 네트워크 주소 16비트 ][ 호스트 주소 16비트 ]
IP 주소는 MAC 주소와 다르다.
MAC 주소는 네트워크 인터페이스에 부여된 하드웨어 주소에 가깝고, IP 주소는 네트워크 간 통신에서 사용되는 논리적인 주소 체계이다.
네트워크 주소와 호스트 주소의 크기
IP 주소에서 네트워크 주소와 호스트 주소가 각각 몇 비트를 차지해야 하는지는 상황에 따라 달라진다.
어떤 네트워크는 많은 수의 호스트를 포함해야 한다.
이런 경우 호스트 주소 부분이 커야 한다.
예를 들어 호스트 주소가 3옥텟이라면 24비트를 호스트 주소로 사용할 수 있다.
반대로 호스트 주소가 1옥텟이라면 8비트만 호스트 주소로 사용할 수 있다.
호스트 주소 부분이 크면 하나의 네트워크에 많은 호스트를 할당할 수 있다.
하지만 필요한 호스트 수보다 너무 큰 주소 공간을 받으면 많은 IP 주소가 사용되지 않고 낭비될 수 있다.
호스트 주소 부분이 작으면 주소 낭비는 줄어들 수 있다.
하지만 네트워크에 연결할 수 있는 호스트 수가 부족할 수 있다.
이런 문제를 해결하기 위해 등장한 방식이 IP 주소의 클래스이다.
클래스
클래스(class)는 네트워크의 크기에 따라 IP 주소를 분류하는 기준이다.
클래스를 기반으로 IP 주소를 관리하는 방식을 클래스풀 주소 체계(classful addressing)라고 한다.
클래스풀 주소 체계에서는 필요한 호스트 수에 따라 A, B, C 클래스 중 하나를 선택할 수 있다.
A 클래스는 호스트 주소 부분이 크기 때문에 하나의 네트워크에 많은 호스트를 둘 수 있다.
C 클래스는 호스트 주소 부분이 작기 때문에 하나의 네트워크에 둘 수 있는 호스트 수는 적지만, 만들 수 있는 네트워크 수는 많다.
IPv4 클래스는 대표적으로 A, B, C, D, E로 나눌 수 있다.

A 클래스
A 클래스는 큰 규모의 네트워크를 위한 클래스이다.
A 클래스에서는 네트워크 주소가 1옥텟이고, 호스트 주소가 3옥텟이다.
A 클래스 주소는 첫 번째 비트가 0으로 시작한다.
0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
첫 번째 옥텟에서 첫 비트가 0으로 고정되어 있으므로, 네트워크 주소로 사용할 수 있는 비트는 7비트이다.
따라서 이론적으로 A 클래스 네트워크는 2^7개 존재할 수 있다.
호스트 주소는 3옥텟, 24비트이다.
따라서 각 A 클래스 네트워크는 이론적으로 2^24개의 호스트 주소를 가질 수 있다.
A 클래스 주소 범위는 다음과 같다.
0.0.0.0 ~ 127.255.255.255
첫 번째 옥텟이 0부터 127 사이이면 A 클래스 주소라고 볼 수 있다.

다만 실제 사용에서는 일부 주소가 특수 목적으로 예약되어 있을 수 있다.
B 클래스
B 클래스는 중간 규모의 네트워크를 위한 클래스이다.
B 클래스에서는 네트워크 주소가 2옥텟이고, 호스트 주소도 2옥텟이다.
B 클래스 주소는 처음 두 비트가 10으로 시작한다.
10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
처음 두 비트가 10으로 고정되어 있으므로, 네트워크 주소로 사용할 수 있는 비트는 14비트이다.
따라서 이론적으로 B 클래스 네트워크는 2^14개 존재할 수 있다.
호스트 주소는 2옥텟, 16비트이다.
각 B 클래스 네트워크는 이론적으로 2^16개의 호스트 주소를 가질 수 있다.
B 클래스 주소 범위는 다음과 같다.
128.0.0.0 ~ 191.255.255.255
첫 번째 옥텟이 128부터 191 사이이면 B 클래스 주소라고 볼 수 있다.

C 클래스
C 클래스는 작은 규모의 네트워크를 위한 클래스이다.
C 클래스에서는 네트워크 주소가 3옥텟이고, 호스트 주소가 1옥텟이다.
C 클래스 주소는 처음 세 비트가 110으로 시작한다.
110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
처음 세 비트가 110으로 고정되어 있으므로, 네트워크 주소로 사용할 수 있는 비트는 21비트이다.
따라서 이론적으로 C 클래스 네트워크는 2^21개 존재할 수 있다.
호스트 주소는 1옥텟, 8비트이다.
각 C 클래스 네트워크는 이론적으로 2^8개의 호스트 주소를 가질 수 있다.
C 클래스 주소 범위는 다음과 같다.
192.0.0.0 ~ 223.255.255.255
첫 번째 옥텟이 192부터 223 사이이면 C 클래스 주소라고 볼 수 있다.

참고로 224부터 239까지는 D 클래스, 240부터 255까지는 E 클래스에 해당한다.
호스트 주소를 모두 사용할 수 없는 이유
호스트 주소 공간을 모두 일반 호스트에게 할당할 수 있는 것은 아니다.
특별한 의미로 사용되는 주소가 있기 때문이다.
대표적으로 두 가지가 있다.
호스트 주소가 모두 0인 주소
호스트 주소가 모두 1인 주소
호스트 주소가 모두 0인 경우
호스트 주소 부분이 모두 0인 IP 주소는 해당 네트워크 자체를 의미하는 네트워크 주소로 사용된다.
예를 들어 C 클래스 네트워크에서 다음 주소를 보자.
192.168.1.0
C 클래스에서는 앞의 3옥텟이 네트워크 주소이고, 마지막 1옥텟이 호스트 주소이다.
네트워크 주소: 192.168.1
호스트 주소: 0
호스트 주소가 모두 0이므로 이 주소는 특정 호스트가 아니라 192.168.1.0 네트워크 자체를 나타낸다.
호스트 주소가 모두 1인 경우
호스트 주소 부분이 모두 1인 IP 주소는 브로드캐스트 주소로 사용된다.
브로드캐스트 주소는 해당 네트워크에 속한 모든 호스트에게 메시지를 보낼 때 사용된다.
예를 들어 C 클래스 네트워크 192.168.1.0에서 호스트 주소가 모두 1이면 다음 주소가 된다.
192.168.1.255
마지막 1옥텟이 8비트이고, 8비트가 모두 1이면 255이다.
이 주소는 192.168.1.0 네트워크에 속한 모든 호스트에게 전송하는 브로드캐스트 주소로 사용된다.
실제 사용 가능한 호스트 수
호스트 주소 중에서 모두 0인 주소와 모두 1인 주소는 일반 호스트에게 할당할 수 없다.
그래서 실제 사용 가능한 호스트 수는 이론적인 주소 개수에서 2개를 뺀 값이다.
사용 가능한 호스트 수
= 2^(호스트 비트 수) - 2'STUDY' 카테고리의 다른 글
| [네트워크] 공인 IP와 사설 IP, NAT 정리 (0) | 2026.05.28 |
|---|---|
| [네트워크] 서브넷 마스크와 CIDR 계산법 정리 (0) | 2026.05.28 |
| [네트워크] IP 프로토콜 정리: IPv4 주소 지정, 단편화, IPv6 (0) | 2026.05.28 |
| [네트워크] 캡슐화와 역캡슐화, PDU 정리 (0) | 2026.05.28 |
| [네트워크] 네트워크 참조 모델: OSI 모델과 TCP/IP 모델 (0) | 2026.05.28 |