计算机网络:网络层 - IPv6

news2025/9/15 0:19:01

计算机网络:网络层 - IPv6

    • IPv6 数据报
    • IPv6 地址
      • 冒号十六进制记法
      • 地址分类
    • IPv4 到 IPv6 过渡
      • 双栈协议
      • 隧道技术


IPv6 是互联网协议的最新版本,它被设计用来取代现有的 IPv4 协议。这是因为 IPv4 存在一些根本性的限制,而 IPv6 则可以解决这些问题。

最典型的问题就是地址空间不足, IPv4 只有大约 43 亿个可用的 IP 地址,而随着互联网的快速发展,这一数量已经远远不够。而IPv6340282366920938463463374607431768211456个地址,你已经看到眼花了吧,这里也就是 2 128 2 ^ {128} 2128 个地址,也说明IPv6的地址有128,这个数据几乎接近于无穷,估计未来上百年都不会用完这么多地址。

IPv6 数据报

IPv6数据报格式如下:

在这里插入图片描述

IPv6数据报分为两部分:基本首部有效载荷

  • 基本首部:长度为固定的40 byte,携带数据报的基本信息
  • 有效载荷:该部分包含了数据报真正的数据部分和任意数量的扩展首部

接下来我从前往后依次讲解每个字段的功能。

版本

4 bit,指明了IP协议的版本,IPv6中版本号就是6

通信量类

8 bit,为了区分不同数据报的优先级。范围为 0 - 70 代表最低优先级,7 代表最高优先级。

流标号

20 bit,流标号字段用于标识来自同一数据流的不同数据报,并允许网络设备对它们进行优先处理。

所谓的,就是一个源点到一个终点的一系列数据报,它们有共同的流标号。

有效载荷长度

16 bit,指明有效载荷部分所占的字节数。最大值是65535

下一个首部

8 bit,这个部分相当于IPv4可选字段,用于对IPv6的首部进行拓展。

其有两种情况:

  1. 如果该数据报没有扩展首部,那么该字段指明有效载荷中的高层协议类型。比如有效载荷为TCP数据报时,该字段值为6;为UDP数据报时,该字段值为17
  2. 如果该数据报有扩展首部,该字段指向的是第一个扩展首部类型。

比如以下可以扩展的首部:

  • 路由头部 :用于指定数据包的路由路径。
  • 分片头部 :用于将数据包分割成多个片段,以便在网络中传输。
  • 鉴别头部 :用于对数据包进行身份验证。
  • 封装安全负载头部:用于对数据包进行加密。

跳数限制
8 bit,用于限制数据报的传输次数,相当于IPv4中的TTL。每当路由器转发一次数据报,跳数限制就减一,当为0时,路由器就会丢弃该报文。

可以看到,相比于IPv4数据报,IPv6数据报的设计更加简单。

主要来说,IPv6数据报对IPv4数据报的首部做了以下更改:

  1. 取消首部长度字段
  2. 取消服务类型字段
  3. 取消总长度字段,改用有效载荷长度字段
  4. 取消TTL字段,改用跳数限制字段
  5. 取消协议字段,改用下一个首部字段
  6. 取消首部检验和字段
  7. 取消选项字段,改用扩展首部来实现扩展功能

可以看到,IPv4几乎一直在做减法,从而使数据报更加简洁。

剩下的就是源地址目的地址了,因为IPv6数据报的地址长度为128,所以这两个字段长度也是128 bit,接下来我们就来看看IPv6地址。


IPv6 地址

冒号十六进制记法

由于地址要占128位,如果用之前的点分十进制表示这个地址,就会很长。因此IPv6冒号十六进制的方法来记录一个IPv6地址。

其基本记法为:16位二进制分为一组,用4个十六进制表示,各组之间用冒号分隔

比如下面这个地址:

68E6:8C64:00FF:FFFF:0000:1180:960A:FFFF

最后一个地址就被分为了8个组。

以上只是基本记录方法,冒号十六进制记法还允许对满足特定要求的地址进行缩写。

