什么是IP地址?
IP是三层网络中用来唯一标识一个节点的符号。通过这个唯一的符号,三层交换网络可以根据IP地址进行寻路,将数据包投递到指定的网络设备上。
IP地址分为IPv4和IPv6,目前常用的是IPv4,不过随着IPv4地址的逐渐耗尽,很多网络和网络设备都开始往IPv6上迁移。
为何会出现IPv4地址耗尽的情况呢?这个和IPv4的地址结构有关。
IPv4地址由32位二进制位组成,每一个位有两种取值:0或者1,所有IPv4的总地址数:2^32 = 4,294,967,296个,也就是42亿多,将近43亿个IP地址。
在很早很早以前,三层网络刚刚发展起来的时候,网络设备很少,所以那时候认为42亿的IP地址完全满足全世界使用了。
但是二十一世纪的网络爆炸,网络设备成指数级增长,其实已经远远超出了42亿,IPv4的地址之所以还未被消耗完,是因为出现了一些可以复用IP地址的技术,这些技术延缓了IPv4地址的消耗。
但不管怎么说,随着网络的发展,复用IP地址的技术,如NAT等,也还是不能满足需要。所以迟早需要将网络迁移到IPv6上来。
IPv6地址由128位二进制组成,是IPv4地址长度的四倍,IPv6的地址总数为:2^128 可以说是一个天文数字了,无论如何都能满足网络的发展。
下面我们介绍IP地址主要还是当前使用最多的IPv4地址。
首先,IPv4地址由32位二进制组成,我们按照每八位进行等分,并将这八位二进制数转换为十进制,便得到我们常见的IP地址了,这种IP地址的表现形式称为点分十进制:
我们也可以在cmd命令窗口中运行ipconfig命令(如果是linux,在bash中运行ifconfig命令),即可查看本机的IP地址:
IP地址的类别
IP地址被分为五个类别,分别为 A,B,C,D,E五类,下面我们分别介绍这五类IP地址和他们的划分规则:
A类地址:
A类地址是第一个二进制位为0的所有IP地址,可以想象如果第一位为零,点分十进制转换出来,第一位的取值空间就是0~2^7-1之间,也就是:0~127之间,为何要减一呢?因为是从0开始计数的一共128总可能,从0计数的话,就是0~127。
所以A类地址就是:
不过,A类地址中有一部分被划分出来,作为私有地址(不再公网使用)和保留地址:
10.0.0.0 ~10.255.255.255 作为私有地址。
127.0.0.0~127.255.255.255 作为保留地址,作为循环测试使用,比如我们机器的环回地址就是127.0.0.1
0.0.0.0~0.255.255.255也作为保留地址,用来表示所有IP地址。
B类地址:
B类地址是二进制前两位以10开头的所有IP地址,所以点分十进制第一段的取值就是从10000000~10111111,也就是128~191。
所以B类地址就是:
C类地址:
C类地址是二进制前三位以110开头的所有IP地址,所以点分十进制第一段的取值就是从11000000~11011111,也就是192~223。
所以C类地址就是:
D类地址:
D类地址是二进制前三位以1110开头的所有IP地址,所以点分十进制第一段的取值就是11100000~11101111,也就是224~239。
所以D类地址就是:
其中D类地址中也分三类:
专用地址:224.0.0.0~224.0.0.255,用于网络协议组的广播IP。
公用地址:224.0.1.0~238.255.255.255,用于其他组播。
私有地址:239.0.0.0~239.255.255.255,用于网络测试。
E类地址:
E类地址是二进制前三位以1111开头的所有IP地址,所以点分十进制第一段的取值就是11110000~11111111,也就是240~255。
所以E类地址就是:
E类地址作为保留地址,是不让使用的。
汇总:
其中,D类地址主要作为组播,而E类地址是保留地址,都不能提供给网络设备使用,所以其实能用的IP地址比IP地址总树要少的多。
从华为的培训视频中截取的图: