인프런 커뮤니티 질문&답변

정민교님의 프로필 이미지

작성한 질문수

그림으로 쉽게 배우는 네트워크

IP 클래스와 서브넷 마스크

12:35 or 연산이 아니고 and 연산인가요?

해결된 질문

23.07.31 12:53 작성

·

297

1

130.5.0.0과 255.255.254.0을 and 연산하면 그대로 130.5.0.0 아닌가요?

그대로인 것 같은데 이해가 잘 안됩니다.

답변 1

0

감자님의 프로필 이미지
감자
지식공유자

2023. 07. 31. 13:07

130.5.0.0과 255.254.0을 AND 연산 한 결과는 그대로 인 것이 맞습니다.
다만 서브넷 마스크가 1이 된 영역을 네트워크 주소부로 지정해주기 위해서 AND 연산을 하는 것입니다.
따라서 130.5.0.0에서 진한 0으로 표시된 영역의 7비트가 네트워크 주소로 사용되는 것입니다.

만약 서브넷 마스크가 없고 회사에서 사용하는 네트워크의 영역이 130.5.0.0/16이라면 사용 가능한 주소는 130.5.0.0 ~ 130.5.255.255까지 일겁니다.
하지만 서브넷 마스크가 255.255.254.0으로 AND연산을 해서 네트워크 주소를 재정의 했기 때문에 130.5.0.0 ~ 130.5.1.255까지로 줄어들게 됩니다.
여기서 진한 글씨로 표시된 1은 서브넷 마스크의 255.255.254.0으로 인해 254의 마지막 비트는 호스트 주소로 사용되었기 때문입니다.

궁금증이 해결되셨나요?😊

정민교님의 프로필 이미지
정민교
질문자

2023. 07. 31. 16:04

130.5.0.0/16

10000010 00000101 00000000 00000000 / 16

255.255.254.0

11111111 11111111 11111110 00000000

and 연산하면 그대로

10000010 00000101 00000000 00000000 인 게 맞는거죠?

여기서 1은 첫 바이트의 첫 번째 비트, 7번째 비트, 2 바이트의 6번째 비트, 8번째 비트 아닌가요..?

근데 1이된 영역을 네트워크 주소부로 지정해준 다는 말이 무슨 말인지 잘 모르겠습니다..

감자님의 프로필 이미지
감자
지식공유자

2023. 07. 31. 16:47

비트로 설명을 드려야 하기 때문에
130.5.0.0은 10000010 00000101 00000000 00000000로,
255.255.254.0은 11111111 11111111 11111110 00000000로 설명하겠습니다.

먼저 10000010 00000101 00000000 00000000 /16에서 네트워크 주소는 앞 2바이트입니다. 아래 사진을 보시면 빨간색이 네트워크 주소, 초록색이 호스트 주소입니다(텍스트에 색을 입힐 수 없어서 사진으로 첨부했습니다.)

image초록색 영역은 호스트 주소로 16개의 비트가 있으니 2^16승으로 65536개의 주소를 회사 내 컴퓨터에 부여할 수 있습니다.
하지만 너무 많은 주소를 사용하기 때문에 조금 줄이기 위해서 서브넷 마스크를 사용하기로 합니다.

서브넷 마스크는
11111111 11111111 11111110 00000000로
10000010 00000101 00000000 00000000와 AND연산합니다.
여기서 서브넷 마스크의 1로 설정된 비트가 우리가 사용하는 주소의 네트워크 주소가 되는 것입니다.
따라서 10000010 00000101 00000000 00000000 /16는 아래와 같이 네트워크 주소가 확장됩니다.

image원래 주소에서 서브넷 마스크의 1로 설정된 비트만큼 빨간색으로 되었습니다.
이렇게 빨간색으로 설정된 부분이 네트워크 주소로 사용됩니다.
이제 이 네트워크에서 사용하는 네트워크 주소는 빨간색 영역으로 고정되었기 때문에 이 네트워크에서 사용할 수 있는 IP 주소는 초록색 영역으로 표현할 수 있는 IP주소입니다.

초록색으로 색칠된 비트는 총 9개이므로 2^9, 512개의 주소를 표현할 수 있게 되는 것입니다.
따라서 10000010 00000101 00000000 00000000 ~ 10000010 00000101 00000001 11111111 까지 호스트 주소로 사용하는 것이죠.
(10진수로 바꾸면 130.5.0.0 ~ 130.5.1.255)

이렇게 서브넷 마스크로 네트워크 주소를 새로 정의해서 고정시켜놓은 덕분에 주소를 더 아낄 수 있게 되는 것입니다.
만약 회사의 다른 지점에 10000010 00000101 00000010 00000000/16으로 네트워크를 할당하고 여기서 서브넷 마스크를 11111111 11111111 11111110 00000000로 똑같이 적용하면 아래와 같이 빨간색 영역이 네트워크 주소가 됩니다.

image 그러면 10000010 00000101 00000010 00000000 ~ 10000010 00000101 00000011 11111111까지 총 512개의 주소를 표현할 수 있는 것이죠.
(10진수로 바꾸면 130.5.2.0 ~ 130.5.3.255)

 

핵심은 AND 연산의 결과가 0이라고 해서 이를 무시하는 것이 아니라 서브넷 마스크의 1로된 비트에 대응하는 비트가 모두 네트워크 주소가 된다는 것입니다.

설명이 잘 됐는지 잘 모르겠네요 ㅎㅎ

궁금하신 점 있으시면 다시 댓글로 남겨주세요!

정민교님의 프로필 이미지
정민교
질문자

2023. 07. 31. 17:51

서브넷 마스크의 1로 표시되는 비트와 비트 연산에 대응되는 부분 모두가 네트워크 주소가 된다는 말씀이신거죠?

상세한 설명 감사합니다

감자님의 프로필 이미지
감자
지식공유자

2023. 07. 31. 18:14

네 맞습니다!