IPv6详解
目录:
第一部分 IPv6的诞生背景和引起的主要变化
第二部分 IPv6数据报的基本首部和扩展首部
第三部分 IPv6地址
第四部分 IPv4向IPv6过渡
第一部分 IPv6的诞生背景和引起的主要变化
一.IPv6的诞生背景
- IPv4存在设计缺陷:
- IPv4的设计者最初并没有想到该协议会在全球范围内广泛使用,因此 IPv4地址的长度规定为他们认为足够长的32比特。
- IPv4地址早期的编址方法(分类的IPv4地址和划分子网的IPv4地址)也不够合理,造成IPv4地址资源的浪费。
二.IPv6引起的主要变化
第二部分 IPv6数据报的基本首部和扩展首部
IPv6数据报由基本首部和有效载荷组成,有效载荷又由扩展首部和数据部分组成
注意:所有的扩展首部并不属于IPv6数据报的首部,它们与其后面的数据部分合起来构成有效载荷(payload,也称为净负荷)
IPv6和IPv4的组成对比:
- IPv6将IPv4数据报首部中不必要的功能取消了,这使得
IPv6数据报基本首部中的字段数量减少到只有8个
。- 但由于IPv6地址的长度扩展到了128比特,因此使得
IPv6数据报基本首部的长度反而增大到了40字节
,比IPv4数据报首部固定部分的长度(20字节)增大了20字节。
- 但由于IPv6地址的长度扩展到了128比特,因此使得
1.取消了首部长度字段,因为IPv6数据报的首部长度是固定的40字节。
2.取消了区分服务((服务类型)字段,因为IPv6数据报首部中的通信量类和流标号字段实现了区分服务字段的功能。
3.取消了总长度字段,改用有效载荷长度字段。这是因为IPv6数据报的首部长度是固定的40字节,只有其后面的有效载荷长度是可变的。
4.取消了标识、标志和片偏移字段,因为这些功能已包含在IPv6数据报的分片扩展首部中。
5.把生存时间TTL字段改称为跳数限制字段,这样名称与作用更加一致。
6.取消了协议字段,改用下一个首部字段。
7.取消了首部检验和字段,这样可以加快路由器处理IPv6数据报的速度。
8.取消了选项字段,改用扩展首部来实现选项功能。
一.IPv6数据报的基本首部
版本
字段:长度为4比特,用来表示lP协议的版本。对于IPv6该字段的值是6。
通信量类
字段:长度为8比特,该字段用来区分不同的IPv6数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。
流标号
字段:长度为20比特。- IPv6提出了
流
的抽象概念。 - 流”就是因特网上从特定源点到特定终点(单
播或多播)的一系列IPv6数据报(如实时音视频数据的传送),而在这个“流”所经过的路径上的所有路由器都保证指明的服务质量。 - 所有属于同一个流的IPv6数据报都具有同样的流标号。换句话说,流标号用于资源分配。
流标号对于实时音视频数据的传送特别有用,但对于传统的非实时数据,流标号则没有用处,把流标号字段的值置为0即可
。
- IPv6提出了
- 有效载荷长度字段:长度为16比特,它
指明IPv6数据报基本首部后面的有效载荷(包括扩展首部和数据部分)的字节数量
。- 该字段以字节为单位,最大取值为65535,因此IPv6数据报基本首部后面的有效载荷的最大长度为65535字节。
- 该字段以字节为单位,最大取值为65535,因此IPv6数据报基本首部后面的有效载荷的最大长度为65535字节。
- 下一个首部字段:长度为8比特。该字段相当于IPv4数据报首部中的
协议字段或可选字段
。当IPv6数据报没有扩展首部时
,该字段的作用与IPv4的协议字段一样,它的值指出了IPv6数据报基本首部后面的数据是何种协议数据单元PDU。当IPv6数据报基本首部后面带有扩展首部时
,该字段的值就标识后面第一个扩展首部的类型。
- 跳数限制字段:长度为8比特。该字段用来
防止IPv6数据报在因特网中永久兜圈
。- 源点在每个IPv6数据报发出时即设定某个跳数限制(最大255跳)。
- 每个路由器在转发IPv6数据报时,要先把跳数限制字段中的值减1。当跳数限制的值为0时,就把这个IPv6数据报丢弃(即不转发)。
- 源地址字段和目的地址字段:长度都为
128比特
。分别用来填写IPv6数据报的发送端的IPv6地址和接收端的IPv6地址。
二.IPv6数据报的扩展首部
IPv4数据报
如果在其首部中使用了选项字段
,则在数据报的整个传送路径中的全部路由器,都要对选项字段进行检查,这就降低了路由器处理数据报的速度
。- 实际上,在路径中的路由器对很多选项是不需要检查的。因此,
为了提高路由器对数据报的处理效率,IPv6把原来IPv4首部中的选项字段都放在了扩展首部中
,由路径两端的源点和终点的主机来处理,而数据报传送路径中的所有路由器都不处理这些扩展首部
(除逐跳选项扩展首部)。
在[RFC 2460]中定义了以下六种扩展首部:
(1)逐跳选项
(2)路由选择
(3)分片
(4)鉴别
(5)封装安全有效载荷
(6)目的站选项
每一个扩展首部都由若干个字段组成
,它们的长度也各不相同。
所有扩展首部中的第一个字段都是8比特的下一个首部字段
。该字段的值指出在该扩展首部后面是何种扩展首部。
当使用多个扩展首部时,应按以上的先后顺序出现
。
第三部分 IPv6地址
一.IPv6地址空间大小
二.IPv6地址的表示方法
冒号十六进制
记法
更加简洁的计法:
- 在IPv6地址的冒号十六进制记法的基础上,再使用
“左侧零”省略
和“连续零”压缩
,可使IPv6地址的表示更加简洁
。- “左侧零”省略是指两个冒号间的十六进制数中最前面的一串0可以省略不写。
- “连续零”压缩是指一连串连续的0可以用一对冒号取代。
在一个IPv6地址中只能使用一次“连续零”压缩
,否则会导致歧义。
冒号十六进制记法还可结合点分十进制的后缀
。这在IPv4向IPv6过渡阶段非常有用。- CIDR的斜线表示法在IPv6中仍然可用。
三.IPv6地址的分类
IPv6数据报的目的地址有三种基本类型:
单播 :传统的点对点通信多播:一点对多点的通信。
数据报发送到一组计算机中的每一个。IPv6没有采用广播的术语,而将广播看作多播的一个特例。任播:这是IPv6新增的一种类型。
任播的终点是一组计算机,但数据报只交付其中的一个,通常是按照路由算法得出的距离最近的一个。
[RFC 4291]对IPv6地址进行了分类
:
-
未指明地址
- 128个比特为“全0”的地址,可缩写为两个冒号“:.”。
- 该地址不能用作目的地址,只能用于还没有配置到一个标准IPv6地址的主机用作源地址。
-
环回地址;
- 最低比特为1,其余127个比特为“全0”,即0:0:0:0:0:0:0:1,可缩写为:1。
- 该地址的作用与IPv4的环回地址相同。
-
多播地址:
- 最高8比特为“全1”的地址,可记为FFO0::/8。
- IPv6多播地址的功能与IPv4多播地址相同。
- 这类地址占IPv6地址空间
-
本地链路单播地址:
- 最高10比特为1111111010的地址,可记为FE80::/10。
- 即伸用户网络没有连接到因特网,但仍然可以使用TCPIP协议。连接在这种网络上的主机都可以使用本地链路单播地址进行通信,但不能和因特网上的其他主机通信。
-
全球单播地址:
第四部分 IPv4向IPv6过渡
- 因特网上使用IPv4的路由器的数量太大,要让所有路由器都改用IPv6并不能一蹴而就。因此,
从IPv4转变到IPv6只能采用逐步演进的办法
。 - 另外,
新部署的IPv6系统必须能够向后兼容
,也就是IPv6系统必须能够接收和转发IPv4数据报,并且能够为IPv4数据报选择路由。 - 下面介绍两种由IPv4向IPv6过渡的策略:
使用双协议栈
使用隧道技术
一.双协议栈
- 双协议栈(Dual Stack)是指在完全过渡到IPv6之前,使一部分主机或路由器
装有IPv4和IPv6两套协议栈
。 - 双协议栈主机或路由器既可以和IPv6系统通信,又可以和IPv4系统通信。
- 双协议栈主机或路由器记为IPv6/IPv4,表明它
具有一个IPv6地址和一个IPv4地址
。- 双协议栈主机在与IPv6主机通信时采用IPv6地址,而与IPv4主机通信时采用IPv4地址。
- 双协议栈主机通过域名系统DNS查询目的主机采用的IP地址:
- 若DNS返回的是IPv4地址,则双协议栈的源主机就使用IPv4地址
- 若DNS返回的是IPv6地址,则双协议栈的源主机就使用IPv6地址。
二.隧道技术
- 隧道技术(Tunneling)的核心思想是:
- 当IPv6数据报要进入IPv4网络时,将IPv6数据报重新封装成IPv4数据报,即整个IPv6数据报成为IPv4数据报的数据载荷。
- 封装有IPv6数据报的IPv4数据报在IPv4网络中传输。
- 当IPv4数据报要离开IPv4网络时,再将其数据载荷(即原来的IPv6数据报)取出并转发到IPv6网络。
相关文章:

IPv6详解
目录: 第一部分 IPv6的诞生背景和引起的主要变化 第二部分 IPv6数据报的基本首部和扩展首部 第三部分 IPv6地址 第四部分 IPv4向IPv6过渡 第一部分 IPv6的诞生背景和引起的主要变化 一.IPv6的诞生背景 IPv4存在设计缺陷: IPv4的设计者最初并没有想到该协议会在全球范围内广…...

【C++干货铺】STL简述 | string类的使用指南
个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 什么是STL STL的版本 STL的六大组件 STL的缺陷 string类 C语言中的字符串 标准库中的string类 string类常用的接口使用指南 string类中常见的构造 strin…...

合肥工业大学数字逻辑实验三
** 数字逻辑 实验报告** ✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :hfut实验课设 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!…...
【mmrotate】*** is not in the task util registry
问题: 使用mmrotate-1.x 自定义类时,明明已经注册,并添加到__init__.py中,但提示没有注册 from mmdet.registry import MODELSMODELS.register_module() class RotatedATSSAssigner(BaseAssigner): 分析: 具体看提…...

使用bitmap实现可回收自增id
需求描述 设计一个方法,每次调用返回一个自增id,同时需要满足以下要求。 可更新id的状态为已使用,已使用的id下次调用时不再返回可修改某个id的状态为未使用,下次调用时设为未使用状态的id可重新被返回 思路 思路一࿱…...

0基础学习VR全景平台篇第118篇:利用动作录制器功能避免重复操作 - PS教程
上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 嗨,大家好。欢迎收看蛙色VR系列教程之PS利用动作记录器节约补地时间。 大家拍摄在补地的时候,利用插件选择输入输出选项的时候,每次重复操作…...

大数据Doris(十九):数据导入(Load)
文章目录 数据导入(Load) 一、Broker load 二、Stream load 三、Insert 四、Multi load...

BP神经网络的数据分类——语音特征信号分类
大家好,我是带我去滑雪! BP神经网络,也称为反向传播神经网络,是一种常用于分类和回归任务的人工神经网络(ANN)类型。它是一种前馈神经网络,通常包括输入层、一个或多个隐藏层和输出层。BP神经网…...

基于SSM+Vue的随心淘网管理系统
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
大语言模型的关键技术(二)
一、Transformer 语言模型存在明显的扩展效应: 更大的模型/数据规模和更多的训练计算通常会导致模型能力的提升。 1、扩展效应的原因: 模型规模:增加模型的规模,即增加模型的参数数量和层数,通常会提高模型的表示能力…...

世界互联网大会领先科技奖发布 百度知识增强大语言模型关键技术获奖
11月8日,2023年世界互联网大会乌镇峰会正式开幕,今年是乌镇峰会举办的第十年,本次峰会的主题为“建设包容、普惠、有韧性的数字世界——携手构建网络空间命运共同体”。 目录 百度知识增强大语言模型关键技术荣获“世界互联网大会领先科技奖”…...

2023.11.09 homework (2)
【七年级上数学】 教别人也是教自己,总结下: 13)找规律的题目,累加题目,要整体看,不然不容易算出来,求最大值,那么就是【最大值集群和】减去【最小集群和】就是最大值 9-12&#x…...

