post-custom-banner

🔗 프로세스 스케줄링 문제 풀기 🔗 페이지 교체 알고리즘 문제 풀기

*이 글에서의 ip주소는 ipv4를 기준으로 한다

서브넷 > 서브넷 마스크

💡 ip주소의 구조와 길이

기본적으로 ip주소는 네트워크 ID + 호스트 ID로 구성된다.

ip주소의 길이는 총 32bit(= 2^32)인데, 이 길이를 네트워크 ID 와 호스트 ID가 8비트 단위로 나누어 쓰게 된다.

예를 들어 네트워크 ID가 24bit를 가진다면 호스트 ID는 32 - 24 = 8bit 만큼을 쓸 수 있다.

💡 IP클래스

ip클래스는 네트워크 ID 와 호스트 ID가 8비트 단위로 나뉘는 범위에 따라 결정된다.

아래 그림은 정보처리기사 시험에서 주로 다뤄지는 클래스를 정리한 것이다.

A클래스는 8bit의 네트워크 id를 할당하고, 나머지 24bit는 호스트 id에 할당한다.

B클래스는 32bit를 각 16bit씩 나누어 네트워크 id와 호스트 id에 할당한다.

C클래스는 네트워크 id에 24bit를, 8bit를 호스트 id에 할당한다.

이런 차이가 있다고 알아두고 아래의 표를 참고하자.

  • ip클래스 대역표

💡 서브넷팅

서브넷팅은 네트워크 분할 작업이다. 서브넷팅은 왜 필요할까?

예를 들어 기업a에서 ip주소를 100개 요구했다고 하자.

그러면 기본적으로 C클래스에서 가용 가능한 ip주소는 2^8 = 256개 중에서 사용하지 못하는 2개의 주소를 뺀 254개인데, 254에서 100개를 줘버리고 나면 남은 154개는 사용되지 못한 채로 낭비된다. 이 낭비를 막기 위해 나온 개념이 서브넷 마스크이다.

💡 서브넷 마스크

정리하자면 서브넷 마스크는 IP 주소를 네트워크 및 호스트 주소와 분리하는 것을 말한다.

예로 192.168.10.100이라는 ip주소를 가진다고 해보자.

위의 그림처럼 각 자릿수는 8비트(=1옥탯)씩 가진다. 여기서 네트워크 ID 와 호스트 ID가 나뉘어진 것을 볼수 있는데, 위의 그림은 192.~의 대역수를 가진 C클래스(표 참고)를 나타낸다.

각 자릿수는 점(.)을 기준으로 나누며, 자릿수마다 8비트의 공간을 가진다. C클래스의 기본 서브넷 마스크는 255.255.255.0인데, 이를 CIDR(사이더) 표기법*으로 나타내면 192.168.10.100/24로 표기할 수 있다.

💡 CIDR 표기법

CIDR(사이더) 표기법*
클래스 없는 도메인간 라우팅 기법

/24는 24비트를 네트워크 id로 쓰겠다는 뜻이다. 나머지 32-24비트는 호스트 id로 사용된다.

정보처리기사 실기 프로그래밍 기출 서브넷 서브넷 마스크 요약 정리

📝 문제풀어보기-1

IP 주소체계에서 192.1.2.3이 속하는 클래스는?

IP 클래스 표 참고! 192부터 시작하는 C클래스가 답이 된다.

이걸 모를 경우 192를 2진수화 시켜서 시작 부분이 위의 표와 일치하는 값을 찾을 수도 있다.

예를 들어 192는 2진수로 11000000이므로 110으로 시작하는 C클래스가 된다.

C클래스


📝 문제풀어보기-2

아래 내용에 해당하는 서브넷 마스크 값은?

203.76.25.1/26

기본적으로 255.255.255.0인 서브넷 마스크 값의 255는 각 자리마다 8비트씩을 1로 하도록 더한 값이다. 128+64+32+16+8+4+2+1 = 255

따라서 8비트씩 3자리, 즉 24자리가 차있는 건데 거기에 총 26자리를 할당한다고 하면 2자리가 남는다.

다음 자리는 총 8비트를 가지지만 그 중 앞의 2자리만 가지기로 했으니까 128과 64에 해당하는 자리만 1로 바꾸게 되는 것이다.

따라서 128+64 = 192이므로 답은 아래와 같다.

255.255.255.192


📝 문제풀어보기-3

IPv4 C 클래스 네트워크를 26개의 서브넷으로 나누고, 각 서브넷에는 4~5개의 호스트를 연결하려고 한다. 이러한 서브넷을 구성하기 위한 서브넷 마스크 값은?

각 클래스는 8비트이다. C클래스, 즉 8비트 짜리를 26개로 나눈다는 것은 2의 몇 제곱까지가 26개를 담을 수 있는지를 구하는 것과 같다. 26개를 담으려면 최소한 2의 5제곱, 즉 32가 되어야 한다.

따라서 총 8자리 비트 중 앞의 5자리를 1로 채우게 된다.

그러면 128 + 64 + 32 + 16 + 8 = 248

248


📝 문제풀어보기-4

클래스 B주소를 가지고 서브넷 마스크 255.255.255.240으로 서브넷을 만들었을 때 나오는 서브넷의 수와 호스트의 수를 구하라.

B클래스이므로 네트워크id가 16bit로 채워진 255.255.0.0의 형태이다. 즉 B클래스 부분을 제외한 부분에서 서브넷을 구한다. 아래 볼드체 부분을 보자.

255.255.255.240

255는 이미 8개의 1비트로 채워져 있다는 뜻이다.

그러면 손을 댈 수 있는 자리는 240이다. 240은 2^8이 들어가야 채울 수 있다.

*이미지의 4094 -> 4096

2의 12제곱은 4096이 되므로 서브넷의 수는 4096이 된다.

그러면 총 16비트 중 12비트는 서브넷 주소로 사용된 거니까 나머지 4비트가 호스트로 사용될 수 있다.

2의 4제곱은 16이고, 총 16개의 주소 중에 맨 앞과 맨 뒤는 각각 network id와 broadcast id로 사용되므로 제외하여 16 - 2 = 14가 된다.

정답은 아래와 같다.

서브넷 4096
호스트 14


📝 문제풀어보기-5

IP address ‘172.16.0.0’인 경우에 이를 14개의 서브넷으로 나누어 사용하고자 할 경우 서브넷 마스크 값을 쓰시오.

일단 172.16.0.0 주소를 보고 'b클래스 범위군' 해야한다.

그러면 255.255.0.0중에 255.255를 제외한 .0.0자리 즉 8비트씩 총 16비트의 자리가 있다.

00000000 00000000

이를 14개의 서브넷으로 나누고 싶다고 했으므로 14를 담을 수 있는 최소한의 2^n값을 찾는다. 그 값은 16이고, 2^4이다.

따라서 2의 4승만큼 앞에서부터 비트를 채워주면 아래와 같다.

11110000 00000000

이를 10진수로 바꾼 서브넷 마스크의 값은 아래와 같다.

255.255.240.0


📝 문제풀어보기-6

IP 주소가 139.127.19.132이고 서브넷 마스크 255.255.255.192일 때 아래의 답을 작성하시오.

  • (1) 괄호안에 들어갈 네트워크 주소 : 139.127.19.( )
  • (2) 해당 네트워크 주소와 브로드캐스트 주소를 제외한 호스트 개수

네트워크 주소 구하기*
IP 주소와 서브넷 마스크의 AND 연산* 수행 : 비교할 두 비트가 모두 1이면 1 아니면 0

네트워크 주소 구하기

서브넷 마스크를 보면 앞 세 클래스(255.255.255)는 모두 1로 채워져있으므로 대상에서 제외한다.

192를 2진수로 바꾸면 11000000이고, 132를 2진수로 바꾸면 10000100이다.

11000000
10000100

AND 연산을 수행하면 둘다 1인 맨 첫자리 1만 남고 나머진 0으로 채워진다.

앞서 언급했듯이 1이 네트워크 주소, 0이 호스트로 쓰이므로 1이 들어간 자리는 2^7 = 128이 된다.

호스트 개수 구하기

192를 2진수로 바꾼 값은 11000000인데, 1은 네트워크 주소로 사용, 나머지 0부분이 호스트로 사용된다.

따라서 2^6 = 64다.

그러면 총 64에서 맨 앞의 네트워크 주소, 맨 뒤의 브로드캐스트 주소 2개를 빼주면 64 - 2 = 62개이다.

정답은 아래와 같다.

(1) 128
(2) 62


🙋🏻‍ 참고하면 좋을 사이트
🔗 [Inpa Dev 👨‍💻] IP 클래스 · 서브넷 마스크 · 서브넷팅 계산법 💯 총정리

🙋🏻‍ 참고한 곳
🔗 홍달쌤 유튜브 🔗 홍달쌤의 정보처리기사 실기 책

post-custom-banner

2개의 댓글

comment-user-thumbnail
2024년 7월 24일

문제 3번 이상합니다! 저는 224로 계산했는데 248로 답이 작성되어 있네요~

1개의 답글