IP地址、子网掩码和网络号的计算

IP地址

IP地址是什么?为了确切地标识Internet中的主机和路由器,TCP/IP建立了一套编址方案,为每台主机和路由器分配一个全网唯一的地址。这个地址的名字就叫IP地址。(相当于国家为了知道谁是谁为每个人都分配了一个身份证号码一样)。

值得注意的是,一台主机至少拥有一个IP地址,允许一台主机拥有多个IP地址。(计算机可以有几个身份证但是人只能有一个)。

类似于居民身份证号,主机的身份证号也有一定的规律。

在人少的时候,身份证号的位数就要求少一些;当居民变多,以前的位数号码所能表示的最大人口数量超过这个国家的人口数量时,身份证就要升级,将身份证号码增长一点点。IP地址也是。因此机器数量少的时候用的是IPv4(目前还在用,估计马上就要换IPv6了)。

目前仍在使用的IP地址是IPv4版本的。由四个字节组成,每个字节8位二进制数,就是说目前的IP地址由32位二进制数组成。

32个000011111等,写着麻烦,看着也容易看花眼。因此我们用点分十进制法,将这32位二进制数字每八位划分一次,每8位数对应一个十进制数,这样一来,长长的32位地址就变成了四个用点隔开的十进制数字了。

身份证的规则我百度了一下,详细情况是:前1、2位数字表示:所在省(直辖市、自治区)的代码;第3、4位数字表示:所在地级市(自治州)的代码;第5、6位数字表示:所在区(县、自治县、县级市)的代码;第7—14位数字表示:出生年、月、日;第15、16位数字表示:所在地的派出所的代码;第17位数字表示性别:奇数表示男性,偶数表示女性;第18位数字是校检码:也有的说是个人信息码,不是随计算机的随机产生,它用来检验身份证的正确性。

而IP地址也是由几个信息一起组成的。比身份证简单很多,IP地址由网络号和主机号四个字段组成。如果把网络号比作小区,主机号就相当于小区里面的各个房子的门牌号。


网络号:有的小区可能密密麻麻住了好几万人,有的小区可能是开阔的别墅区只住了不到一百人。如果统一门牌号为5位以满足那些住的很密集的小区的需求,那对于别墅区来说前面的几位数字浪费了,写起来麻烦。于是根据小区人口的不同对小区进行分类,不同类别的小区的门牌号位数也不同。人多的五位、人少的两位。

有些网络拥有很多主机,而有些网络上的主机很少,类似于小区一样,我们对IP地址进行了分类,五类,A类到E类。大量使用的是A,B,C类。

A类地址:8位网络号(0开头)+24位主机号

B类地址:16位网络号(10开头)+16位主机号

C类地址:24位网络号(110开头)+8位主机/号

D类:组播地址

E类:保留以后再用。

注意,网络号不能全部为0或者全部为1.IP地址也不能全部为0或者全部为1.

由此得到A类网络地址范围为00000001~01111111.用点分十进制记法,把他们分别换算成十进制,就是1~127.

同理,B类网络地址的范围为10000000 00000001 ~10111111 11111111.即128.1~191.255

C类:11000000 00000000~11011111 11111111.即192.0~223.255



当房产商向政府申请修房子时,申请到的只是某省某市某区某街道,类似的,当某单位申请一个IP地址时,实际上获得的是一个网络号,具体的各个主机号由本单位自行分配,就像房产商修哪一栋楼叫ABCD栋都是房产商自己设计的。


子网掩码:


当一个小区越修越大,可能就会将本小区划分为几个分区或者几期工程。当一个单位的主机很多而且分布在较大地理位置时,可以将本单位所属主机划分为若干个子网,然后各个子网之间用路由器互联。

由于网络号已经分好了,内部再划分的子网号的字段就不能加到网络号中了。我们将子网号的字段加到主机号字段中。

规定用一个32位的子网掩码来表示子网号字段的长度。子网掩码由一连串的1和一连串的0构成。1对应于网络好和子网号字段,0对应于主机号。

比如:某单位要分配一个C类IP地址为202.114.16.0.加入这个单位的主机要划分5个子网,5转换为二进制为101,所以要用3个二进制表示子网字段。若这个主机要划分为2个子网,2转换为二进制为10,所以要用2个二进制表示子网字段。若要划分为9个呢,一样的,9转化为二进制是1001,就需要4个二进制表示子网字段了。

这里我们以划分为5个子网,用3个二进制子网字段为例:

复习一下,C类的网络号为3个字节,24个二进制长度。主机号为1个字节,8个二进制长度。

C类IP地址为:110XXXXX XXXXXXXX XXXXXXXX+子网号(这里为101)+主机号

网络号对应到子网掩码是1,因此

110XXXXX XXXXXXXX XXXXXXXX→11111111 11111111 11111111

子网号对应到子网掩码也是1,这里子网号为101,对应过去就是111

主机号对应到0,因此,这个C类地址对应的完整的子网掩码就是:

11111111 11111111 11111111 11100000.

当外界访问这个单位的主机时,路由器用子网掩码和目的地址相“与”(1+1=1,0+1=0,1+0=0,0+0=0),得到的结果中最后一个字节由子网号和主机号构成。路由器再将该组转发到这个例子中的第三个主机上。

当然,单位也可以不划分子网。此时子网掩码为默认值,此时1的长度就是网络号的长度,A类地址默认的子网掩码是11111111 00000000 00000000 00000000(255.0.0.0),B类地址的是11111111 11111111 00000000 00000000(255.255.0.0),C类的是11111111 11111111 11111111 00000000(255.255.255.0)

编辑于 2018-01-12

文章被以下专栏收录