大家好,又见面了,我是你们的朋友全栈君。
1. ip地址的种类
我们在学习计算机网络时知道,计算机网络一般根据网络大小分对网络进行分门别类:一般有局域网,广域网,城域网,互联网等。对于拥有大量结点的少部分网络,他们创建了A类网络这个等级。另一个极端情况是C类网络,它包括只拥有较少结点的众多网络。那么介于在A类和C类之间的网络就是B类网络了。
2. ip地址分类
在早期为了适应大型,中型,小型等不同的网络,ip地址在设计出来时被分成几类,分类地址的不同之处在于表示网络的位数和主机的位数。所有的ip地址被分成A,B,C,D,E这五大类,其中A,B,C类地址经常使用,而D和E类是特殊地址,不经常使用。
上图中net-id部分表示网络号字段,host-id部分表示主机号字段。网络号和主机号加起来是32位(即4字节),正好表示一个ip地址,我们可以根据net-id来判断ip地址是属于哪一类。你可以认为网络号表示主机当前处于哪一个网段,而主机号则表示这个网段下具体的某一台主机。也就是说,通过ip地址的网络号和主机号可以找到某一个网段下的具体的某一台主机,我们来看图2感受下。
3. ip地址分类
在图2中,同一网段的计算机网络部分相同,路由器连接10,11,12不同的网段(路由器的接口连接的都是不同网段),负责不同网段之间的数据转发,交换机连接的则是同一网段的计算机,交换机SW1连接着10网段中的计算机,交换机SW2连接着11网段中的计算机,交换机SW3连接着12网段中的计算机(注:实际上一个A类地址的网段下的主机远不止这么多,这里只是用A类地址来举例说明一下,只要大家理解这张图表达的意思就行了)。
4. 地址空间
IPv4这种协议都定义了一个地址空间,地址空间就是协议所使用的ip地址总数。如果一个协议使用b位来定义地址,那么该协议的地址空间就是2的b次方,比如:IPv4使用32位来定义地址,每一位都可以取不同的值(0和1),那么IPv4的地址空间就是2的32次方,也就是4294967296个ip地址。
A类地址:
32个二进制地址中,第一位的二进制位必须是0,那么地址空间就是2的31次方或者2147483648,A类的地址空间占用比例为:50% 。
B类地址:
32个二进制地址中,第一位和第二位的二进制位必须是10,那么地址空间就是2的30次方或者1073741824,B类的地址空间占用比例为:25% 。
C类地址:
32个二进制地址中,第一位,第二位,第三位的二进制位必须是110,那么地址空间就是2的29次方或者536870912,C类的地址空间占用比例为:12.5% 。
D类地址:
32个二进制地址中,第一位,第二位,第三位,第四位的二进制位必须是1110,那么地址空间就是2的28次方或者268435456,D类的地址空间占用比例为:6.25% 。
E类地址:
32个二进制地址中,第一位,第二位,第三位,第四位的二进制位必须是1111,那么地址空间就是2的28次方或者268435456,E类的地址空间占用比例为:6.25% 。
简单来说,地址空间是分类地址中所占用的ip地址总数,而这种总数是无法当做ip地址来进行分配的。
5. 判断ip地址分类方法
前面说过,net-id用于标识网段号,host-id用于标识主机号。那我们应该怎么快速判断一个ip地址属于哪一类地址呢?
对于A类地址来说,net-id部分占8位,host-id部分占24位。由于net-id最高位始终为0,那么net-id范围是00000000到01111111之间,如果用十进制表示的话则为0 – 127,由此我们可以根据ip地址的第一个字节的值(0 - 127)就可以判断ip地址是属于哪一类。
同理,对于B类地址来说,net-id占用16位,host-id占用16位,由于net-id前2位为10,那么net-id的第一个字节范围是10000000到10111111之间,十进制表示为128 到191,那么ip地址的第一个字节的值为128 – 191的话,那么就是B类地址。
C类地址的net-id占用24位,前3位为110,那么net-id的第一个字节范围是11000000到11011111之间,十进制表示为192 到 223,那么ip地址的第一个字节的值192 – 223的话,就是C类地址了。
D类,E类地址由于没有划分net-id和host-id,但是D类地址的前4位是1110,那么D类地址的第一个字节取值范围就是11100000到11101111,十进制下表示为224到239。E类地址的前4位是1111,那么E类地址的第一个字节取值范围就是11110000到11111111,十进制下表示为240到255。
记住分类地址的小技巧:每个IP地址占用4字节,即32位,我们只需用十进制判断IP地址的第一个字节,因此,只需记住第一个字节。
A类地址的第一个字节最高位是0
B类地址的第一个字节前2位是10
C类地址的第一个字节前3位是110
D类地址的第一个字节前4位是1110
比如:对于192.168.4.23这个ip地址来说,我们只需关注第一个字节的值(192)属于哪一类地址的范围内,就可以知道第一个字节为192的ip地址是属于C类地址。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136583.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...