2019年11月25日,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 完全耗尽,所有 43 亿个 IPv4 地址已分配完毕。
![](https://i-blog.csdnimg.cn/blog_migrate/1ef8a51801282d56ee1b50812f204a09.png)
其实,早在20世纪80年代后期开始,全球已经开始意识到这个问题将会发生。IPv6的研发及布署,主要就是为了解决这个问题。
什么是IPv4?
IPv4是Internet Protocol version 4的缩写,中文翻译为互联网通信协议(TCP/IP协议)第四版,通常简称为网际协议版本4。
![](https://i-blog.csdnimg.cn/blog_migrate/1c74864ee6f3c8da7269199c580e2589.png)
IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(2^32) 个地址。
IPv4地址可被写作任何表示一个32位整数值的形式,但为了方便人类阅读和分析,它通常被写作点分十进制的形式,即四个字节被分开用十进制写出,中间用点分隔。
所以,通常IPv4地址的地址格式为nnn.nnn.nnn.nnn,如:
192.168.1.255
因为在点分十进制的表达形式下,共有4个字节的IP地址被分位四段,每一段就有一个字节,而一个字节有8位,那么,8位能表示的数字范围是 0 - 255。
![-w587](https://i-blog.csdnimg.cn/blog_migrate/024b9ed623c49b46e018193fc15706b4.png)
所以,一个IPv4的地址,格式为nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每个 n 都是十进制数。可省略前导零。
IPv4报文格式
我们知道,在TCP/IP 五层协议模型中,一次网络请求要先后经过应用层->传输层->网络层->数据链路层->物理层。
而在请求过程中,一个请求数据也会从应用层到物理层经过层层包装,每一层把上一层的数据报文包装后加上一层头部信息之后再传给下一层。
![-w952](https://i-blog.csdnimg.cn/blog_migrate/ce86d48ab136b735b00a488cbd6ada99.png)
所以,IPv4作为网络层协议,在其报文结构中,同样包含了IP首部和数据部分。
![-w778](https://i-blog.csdnimg.cn/blog_migrate/81f91cb3e47312c1c08d70bf1ae641d0.png)
其中,IPv4的首部长度是可变的,范围在20-60字节之间。
首部
IPv4报文的首部包含14个字段,其中13个是必须的,1个是可选的。
![-w541](https://i-blog.csdnimg.cn/blog_migrate/b7b6084920cceeba769faada177db41c.png)
上图是一张IPv4报文的首部格式,可以看到&#x