일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- network
- 남궁성
- 10866
- 자바의 정석
- aws 자격증
- 개발바닥
- 논리구성도
- 물리구성도
- 역캡슐화
- 백준 2775
- 백준 1712
- 유선LAN
- 테슬라폰
- java
- 자바
- 인프콘
- 프로토콜
- 파이썬
- 다형성
- 상속
- TCP/IP
- 인터페이스
- 네트워크
- 데이터 송수신
- 파이썬 1712
- l3 스위치
- modifiers
- 계층화
- AWS CLF
- 1764
- Today
- Total
병훈's Blog
IP와 서브넷 마스크 본문
IP와 서브넷 마스크를 알기 전에 이진법을 알아야 해요.
IPv4주소는 이진법, 십진법을 같이 사용하니 간단하게 알아봅시다.
오른쪽 1부터 시작하여 왼쪽으로 갈수록 2배씩 수가 커집니다.
이진법 0000 0001 은 십진법 1 입니다.
이진법 0000 1000 은 십진법 8 입니다.
십진법 192는 이진법 1100 0000 입니다.
십진법 255는 이진법 1111 1111 입니다.
이진법을 십진법으로 나타내려면 각 자리에 맞는 수를 더하면 됩니다.
십진법을 이진법으로 나타내려면 보통 2로 나누어 계산합니다.
그러나 저는 각 자리의 수를 먼저 확인하고, 1을 배치합니다.
예를 들어 십진수 20을 보면, 16보다 크고 32보다 작으니까 16 자리에 1을 체크합니다.
그리고 4가 남으니까 4에 맞는 자리에 1을 체크합니다.
그럼 0001 0100 이 됩니다.
다들 지금 사는 지역은 어디신가요? 🌍
서울이요? 부산이요?
저는 경기도에 살다가 지금은 대전에 살고 있습니다.
지역마다 지역 번호가 있죠. 📞
경기도는 031, 대전은 042, 서울은 02 입니다.
번호는 '지역 번호 + 전화번호'로 구성되죠.
그리고 전화번호로 집을 식별합니다.
네트워크도 비슷합니다.
네트워크 주소로 흔히 쓰이는 IPv4를 보면
IPv4는 '네트워크 부분 + 호스트 부분'으로 구성되어 있습니다.
그리고 IP주소로 인터넷 주소를 식별합니다.
같은 네트워크라고 하면 *네트워크 부분이 같습니다.
색다르게 표현하자면 브로드캐스트 도메인이 같다고 할 수 있겠죠.
브로드캐스트 패킷은 같은 네트워크에 묶여있는 모든 대상에게 전송 되니까요.
즉 하나의 네트워크는 라우터 없이도 통신이 가능한 하나의 브로드캐스트 영역입니다.
그렇다면 하나의 IP주소(브로드캐스트 도메인) 안에는 수많은 PC가 있을 텐데, 이 PC들은 어떻게 구분할까요?
네. 이미 눈치채셨듯이 호스트 부분으로 구분합니다.
한 네트워크상에서 뒤에 오는 호스트 부분은 각 PC가 모두 달라야 통신이 가능합니다.
그럼 192.168.100.1(255.255.0.0) 과 192.168.200.1(255.255.0.0) 은 같은 네트워크일까요 다른 네트워크일까요?
"IP 주소가 다르잖아요. 당연히 다른 네트워크죠. 파란색으로 표시도 해주셨잖아요!!"
혹시 이렇게 생각하고 계신가요? 틀렸습니다!!
서브넷 마스크를 보면, 둘의 네트워크 부분은 모두 192.168 입니다. 동일한 네트워크죠.
그 뒤에 이어지는 100.1 과 200.1은 호스트 부분입니다.
결론은 IP주소는 다르지만 네트워크는 같습니다.
192로 시작하는 IP주소의 원래 서브넷 마스크는 255.255.255.0 입니다. C 클래스 이기 때문이죠.
제가 지금은 임의로 서브넷 마스크를 255.255.0.0 이라고 했습니다.
클래스와 서브넷 마스크가 뭐냐구요?
그 내용은 아래에 나오니까 잠시만 기다려주세요.
지금은 IP주소가 네트워크 부분과 호스트 부분으로 구분된다는 것을 확실히 알고 넘어가죠.
오케이! IP는 네트워크 부분과 호스트 부분으로 나누어져 있구나!
같은 네트워크 안에 있을 때 호스트 부분은 다 달라야 하는 거구나!
네 맞습니다. 그럼 네트워크 부분과 호스트 부분은 어떻게 나누는 걸까요?
192.168.100.1은 192.168.100 까지가 네트워크 부분이고, 1 이 호스트 부분입니다.
제 마음대로 나눈 거 아니냐구요? 아닙니다.
이런 약속을 해놓은 것이 바로 IP의 Class입니다.
IP Class는 A, B, C, D, E 5개의 클래스로 구분합니다.
D, E는 각각 멀티캐스트용과 연구용 이므로 A, B, C만 알면 됩니다.
A 클래스는 앞의 8비트가 네트워크 부분입니다.
B 클래스는 앞의 16비트가 네트워크 부분입니다.
C 클래스는 앞의 24비트가 네트워크 부분입니다.
A: 1 ~ 126 (0으로 시작, 0nnn nnnn.hhhh hhhh.hhhh hhhh.hhhh hhhh)
B: 128 ~ 191 (10으로 시작, 10nn nnnn.nnnn nnnn.hhhh hhhh.hhhh hhhh)
C: 192 ~ 223 (110으로 시작, 110n nnnn.nnnn nnnn.nnnn nnnn.hhhh hhhh)
D: 224 ~ 239 (1110으로 시작)
E: 240 ~ 255 (1111로 시작)
여기서 n이라고 쓰인 부분이 네트워크 부분이고
h라고 쓰인 부분은 호스트 부분입니다.
네트워크 부분을 나누는 기준이 서브넷 마스크입니다.
각각의 클래스는 기본 서브넷 마스크가 있습니다.
A 클래스의 기본 서브넷 마스크는 255.0.0.0 입니다. (1111 1111.0000 0000.0000 0000.0000 0000)
B 클래스의 기본 서브넷 마스크는 255.255.0.0 입니다. (1111 1111.1111 1111.0000 0000.0000 0000)
C 클래스의 기본 서브넷 마스크는 255.255.255.0 입니다. (1111 1111.1111 1111.1111 1111.0000 0000)
1을 제외하고, 0의 개수만큼 2의 제곱을 한 수가 호스트의 개수가 됩니다.
A 클래스 하나의 네트워크가 가질 수 있는 호스트 수는 2의 24승, 약 1600만 개 입니다.
B 클래스 하나의 네트워크가 가질 수 있는 호스트 수는 2의 16승, 약 6만 5000 개 입니다.
C 클래스 하나의 네트워크가 가질 수 있는 호스트 수는 2의 8승에서 2를 뺀 수인 254 개 입니다.
(2를 빼는 이유는 네트워크 자체의 주소와 브로드캐스트 주소를 제외한 것입니다)
이렇게 클래스마다 네트워크 부분과 호스트 부분은 미리 정해져 있습니다.
그러니 IP 주소 시작 범위 1 ~ 126, 128 ~ 191, 192 ~ 223 을 통해 바로 클래스별 서브넷을 알 수 있습니다.
"IP주소가 124로 시작하네? A클래스군. 그럼 기본 서브넷 마스크는 255.0.0.0 이겠군!"
"IP주소가 190으로 시작하네? B클래스군. 그럼 기본 서브넷 마스크는 255.255.0.0 이겠군!"
"IP주소가 200으로 시작하네? C클래스군. 그럼 기본 서브넷 마스크는 255.255.255.0 이겠군!"
이런 식으로 말이죠.
그럼 서브넷은 왜 쓰는 걸까요?
서브넷을 만드는 목적은 IP 주소를 보다 효율적으로 낭비없이 쓰기 위함과 적정한 주소 배정을 위함입니다.
서브넷을 만들 때 사용하는 마스크를 '서브넷 마스크'라고 합니다.
모든 IP 주소에는 서브넷 마스크가 있는데
서브넷을 하지 않은 상태로, 즉 클래스의 기본 성질대로 쓰는 경우에는
기본 서브넷 마스크를 사용합니다.
서브넷을 나눌 때 기억해야 하는 것은
이진수로 봤을 때 1이 되면 네트워크 부분, 0이 되면 호스트 부분입니다.
그리고 서브넷 마스크는 1이 끊기지 않고 이어져 있습니다. 1111 1111 이렇게요. 1110 1111 은 서브넷 마스크가 아닙니다.
IP 주소와 서브넷 마스크를 AND 연산한 값이 해당 IP 주소의 네트워크 주소입니다.
이는 IP 주소의 호스트 부분을 전부 0으로 한 것과 같습니다.
그리고 호스트 부분을 전부 1로 한 것은 그 네트워크의 브로드 캐스트 주소가 됩니다.
문제를 3개만 풀어보죠.
1. IP 주소가 128.110.121.32(255.255.255.0) 이라면 네트워크 주소는 어떻게 되는가?
- 128.0.0.0
- 128.110.0.0
- 128.110.121.0
- 128.110.121.32
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
2. IP 주소 203.10.24.27 이란 호스트의 서브넷 마스크는 255.255.255.240이다. 이때 이 네트워크의 호스트 범위와 브로드캐스트 주소는 어떻게 되는가?
- 호스트 203.10.24.16 ~ 203.10.24.31, 브로드캐스트 203.10.24.32
- 호스트 203.10.24.1 ~ 203.10.24.254, 브로드캐스트 203.10.24.255
- 호스트 203.10.24.17 ~ 203.10.24.31, 브로드캐스트 203.10.24.32
- 호스트 203.10.24.17 ~ 203.10.24.30, 브로드캐스트 203.10.24.31
--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
3. 클래스 B 주소를 가지고 서브넷 마스크 255.255.255.240으로 서브넷을 만들었을 때 나오는 서브넷의 수와 호스트의 수가 맞게 짝지어진 것은?
- 서브넷 2048 / 호스트 14
- 서브넷 14 / 호스트 2048
- 서브넷 4094 / 호스트 14
- 서브넷 254 / 호스트 254
- 서브넷 254 / 호스트 8190
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1번은 IP 주소의 시작이 128입니다. 그래서 기본 서브넷 마스크를 255.255.0.0 이라고 보실 수 있어요.
하지만 뒤에 255.255.255.0 이라고 나와 있습니다. 그러므로 IP 주소와 255.255.255.0을 AND 연산한 결과인
3번이 정답입니다.
2번은 IP 주소와 서브넷 마스크를 AND 연산하여 네트워크 주소를 구해보면 203.10.24.16이 됩니다.
마지막 비트가 0001 0000 입니다. 그러므로 브로드 캐스트는 0001 1111인 203.10.24.31 입니다.
네트워크 주소 ~.16이 호스트의 시작점, 브로드 캐스트인 ~.31이 호스트의 마지막이므로 이 둘을 제외한
진짜 호스트 주소의 범위는 203.10.24.17 ~ 203.10.24.30 이 됩니다. 4번이 정답입니다.
3번은 클래스 B 주소의 기본 서브넷 마스크가 255.255.0.0 인 것에 반해 255.255.255.240으로 서브넷을 만들었습니다.
뒷부분 16 비트만 이진수로 표현하면 0000 0000.0000 0000 이 1111 1111.1111 0000 으로 서브넷이 변경되었습니다.
네트워크 부분이 12비트 증가 하였으므로, 서브넷은 2의 12승인 4096 입니다. (답안에서는 앞뒤로 뺐네요)
호스트 주소의 개수는 0의 개수로 계산하여 2의 4승인 16이고, 네트워크 주소와 브로드캐스트 주소를 제외하면 14 입니다.
3번이 정답입니다.
어때요? 이해가 되시나요?
아래 블로그 글을 참고하시면 도움이 될 겁니다.
https://code-lab1.tistory.com/34
참고: 후니의 쉽게 쓴 Cisco 네트워킹
'Computer > Network' 카테고리의 다른 글
스패닝 트리 프로토콜(Spanning Tree Protocol) - 대장 브리지 뽑기 (1) | 2023.12.08 |
---|---|
스패닝 트리 프로토콜(Spanning Tree Protocol) (2) | 2023.12.07 |
Looping(루핑, 뺑뺑이) (0) | 2023.12.05 |
스위치의 개념과 L2, L3, L4, L7 스위치의 차이점 (4) | 2023.11.27 |
허브, 브리지/스위치, 라우터의 결정적인 차이 (2) | 2023.11.26 |