背景
尽管IPV4非常成功与强壮、但在互联网飞速发展的当下已经显露出很多不足。IPV6应运而生:更多的地址、更安全的传输。
释义
-
IPV4
1、第四版IP协议(V-Version) 2、地址长度为32位、所以最多有2^32 ≈ 43亿个地址。 3、一般的书写法为4个用小数点分开的十进制数。即每段最多可以存放8位2进制字符、也就是2^8=256、从0开始计算就是255。xxx.xxx.xxx.xxx。
IPV4的不足和缺点
1、地址空间的局限性
IP地址空间的危机由来已久、是升级的主要动力。
2、性能
尽管IPV4表现不错。但一些70年代的设计还能够及进一步改进。
3、安全性
安全性一直以来都被网络层之上的层负责、但IPV6已经可以发挥作用。
4、配置
IPV4的配置一直比较复杂。
IP地址空间危机
IPV4地址共有32位、总计40多亿个。导致IP地址耗尽的主要原因不在于IP地址的长度、而在于IP地址的结构、也就是分为网路号和主机号(一个C类地址有256个地址、但可能只连了几台主机)。如果不使用这种结构、虽然可以使地址的利用率更加高效、但也将导致很多网络功能不可行(比如根据网络号进行路由)。尽管人们采用了子网掩码和无域间路由等技术减少了地址的消耗、但并没有从根本上解决问题。
还有一个原因是由于TCP/IP协议诞生之初、通讯协议百家争鸣。没有人会想到如今使用IP地址的人有如此之多。在起初的IP分配上、也出现了很大程度的浪费、很多A类地址被分配给了一些机构和公司
17.0.0.0/8:苹果
18.0.0.0/8:MIT
19.0.0.0/8:福特汽车
IP地址性能问题
IPV4已经可以异种网络间进行数据的可靠、高效和健壮的传输提供最佳的机制。IPV6主要考虑最大传输单元、最大包长、IP头部设计、校验和的使用、IP选项的应用等改进。
IP安全性问题
IPV4的侧重点是科研机构、安全性并不是一个主要的课题。而现在、网络安全越来越被人们所重视。
配置问题
IP协议早起、绝大部分使用IP协议接入internet的计算机都是大型计算机、他们与internet的链接基本是静态的。而且使用计算机的人员都是专业研究院、现在看来接入程序则要复杂很多。
NAT技术存在局限
虽然NAT技术可以很大程度上的缓解IP地址匮乏的问题、但终究存在缺陷。
比如无法由外部进行访问(虽然可以通过静态弥补但很复杂)、端口号抢占(被NAT的多个服务器需要使用公网80端口)。
IPV6对IPV4的改进
-
扩展地址
IPv6的地址结构中除了把32位地址空间扩展到128位、一共将会有2^128≈340万亿个地址、有人很形象的举例说可以把地球上的每粒沙子都分配一个IP地址。 -
取消了广播地址
以任意点播地址代替。但IPv4中用于指定一个网络接口的单播地址和用于指定一个或多个主机的多播地址基本不变。 -
简化的包头
IPv4则包含12个字段、长度在无选项时为20字节、最高可达60个字节。1、IPv6包含8个字段。 2、使用固定格式的包头减少了需要检查和处理的字段数量、提高了路由效率。 3、包头长度统一、不需要包头长度这个字段
-
多扩展和选项支持的改进
1、IPv4的扩展放在包头尾部。 2、IPv6则将选项放在单独的扩展头中、只有在有必要时才会检查和处理。
-
流标记
1、IPv4中对所有的IP数据包都同等对待。 2、IPv6中加入了流标记的概念。流指从特定源地址到特地目的地址的包序列、源点希望中间的路由器对这些包进行特殊处理。
-
身份验证和保密
1、IP身份验证头(AH) a.数据完整性验证,通过使用Hash函数(如MD5)产生的验证码来实现; b. 数据完整性时加入一个共享的会话密钥来实现; c. 防重放攻击,在AH报头中加入序列号可以防止重放攻击。 2、数据加密(ESP) 发送方计算数据包摘要并将其放入AH头中、接收方对数据包摘要进行重新计算并与AH对比。
IPv6数据包结构
ipv4


