본문 바로가기

develop/network

넷마스크 산출법 요약 및 10진법 이진법 계산법

255.255.255.0            =        11111111.11111111.11111111.00000000        24비트
255.255.255.128         =        11111111.11111111.11111111.10000000        25비트
255.255.255.192         =        11111111.11111111.11111111.11000000        26비트
255.255.255.224         =        11111111.11111111.11111111.11100000        27비트
255.255.255.240         =        11111111.11111111.11111111.11110000        28비트
255.255.255.248         =        11111111.11111111.11111111.11111000        29비트
255.255.255.252         =        11111111.11111111.11111111.11111100        30비트
255.255.255.254         =        11111111.11111111.11111111.11111110        31비트
255.255.255.255         =        11111111.11111111.11111111.11111111        32비트



255는 11111111 = 8비트.

계산할 때 255는 볼 필요 없고 255가 아닌 숫자만 보자.


255.255.255.x = 24비트이므로 255.255.255.0은 24비트


255.255.255.128 = 24비트 + 128은 10000000 이므로 1의 갯수 만큼 비트를 더해 25비트


255.255.255.192 = 24비트 + 192는 192는 11000000 이므로 2를 더해서 26비트.


즉 1의 갯수가 비트 가 된다.


참고로 2진법 구하는 쉬운 방법은 다음과 같다


값을 2로 나누고 나머지를 구해서 나누어 지지 않을때까지 나눈다.


ex) 128 = 

1. 128 / 2 의 목은 64 나머지는 0.

2. 64 / 2 의 목은 32 나머지는 0.

3. 32 / 2 의 몫은 16 나머지는 0.

4. 16 / 2 의 몫은 8 나머지는 0.

5. 8 / 2 의 몫은 4 나머지는 0.

6. 4 / 2 의 몫은 2 나머지는 0.

7. 2 / 2 의 몫은 1 나머지는 0.

8. 1이 더이상 나눠지지 않으므로 표기는 나누어지지 않는 몫 1부터 나눈 나머지를 역으로 합치면

10000000 이 된다.


255 = 

1. 255 / 2 의 몫은 127 나머지는 1.

2. 127 / 2의 몫은 63 나머지는 1.

3. 63 / 2 의 몫은 31 나머지는 1.

4. 31 / 2 의 몫은 15 나머지는 1.

5. 15 / 2 의 몫은 7 나머지는 1.

6. 7 / 2 의 몫은 3 나머지는 1.

7. 3 / 2 의 몫은 1 나머지는 1.

8. 1이 더이상 나눠지지 않으므로 표기는 나누어지지 않는 몫 1부터 나눈 나머지를 역으로 합치면

11111111 이 된다. 



만약 어떤 ip의 비트가 27 비트이면 넷마스크는 어떻게 될까?


27 비트이면 255.255.255.x 가 24비트이므로


27 - 24 = 3 비트가 더 있는 것이며


3비트는 1이 3개이므로 11100000 가 된다.


11100000는  10진법으로 변환하면 224가 되는데


10진법을 2진법으로 계산하는 방법은 다음과 같다.


128 64 32 16 8 4 2 1

1    1   1   0  0 0 0 0


각 자리가 1인 수의 위에 쓰인 숫자를 다 더하면 10진수가 된다.


128 + 64 + 32  = 224


고로 10진수로 224가 된다.


또다른 예를 들어보자.


1101100101 을 10진수로 바꿔보면


512 256 128 64 32 16 8 4 2 1

  1    1    0   1  1   0  0 1 0 1


512 + 256 + 64 + 32 + 4 + 1 = 869


즉 869가 된다.



27비트의 넷마스크로 쓸 수 있는 ip 갯수는 


전체 ip대역 값인 255에서 넷마스크 값인 224를 빼고 1을 더하면 32가 나온다.


255 - 224 + 1 = 32


32가 총 hosts가 되며, 이중 gateway와 broadcast를 뺴면


32 - 2 = 30


30이 사용할 수 있는 ip갯수가 된다.




마지막으로 정리하며 25비트인 넷마스크의 아이피 갯수는 몇개가 되는지 계산해보자.


25비트는 25 - 24 = 1이므로 10000000 이 되며


 128 64  32 16   8   4  2  1

  1    0    0   0   0   0  0 0


이므로 128이 되어 255.255.255.128이 된다.


255 - 128 = 127이며 여기에 1을 더해 128개가 된다. gw와 bcast를 빼면 126개가 실제 사용할 수 있는 갯수가 된다.


128을 2진수로 바꾸는것도 한번 해보자.

1. 128을 2로 나누면 64가 되며 나머지는 0

2. 64를 2로 나누면 32가 되며 나머지는 0

3. 32를 2로 나누면 16이 되며 나머지는 0

4. 16을 2로 나누면 8이 되며 나머지는 0

5. 8을 2로 나누면 4가 되며 나머지는 0

6. 4를 2로 나누면 2가 되며 나머지는 0

7. 2를 2로 나누면 1이 되며 나머지는 0

8. 나눌 수 없는 값 1부터 나머지를 역순으로 합치면 10000000 이 된다.

즉 128의 이진수는 10000000.




'develop > network' 카테고리의 다른 글

Subnet mask(서브넷 마스크) 비트 별 정리  (0) 2015.01.09