아..배고파

치킨이 넘나 먹고싶은것..

결국 치킨은 못먹고왔죠

시간이 몇신데 ㅠㅠ포스팅이나 하구 얼렁 자야지 


A클래스와 B클래스는 이미 고갈됬고, 주소 낭비도 심했죠. 그리고 개인에게는 C클래스도 너무 큽니다.(C클래스도 개인에게는 낭비가 되죠.)

이렇한 문제 때문에 나온것이 클래스 없는 주소 지정입니다. 클래스 없는 주소 체계는, 낭비되고 있는 IP주소 때문에 "꼭 필요한 갯수만 나누어주자. 2명에게는 2개의 주소만 주고 400명에겐 400명에게 맞는 주소를 발급해주자"라는 곳에서부터 시작했습니다.

그런데 여전히 문제가 있습니다. 컴퓨터에서는 원하는 만큼 쪼갤 수 있다고 해도 항상 블럭에서의 주소의 수는 2의 거듭제곱이 되어야 합니다.

만약 IP주소가 11개 필요하더라도, 16개가 들어있는 블럭을 주거나 해야합니다.(마스크 때문이기도 한거죠!)

그리고 , 블럭이 N(2->4->8->16.. etc)개의 주소를 갖으면, 시작주소는 N으로 나누어져야 합니다.

그럼 여기에 256보다 작은 수면, 4번째 Byte가 N으로 나누어 떨어지면 됩니다.

-> N<256 - > 마지막 바이트가  N으로 나누어져야 함. 

-> 그렇다는건, 마지막 바이트가 0이 아니여도 시작주소가 될 수 있다는 것이죠!


그럼 여기에서 1024개의 주소를 갖는 블록의 시작 주소는?

주소의 갯수가 256개가 넘어가면, 세 번째 네번째 바이트가 N으로 나누어져야 합니다.

-> N<65,536(256²)

1024의 주소는, 256개의 한 블럭이 4개가 합쳐진 거죠? 그렇다는건, 세번째 바이트는 몇 일까요?

1024는 컴퓨터로 표현하려면 2바이트가 필요합니다. 1바이트는 256까지밖에 표현을 못하니까 추가적으로 1바이트가 더 필요한거죠.

그렇다는건 1024를 표현하려면 첫번째 바이트에는 4가 들어가 있고, 두번째 바이트는 0이 들어가 있습니다.(4x256^1 + 0x 256^0)

그러면 1024개의 주소를 갖는 블록의 시작 주소는 1024로 나누어 떨어지게 되는거죠.

즉, 그렇다는건 주소의 갯수가 256개가 넘는것들의 시작주소는 4번째 바이트가 0이 될 수 밖에 없습니다!!( 주소가 256개가 넘는것은 기본적으로 2바이트를 사용하는 것이고, 2바이트를 사용하게 된다면, 첫번째 바이트도 256으로 나누어 떨어져야 하는거죠. )

여기까지 이해 됬다면!!

1024개의 주소를 갖는 블록의 시작주소를 맞추라 하는 문제에서, 206.16.37.32같은 주소가 주어진다면, 바로 " 아 !! 어디서 낚시를해!! 마지막 바이트가 0이 아니자나!!"라고 생각할 수 있어야 합니다.

그리고 추가적으로 " 1024는, 256이 4개로 이루어져 있으니까, 3번째 바이트가 4로 나누어져야 하지!!! " 라고 생각할 수 있어야 하죠!



지금까지 클래스가 있는 주소체계에서는, 각 클래스(A클래스,B클래스,C클래스)가 주어지면 Default Mask를 알아낼 수 있었죠? 그리고, 서브넷 되거나 슈퍼넷이 되면 몇개의 블럭이 합쳐지고,분리 됬는지에 따라 해당하는 서브넷 마스크와 슈퍼넷 마스크를 알 수 있었습니다. 이 마스크를 이용하여 네트워크 주소를 추출한거죠. 그렇다면 클래스 없는 주소체계에서는 어떻게 주소를 알아낼까요? 

