192 . 168 . 0 . 10
└─┬┘ └─┬┘ └┬┘ └─┬┘
8비트 8비트 8비트 8비트 = 32비트
각 옥텟은 0 ~ 255
주소는 네트워크 부분 + 호스트 부분 으로 나뉜다. 어디까지가 네트워크인지를 정하는 것이 서브넷마스크 다.
서브넷 계산은 결국 8비트 한 칸 을 읽는 일이다. 자리마다 값이 정해져 있다.
자리값 128 64 32 16 8 4 2 1
──────────────────────────────────────────────────
192 = 1 1 0 0 0 0 0 0 128 + 64
168 = 1 0 1 0 1 0 0 0 128 + 32 + 8
10 = 0 0 0 0 1 0 1 0 8 + 2
255 = 1 1 1 1 1 1 1 1 전부 더하면 255
큰 자리부터 빼 나간다. 168이면 128을 빼고(남은 40), 64는 못 빼고, 32를 빼고(남은 8), 8을 빼면 0이다. 뺀 자리에 1, 못 뺀 자리에 0을 적는다.
여덟 자리를 모두 더하면 255 다. 옥텟 하나가 0~255인 이유다(값의 개수는 2⁸ = 256개).
마스크에 쓰이는 값은 왼쪽부터 차례로 더한 것 이다 — 128, 128+64=192 , +32=224 , +16=240 , +8=248 , +4=252 .
클래스 첫 옥텟 범위 기본 서브넷마스크 표기 용도 A 1 ~ 126 255.0.0.0 /8 초대형 B 128 ~ 191 255.255.0.0 /16 중대형 C 192 ~ 223 255.255.255.0 /24 소규모 D 224 ~ 239 — — 멀티캐스트 E 240 ~ 255 — — 연구용
첫 옥텟만 보면 클래스를 안다. 192.168.0.1은 192로 시작하니 C 클래스 다.
127은 A 클래스 범위에서 빠져 있다. 127.0.0.0/8이 루프백 으로 예약되어 있기 때문이다.
D는 멀티캐스트 (여럿에게 동시 전송)라는 점을 묻는다.
클래스 첫 옥텟의 앞 비트 네트워크 / 호스트 비트 네트워크 하나의 호스트 수 A 08 / 24 2²⁴ − 2 = 16,777,214 B 1016 / 16 2¹⁶ − 2 = 65,534 C 11024 / 8 2⁸ − 2 = 254 D 1110— —
범위 숫자가 126·128·192·224로 끊기는 것은 우연이 아니다. 맨 앞 비트가 0이면 0~127, 10이면 128~191, 110이면 192~223 이 되기 때문이다. 위 자리값 표의 128·64·32와 그대로 맞물린다.
A는 네트워크 수가 적고 호스트가 많다. C는 그 반대 다. "호스트를 가장 많이 둘 수 있는 클래스"는 A, "네트워크 수가 가장 많은 클래스"는 C다.
경계값을 그대로 묻는다 — 126은 A, 128은 B, 191은 B, 192는 C, 223은 C, 224는 D 다.
인터넷에 직접 나가지 않고 내부망에서만 쓰는 주소 다.
클래스 사설 IP 대역 A 10.0.0.0 ~ 10.255.255.255 B 172.16.0.0 ~ 172.31.255.255 C 192.168.0.0 ~ 192.168.255.255
집이나 회사 공유기가 나눠 주는 192.168.x.x 가 바로 이것이다.
172는 16~31 사이만 사설이다. 172.15.x.x나 172.32.x.x는 공인 IP다. 이 범위가 함정으로 나온다.
주소 뜻 127.0.0.1 루프백 — 자기 자신 (localhost)0.0.0.0 모든 주소 / 지정되지 않음 호스트 비트가 전부 0 네트워크 주소 호스트 비트가 전부 1 브로드캐스트 주소
보내는 방식 받는 대상 예 유니캐스트 하나 보통의 1:1 통신 브로드캐스트 같은 망의 전부 192.168.0.255멀티캐스트 신청한 일부 그룹 D 클래스 224.0.0.0 ~ 239.255.255.255
사설 IP와 루프백은 다르다. 사설 IP는 내부망의 다른 컴퓨터 와 통신하는 주소이고, 루프백은 자기 자신에게만 돌아오는 주소다.
루프백은 127.0.0.1 하나가 아니라 127로 시작하는 대역 전체 가 예약되어 있다. 그중 관례적으로 쓰는 것이 127.0.0.1이다.
192.168.0.0 ← 호스트 부분이 전부 0 = 네트워크 주소
192.168.0.1 ┐
… ├─ 실제로 컴퓨터에 줄 수 있는 주소
192.168.0.254 ┘
192.168.0.255 ← 호스트 부분이 전부 1 = 브로드캐스트 주소
양 끝 두 개는 쓸 수 없다. 그래서 2ⁿ − 2 가 된다(n = 호스트 비트 수).
1 마스크의 마지막 옥텟을 본다 예) 255.255.255.192 → 192
2 256 에서 뺀다 256 − 192 = 64 ← 블록 크기
3 2 를 뺀다 64 − 2 = 62 ← 쓸 수 있는 호스트 수
마스크 표기 블록 크기 쓸 수 있는 호스트 서브넷 개수 255.255.255.0 /24 256 254 1 255.255.255.128 /25 128 126 2 255.255.255.192 /26 64 62 4 255.255.255.224 /27 32 30 8 255.255.255.240 /28 16 14 16 255.255.255.248 /29 8 6 32 255.255.255.252 /30 4 2 64
254 · 126 · 62 · 30 · 14 · 6 · 2 — 이 숫자 줄을 외워 두면 계산 없이 바로 답한다. 절반씩 줄어드는데 −2가 붙어 있는 형태다.
문제 C 클래스 네트워크에서 서브넷마스크가 255.255.255.192일 때 하나의 서브넷에서 사용할 수 있는 호스트 IP 개수는?
256 − 192 = 64 블록 하나의 크기
64 − 2 = 62 네트워크·브로드캐스트 주소를 뺀 수
답: 62개
문제 서브넷마스크가 255.255.255.224이면?
256 − 224 = 32
32 − 2 = 30 답: 30개
서브넷 개수 를 물으면 반대로 256 ÷ 블록 크기 다. /26은 256 ÷ 64 = 4개 의 서브넷이 나온다.
호스트 수만이 아니라 "이 IP가 속한 네트워크 주소·브로드캐스트 주소는?" 을 묻기도 한다. 블록 크기만큼씩 끊어 표를 그리면 끝난다. 192.168.10.0에 /26(블록 64)을 적용하면 이렇게 넷으로 갈린다.
서브넷 네트워크 주소 쓸 수 있는 호스트 브로드캐스트 주소 1 192.168.10.0 .1 ~ .62 192.168.10.63 2 192.168.10.64 .65 ~ .126 192.168.10.127 3 192.168.10.128 .129 ~ .190 192.168.10.191 4 192.168.10.192 .193 ~ .254 192.168.10.255
네트워크 주소는 블록 크기의 배수 (0, 64, 128, 192)다. 브로드캐스트 주소는 다음 블록의 시작에서 1을 뺀 값 이다.
호스트는 그 사이 전부다. 첫 호스트 = 네트워크 주소 + 1, 마지막 호스트 = 브로드캐스트 주소 − 1 .
192.168.10.100 / 26 은 어느 서브넷인가
1 블록 크기 256 − 192 = 64
2 경계를 긋는다 0 · 64 · 128 · 192
3 100 이 들어가는 칸은 64 ~ 127
─────────────────────────────────────────
네트워크 주소 192.168.10.64
브로드캐스트 주소 192.168.10.127
호스트 범위 192.168.10.65 ~ 192.168.10.126 (62개)
주어진 값 블록 네트워크 주소 브로드캐스트 호스트 범위 192.168.10.77 /27 32 .64 .95 .65 ~ .94 (30개) 192.168.10.200 /28 16 .192 .207 .193 ~ .206 (14개) 192.168.10.130 /25 128 .128 .255 .129 ~ .254 (126개)
검산은 끝 − 처음 + 1 로 한다. .65 ~ .94 는 94 − 65 + 1 = 30 으로 표의 30과 맞는다.
같은 계산을 비트로 하면 IP와 마스크를 AND 하는 것이다. 100은 01100100, 192는 11000000 이고, 둘 다 1인 자리만 남기면 01000000 = 64 다. 컴퓨터는 이 방법으로 네트워크 주소를 구한다.
요구 생각하는 순서 답 호스트 50대 가 들어갈 서브넷 2를 더해 52 → 이를 담는 가장 작은 블록은 64 255.255.255.192 (/26) 호스트 30대 32 → 블록 32, 딱 맞는다 255.255.255.224 (/27) 호스트 31대 33 → 32로는 모자라 블록 64 255.255.255.192 (/26) 서브넷 5개 이상으로 나누기 4개로는 모자라 8개 → 블록은 256 ÷ 8 = 32 255.255.255.224 (/27)
호스트 수를 물으면 2를 빼고, 서브넷 개수를 물으면 빼지 않는다. 한 문제 안에서 두 숫자를 바꿔 놓은 보기가 함정이다. /26이면 서브넷 4개, 서브넷당 호스트 62개 다.
"주소가 몇 개인가"와 "호스트에 줄 수 있는 주소가 몇 개인가"도 다르다. 앞은 64, 뒤는 62다.
마스크와 / 표기는 1의 개수 로 오간다. 255.255.255.192 는 8 + 8 + 8 + 2 = /26 , 거꾸로 /28 은 24 + 4 이므로 마지막 옥텟의 1이 네 개 = 240이다.
서브넷을 잘게 나눌수록 서브넷 수는 두 배로 늘고 호스트 수는 절반으로 준다. 둘을 곱한 주소 총량(256)은 변하지 않는다.
마지막 옥텟 2진수 빌린 비트 0 000000000 128 100000001 192 110000002 224 111000003 240 111100004 248 111110005 252 111111006
마스크에 나올 수 있는 값은 0 · 128 · 192 · 224 · 240 · 248 · 252 · 254 · 255 뿐이다. 1이 왼쪽부터 연속으로 채워지기 때문이다.
255.255.255.100 같은 마스크는 존재할 수 없다. 이런 보기가 오답으로 나온다.
항목 IPv4 IPv6 길이 32비트 128비트 표기 점 십진수 콜론 16진수 예 192.168.0.12001:0db8::1
IPv4 주소 고갈이 IPv6 등장의 이유다. 32비트 대 128비트 라는 대비를 묻는다.
항목 IPv4 IPv6 묶음 8비트씩 4묶음 16비트씩 8묶음 구분 기호 점(.) 콜론(:) 진법 10진수 16진수 주소 종류 유니캐스트·브로드캐스트 ·멀티캐스트 유니캐스트·애니캐스트 ·멀티캐스트 루프백 127.0.0.1::1
2001:0db8:0000:0000:0000:0000:0000:0001 16비트 × 8묶음 = 128비트
2001:db8:0:0:0:0:0:1 각 묶음의 앞쪽 0 은 생략
2001:db8::1 0 이 이어진 묶음은 :: 로 한 번에
:: 는 한 주소에 한 번만 쓸 수 있다. 두 번 쓰면 각각 0이 몇 묶음인지 알 수 없기 때문이다.
IPv6에는 브로드캐스트가 없다. 그 역할은 멀티캐스트가 넘겨받았다. "IPv6의 주소 종류가 아닌 것"을 물으면 브로드캐스트다.
숫자를 헷갈리지 않으려면 4 × 8 = 32, 8 × 16 = 128 로 외운다. 가운데 낀 48비트는 MAC 주소 다.
내일은 이 주소를 리눅스에서 실제로 설정하고 확인하는 명령을 다룬다.
서브넷마스크 : IP 주소에서 네트워크 부분과 호스트 부분을 가르는 값.
네트워크 주소 : 호스트 비트가 모두 0인 주소. 네트워크 자체를 가리킨다.
브로드캐스트 주소 : 호스트 비트가 모두 1인 주소. 그 망 전체에 보낼 때 쓴다.
사설 IP : 인터넷에 직접 나가지 않는 내부용 주소. 10, 172.16~31, 192.168 대역이다.
루프백 주소 : 자기 자신을 가리키는 127.0.0.1.
CIDR 표기 : /24처럼 네트워크 비트 수로 마스크를 나타내는 방식.
멀티캐스트 : 여러 대상에게 동시에 전송하는 방식. D 클래스가 이 용도다.
IPv6 : 128비트 주소 체계. 콜론으로 구분된 16진수로 표기한다.
📝 연습 문제 선택지를 클릭하면 정답·해설이 펼쳐집니다.
C 클래스 네트워크에서 서브넷마스크가 255.255.255.192일 때 하나의 서브넷에서 사용 가능한 호스트 IP 개수로 알맞은 것은?
다음 중 IP 주소 172.20.10.5가 속하는 주소 유형으로 알맞은 것은?
A 공인 IP 주소 B 루프백 주소 C 사설 IP 주소 D 멀티캐스트 주소 다음 중 IP 주소 200.100.50.1이 속하는 클래스로 알맞은 것은?
다음 중 서브넷마스크로 사용할 수 없는 값으로 알맞은 것은?
A 255.255.255.100 B 255.255.255.192 C 255.255.255.240 D 255.255.255.0 다음 중 IPv6 주소의 길이로 알맞은 것은?