爷爷问:IPv6为什么还没有完全替换掉IPv4 ?区别是什么?

2024-01-27 01:04

本文主要是介绍爷爷问:IPv6为什么还没有完全替换掉IPv4 ?区别是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先IPV6之所以提出,很大一部分原因是IPV4的地址不够用了,再出现新设备就没得地址分配,所以才会提出新的IP版本以满足分配需求。在对IPV6进行一个基本了解后来看看两者的区别。

IPV6基本了解

1.层次化的地址结构

地址长度为128bit,这就意味着它极大的地址容量,不用日后基本上就不用担心地址稀缺的问题。由于其强大的地址空间,IPV6就可以在不同的使用场景划分各不同的地址段,同时对于地址段的延续性要求较高(对比IPV4来看,就是说在IPV4初期发展的时候,没有进行很好的规划分配,就造成了很多地址分配不连续,不好进行链路聚合,IPV6就可以有意识的避免这个问题),这样也不会造成地址的浪费。IPV6地址是用冒号分割为8段每段16字节,每一段都是用十六进制表示,同时它也有自己的子网掩码。

由于IPV6地址长度较长,其中可能会出现多个连续0的情况,针对这个,咱有一套缩写规范.

2.IPV6地址的分类

按照前缀分,可分为单播、组播以及任播三类地址(没有了IPV4中的广播地址)

(1)单播地址:和IPV4相同的是,目的地址是单播地址的报文会被发送被标识的接口中;不同的是,IPV4的一个接口一般只分配一个IP地址,而IPV6一个接口有多个IPV6地址。这些地址包括全球单播地址、唯一本地地址、链路本地地址。

(2)组播地址:标识一组接口,把数据包发送给所有被标识的接口

(3)任播地址:标识一组接口,把数据包发送给最近的那个接口

3.单播工作流程

IPV6报文的发送可以分为三个阶段,分别是地址配置、DVD、地址解析:

(1)地址配置:与IPV4一样,要进行数据包发送首先对自己的地址进行配置,一个接口上面可以有多个IPV6地址

(2)DAD:就是重复地址检测,看看网络中有没有和自己的配置的IP冲突的,类似于IPV4中免费ARP的作用。

(3)地址解析:类似于IPV6的普通ARP的作用,通过地址解析实现设备MAC地址与IPV6地址的映射关系。

IPV4与IPV6的区别

1.地址长度不同

   IPV4地址是只有32位,而IPv6 把 IP 地址由 32 位增加到 128 位,所以能够支持更大的地址空间,有2^128-1个 IPv6 地址,估计在地球表面每平米有 4*10^18 个IPv6 地址,使 IP 地址在可预见的将来不会用完。

2.表示方法不同

IPV4地址的表示是使用点分十进制,IPV6地址的表示是使用冒分十六进制

3.首部

   IPv6的首部长度是40个字节,相对IPv4的首部长度24字节要长,但是,IPv6首部结构比IPv4简单,在IPv6中,IPv 4 报头格式中一些冗余的域或被丢弃或被列为扩展报头,从而降低了包处理和报头带宽的开销。

4.对可选项更大的支持

IPv6 的可选项不放入报头,而是放在一个个独立的扩展头部。如果不指定路由器不会打开处理扩展头部 . 这大大改变了路由性能。 IPv6 放宽了对可选项长度的严格要求 (IPv4 的可选项总长最多为 40 字节 ) ,并可根据需要随时引入新选项。IPV6 的很多新的特点就是由选项来提供的,如对 IP 层安全 (IPSEC) 的支持,对巨报 (jumbogram) 的支持以及对 IP 层漫游 (Mobile-IP) 的支持等。

5.配置方法不同(即自动配置)

  IPV4地址可以自动获取也可以手动配置。而IPv6地址必须要辅助协议才能获取,IPV6协议支持地址自动配置,这是一种即插即用的机制。IPv6节点通过地址自动配置得到IPv6地址和网关地址。IPv6支持无状态地址自动配置和状态地址自动配置两种地址自动配置方式。它会给配置128位的地址带来很大的方便,特别是无状态地址自动配置。

6.身份验证和保密 

在IPv6 中加入了关于身份验证、数据一致性和保密性的内容。

其他区别

这篇关于爷爷问:IPv6为什么还没有完全替换掉IPv4 ?区别是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/648609

相关文章

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy