ServeNet

hyomkim·2021년 3월 10일
0

네트워크

목록 보기
4/4

ServeNet

서브넷(ServeNet)은 사실 우리가 알고 있는 LAN입니다.

서브넷이라는 용어를 사용하는 이유는 WAN이 생기며 인터넷 이라는 용어가 생겼는데, 인터넷 안에 속해있는 LAN을 그대로 부르기도 뭐하고 LAN은 예전에도 있었기 때문에 이를 구분하기 위해서 서브넷 이라고 이름을 붙여 주었습니다.

알고나니까 별거 없죠? ㅎ

ServeNet Mask

서브넷 마스크란?

서브넷 마스크(servnet mask)해당 IP가 같은 서브넷에 속하는지 확인하기위한 일종의 확인 코드 같은거에요.

이전에 IP에 관하여 다루었을때 IP는 NetworkID 와 HostID로 이루어저 있다는 이야기를 했습니다.

IP를 간단하게 표시하면,
IP 주소 = NetworkID + HostID의 순서로 표시 할 수 있습니다.

여기서 순서 라는 표현을 썼지요?

IP주소는 IP주소의 가장 왼쪽비트부터 정해진 비트만큼 NetworkID가 자리잡고 있습니다. 그리고 나머지 비트가 HostID로 구성되어 있지요.

NetworkID를 통해 어느 네트워크에 소속되어 있는지 표시하고
HostID를 통해 Host의 위치를 표시한다고 했습니다.

그렇다면 주어진 사설 IP가 같은 서브넷이 있는 주소인지 확인하려면? NetworkID부분만 확인하면 됩니다!

그런데 말이 쉽지, IP마다 NetworkID비트 부분의 길이가 다 다른데, 상대방의 IP에서 어디까지가 해당 비트인지 알 수 가 없는데 어떻게 비교하면 될까요?

제가 알고있는건 내 IP의 NetworkID 비트의 길이 정도인데요...

그렇다면, 내 NetworkID의 비트를 기준으로 IP의 나머지 값을 전부 가려(마스크)버리면 어떨까요??

이것이 바로 서브넷 마스크입니다.

서브넷 마스크 사용해보기

퍼즐게임을 풀어보신 분들이라면 한번 쯤 이런 퍼즐을 풀어보셨을 겁니다.

종이 위에 의미가 전여 없어보이는 여러개의 문자가 적혀있는데,
특정 위치에 구멍이 뚤린 다른 글자를 위에다 겹쳐보면 의미가 있는 단어나 문장이 보입니다.

서브넷 마스크도 이런식으로 IP의 비트들 중 필요 없는 부분은 가리는 거라고 생각하시면 되요.

원리는 생각보다 간단한데 시작하기 전에 논리 연산이라는 녀석을 알고있어야 해요.

논리 연산도 공부하면 정말 복잡한 내용이 많지만, NetMask연산은 간단하게 AND연산만 알고 있으면 됩니다!

AND연산(&)은 간단히 말해서
비교하는 양쪽이 모두 true 일때만 true다! 입니다.

true & true = true
false & true = flase
false & false = flse

컴퓨터에서 0은 false, 나머지 값(대표적으로 1)은 ture로 인식한 다는 사실을 알고 있지요?

IP또한 비트단위로 보면 0과 1로 이루어져 있습니다.
그렇다면, IP주소와 서브넷 마스크의 비트들을 서로 AND연산을 해준다면?

IP주소 : 10101000.01111110.00111111.00000011
서브넷마스크 : 11111111.11111111.11111111.11000000
일 때 각 자리의 비트를 서로 AND연산 해보면,

10101000.01111110.00111111.00000011
11111111.11111111.11111111.11000000


10101000.01111110.00111111.00000000
(보기 힘드시겠지만 양해부탁 드려요 ^^;;)

결과적으로 HostID는 전부 제거되고 NetworkID부분의 비트만 남은것을 확인할 수 있습니다!

즉 서브넷 마스크만 알고 있다면 어떤 IP던간에 NetworkID를 확인할 수 있는거에요!
(물론 내가 속한 서브넷의 NetworkID와 같은지 비교한다는 점에서만요!)

그리고 이 NetworkID가 같다는 말은 같은 서브넷 안에 있다는 이야기가 되겠지요!

그래서 IP 주소화 함께 서브넷 마스크를 같이 표시해 줍니다.

168.126.63.0/255.255.255.192

그런데 이것도 너무 길잖아요? 그래서 개발자들은 한번더 꼼수를 부립니다.

서브넷 마스크는 반드시 시작부터 일정 길이의 비트가 연속으로 1로 이루어져 있어요. 그리고 나머지는 비트는 반드시 0이죠.

그래서 1비트의 갯수만 표시해 주기로 합니다.
(이 표기법을 사이더(CIDR) 표기법 이라고 합니다.)

서브넷 마스크가 다음과 같다면
11111111.11111111.11111111.11000000

1이 총 26개 이므로 다음과 같이 IP에 표시합니다.
168.126.63.0/26

Refernce :
https://www.clien.net/service/board/lecture/15882226

https://kim-dragon.tistory.com/9

profile
C++을 좋아하는 조금 모자란 사람이랍니다!

0개의 댓글