정보통신기사 필기

🏷️ IP 주소 클래스 · 서브넷 마스크 · CIDR

IPv4 주소는 32비트이고 네트워크 부분 + 호스트 부분 으로 나뉜다. 이 경계를 어디에 두느냐를 미리 5가지로 정해 둔 것이 클래스(Class) 다. 경계는 주소의 맨 앞 비트 몇 개만 보면 바로 알 수 있다.
클래스 A·B·C의 기본 경계는 8비트씩 이동
네트워크 부분호스트 부분
클래스 A기본 /8
8비트24비트
클래스 B기본 /16
16비트16비트
클래스 C기본 /24
24비트8비트

전체 막대는 IPv4의 32비트다. CIDR은 /27처럼 경계를 더 세밀하게 정한다. D는 멀티캐스트, E는 예약 대역으로 이 호스트 분할 방식에 해당하지 않는다.

🔑 원리 — 맨 앞 비트가 클래스를 결정한다
첫 번째 옥텟(8비트)의 앞부분만 보면 끝 0xxxxxxx → A 클래스 0 ~ 127 10xxxxxx → B 클래스 128 ~ 191 110xxxxx → C 클래스 192 ~ 223 1110xxxx → D 클래스 224 ~ 239 (멀티캐스트) 1111xxxx → E 클래스 240 ~ 255 (예약)
💡 왜 이 숫자들인가 — 앞 비트가 고정되면 남은 자리로 만들 수 있는 범위가 정해진다. 128 = 2⁷, 192 = 128+64, 224 = 192+32, 240 = 224+16. 경계가 128 → 192 → 224 → 240 으로 간격이 절반씩 줄어드는 것만 기억하면 범위표를 외울 필요가 없다.
⭐ 30초 암기법

경계 숫자 4개만

128 · 192 · 224 · 240
↓ 각 구간의 크기
A: 128개  (0~127)
B:  64개  (128~191)
C:  32개  (192~223)
D:  16개  (224~239)
E:  16개  (240~255)

네트워크 비트 = 8 · 16 · 24

A → /8  255.0.0.0
B → /16 255.255.0.0
C → /24 255.255.255.0
D · E는 네트워크/호스트 구분이 없다

A는 첫 칸, B는 두 칸, C는 세 칸이 네트워크.