一个组内部,如果0前面没有数字,且后面有数字,那么这个0可以省略

比如刚刚的地址:

68E6:8C64:00FF:FFFF:0000:1180:960A:FFFF

第三组00FF,由于00都在数字F前面,可以将其省略为FF;第五组0000,前三个0可以被省略,最后表示为0

但是比如说960A这个组,由于这个0前面有数字,所以不能省略。

最后这个地址就写为:

68E6:8C64:FF:FFFF:0:1180:960A:FFFF

确实简短了一些。

零压缩:一串连续的0可以被压缩为一对冒号::

比如地址:

FF05:0:0:0:0:0:0:B3 

中间连续的六组0000,可以被压缩为一对冒号::,最后地址就变成了:

FF05::B3

因为一个IPv6数据报被分为了8组,上面这个地址只有两组,中间用一对冒号,说明中间剩下的6组都是0000

但是要注意:一个地址只能进行一次零压缩

因为如果进行了多次零压缩,就不能确定一个地址了。

比如这个地址:

FF05::B3::9FFF

这个地址只有三个组,说明有五个组都是0000,请问FF05::B3有几组,B3::9FFF中间又有几组呢?

可以看到,这是不确定的,所以当进行多次零压缩,就无法确定一个地址了。

兼容IPv4地址

由于IPv4地址采用点分十进制,如果想要在点分十进制冒号十六进制之间转换,还是有点麻烦的。因此如果冒号十六进制内部的地址是一个IPv4地址,可以采用点分十进制作为地址后缀。

比如一个IPv4地址128.10.2.1,在IPv6中其实就只占用了最后两个分组,前六个分组都是0000。于是我们可以这样表示:

0:0:0:0:0:0:128.10.2.1

前半部分是冒号十六进制,最后两个分组是点分十进制。我们可以再进行一次零压缩,此时就变成了:

::128.10.2.1

通过这种方式,我们就可以很快把一个IPv4地址转化为IPv6地址了。

不过要注意:IPv4地址一定可以转化为IPv6地址,但是IPv6地址不一定可以转化为IPv4地址

结合CIDR

IPv6地址也可以使用CIDR来划分网络前缀主机号,和IPv4是相同的。

比如一个网络的60位网络前缀为:

12AB:0000:0000:CD30:0000:0000:0000:0000

其可以表示为以下三种方式:

12AB:0000:0000:CD30:0000:0000:0000:0000/60
12AB::CD30:0000:0000:0000:0000/60
12AB:0000:0000:CD30::/60

第二种和第三种方式其实就是进行了一次零压缩,不过压缩了不同的部分。


地址分类

接下来我们看看特殊的IPv6地址:

地址类型二进制形式CIDR结合冒号十六进制
未指明地址128位全0::/128
环回地址前127位全0最后一位为1::1/128
多播地址前8位全1后120位全0FF00::/8
本地站点单播地址前10位为1111111011后120位全0FEC0::/10
本地链路单播地址前10位为1111111010后120位全0FE80::/10

除了这些地址,剩下的都是全球单播地址

一个IPv6数据报,有以下三种传输方式:

  1. 单播:即点对点通信
  2. 多播:一对多的通信,IPv6广播视为一种多播
  3. 任播IPv6增加的一种类型,任播的终点是一组主机,但是只有一个主机会受到数据报,也就是“传播给这一组内部的任意一个计算机”,所以叫任播。一般来说是传递给距离最近的一个。

IPv4 到 IPv6 过渡

推行IPv6不是一蹴而就的,只能慢慢逐步演进,让IPv6慢慢地替代IPv4。由于目前主流的数据报还是IPv4,所以IPv6数据报想要在网络中传输,就必须兼容IPv4。主要有两种方法:双栈协议隧道技术

双栈协议

在这里插入图片描述

双栈协议的运行过程可以概括为:

  1. 地址绑定: 设备同时拥有 IPv4 和 IPv6 地址。
  2. 协议选择: 设备根据需要选择使用 IPv4 还是 IPv6 协议进行通信。
  3. 数据包封装: 根据选择的协议,数据包被封装成相应的协议格式。

