IP地址与子网掩码

文章目录

  • IP地址与子网掩码
    • IP地址分类
      • A类地址
      • B类地址
      • C类地址
    • 子网掩码
      • 根据掩码位数计算掩码
      • 根据掩码位数计算最大主机数
    • 根据IP和子网掩码计算网络地址、广播地址和最大主机数
      • 计算网络地址
      • 计算广播地址
      • 计算IP范围
      • 计算最大主机数
    • 根据允许主机数计算子网掩码

IP地址与子网掩码

文章从一个IP地址:128.36.202.186/20 开始说起。通过该IP来描述IP地址与子网掩码。

IP地址分类

我们知道IPV4是4段点分的十进制数字,我们在计算分类是需要转换成二进制。例如最高位255.255.255.255的二进制就是32个1:11111111.11111111.11111111.11111111

A类地址

A类地址最高位必须是0,形如0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,那么其范围就是从00000000.00000000.00000000.00000000 - 01111111.11111111.11111111.11111111,换成十进制就是从0.0.0.0 - 127.255.255.255

  • 10.0.0.0 - 10.255.255.255 是私有地址,用在局域网;
  • 127.0.0.0 - 127.255.255.255 用作环回地址。

所以实际A类地址范围是 0.0.0.0 - 126.255.255.255 。默认子网掩码为255.0.0.0.

B类地址

B类地址最高位必须是10,形如 10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,那么其范围就是 128.0.0.0 - 191.255.255.255 。默认子网掩码为255.255.0.0.

C类地址

C类地址最高位必须是110,形如 110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX,那么其范围就是 192.0.0.0 - 255.255.255.255 。默认子网掩码为255.255.255.0.

所以上面的128.36.202.186就是一个B类地址。

子网掩码

我们在电脑上填写IP地址的时候,需要填写子网掩码,有时电脑会根据填写的IP的地址的分类自动生成子网掩码。上面的例子中的 /20 代表子网掩码的位数。通过这个位数我们可以计算子网掩码,同时可以计算网络中的最大主机数。

根据掩码位数计算掩码

这个子网掩码位数代表的是32个二进制从最高位开始1的个数,/20 就代表的是 11111111.11111111.11110000.00000000,计算结果就是 255.255.240.0,这个就是子网掩码。

所以如果要根据子网掩码计算掩码位数,只要换算成二进制,数一下从最高位开始连续的1的个数即可。

根据掩码位数计算最大主机数

最大主机数=2^(32-掩码位数)-2

之所以减2是要减去广播地址和网络地址。

根据IP和子网掩码计算网络地址、广播地址和最大主机数

例如IP地址是128.36.202.186,子网掩码是255.255.240.0。

计算网络地址

将IP和子网掩码的二进制进行与运算,结果是网络地址。

 128.36 .11001100.10111010
&255.255.11110000.00000000
---------------------------
 128.36 .11000000.00000000

那么网络地址就是128.36.192.0

主机位:子网掩码二进制中为0的部分。上例中主机位是12位,这个记住,在计算广播地址会用到。

计算广播地址

将网络地址中的主机位换成1,就是广播地址。

上例中的主机位是12,将网络地址换算下,就是128.36.11001111.11111111,也就是128.36.207.255

计算IP范围

IP范围就是 网络地址+1 - 广播地址-1
对应到上例中就是 128.36.192.1 - 128.36.207.254

计算最大主机数

   最大主机数=2^(32-掩码位数)-2
或 最大主机数=2^主机位数-2

上例中就是 2^(12)-2=4094

根据允许主机数计算子网掩码

既然通过子网掩码能够控制最大主机数,那么我们如果想控制主机数,如何计算子网掩码呢?

例如一个公司想允许最多接入1000台主机,如何计算子网掩码?

  1. 计算总主机数

    总主机数=允许主机数+1+1+1
    第一个1代表网络地址
    第二个1代表广播地址
    第三个1代表网关地址
    

    所以这里总主机数是1003,但是我们要换算成2的倍数,也就是1024台,也就是2的10次方。

  2. 计算子网掩码

    既然知道了是2的10次方,根据公式 最大主机数=2^主机位数-2,那么主机位数就是10,也就是子网掩码中0的个数是10,1的个数就是22,也就是11111111.11111111.11111100.00000000,换算成十进制就是255.255.240.0

你可能感兴趣的:(网络精彩)