고만 쓸라고 이전 포스팅 마무리 했는데ㅎㅎ..

내일 할라고 했는데~

내일은 내일의 할 일이 생길것 같다

하고 자야지!!


서브넷팅은 클래스 A와 B를 더 작은 개념의 주소로 쪼개는 것 입니다.


서브넷팅은 왜 등장했는지 알아야 합니다.

클래스 기반의 주소체계의 문제점은 클래스 A,B클래스의 주소가 낭비되는 것 때문에 나왔습니다.

이 낭비되는것을 나눠서 부족한 C클래스들에게 나눠주기 위해서 나왔습니다.

주로 클래스 A,B는 서브넷팅을 해서 클래스C가 슈퍼넷팅 할 수 있게 도와줍니다.


서브넷팅

자신의 네트워크 주소를 더 작은 서브네트워크 주소로 나누는 것 입니다. ( 자신이 발급받은 네트워크 블럭을 여러조각으로 나누어 주는것.)

서브네트워크는 2의 배수로 나눌 수 있습니다.


단국대학교가 B클래스를 받았으면, 2의 14승개 만큼 사용할 수 있습니다.

하지만 이렇게 많은 컴퓨터들의 하나의 네트워크로 묶어서 사용하면, 한 컴퓨터가 데이터를 전송하면, 다른 컴퓨터들은 자신의 데이터가 아니면 다 데이터를 버려야 합니다. 그리고 모든 컴퓨터중 적어도 2개의 컴퓨터가 데이터를 보낼 확률은 매우 높습니다. ( CSMA/CD가 발생하겠죠. )


이런걸 방지하기 위해서 이전에 포스팅에서 말 했다싶이, 

단국대 네트워크는 중규모로 공과대학 네트워크, 자연대 네트워크, 융합기술대학 네트워크, 이렇게 나뉩니다. 

소규모로는 공과대학의 1층 네트워크,2층 네트워크,3층 네트워크 이런식으로 나뉩니다.

그렇기 때문에 이 속에서 트래픽이 전송되고 받을 수 있습니다. 실제로 모든 네트워크는 이런식으로 서브넷팅이 되어 있습니다. ( 저도 공부하면서 이 부분에서 와.. 인간은 정말 똑똑하다 생각 많이했습니다ㅋㅋㅋㅋ)


( 그림 그리는게 젤 오래 걸려여..자고싶다)

위 그림은 4개로 나눈건데요, 4개로 나눈건 2비트가 사용이 됩니다.

기존의  IPv4주소기반 B클래스는 netid를 2바이트, hostid를 2 바이트를 사용합니다.

하지만 4개로 나누기 위해서 hostid의 2bit를 netid로 변경했습니다.

R1의 네트워크를 4개로 나눴습니다. 각각의 네트워크를 연결하기 위해서 라우터가 연결하고 있습니다. 내부적으로 4개의 네트워크가 있지만, 이 네트워크는 밖에서 볼 때는 하나의 네트워크로 보입니다.

여기서 상상을 해봅시다. 

141.14.0.0이라는 네트워크 주소가 지급이 됬습니다.

이것을 4개로 나눈다 하면, 네트워크 주소가 4개가 나오죠?

그럼 각각의 네트워크 주소는 몇번일까요?

순서대로 정리해 봅시다.

1. 256을 2로 나눈다. -> A. 0~127/ B. 128~256이 나옵니다.

2. 나온 네트워크 주소 A와 B를 또 2로 나눕니다. -> A. 0~63 / B. 64~127/ C.128~191 /D. 192~255번 으로 나뉩니다.

3. 이걸 외우지 말고 2진법으로 표기해 보세요.ㅎㅎㅎㅎㅎ 보는순간 규칙을 발견할겁니다.

2비트로 표현할 수 있는 숫자의 갯수는 4개입니다.

그럼 4개로 나누고 싶으면 2비트가 필요한거겠죠?

8개가 필요하면 3비트로 쪼개면되고. 3비트로 쪼개면 8개가 나옵니다. 

이렇게 나눌 수 있어야 합니다. 이해되쓰~~~~??? 


자. 그럼 정리해봅시다.

1. 앞의 그림에서 외부 네트워크는 141.14.0.0 네트워크가 네 개의 물리적인 서브 네트워크로 나누어진 것을 인식하지 못합니다. ( 외부에서는 단국대가 자연대, 공대, 공공인재대학 이렇게 나누어져 있는지 모릅니다. 외부에선 그냥 단국대 네트워크로 인식함. )

2. 외부에서 볼 때에는 위에 있는 그림에 나와있는 네트워크를 하나의 네트워크로 인식함.

3. 호스트 141.14.192.2로 가는 패킷은 항상 R1 라우터에 도착 ( 외부에서는 4개로 나누어져 있는지 모르니까 항상 R1에게 보내줌.)

4. R1에서부터 IP주소 해석 방법이 달라짐( 왜냐하면, R1 라우터는 141.14.0.0 네트워크가 네 개의 서브 네트워크로 나누어져 있음을 알기 때문이다.)