📊 클래스별 종합 비교표
클래스선두 비트첫 옥텟 범위기본 마스크 네트워크 : 호스트네트워크 수네트워크당 호스트 수용도
A 0xxxxxxx 1 ~ 126
0·127 제외
255.0.0.0
/8
8 : 24 bit 2⁷ = 128
사용 126
2²⁴ − 2
= 16,777,214
초대규모 기관 (국가·대기업)
B 10xxxxxx 128 ~ 191 255.255.0.0
/16
16 : 16 bit 2¹⁴ = 16,384 2¹⁶ − 2
= 65,534
중규모 (대학·중견기업)
C 110xxxxx 192 ~ 223 255.255.255.0
/24
24 : 8 bit 2²¹ = 2,097,152 2⁸ − 2
= 254
소규모 (소기업·가정)
D 1110xxxx 224 ~ 239 없음 네트워크 / 호스트 구분이 없다 멀티캐스트 (1:다 전송)
E 1111xxxx 240 ~ 255 없음 할당되지 않음 연구 · 예약 (실험용)
⚠ 시험에 가장 많이 나오는 함정
• A 클래스는 0 ~ 127 이지만 실제 사용 범위는 1 ~ 126. 0은 예약, 127은 루프백이라 빠진다.
• 호스트 수에서 −2 를 빼먹지 말 것 (네트워크 주소 + 브로드캐스트 주소는 장비에 못 준다).
• D 클래스는 멀티캐스트, E 클래스는 예약. 둘 다 서브넷 마스크가 없다.
🔍 IP 클래스 판별기 — 주소를 넣으면 클래스와 계산 결과를 바로 보여줍니다
예제 →
🚫 호스트에 줄 수 없는 특수 주소
주소이름의미
0.0.0.0This network / 기본 경로"이 네트워크" 또는 주소 미할당 상태. 라우팅 테이블에서는 기본 경로(default)
127.0.0.0/8루프백 (Loopback)자기 자신. 127.0.0.1 = localhost. 이것 때문에 A 클래스가 126까지
255.255.255.255제한적 브로드캐스트같은 네트워크 전체에 전송. 라우터를 넘지 못함
169.254.0.0/16APIPA (링크 로컬)DHCP 서버를 못 찾았을 때 자동으로 붙는 주소. 이 주소가 보이면 DHCP 실패 신호
호스트부 전부 0네트워크 주소네트워크 자체를 가리킴 (예: 192.168.1.0)
호스트부 전부 1브로드캐스트 주소해당 네트워크 전체 (예: 192.168.1.255)
🏠 사설 IP 대역 (RFC 1918)
인터넷에 직접 나갈 수 없고 내부 네트워크에서만 쓰는 주소. 외부로 나갈 때는 NAT 가 공인 IP로 바꿔 준다. IPv4 주소 고갈을 늦춘 핵심 기술.
클래스대역CIDR개수주로 쓰이는 곳
A10.0.0.0 ~ 10.255.255.25510.0.0.0/81개 네트워크
약 1,678만 호스트
대기업 사내망, 클라우드 VPC
B172.16.0.0 ~ 172.31.255.255172.16.0.0/1216개 네트워크중규모 사내망, 도커 기본 대역
C192.168.0.0 ~ 192.168.255.255192.168.0.0/16256개 네트워크가정용 공유기 (가장 익숙한 대역)
⚠ 172 대역 주의 — 172면 전부 사설이 아니다. 172.16 ~ 172.31 까지만 사설이고 172.15나 172.32는 공인 IP 다. (16 + 16 = 32, 즉 16개 블록)
🔀 IPv4 ↔ IPv6 특수 주소 대조
IPv4의 특수 주소는 IPv6에 거의 그대로 대응한다. 따로 외우지 말고 짝으로 외운다. 단 하나, 브로드캐스트만 IPv6에 없다.
용도IPv4IPv6한 줄 설명
루프백
Loopback
127.0.0.0/8
(127.0.0.1)
::1/128 자기 자신. 패킷이 밖으로 나가지 않고 되돌아온다
미지정
Unspecified
0.0.0.0 :: (::/128) "아직 주소가 없다". 출발지로만 쓰고 목적지로는 못 쓴다
링크 로컬
Link-Local
169.254.0.0/16
APIPA
fe80::/10 같은 링크(서브넷) 안에서만 유효. 라우터를 넘지 못한다
사설 · 내부용 10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
fc00::/7
(실제는 fd00::/8)
조직 내부 전용. IPv6에서는 ULA(Unique Local Address)
멀티캐스트 224.0.0.0/4
(224 ~ 239, D 클래스)
ff00::/8 그룹 전송. 가입한 노드만 받는다
브로드캐스트 255.255.255.255
(호스트부 전부 1)
없음 IPv6는 멀티캐스트(ff02::1)와 애니캐스트로 대체 기출 단골
문서·예제용 192.0.2.0/24 등 2001:db8::/32 문서에 쓰라고 예약된 대역. 실제 통신에는 안 쓴다
🧠 「1은 나, 0은 없음」 — IPv4와 IPv6가 똑같은 구조다.
 끝이 1 → 127.0.0.1 / ::1 = 자기 자신(루프백)
 전부 0 → 0.0.0.0 / :: = 주소 없음(미지정)
🧠 IPv6 앞 두 글자 — fe80은 동네(링크 로컬), ff로 시작하면 무조건 멀티캐스트. f로 시작하면 특수 주소라고 묶어 기억하면 된다.
🔁 루프백 — 127.0.0.1 · ::1
항목내용
의미자기 자신을 가리키는 주소. localhost. NIC를 거치지 않고 커널에서 되돌아온다
IPv4 범위127.0.0.0 ~ 127.255.255.255 — /8 통째로 예약. 이 때문에 A 클래스가 1~126까지
IPv6::1 단 하나만 예약 (IPv4처럼 1,670만 개를 낭비하지 않는다)
용도TCP/IP 스택 정상 동작 확인 — ping 127.0.0.1 이 되면 최소한 내 컴퓨터의 네트워크 소프트웨어는 살아 있다
⚠️ 이름이 같은 다른 개념 — 「루프백 주소」 vs 「루프백 시험」
• 루프백 주소(127.0.0.1) = 3계층 IP 주소. 자기 자신
• 루프백 시험(Loop-Back Test) = 회선 점검 기법. 신호를 되돌려 어디까지 정상인지 확인
시험에 둘 다 나온다. 루프백 시험은 4과목 「운용관리 · 장애대응」 섹션 참고.
🏘️ 링크 로컬 — 169.254.x.x · fe80::

IPv4 — 169.254.0.0/16 (APIPA)

DHCP 서버를 못 찾았을 때 OS가 자동으로 붙인다
→ 이 주소가 보이면 DHCP 실패 신호. 정상 상태가 아니다
인터넷이 안 될 때 ipconfig에 169.254가 뜨면 원인은 DHCP

IPv6 — fe80::/10

모든 인터페이스가 항상 하나씩 자동 생성한다
→ 정상이며, 없으면 오히려 이상하다
이웃 탐색(NDP)·라우터 광고가 이 주소로 오간다

🧠 같은 "링크 로컬"인데 성격이 정반대 — IPv4는 사고(fallback), IPv6는 기본(필수). 공통점은 라우터를 넘지 못한다는 것 하나.
📡 멀티캐스트 — 224.0.0.x · ff02::
대상IPv4IPv6
모든 노드(호스트)224.0.0.1ff02::1
모든 라우터224.0.0.2ff02::2
OSPF 전체 / DR·BDR224.0.0.5 / 224.0.0.6ff02::5 / ff02::6
RIP224.0.0.9 RIPv2ff02::9 RIPng
요청 노드 Solicited-Node—ff02::1:ffxx:xxxx
뒷자리가 똑같다 — IPv4 224.0.0.N 과 IPv6 ff02::N 의 N이 일치한다(1 · 2 · 5 · 6 · 9). IPv4 쪽만 외워두면 IPv6는 앞을 ff02::로 바꾸기만 하면 된다.
요청 노드 멀티캐스트는 IPv6가 ARP를 대신하는 방식이다 — 브로드캐스트로 전체를 깨우는 대신, MAC을 알고 싶은 상대만 속한 그룹으로 보낸다. IPv6에 브로드캐스트가 없어도 되는 이유.
🚫 미지정 주소 — 0.0.0.0 · ::
쓰임설명
출발지 주소아직 IP를 못 받은 단말이 DHCP 요청을 보낼 때 (DISCOVER의 출발지가 0.0.0.0)
라우팅 테이블0.0.0.0/0 = 기본 경로(default route) — "어디로 갈지 모르면 여기로"
서버 바인딩모든 인터페이스에서 접속을 받겠다는 뜻 (0.0.0.0:8080)
목적지 주소사용 불가 — 미지정 주소로는 패킷을 보낼 수 없다
📖 기출 포인트
물음답
IPv6의 주소 유형이 아닌 것은?2022-3회브로드캐스트 — 유니캐스트·멀티캐스트·애니캐스트 3종만 있다
IPv6에 브로드캐스트가 없는 이유는?멀티캐스트(ff02::1)와 애니캐스트로 대체했기 때문
IPv6 루프백 주소는?::1 (IPv4는 127.0.0.1)
IPv6 링크 로컬 주소의 접두사는?fe80::/10
169.254.x.x 주소가 보이면?DHCP 할당 실패(APIPA)
멀티캐스트에 쓰는 IPv4 클래스와 IPv6 접두사는?D 클래스(224~239) / ff00::/8
라우팅 테이블의 0.0.0.0/0 은?기본 경로(default route)
A 클래스가 126까지인 이유는?0은 예약, 127은 루프백이라 빠졌기 때문
📉 클래스 방식의 한계 → CIDR로

문제 — 주소 낭비

호스트가 300대 필요한 회사는?
• C 클래스(254개) → 부족
• B 클래스(65,534개) → 65,234개 낭비

클래스 단위로만 나누면 딱 맞는 크기가 없다.

해결 — 경계를 자유롭게

서브넷팅 : 큰 네트워크를 잘게 쪼갬
CIDR : /8 /16 /24 대신 /26 /27 처럼 임의 지정
VLSM : 서브넷마다 다른 크기 사용
NAT : 사설 IP로 공인 IP 절약

→ 300대면 /23(510개)으로 딱 맞춘다.

📎 클래스는 기본 경계를 정하는 것이고, CIDR은 그 경계를 옮기는 것이다. 아래에서 그 경계를 옮기는 계산을 이어서 본다.
🧠 헷갈리는 지점 — 「1~126」과 「마스크 비트」는 무엇이 다른가
둘은 보는 대상 자체가 다르다. 하나는 IP 주소를 보고, 하나는 마스크를 본다. 같은 것을 두 번 구하는 게 아니다.
1~126 (클래스 판별)서브넷마스크 비트 구하기
무엇을 보나IP 주소의 첫 옥텟서브넷마스크 값 (IP는 안 본다)
답하는 질문"이 주소는 어느 집안 태생인가""실제로 어디서 자르는가"
누가 정하나주소 체계가 태생적으로 정해둠관리자가 설계해서 부여
결과물A/B/C/D/E + 기본 마스크 (/8·/16·/24)실제 네트워크 / 호스트 경계
🧠 한 문장 — 「클래스는 주소가 들려주는 이야기, 마스크는 관리자가 그어놓은 선」
둘은 따로 주어지고, 서로 달라도 정상이다. 오히려 다르기 때문에 서브넷팅이 성립한다.
❓ 왜 하필 1~126인가
A 클래스는 선두 비트가 0 → 원래 범위는 0 ~ 127 0.x.x.x → "이 네트워크 자신"을 뜻하는 예약 ✗ 127.x.x.x → 루프백 (127.0.0.1) ✗ ───────────────────────────────────────────── 1 ~ 126 → 실제로 쓰는 범위 ✓
여기서 얻는 정보는 딱 하나 — 기본(default) 마스크가 /8 이라는 것. 즉 "원래대로라면 앞 8비트가 네트워크" 라는 출발점일 뿐이다.
📏 마스크 비트는 그 출발점을 「오른쪽으로 민」 결과
1옥텟 2옥텟 3옥텟 4옥텟 ① 첫 옥텟 192 → C 클래스 → 기본 /24 네트워크 24 bit 호스트 8 bit 경계가 3칸 오른쪽으로 ② 마스크 255.255.255.224 → /27 네트워크 24 bit 빌림 3 호스트 5 bit ③ 차이 3비트 = 빌린 비트 → 서브넷 2³ = 8개 · 호스트 2⁵ − 2 = 30개
빌린 비트 = 실제 마스크 비트 − 클래스 기본 비트 서브넷 수 = 2 ^ (빌린 비트) 호스트 비트 = 32 − 실제 마스크 비트 유효 호스트 = 2 ^ (호스트 비트) − 2
📖 기출로 확인 — 둘이 반드시 함께 필요한 경우
Q. 클래스 B 주소에 서브넷 마스크 255.255.255.240을 적용하면 서브넷 수와 호스트 수는?
단계어디서 나온 값인가계산
클래스 B → 기본 /16클래스 판별에서첫 옥텟 128~191
240 = 11110000 → /28마스크에서1의 개수 8+8+8+4
빌린 비트 12두 값의 차이28 − 16 = 12
서브넷 4,096개빌린 비트에서2¹² = 4,096
호스트 14개마스크에서만32−28=4 → 2⁴−2 = 14
⚠️ 여기서 클래스가 왜 필요한가
마스크만 보면 /28이라는 사실만 알 뿐, 그게 몇 칸을 민 것인지 알 수 없다. 출발점(/16)을 알려주는 것이 클래스다. 반대로 클래스만 알면 실제 경계를 모른다. 서브넷 개수 문제에서만 둘이 반드시 함께 필요하다.
🧠 헷갈릴 때 딱 하나만 — 「호스트냐 서브넷이냐」
• 호스트 수만 물으면 → 마스크만 보면 끝 (클래스 몰라도 된다)
• 서브넷 수를 물으면 → 클래스 + 마스크 둘 다 필요
"255.255.255.224의 최대 호스트 수는?" 문제에 클래스가 안 나오는 이유가 이것 — 필요가 없어서다.
🧮 서브넷팅 / CIDR 계산법
서브넷팅(Subnetting) = 하나의 큰 네트워크를 여러 개의 작은 네트워크(서브넷)로 나누는 것
목적: IP 주소 낭비 방지 / 브로드캐스트 도메인 축소 / 보안 강화
📐 비트 그림 · 마스크 암기표 · 계산 순서는 「서브넷 마스크 한눈에」 섹션에 모아 두었다 → 바로 가기
핵심 용어
용어의미예시 (/24 기준)
네트워크 주소서브넷의 시작 주소 사용 불가192.168.1.0
브로드캐스트 주소서브넷의 마지막 주소 사용 불가192.168.1.255
사용 가능 호스트실제 장비에 할당 가능한 주소192.168.1.1 ~ .254
서브넷 마스크네트워크/호스트 부분 구분255.255.255.0
CIDR 표기/뒤에 네트워크 비트 수 표기/24
방법 ① — CIDR 숫자로 풀기 (호스트 수 공식)
사용 가능 호스트 수 = 2ⁿ - 2 (n = 호스트 비트 수 = 32 - CIDR 숫자) (-2 = 네트워크 주소 + 브로드캐스트 주소 제외)
방법 ② — 10진수 마스크로 직접 풀기 (가장 빠름)
서브넷 마스크가 255.255.255.224처럼 10진수로 주어지면:
① 마지막 옥텟을 2진수로 변환
② 0의 개수 = 호스트 비트 수 (n)
③ 할당 가능 호스트 = 2ⁿ - 2
옥텟 값2진수1의 개수
(네트워크)
0의 개수
(호스트 n)
2ⁿ2ⁿ-2
(호스트)
00000000008256254
1281000000017128126
19211000000266462
22411100000353230
24011110000441614
248111110005386
252111111006242
254111111107120
25511111111801-

