作者 | 漫话编程
本文经授权转载自漫话编程(ID:mhcoding)
2019年11月25日,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)宣布,其最后的 IPv4 地址空间储备池在 11 月 25 日 UTC + 1 15:35 完全耗尽,所有 43 亿个 IPv4 地址已分配完毕。
其实,早在20世纪80年代后期开始,全球已经开始意识到这个问题将会发生。IPv6的研发及布署,主要就是为了解决这个问题。
什么是IPv4?
IPv4是Internet Protocol version 4的缩写,中文翻译为互联网通信协议(TCP/IP协议)第四版,通常简称为网际协议版本4。
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。
所以,一个IPv4的地址,格式为nnn.nnn.nnn.nnn,其中 0网络层->数据链路层->物理层。
而在请求过程中,一个请求数据也会从应用层到物理层经过层层包装,每一层把上一层的数据报文包装后加上一层头部信息之后再传给下一层。
所以,IPv4作为网络层协议,在其报文结构中,同样包含了IP首部和数据部分。
其中,IPv4的首部长度是可变的,范围在20-60字节之间。
首部
IPv4报文的首部包含14个字段,其中13个是必须的,1个是可选的。
上图是一张IPv4报文的首部格式,可以看到,IPv4首部中包含的内容还是很多的,比如版本号,首部长度,标识符,分片偏移,存活时间,协议等。
由于这部分不是本文的重点,这里就不对报文头展开详细介绍了,读者可以参照上图自行学习下。
数据
报文中,除了首部以外,还有一个最重要的部分那就是数据部分,数据字段不是首部的一部分,因此并不被包含在首部检验和中。
前面说过,网络层会把传输层的报文封装成数据,并添加上首部之后传递给链路层。
所以,IPv4的报文中数据部分就是传输层的协议报文内容,如TCP、UDP等。
为什么IPv4会枯竭?
IP地址的全球性管理机构为互联网号码分配局(IANA),其下有五个局域网际网络注册管理机构(RIR)
在理论上,IPv4最多可以提供2^32 (约42.9亿)个IP地址。不过,一些地址是为特殊用途所保留的,如约1800万个专用网络和约2.7亿个多播地址,同样减少了可在互联网上路由的地址数量。
随着地址不断被分配给终端用户,IPv4地址枯竭问题也在随之产生。
中国是世界上互联网用户数量最多的国家,但人均只有0.45个IPv4地址。在IPv4的环境下,我国用户上网地址需要动态分配,人与地址没有固定的对应关系,用户溯源难,带来互联网安全和监管隐患。
所以,为了解决这个问题,IPv6诞生了。
什么是IPv6?
IPv6是Internet Protocol version 6的缩写,中文翻译为互联网通信协议(TCP/IP协议)第6版,通常简称为网际协议版6。IPv6具有比IPv4大得多的编码地址空间,用它来取代IPv4主要是为了解决IPv4地址枯竭问题,同时它也在其他方面对于IPv4有许多改进。
IPv6具有比IPv4大得多的编码地址空间。这是因为IPv6采用128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2^128 个地址,具体数量为340,282,366,920,938,463,463,374,607,431,768,211,456个(不知道有没有人能把这个数读出来?)
有人说IPv6的地址数可能比全世界的沙子还要多,足以解决目前IPv4地址量不足的问题。
IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组
IPv6文本格式为 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每个 x 都是十六进制数,表示 4 位。例如:
2001:0db8:86a3:08d3:1319:8a2e:0370:7344
IPv6的报文格式
和IPv4一样,IPv6的报文中同样包含首部和数据部分。
和IPv4不同的是,IPv6报文的首部是40个字节的固定长度。
下图是IPv6报文的首部的结构,IPv6定义了一种新的分组格式,目的是为了最小化路由器处理的消息标头。
从图中可以看出,和IPv4相比,IPv6的头部内容少了很多。
同样是网络层协议,IPv6和IPv4一样,都封装了传输层的报文内容作为自己的数据。这一点是没有任何差异的,所以我们可以说,在报文上,IPv6和IPv4的主要区别是报文头的区别。
IPv4 VS IPv6
介绍完了IPv4和IPv6,我们再来整体看下这两种协议之间的区别。
地址
IPv4长度为 32 位(4 个字节)
IPv4 地址的文本格式为 nnn.nnn.nnn.nnn,其中 0
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录