ARMday01(计算机理论、ARM理论)
计算机理论 计算机组成 输入设备、输出设备、运算器、控制器、存储器 1.输入设备:将编写好的软件代码以及相关的数据输送到计算机中,转换成计算机能够识别、处理和存储的数据形式 键盘、鼠标、手柄、扫描仪、 2.输出设备:将计算机处理好的数…...
C#中通过LINQtoXML加载、创建、保存、遍历XML和修改XML树
目录 一、加载、创建、保存、遍历XML 1.加载XML (1)从已有文件加载XML (2)从字符串加载XML 2.创建并保存XML 3.遍历XML 4.示例源码 5.运行 二、修改XML的树 1.添加节点 2.删除 3.更新 4.示例源码 5.运行效果 三、…...

进程管理(二)
进程并发制约关系及临界区 (3)比如A的n为MAX,此时B执行buf[Max]出错。 临界区是访问临界资源的代码。 par并发执行 进程同步机制准则 让权等待:主动让位 进程互斥访问临界资源的软件解决方案 算法1——设置访问编号 no_op是空指令,做空操作,空转指令。no_op依然会占…...
数字图像处理 基于numpy库的傅里叶变换
一、傅里叶变换 图像可以用两个域表示:空间域和频域。空间域是图像最常见的表示形式,其中像素值表示图像中每个点的亮度或颜色。另一方面,频域将图像表示为不同频率和幅度的正弦波的集合。 傅里叶变换(一种图像处理中使用的数学技术)可以通过分析图像的频率分量并揭示隐藏…...