공통점은 IP주소와 마스크를 줘야 합니다.

클래스 기반 주소체계는 IP만 알아내면, 네트워크 마스크(디폴트 마스크)를 알 수 있지만, 슈퍼넷이 되었는지, 서브넷이 되었는지는 모릅니다.  마스크를 줘야지 알 수 있는거죠.

그렇다면 공통으로 만들어봅시다.

이 세개 ( 그냥 IP주소, 서브넷팅 된 주소, 슈퍼넷팅 된 주소 ) 를 다 합치면 IP주소와 마스크가 필요합니다.

저희가 클래스 주소 기반 주소 10.10.10.0이라 하면 , 이것만 있어도 충분히 많은 정보를 알 수 있습니다. A클래스이며 디폴트 마스크는 255.0.0.0입니다. 그렇다는건 여기의 시작주소는 10.0.0.0입니다. 그리고 여기에서 서브넷팅과 슈퍼넷팅을 하면 10.10.10.0과 함께, 서브넷 마스크나, 슈퍼넷 마스크 을 줘야 합쳐졋는지 쪼개졌는지 알 수 있습니다. 그러면 이 전체를 하나의 경우로 나누려고 하면 IP주소와 마스크만 있으면 됩니다.


그렇다면 클래스 주소 없는 주소 지정에서도 2가지의 주소 (IP주소,마스크)가 있어야 하죠.

여기에서는 슬래쉬 표기법을 사용합니다.

마스크는 255.255.255.224 = 11111111 11111111 11111111 11100000 이런식으로 주어지죠.

5개의 Bit가 0으로 바뀐 경우인데 이렇다는건 27개의 1을 갖고 있죠?

그렇다는건 IP주소/27( 1의 갯수 ) 이런식으로 표기합니다.

슬래쉬 표기법의 예를 하나 들어보죠.

205.16.37.24/29 라는 값이 주어졌다면, 여기에서 많은 정보를 알 수 있습니다. 일단 마스크는 11111111 11111111 11111111 11111000 이 되는거죠.

이 마스크에 AND(&)하면 205.16.37.24가 첫 주소인걸 알 수 있습니다. 물론 끝 주소는, +7인 205.16.37.31이죠.(3비트기 때문에 +7을 해야합니다.)

이해가 되셨나유~_~ 모르겠으면 댓글을 달아주십쇼~


아참!! 잊고갈뻔 했네요 ㅋㅋㅋㅋ

클래스 기반 주소체계에서는 Netid와 Hostid라고 이야기 했죠? 클래스 없는 주소 지정에서는 Prefix와 Subffix라 부릅니다.

방금 풀었던 문제에서의 Prefix는 29, Suffix은 3이 되는거죠~!!


그렇다면 마지막으로 문제 하나 풀고 갑시다.

주소 중 하나가 167.199.170.82/27이면 네트워크 주소는 어떻게 될까요?

일단 Prefix는 27개, Suffix는 5개. Subfix 5개로 표현 가능한 수는 31개. 그렇다면 마스크는 255.255.255.224(256-32).

167.199.170.82와 255.255.255.224를 AND(&)하면 시작주소는 167.199.170.64 ! ( 64 < 82 < 128이므로! )


클래스 없는 주소체계에서도 서브넷팅은 할 수 있습니다!


만약 회사의 사원이 1000명이라 하면, 1024개(1024는 슬래쉬가 10개가 필요하죠 그렇다는건 22비트가 1인것을 받으면 됩니다.)의 주소가 있는 블럭을 받은 후, 이것들을 부서별로 나눠서(서브넷팅 해서) 쓰면 됩니다.

근데 슈퍼넷팅은 필요가 없습니다. 이미 신청할때부터 필요한 갯수만큼 받으니까요~!



이번 포스팅은 생각보다 길지가 않네요( 시험기간에 포스팅해서 그래... )

다음 포스팅에서는 라우팅 하는 방법에 대해서 포스팅하도록 하겠습니다.

모두 굿밤~_~



+ Recent posts