ipv6

-
版本
4位。IPv6填6。主要为了与IPv4兼容。 -
通信量等级
1、8位。表示数据包所属类别、路由器会根据不同的类别给予不同的服务。允许源路由器以及中间路由器在包上加上标记。 2、一般可以根据链路的开销、带宽、延迟等进行特殊处理。
-
流标记
1、20位。用于标识属于同一业务流的数据包。 2、IPv4中数据包的传输默认是根据两个IP地址进行寻路、有可能前后两个包的传输路径会不同、原因则是每次都会进行重新寻路。 3、IPv6中同一个流标记的数据包只要第一个进行寻路、后面的数据包就可以跟随其进行传输。
-
有效负荷长度
16位。包头+数据区+扩展头。 -
下一报头
1、8位。类似IPv4的协议字段、可以用来指明上层协议。 2、也可以指明该IPv6数据包是否有扩展头的存在。
-
跳限制
8位。类似IPv4中的TTL字段。但并不代表时间含义、对数据包超时的判断交由上层协议完成。 -
源地址
128位 -
目的地址
128位
分片
IPv4中采用的是逐跳分片的方式、当物理链路的MTU过小是才会分片、最后在目的地址重组。
-
IPv6的分片只能由源节点和目的节点进行
1、路径MTU发现 源路由器可以向目的路由器发送一个数据包来报告该路由器上链路的MTU值。如果包到达了一个必须对其分片的链路、则通过CIMP协议回送。这种过程可以重复、知道确定路径的最小MTU为止。 2、要求所有支持IP的链路必须能够处理一些合理的最小长度数据包。 如果一个链路最小的MTU为20、那么所有节点都必须准备生产可观数量的分片包。
扩展头
-
逐跳选项头
1、此扩展头必须紧随在IPv6头之后。 2、包含路径上每个节点必须检查的数据、由每个转发路由器进行检查。
-
路由头
指明中途需要经过哪些节点。 -
分段头
一个分段的偏移值、一个“更多段”标志和一个标识符字段。 -
目的地选项头
代替IPv4选项字段、需要为64位的整数倍 -
身份验证(AH)头
对IPV6头、扩展头和数据的某些部分进行加密的校验和的计算。 -
封装安全性数据(ESP)头
本身不加密、指明剩余的数据已经加密。并为已获得授权的目的节点提供解密信息。
IPv6的寻址
-
基本表示
将128位二进制地址表示成8段、每段4位16进制整数(IPv4为3位8禁止整数)。例如1080:0000:0000:0000:0008:0800:200C:417A、不过也可以简化成1080:0:0:0:8:800:200C:417A。在混合使用的情况下、可以用最低的32位表示IPv4地址:0:0:0:0:0:0:192.168.1.1、当然也同样可以写作::192.168.1.1 -
地址类型
1. 单播地址(Unicast)用于单个接口的标识符,发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路[广播地址](https://www.baidu.com/s?wd=%E5%B9%BF%E6%92%AD%E5%9C%B0%E5%9D%80&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)区分开来,多路[广播地址](https://www.baidu.com/s?wd=%E5%B9%BF%E6%92%AD%E5%9C%B0%E5%9D%80&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)的高序列八位字节具有十六进制值 FF,此八位字节的任何其他值都标识单播地址。 2、 任播地址(Anycast)也叫泛播地址,一组接口的标识符(通常属于不同的节点),发送到此地址的数据包被传递给该地址标识的所有接口(根据路由走最近的路线)、并由里源主机最近的一个负责响应。任播地址类型代替 IPv4[广播地址](https://www.baidu.com/s?wd=%E5%B9%BF%E6%92%AD%E5%9C%B0%E5%9D%80&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)。 3、 组播地址(Multicast) 4、 IPv6中的组播在功能上与IPv4中的组播类似,表现为一组接口对看到的流量都很感兴趣。
一些常见的IPv6地址或者前缀
IPv6的安全性
- 身份验证
能够可靠的确定收到的数据与发送的数据一致、并且确保发送该数据的实体与其所宣称的身份一致。 - 完整性
数据不被修改 - 机密性
保证数据只能被预期的接受者读取
网友评论