二进制与十进制转换与子网掩码计算
首先来了解一下二进制与十进制的转换知识:
二进制数转换成十进制数
二进制数1101-->13
1101(2)=
1*2^0
+0*2^1
+1*2^2
+1*2^3
=1+0+4+8
=13
从右到左,每一位用二进制的1或者0,去乘以2的N-1次方,二进制第一个数最大值为1=2^0
十进制数转换成二进制数
十进制转换为二进制使用的是辗转相除法
十进制数302-->100101110
用2辗转相除,直至最后结果为1
将所有的余数倒序写排列即为对应的二进制数
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
1/2 = 0 余1
故十进制302转换等于二进制后为100101110
接下来是二进制与十进制数在网络中的表现方式
子网掩码的前缀表示法
子网掩码一般由4个8位的二进制数表示,使用英文的“.“进行隔离,为了便于识别,电脑支持自动转换为十进制
11111111.11111111.1111111.00000000 #注意这里使用了24个1+8个0组成 所以掩码可以简写为/24
转成成十进制等于 255.255.255.0
11111111 11111111 1111111 11111100 #注意这里使用了30个1+2个0组成 所以掩码可以简写为/30
转成成十进制等于 255.255.255.252
当我们开启多个服务器时,我们总发现供应商提供的是类似于:
10.0.0.1/29、10.0.0.1/28、10.0.0.1/30 的地址给我们, 网络工程师以外的人很难记住网关、掩码、广播地址、前缀、后缀、ASN、CIDR到底是什么,所以提供一个简要的速查表:
已知子网掩码一般有32位,掩码在32个1-32个0中间变化,斜杠后的数字指的是左到右一共有多少个数字1:
掩码 | IP划分 | 子网掩码 | 使用C段 |
---|---|---|---|
/30 | 4 | 255.255.255.252 | 1/64 |
/29 | 8 | 255.255.255.248 | 1/32 |
/28 | 16 | 255.255.255.240 | 1/16 |
/27 | 32 | 255.255.255.224 | 1/8 |
/26 | 64 | 255.255.255.192 | 1/4 |
/24 | 256 | 255.255.255.0 | 1 |
/23 | 512 | 255.255.254.0 | 2 |
/22 | 1024 | 255.255.252.0 | 4 |
/21 | 2048 | 255.255.248.0 | 8 |
/20 | 4096 | 255.255.240.0 | 16 |
/19 | 8192 | 255.255.224.0 | 32 |
/18 | 16384 | 255.255.192.0 | 64 |
/17 | 32768 | 255.255.128.0 | 128 |
/16 | 65536 | 255.255.0.0 | 256 |
示例:
宽带服务商提供了1.1.1.8/29的IP段作为宽带接入:
- /29表示宽带运营商分配了8个可用IP
- 将1.1.1.0-1.1.1.254网段256个IP按照8各一组分开
- 1.1.1.8在第二组,因此第二组所有的IP就是宽带服务商提供的可用IP
- 为了保证与外部通信,需要取一个与外部设备互联接口IP,这个IP一般叫做网关Gateway
- 为了保证同网内通信,需要曲一个向内部广播数据包IP,这个IP一般叫做广播地址
- 因此 1.1.1.8/29网段分配的8个IP中,其中六个可用