上图中,路由器B和路由器E就是两个支持双栈协议的设备,当主机A要给主机F发送IPv6数据报时,由于要经过IPv4网络。路由器B会把IPv6数据报按照一定格式转化为IPv4数据报,随后在IPv4网络中传输。当路由器E接收到该数据报后,再将其转化成IPv6数据报。这样就可以完成IPv6数据报在IPv4网络中的传输。

双栈协议通过同时使用 IPv4IPv6 协议,确保设备能够与现有网络和设备进行通信,并为未来 IPv6 时代做好准备。它通过灵活选择协议,提高通信效率,并确保与现有网络的兼容性。

双栈协议的优缺点:

  • 优点:效率高
  • 缺点:由于会发生IPv4IPv6数据报的格式转化,有可能会造成损失

隧道技术

在这里插入图片描述

隧道技术是一种在现有网络基础上建立虚拟网络连接的技术。它通过将一种网络协议的数据包封装在另一种网络协议的数据包中,实现跨越不同网络环境的通信。

相比于双栈协议隧道技术不是直接把IPv6转化为IPv4,而是把IPv6数据报作为数据,封装在IPv4内部。这样就可以通过IPv4传输了。

隧道技术的优缺点如下:

  • 优点:这个过程不会修改原始的数据报,是无损的
  • 缺点:由于进行额外封装,整个数据报变大,效率降低

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

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

相关文章

Burp Suite使用及BruteForc_test靶场实战

简介 Burp Suite是用于攻击和测试Web应用程序安全性的集成平台,包含多个协同工作的工具,支持信息共享与复杂攻击。设计有加速攻击流程的接口,所有工具共享强大框架,处理HTTP消息、持久性、认证、代理、日志和警报。主要用于安全性…

【数据结构】【版本1.1】【线性时代】——单链表

快乐的流畅:个人主页 个人专栏:《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火,在为久候之人燃烧! 文章目录 引言一、顺序表的问题二、链表的概念三、单链表的模拟实现3.1 定义3.2 打印3.3 创建新节点3.4 头插3.5 尾插3…

2-3 基于matlab的NSCT-PCNN融合和创新算法(NSCT-ML-PCNN )图像融合

基于matlab的NSCT-PCNN融合和创新算法(NSCT-ML-PCNN )图像融合。NSSCTest.m文件:用于查看利用NSSC算法分解出的图像并保存。其中的nlevel可调test.m文件:用于产生融合结果,其中一个参数需要设置:Low_Coeffs…

DTU在城市智慧供热上的应用:引领供热行业的智能化革新

随着城市化的快速推进和人们对舒适生活需求的日益增长,供热系统作为城市基础设施的重要组成部分,其智能化、高效化的发展已成为必然趋势。在这一进程中,DTU(Data Transfer Unit,数据传输单元)以其独特的优势…

Java 反射机制 -- Java 语言反射的概述、核心类与高级应用

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 010 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

113.网络游戏逆向分析与漏洞攻防-邮件系统数据分析-结构体数据更新思路分析

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果,代码看不懂是正常的,只要会抄就行,抄着抄着就能懂了 内容…

12_YouOnlyLookOnce(YOLOv3)新一代实时目标检测技术

1.1 回顾V1和V2 V1:05_YouOnlyLookOnce(YOLOV1)目标检测领域的革命性突破-CSDN博客 V2:07_YouOnlyLookOnce(YOLOv2)Better,Faster,Stronger-CSDN博客 1.2 简介 YOLOv3(You Only Look Once version 3)是…

【因果推断python】33_合成控制3

目录 不要外推 不要外推 假设您有下表中的数据,并被要求构建一个合成控制,以使用控制单元的任何线性组合来重现处理过的单元。 由于有 3 个单位和只有 2 个属性要匹配,因此有多个确定性的解决方案可以解决这个问题,但一个不错的解…

[vue2]深入理解路由