scrapy案例教程
文章目录 1 scrapy简介2 创建项目3 自定义初始化请求url4 定义item5 定义管道 1 scrapy简介 scrapy常用命令 |命令 | 格式 |说明| |–|–|–| |startproject |scrapy startproject <项目名> |创建一个新项目| |genspider| scrapy genspider <爬虫文件名> <域名…...

1-3 docker 安装 prometheus
一、环境 1、环境准备 安装Docker 镜像加速 安装 docker 检查版本 安装Docker-compose 二、Docker-compose 安装 Prometheus 1、【方式一】手动创建 docker-compose 和 配置文件 创建prometheus监控的文件夹 创建alertmanager的配置文件 - config.yml 新建grafana的…...

Mac使用brew搭建kafka集群
1. 第一步:单机搭建 单机搭建: 安装完后,默认自动安装对应版本zookeeper brew install kafka2.第二步:修改配置文件: 配置3个Kafka 第一个(使用默认配置) vi /opt/homebrew/etc/kafka/server.propertie…...

图形界面应用案例——关灯游戏(以及扩展)(python)
7.8 图形界面应用案例——关灯游戏 题目: [案例]游戏初步——关灯游戏。 关灯游戏是很有意思的益智游戏,玩家通过单击关掉(或打开)一盏灯。如果关(掉(或打开)一个电灯,其周围(上下左右)的电灯也会触及开关,成功地关掉所有电灯即可过关。 图7-43 关灯游戏运行效…...

【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程
下面是一份针对在旧版 MSYS2(安装在 D 盘)中,基于 Python 3.11 的 Poetry 虚拟环境下升级 Rust 的处理过程笔记(适用于 WIN 系统 SUNA 人工智能代理开源项目部署要求)的记录。 MSYS2 旧版环境中 Rust 升级问题及解决过…...
基于 BGE 模型与 Flask 的智能问答系统开发实践
基于 BGE 模型与 Flask 的智能问答系统开发实践 一、前言 在人工智能快速发展的今天,智能问答系统成为了提升信息检索效率和用户体验的重要工具。本文将详细介绍如何利用 BGE(Base General Embedding)模型、Faiss 向量检索库以及 Flask 框架…...
Kafka 核心架构与消息模型深度解析(二)
案例实战:Kafka 在实际场景中的应用 (一)案例背景与需求介绍 假设我们正在为一个大型电商平台构建数据处理系统。该电商平台拥有庞大的用户群体,每天会产生海量的订单数据、用户行为数据(如浏览、点击、收藏等&#…...
软考 系统架构设计师系列知识点之杂项集萃(82)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(81) 第148题 “41”视图主要用于描述系统逻辑架构,最早由Philippe Kruchten于1995年提出。其中( )视图用于描述对象模型,并说明系统应该…...

SpringCloud学习笔记-2
说明:来源于网络,如有侵权请联系我删除 1.提问:如果注册中心宕机,远程调用还能成功吗 答:当微服务发起请求时,会向注册中心请求所有的微服务地址,然后在向指定的微服务地址发起请求。在设计实…...

CICD实战(一) -----Jenkins的下载与安装
服务器IPJenkins192.168.242.153gitlab192.168.242.154 1、安装工具(可选,如果有就不需要安装) sudo yum install wget net-tools 2、关闭防火墙 #关闭防火墙(如果是云服务器部署,去安全组放通对应的端口即可) systemctl stop firewalld …...
Matlab | matlab中的点云处理详解
点云处理 ⚙️ **一、点云基础操作**🧹 **二、点云预处理**📊 **三、特征提取与分析**🔄 **四、点云配准(对齐点云)**🔷 **五、三维重建与应用**⚡️ **六、高级功能与性能优化**💎 **七、实战技巧与参数调优**📚 **学习资源**MATLAB 的点云处理能力主要依赖 Poi…...
嵌入式学习笔记- freeRTOS 带FromISR后缀的函数
FreeRTOS中带FromISR后缀的函数 是用于中断的函数,它有两个特点 一个是无等待延时, 一个是无立刻触发任务切换, 那么 一 为什么中断中不能等待(阻塞)? 因为中断中等待的,一般都是任务给予的…...
mysql实现分页查询
文章目录 mysql实现分页查询1. 使用LIMIT和OFFSET2. 使用计算OFFSET的函数(适用于动态分页)3. 使用MySQL的变量(适用于存储过程) 获取所有用户数据并分页 mysql实现分页查询 在MySQL中实现分页查询,通常我们会使用LIM…...

35.成功解决编写关于“江协科技”编写技巧第二期标志位积累的问题
江科大学长又发布了第二期的编写技巧! 大家可以看看:https://space.bilibili.com/383400717 最后面给了一个未完成的任务: 这里我已经把这个问题给解决了! 总代码放在资源里面,key.c放在文章最后面!同时感…...