예제 — 255.255.255.224 의 최대 호스트 수? (기출 Q88 유형)

① 마지막 옥텟 224 → 11100000 (2진수)
② 0의 개수 = 호스트 비트 = 5
③ 2⁵ - 2 = 32 - 2 = 30개

※ CIDR로는 /27 (네트워크 비트 = 8+8+8+3 = 27)
※ -2를 빠뜨려 32개로 답하면 오답!

네트워크 주소 구하기 (IP AND 마스크)
네트워크 주소 = IP 주소 AND 서브넷 마스크 (비트 단위 AND 연산)
마스크가 255인 옥텟은 IP 그대로, 0인 옥텟은 0, 그 외 옥텟만 계산하면 됨

예제 — IP 192.156.100.68 / 마스크 255.255.255.224 의 네트워크 주소?

앞 3옥텟은 마스크가 255 → 192.156.100 그대로
마지막 옥텟만 AND 연산:

  68  = 0100 0100  (IP) 224  = 1110 0000  (마스크) AND ─────────────────────   64  = 0100 0000  (네트워크)

→ 네트워크 주소 = 192.156.100.64

⚡ 더 빠른 방법 — 블록 크기로 구간 찾기

① 블록 크기 = 256 - 224 = 32
② 서브넷 경계 (32씩 증가):
  0 · 32 · 64 · 96 · 128 · 160 · 192 · 224
③ 68은 64 ~ 95 구간에 속함

→ 네트워크 주소 = 192.156.100.64

📦 이 서브넷(192.156.100.64/27)의 전체 주소 구성