本节目标 单页应用程序路由概念VueRouter基本使用组件分类存放路由模块封装声明式导航其他路由配置路由模式编程式导航案例-面经基础版 单页应用程序 单页应用程序(SPA): 所有的功能都在一个HTML页面上实现 网易云音乐: 网易云音乐 多页应用程序(MPA): 不同功能通过切换不同…

数字芯片设计指南之几个微流片设计(已开源)

1 位 ALU 作者 利奥慕时 描述 书中的 1 位 ALU Structured Computer Organization: Andrew S. Tanenbaum 链接 Wokwi 链接 & GitHub 链接 图片 桶形移位器 作者 约翰内斯霍夫(Johannes Hoff) 描述 将 6 位数字向左移动 0-3 位 链接 …

【CGAL】圆柱体检测结果后处理

文章目录 文章说明算法思路代码展示结果展示 文章说明 这篇文章主要介绍,对使用CGAL中的 Region Growing 算法爬取圆柱体的结果进行后处理,以获取位置、轴向量、半径都较为合理的单个圆柱体。 在之前的一篇文章中,使用了open3D生成的标准圆…

2024 年勒索软件将比以往更加残酷

如今,世界各地的人们去学校、去医院或去药店时,都会被告知:“抱歉,我们的计算机系统瘫痪了。” 罪魁祸首往往是在世界另一端活动的网络犯罪团伙,他们会要求人们支付系统访问费用或安全归还被盗数据。 尽管警方加大打…

搜维尔科技:【应用】人形机器人将成为引领产业新浪潮的尖兵

特斯拉纷纷发表人形机器人计划,预示这项先进科技将成为下一个颠覆性的殖民地。人形机器人被视为继电脑、智能手机和电车之后,又一个将改变世界的创新产品。 全球人口结构正在快速老化,至2050年60岁以上人口将达22%,是现今的两倍。劳动人口短缺迫在眉睫&…

Koolshare 软件中无法显示 Aliddns 更新泛域名失败

华硕 AC86U 升级之后,软件中心无法显示,没有找到更好的办法,只能重新格式化,带来的问题就是升级之前安装的软件全部被清掉了。感觉升级之后,可能兼容性出了问题。 Aliddns 更新失败 Aliddns 是一款可以在路由器上动态…

仰望U8三大黑科技,重新定义智能汽车

文 | 智能相对论 作者 | 雷歌 是时候重新定义中国的“智能汽车”了。 在仰望U8出来以前,普通人对知道的智能汽车的配置认识,智能汽车是智能驾驶智能座舱,硬件上大概是这几样:毫米波雷达激光雷达智驾芯片。 仰望U8出来以后&…

力扣每日一题 6/14 动态规划+数组

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 2786.访问数组中的位置使分数最大【中等】 题目: 给你一个下标…

【docker】Linux安装最新版Docker完整教程

这里写目录标题 一、安装前准备工作1.1、安装依赖包1.2、设置阿里云镜像源 二、安装Docker2.1、docker-ce安装2.2、启动docker2.3、启动docker并设置开机自启 三、 优化docker配置3.1、访问阿里云官方镜像加速器地址3.2、设置阿里云加速地址 一、安装前准备工作 1.1、安装依赖…

AI应用工具箱|AIGC聚集地

1、AI应用工具箱|AIGC聚集地 https://www.yuque.com/popponyj/aigc_aitools

使用Python和Matplotlib绘制复杂数学函数图像

本文介绍了如何使用Python编程语言和Matplotlib库来绘制复杂的数学函数图像。通过引入NumPy库的数学函数,我们可以处理包括指数函数在内的各种复杂表达式。本文详细讲解了如何设置中文字体以确保在图像中正确显示中文标题和标签,并提供了一个完整的代码示例,用户可以通过输入…

【AI基础】概览

一、目的 主要梳理一下大模型的相关概念,并在此基础上,部署安装最基础的AI运行环境,以达到输出AI领域的helloworld。 总的来说如图: 按照从下往上的顺序来理解,也是从下到上的顺序来安装部署。 规则1 注意每个层级的…