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

news2024/10/2 22:27:51

首先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 中加入了关于身份验证、数据一致性和保密性的内容。

其他区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1412755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙ArkUI开发-实现增删Tab页签

场景介绍 部分应用在使用过程中需要自定义添加或删除标签的场景,比如在浏览器中的顶部标签栏中需要新打开或关闭网页页签,而这种场景与Tabs组件效果类似,但Tabs组件不提供增加或删除页签的功能,不能自由的增加删除页签&#xff0…

Java编程的利器:Pair和Triple无缝解决多值返回问题,助力编写高效代码

在实际编码中,经常会遇到一个方法需要返回多个值的情况,你编写一个方法,需要同时返回某个操作的结果和一些相关的附加信息。使用传统的方式,你可能需要创建一个包含这些信息的自定义类或者使用集合(如 Map)…

系统引导程序 Boot Loader——学习笔记

基于嵌入式Linux 的完整系统软件由三个部分组成:系统引导程序、Linux 操作系统内核和文件系统。 系统引导程序 Boot Loader 是系统加电后运行的第一段软件代码,它的作用是加载操作系统或者其他程序到内存中,并将控制权交给它们。 Boot Load…

代码随想录算法训练营第16天 | 104.二叉树的最大深度, 111.二叉树的最小深度 ,222.完全二叉树的节点个数

二叉树理论基础: https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 104.二叉树的最大深度 题目链接:https://leetcode.cn/problems/maximum-depth-…

Mediasoup Demo-v3笔记(三)——Mediasoup库介绍

Mediasoup基本概念 Worker : 每一个worker就是一个进程(节点),进程和进程之间可以通信Router:每一个Router就是一个房间的概念Producer:每一个发出声音和视频的流都是一个ProducerConsumer:每一…

Confluence 的文章导入到 YouTrack KB 中

YouTrack 是有一个 KB 的,我们可以吧 Confluence 的文章全部导入到 YouTrack 的 KB 中。 首先,你需要具有管理员权限,然后选择导入。 然后可以在打开的界面中新增一个导入。 在新增导入中输入 Confluence 在随后的界面中输入你 Confluence …

浅谈ICMP协议

ICMP(Internet Control Message Protocol) 网络控制消息协议是网络层的协议,所谓控制,指的是通过下发指令来判断是否当前主机可达目标主机及不可达时的错误报告。通常使用ping命令和traceroute命令来使用。 ping命令:检测到目标主机是否可达、 tracerout…

SQL语句创建一个简单的银行数据库

目录 一、银行业务E-R图 二、数据库模型图 转换关系模型后: 三、创建数据库 3.1 创建银行业务数据库 四、创建表 4.1 创建客户信息表 4.2 创建银行卡信息表 4.3 创建交易信息表 4.4 创建存款类型表 结果如下: ​编辑 五、插入适量数据 5.1…

Linux中LVM实验

LVM实验: 1、分区 -L是大小的意思-n名称的意思 从vg0(卷组)分出来 2、格式化LV逻辑卷 LVM扩容 如果icdir空间不够了, 扩展空间lvextend -L 5G /dev/vg0/lv1 /dev/vg0/lv1(pp,vg,lv) 刷新文件系统xfs_growfs /lvdir VG扩容 …

选现货白银投资划不划算?

可以肯定的是选择现货白银投资是划算的,但投资者需要有足够的知识和经验,以及对市场的敏锐观察力。只有这样,投资者才能在现货白银投资中获取收益。在投资市场上,白银作为一种特殊的投资品种,一直以来都备受投资者们的…

01:云计算底层技术奥秘|虚拟化管理|公有云概述

云计算底层技术奥秘|虚拟化管理|公有云概述 虚拟化平台安装验证虚拟化支持 Linux虚拟机创建虚拟机磁盘虚拟机配置文件创建虚拟机 公有云简介 虚拟化平台安装 虚拟化:是一种技术 就是将不可拆分的实体资源变成可以自由划分的逻辑资源&#xf…

搭建Vite和Vue环境

​ 第一步:创建一个文件夹(此处为新建文件夹),并通过vscode打开 第二步:鼠标右键新建终端,并在终端处输入代码npm create vuelatest ​第三步:输入该项目名称(该项目名称并不是第一…

面向对象编程(进阶)(上)

文章目录 一. 关键字:this1.1 this是什么?1.2 什么时候使用this1.2.1 实例方法或构造器中使用当前对象的成员1.2.2 同一个类中构造器互相调用 1.3 练习 二. 面向对象特征二:继承(Inheritance)2.1 继承的概述2.1.1 生活中的继承2.1.2 Java中的…

乖乖,咱不用BeanUtil.copy了,咱试试这款神级工具(超详细)

引言 在现代Java应用程序开发中,处理对象之间的映射是一个常见而且必不可少的任务。随着项目规模的增长,手动编写繁琐的映射代码不仅耗时且容易出错,因此开发者们一直在寻找更高效的解决方案。比如基于Dozer封装的或者Spring自带的BeanUtil.…

C语言指针进阶之一字符指针

目录 1.指针知识回顾 2.字符指针 2.1字符指针的一般使用 2.2字符指针的另外一种使用 1.指针知识回顾 ①.指针就是个变量,用来存放地址,地址唯一标识了一片空间。 内存会划分成一个个的内存单元,每个内存单元都有一个独立的编号&#xff0…

php怎么输入一个变量,http常用的两种请求方式getpost(ctf基础)

php是网页脚本语言,网页一般支持两种提交变量的方式,即get和post get方式传参 直接在网页URL的后面写上【?a1027】,如果有多个参数则用&符号连接, 如【?a10&b27】 post方式传参 需要借助插件,ctfer必备插…

腾讯云服务器一键部署幻兽帕鲁联机服务器详细教程(Linux系统)

腾讯云作为国内领先的云计算服务商,为广大用户提供了稳定、高效的云计算服务。本文将详细介绍如何在腾讯云服务器(Linux系统)实现一键部署幻兽帕鲁联机服务器,帮助大家快速搭建自己的游戏联机服务器。 第一步:购买服务…

C#winform上位机开发学习笔记13-串口助手显示系统时间功能添加

1.功能描述 在上位机中显示系统的实时时间 2.代码部分 步骤1:添加文本框控件并设置参数 #此处注意将BackColor颜色修改为非Control,即可正常显示ForeColor颜色,否则该颜色不变,原因暂且不明。 步骤2:添加timer控件…

Docker深入解析:从基础到实践

Docker基础知识 Docker是什么:定义和核心概念解释 Docker是一个开源项目,它诞生于2013年,旨在自动化应用程序的部署过程, 让应用程序能够在轻量级的、可移植的、自给自足的容器中运行。这些容器可以在几乎任何机器上运行&#xf…

linux安装python3.11

yum -y install gcc-c zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite* readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel下载地址 https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz 上传python文件&#xff…