구분주소용도
네트워크 주소192.156.100.64사용 불가
첫 호스트192.156.100.65할당 가능
마지막 호스트192.156.100.94할당 가능
브로드캐스트192.156.100.95사용 불가

호스트 범위 .65~.94 = 30개 (= 2⁵-2, 위 호스트 수 계산과 일치)

CIDR 전체 표
/8 ~ /30 전체 표와 /31·/32 예외는 서브넷 마스크 한눈에에 정리했다.
실전 계산 예제

예제 1 — 호스트 수 구하기

Q: 192.168.1.0/26 의 사용 가능 호스트 수?

호스트 비트 = 32 - 26 = 6
2⁶ - 2 = 64 - 2 = 62개

네트워크: 192.168.1.0
첫 호스트: 192.168.1.1
마지막 호스트: 192.168.1.62
브로드캐스트: 192.168.1.63

예제 2 — CIDR 역산

Q: 호스트 50대 필요한 최소 CIDR은?

2ⁿ - 2 ≥ 50
2⁵ - 2 = 30 → ✗ 부족
2⁶ - 2 = 62 → ✓ 충분

호스트 비트 = 6
CIDR = 32 - 6 = /26
마스크 = 255.255.255.192

예제 3 — /24를 4개 서브넷으로 분할

4개 필요 → 2² = 4 → 2비트 빌림 → /24 + 2 = /26
블록 크기 = 256 - 192 = 64

서브넷1: 192.168.1.0 ~ .63   (호스트: .1~.62)
서브넷2: 192.168.1.64 ~ .127  (호스트: .65~.126)
서브넷3: 192.168.1.128 ~ .191 (호스트: .129~.190)
서브넷4: 192.168.1.192 ~ .255 (호스트: .193~.254)

블록 크기 빠른 계산
블록 크기 = 256 - 서브넷 마스크 마지막 옥텟 값 ※ 블록 크기 = 서브넷 하나가 갖는 주소 개수. 서브넷 "개수"가 아니다. 마스크 블록 크기 CIDR 서브넷 수 유효 호스트 255.255.255.128 256-128 = 128 /25 2개 126 255.255.255.192 256-192 = 64 /26 4개 62 255.255.255.224 256-224 = 32 /27 8개 30 255.255.255.240 256-240 = 16 /28 16개 14 255.255.255.248 256-248 = 8 /29 32개 6 255.255.255.252 256-252 = 4 /30 64개 2 블록 크기 × 서브넷 수 = 256 — 이 곱이 256이 안 되면 계산이 틀린 것
⚠ 시험 핵심 포인트
· 네트워크·브로드캐스트 주소는 호스트로 사용 불가 → 항상 -2
· 서브넷 수 = 2^(빌린 비트 수)
· 블록 크기 = 256 - 마지막 서브넷 마스크 값
· /30 = 호스트 2개 → 점대점(P2P) 연결 전용
· /32 = 단일 호스트 주소 (루프백 등)
· 호스트 수 → CIDR 역산: 2ⁿ-2 ≥ 필요수 → n구하기 → 32-n
📝 시험 포인트
• 선두 비트 0 / 10 / 110 / 1110 / 1111 → A / B / C / D / E
• 경계 숫자 128 · 192 · 224 · 240, 구간 크기는 128 → 64 → 32 → 16
• A 클래스 실제 범위는 1 ~ 126 (0 예약, 127 루프백)
• 기본 마스크 /8 · /16 · /24, 호스트 수는 2ⁿ − 2
• D = 멀티캐스트(224~239), E = 예약(240~255)
• 사설 IP는 10.x / 172.16~31.x / 192.168.x — 172는 16~31만!
• 169.254.x.x 가 보이면 DHCP 할당 실패(APIPA)
• 유효 호스트 = 2ⁿ − 2, 서브넷 수 = 2^(빌린 비트), 블록 크기 = 256 − 마지막 옥텟
• 블록 크기 × 서브넷 수 = 256 — 곱이 256이 아니면 계산이 틀린 것