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字节。
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即可

  • 有效载荷长度字段:长度为16比特,它指明IPv6数据报基本首部后面的有效载荷(包括扩展首部和数据部分)的字节数量
    • 该字段以字节为单位,最大取值为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协议。连接在这种网络上的主机都可以使用本地链路单播地址进行通信,但不能和因特网上的其他主机通信。
  • 全球单播地址:

    • 全球单播地址是使用得最多的一类地址。
    • IPv6全球单播地址采用三级结构,这是为了使路由器可以更快地查找路由。
      在这里插入图片描述

第四部分 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网络。
      在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NFS文件系统共享服务器实战

架设一台NFS服务器,并按照以下要求配置 准备 两台Linux虚拟机一台作为服务端server,一台作为客户端client server IPV4:192.168.110.136/24 client IPV4:192.168.110.134/24 两台服务器都需要关闭防火墙和seLinux 服…

element-ui中el-table数据合并行和列,应该怎么解决

最近接到一个任务,要实现一个数据报表,涉及到很多合并问题,一开始想着原生会简单点,实际上很麻烦,最后还是用elemen-ui中table自带的合并方法. 最终的效果是要做成这种:1.数据处理,后端返回来的数据是,一个大对象,包含三个数组,既然合并,肯定是要处理成一个数组,并且要把相同的…

Zabbix之部署代理服务器

一、部署代理服务器 分布式监控的作用 分担server的几种式压力解决多机房之间的网络延时问题 1、搭建proxy主机 1.1 关闭防火墙,修改主机名 systemctl disbale --now firewalld setenforce 0 hostnamectl set-hostname zbx-proxy su1.2 设置zabbix下载源 rpm …

FreeRTOS源码阅读笔记2--list.c

list.c中主要完成列表数据结构的操作,有列表和列表项的初始化、列表的插入和移除。 2.1列表初始化vListInitialise() 2.1.1函数原型 void vListInitialise( List_t * const pxList ) pxList:列表指针,指向要初始化的列表。 2.1.2函数框架…

执行mysql-community-libs-8.1.0-1.el8.x86_64.rpm报错依赖检测失败

目录 1.错误信息 2.解决方法 1.错误信息 我是在VMware虚拟机18上的Centos8上的,安装MySQL8.1.0,执行mysql-community-libs-8.1.0-1.el8.x86_64.rpm报错 [rootlocalhost mysql8.1.0]# rpm -ivh mysql-community-libs-8.1.0-1.el8.x86_64.rpm 警告&…

SpringBoot前后端分离整合cas(客户端)

SpringBoot前后端分离整合cas&#xff08;客户端&#xff09; cas认证详细流程&#xff1a; 前后端分离&#xff1a;项目前端使用nginx启动&#xff0c;后端是springBoot服务&#xff1b; nginx可以统一管理Cookie&#xff0c;避免出现跨域问题。 添加依赖 <dependency&g…

C语言常见面经详细总结

1、递归函数定义没有问题&#xff0c;递归深层次后易引发什么问题&#xff1f; &#xff08;1&#xff09;影响执行效率 &#xff08;2&#xff09;栈溢出。 因为每一次调用函数是&#xff0c;栈区都要给函数分配空间&#xff0c;而且上一次调用并没有结束&#xff0c;调用的…

挑战100天 AI In LeetCode Day07(热题+面试经典150题)

挑战100天 AI In LeetCode Day07&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-92.1 题目2.2 题解 三、面试经典 150 题-93.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&am…

2023年下半年架构案例真题及答案

案例的考点&#xff1a; 大数据架构 Lambda架构和Kappa架构 jwt特点 数据持久层&#xff0c;Redis数据丢失&#xff0c;数据库读写分离方案 Hibernat架构 SysML七个关系&#xff0c;填需求图 大数据的必选题&#xff1a; 某网作为某电视台在互联网上的大型门户入口&#…

Python高级语法----深入理解Python协程

文章目录 什么是协程?Python中的协程基本示例协程和事件循环总结Python协程是一种非常强大的并发编程概念,让你能够高效地处理多任务。协程在Python中的使用已经变得越来越流行,特别是在异步编程中。本文将用通俗易懂的语言来介绍协程的概念,并提供实际的代码示例和执行结果…

‘vite‘ is not recognized as an internal or external command

标题翻译后就是&#xff1a;‘vite‘ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文 运行一个由 Vite 构建的 Vue3 项目&#xff0c;之前还好好的能正常跑&#xff0c; 但拉取新代码之后再次执行 npm run dev 就提示 ‘vite’ 不是内部或外部命令&#xff0…

粤嵌实训医疗项目(小组开发)--day05

目录 一、医生功能模块 ------------前端实现------------ ------------后端接口------------ 功能一&#xff1a;分页查询医生基础信息&#xff08;介绍MybatisPlus如何使用分页&#xff09; 功能二&#xff1a;根据搜索栏名称查找对应医生&#xff08;讲解自定义查询集&…

UE5 新特性 Nanite 开启

啥也不说&#xff0c;只能说&#xff0c;真的牛&#xff0c;在自己的项目上&#xff0c;从10几20的帧数&#xff0c;直接彪到了70 适用场景&#xff1a; 大场景&#xff0c;三角面足够多 在Project Setting里面 将这几个勾未true 勾上这个&#xff0c;放入场景即可

2023年【A特种设备相关管理(锅炉压力容器压力管道)】考试内容及A特种设备相关管理(锅炉压力容器压力管道)考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;考试内容根据新A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将A特种设备相关管理…

arthas常用命令

arthas常用命令 IDEA插件 arthas idea退出arthasjad 反编译watch 方法执行数据观测tracemonitor https://arthas.aliyun.com/doc/ IDEA插件 arthas idea 退出arthas # quit或者exit命令,只是退出当前的连接, Attach到目标进程上的arthas还会继续运行&#xff0c;端口会保持开…

Win10专业版安装wsl-ubuntu子系统

文章目录 一、查看是否满足安装要求二、管理员权限启动 Windows PowerShell三、启用Windows10子系统功能四、启用虚拟机平台功能五、重启电脑六、下载 Linux 内核更新包&#xff08;适用于 x64 计算机的 WSL2 Linux 内核更新包&#xff09;七、将 WSL 2 设置为默认版本八、打开…

Linux--vim

文章目录 Vim的介绍Vim的几种模式命令模式下的基本操作批量化注释Vim的简单配置使用插件 Vim的介绍 Vim是一个强大的文本编辑器&#xff0c;是从vi编辑器发展而来的&#xff0c;在vi编辑器的基础上进行了改进和拓展&#xff0c;具有强大的特性和功能。 Vim是一个自由开源软件&…

C# OpenCvSharp 环形文字处理 直角坐标与极坐标转换

效果1 效果2 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent();}string fileFilter "*.*…

基于SSM的电脑公司财务管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

高防CDN与高防服务器:为什么高防服务器不能完全代替高防CDN

在当今的数字化时代&#xff0c;网络安全已经成为企业不容忽视的关键问题。面对不断增长的网络威胁和攻击&#xff0c;许多企业采取了高防措施以保护其网络和在线资产。然而&#xff0c;高防服务器和高防CDN是两种不同的安全解决方案&#xff0c;各自有其优势和局限性。在本文中…