5. R1 라우터는 패킷을 141.14.192.0 네트워크로 전달


그런데 다시 말하면, 우리가 지금까지 외부에서(단국대밖에서) 141.14.192.2 하면 서브네팅 됬다는 것을 모르기 때문에, 클래스 기반의 주소체계를 쳐다봅니다.

그럼 네트워크 마스크(디폴트 마스크)를 해서 141.14.0.0으로 만듭니다. 그런 후, R1에게 보냅니다.

그런데 R1은 내부적으로 서브넷팅이 됬다는 것을 알고 있습니다. 그렇기 때문에, R1은 디폴트 마스크로 다 지워버리지 못하죠.

그렇기 때문에, 그 뒤에 있는 192(141.14.192.0)를 살려야 합니다. 그럼 이제 이것을 어떻게 뜯어낼까 하는게 문제죠.



위 그림을 보면서 기존의 서브넷 마스크와, 서브넷 마스크의 차이점을 봅시다.


네트워크 마스크는, 블록 또는 네트워크 주소를 알아내기 위해서 사용합니다. 서브 네트워크가 없는 곳에서 사용하죠.

하지만 서브넷 마스크는 서브 네트워크의 주소를 알기 위해서 사용합니다.




그럼 서브넷 주소를 계산해볼까요?

서브넷 주소는 정석적인(Straight) 방법과 편법적인(Short Cut)방법으로 나뉩니다.

먼저 Straight방법을 많이 연습해 보고 Short Cut으로 넘어가시길 권장합니다.

정석적인 방법은, IP주소와 서브넷 마스크를 AND해서 계산했죠.

이 계산법은 서브넷팅을 몇개로 쪼갯는지(몇 bit를 썻는지)를 보시면 됩니다.

위의 그림에서는 4개로 쪼갯기 때문에, subnetid가 2bit가 추가가 됬죠. 여기에서 조금 얍새가 있습니다. 처음 2개의 bit가 1 1 으로 시작하기 때문에, 이 mask를 통과하면 0, 혹은 64이상이 됩니다.( 이 말을 읽고나서 바로 이해하셔야 합니다! )

쉽죠??ㅋㅋㅋ


디폴트 마스크와 서브넷 마스크에 대해서 봅시다.

서브 네트워크의 수는, 디폴트 마스크에서 0이 1로 바뀐 비트의 수로 계산하면 됩니다. 만약 3개가 바뀌었다면 8개겠죠?

그럼 서브 네트워크에 속하는 IP의 주소수는 몇개일까요?

서브넷 마스크에서 0인 비트의 수로 계산하면 됩니다.

앞의 그림에서는 0이 13개 있으니까( 255.255.192.0은 11111111.11111111.11000000,00000000 임. -0은 총 13개)

그럼 2¹³=8192개의 IP주소 생성 가능합니다.


자자 그럼 짧게 문제??같은거 풀어보고 갑시다.

회사에서 상사가 7개의 서브넷팅을 원합니다 몇개로 나눌까요?

-> 2³ = 8개 (1개버림)

그럼 상사가 17개 필요하다고 합니다. 몇개로 나눌까요?

-> 2의 5승개(32개로 만듬, 왜냐하면 16개만 만들면 1개가 모자라기 때문에)


여기서의 서브넷팅의 장담점을 간단하게 보고 갈까요?

장점은 

트래픽을 분리할 수 있습니다.( 지역화 해서 분리)

그럼 유니캐스트 같은경우는 스위치 쓰면 서브넷팅 안해도 되지 않나요!?!!?!? 라는 질문이 나올 수 있지만 그럼 되려 물어봐 주겠다.

그럼 브로드 캐스트는 어떻게 할껀데?

할 말이없죠? ㅋㅋㅋ

서로 방송을 할 때 충돌이 나지 않아야 하기 때문에 서브넷팅으로 나누는게 좋지요. 트래픽이 충돌나는것도 막을 수 있고.

근데 서브넷팅을 많이 하면 라우터의 갯수가 많아지기때문에 돈이 많이 듭니다. 그리고 전체적으로 브로드캐스팅 하기가 어려워 집니다.

하나의 블럭만 있으면 한번만 하면 되는데, 블럭이 여러개면 여러번의 방송을 해야되기 때문이다.



오늘 알고리즘도 포스팅 할 예정이였는데 벌써 두시네요ㅋㅋㅋㅋㅋㅋㅋ

내일부턴 할 시간이 없는데.....아쉽다 ㅠㅠㅠ 시간복잡도 빅오표기법 재귀 시간복잡도 등등 많이 공부해놨는데 아쉽네요~!!

이번주에는 이제 안드로이드를 공부할 예정이라 포스팅을 못하겠네요. 다음주는 시험기간이고..

빠르면 다다음주에 봅시다!

그 다음 포스팅은 슈퍼넷팅부터 뵙도록 하겠습니다.


굿밤^^

+ Recent posts