IPv4地址(二)网络划分

时间:2024-03-16 18:26:43

在IPv4地址(一)中提到过,IP地址可以分成两部分,前面一部分是网络号,而后面一部分是主机号。

这里网络可以通过主机数量规模不同而分为3类:大型网络中型网络小型网络

不同网络的特点

  • 大型网络——可以定义位包含大量主机的网络。大型网络的数量相对很少。
  • 小型网络——作为大型网络的对照,它仅仅包含很少量的主机,但是小型网络的数目很多。
  • 中型网络——相对于大型网络和小型网络,包含的主机数量中等,而且中型网络的数量也中等。

下图显示了3类IPv4地址的网络号和主机号是如何划分的。

IPv4地址(二)网络划分

图1 不同类型网络地址的格式及其区分

目前对于所描述的大型、中型和小型网络,是按照如下的方式映射到各类地址的:

  • A类地址——用于大型网络,第1个八位组是网络号,后3个八位组是主机号。8位的网络号最多可以表示256个网络,而每个网络地址的主机号可以提供的主机数量为2^24或1, 677, 216。
  • B类地址——用于中型网络。前2个八位组表示网络号,后2个八位组表示主机号。网络号和主机号的数量均为2^16或65535个。
  • C类地址——对应于A类IP地址。前3个八位组表示网络号,最后1个八位组表示主机号。

如何区分不同类型的地址

对于所有的IPv4地址,都是32位的二进制字符串,所以需要有某种方法来区分一个特定的地址到底属于哪一类地址。

如图1中所示的:

  • 对于A类地址,首个八位组的第1位,即32位字符串最左边的1位,总是被设置为0。所以对于前八位,可以很容易找到A类地址范围中的最小数和最大数,即0和127。但是例外的是:0被保留作为缺省地址部分,127被保留作为内部回送地址。剩下的十进制数则是1~126。其中最典型的127.0.0.1是给设备使用的环回地址,向自己给发送流量。发送到该地址的数据将会被直接送回给发送进程,而不会离开此设备。
  • B类地址总是把左边的第1位设置为1,第2位设置为0。再次通过设置首个八位组的剩余位为0或者为1,可以得到128到191之间的IP属于B类地址。
  • C类地址中,前2个均被设置为1,第3位被设置为0。这样设置之后,首个八位组在192~223之间。

IPv4地址(二)网络划分

图2 不同网络号的分布

事实上有很多地址都不会被分配,例如:

10.0.0.0~10.255.255.255

172.16.0.0.~172.31.255.255

192.168.0.0~192.168.255.255

这几个范围都是作为保留地址的,难怪路由器中老是192.168.xxx.xxx,原来是C类地址呀。

确定IP地址的网络号

有了以上的约定之后,可以通过首个八位组字节规则确定IP地址的网络类型,然后通过网络类型确定取前多少位,然后计算可得网络号,那么剩下的位数就是主机号咯。

比如:如果第1位是0,则需要读取前8位才能获取网络地址;如果前两位是01,那么需要读取16位。但是事情真的就是这么简单么???