38、IPv6过渡技术
本节内容作为IPv6相关知识的最后一节内容,同时也作为我们本专栏网络层知识的最后一节内容,主要介绍从IPv4地址到IPv6地址过渡的相关技术。在这里我们只学习各类考试中常考的三种技术。
IPv4向IPv6的过渡
在前面的知识中,我们学习到了两种IP地址,一种传统的IP地址(也就是我们常见的以点分十进制表示的IPv4地址),另一种是为了解决IPv4地址数量耗尽问题而开始部署的以冒分十六进制表示的IPv6地址。
根据前面的学习,我们了解到IPv6地址空间巨大,是IP地址发展演进的趋势。可同时,IPv4地址已经长期存在并成熟应用多年,网络上的各类计算机、路由器等设备都是以IPv4地址进行互联互通。互联网的网络规模如此庞大、如此复杂,要把所有网络设备的IP地址改用IPv6绝非易事,不可能在短时间全部替换成IPv6通信。因此,要采用一种IPv4向IPv6平滑过渡的方法,逐步推进,直至IPv6的大规模应用。
IPv4向IPv6平滑过渡的技术,主要包括三种,分别是:双协议栈技术、隧道技术、NAT-PT技术。下面我们就这三种展开学习。
双协议栈
协议栈的概念,我们之前虽没有提到过,但是我们在一开始学习了TCP/IP模型,之后通过学习数据链路层、网络层,知道每个层次都有自己的协议。例如PPP协议、CSMA/CD协议等都是数据链路层的协议,IP协议、ICMP协议、ARP协议等都是网络层的协议。这样按照TCP/IP层次的“协议排列”,就称为协议栈。“栈”是一种计算机数据结构,可以形象地表达出TCP/IP模型的协议组织形式,想深入了解的同学可以看看数据结构中对“栈”的介绍。
理解了协议栈的概念,那么双协议栈也就不难理解了。双协议栈也就是有两个协议栈,这两个协议栈同时装在同一个设备上,也就是这个设备同时具有IPv4和IPv6两种协议栈。
现在我们大部分的计算机的网卡上,几乎都有这两种协议栈。以windows 10系统为例,具体查看的方法是:打开控制面板,找到“网络和Internet”,点击“网络和共享中心”,进入界面后在左侧找到“更改适配器选项”,找到自己的网卡,右击选择“属性”,在这个界面中,可以看到如下信息:
这说明,我们的计算机网卡上同时装有IPv4和IPv6两种协议栈,可以同时在IPv4、IPv6两种网络上通信,在和IPv4网络的主机通信时采用IPv4地址,在和IPv6网络中的主机通信时采用IPv6地址。由此也可见,如果网卡本身没有安装TCP/IPv6协议栈的话,就使用不了IPv6地址,只能使用IPv4地址通信。另外,个人宽带想使用IPv6地址通信,要开通ipv6的外网带宽业务,还要在自己的光猫和路由器上做一些其它的设置,以开启IPv6网络访问的功能。
这时候又产生一个新的问题:双协议栈的主机如要访问一个网站,怎么才能知道该网站是否支持IPv6呢?一般情况下,能够支持IPv6访问的网站,都在自己的网站页面上标有“本站已支持IPv6”等字样。如要查询,最简单的方法,是通过一些第三方工具来测试,例如 boce 等在线网站的“IPv6测试”功能即可检测一个网站是否支持IPv6。
隧道技术
第二种过渡的方法是使用隧道技术,这种方法适用于IPv6“孤岛”的情况,也就是说,IPv4网络规模巨大,就像一片海洋,而其中有几个使用IPv6协议栈的主机就像海洋里面一个个小的“孤岛”一样。
比如有两台主机A和B,这两台主机都只有IPv6协议栈,两者之间可以直接用IPv6地址通信的,但关键的问题在于它们之间的网络是IPv4的网络。这样情况下,主机A发送的IPv6的数据包该如何跨越“IPv4的海洋”到达主机B呢?这就是隧道技术产生的问题背景。
“隧道”是一个虚拟的概念,就像日常生活中的火车如何穿越大山一样,要在大山里面挖出一条隧道。那么IPv6的数据包如何穿越IPv4的网络,也是这个道理。这种方法的原理是:当IPv6的数据包进入IPv4网络的时候,就加上IPv4的首部,封装成IPv4的数据包,离开IPv4网络的时候再把加上的首部去掉,还原回IPv6的数据包交给目的主机。这个过程就像是在IPv4网络中“挖出了一条隧道”可以让IPv6数据包“穿越过去”。原理图如下:
由此可见两个特点:第一,在隧道中传输的时候,整个IPv6的数据包都是作为外面一层IPv4数据包的数据部分存在的,也就是把IPv6数据包封装进了IPv4数据包里面。第二,虽然要通信的两台主机并不是双协议栈的主机,但是必须要求两台同时连接着IPv4和v6网络的边界路由器(如图中展示的两台路由器)具有双协议栈,因为这样才能够完成隧道中封装的整个工作。
另外一个问题是,双协议栈的路由器怎么能够知道IPv4数据包里面封装的数据是一个IPv6的数据包呢?这就要依靠IPv4数据包首部中的“协议”字段的值了,将“协议”字段的值设置为41,就表示其数据部分是一个IPv6的数据包。
NAT-PT
通过前面学习NAT技术,我们知道这是一种地址转换技术。在路由器上配置NAT,用于公网和私网IP地址之间的映射和转换。既然NAT技术具有这种地址转换的“翻译”功能,那么能否利用这个功能,用于IPv4和IPv6之间地址的“翻译”呢?这种技术就是NAT-PT。
NAT-PT全称“Network Address Translator - Protocol Translator”,即“带有协议转换器的网络地址翻译”,它的功能就是让IPv6的节点可以和IPv4的节点之间可以互通。
NAT-PT的原理和NAT类似,出口路由器上配置一个IPv4地址池,当IPv6的主机发出数据包,经过出口路由器,路由器根据预先配置好的信息,将数据包源地址转换成一个IPv4的地址。和NAT一样,NAT-PT也可以分为“一对一”的转换和“一对多”的转换。同理,一对多的转换被称为NAPT-PT。(如果不知道“一对多”的含义,请参看本专栏中第33节——NAT的内容)
另外需要指明的是,NAT-PT的主要功能是IPv6的节点发起向IPv4的节点的通信,但反过来,IPv4的节点要访问IPv6的节点则比较复杂。NAT-PT的路由器除了要具有IPv4地址池以外,还要有应用层网关的支持,否则不能实现IPv4节点对IPv6节点的访问。(应用层网关是一种防火墙,学习网络安全时会详细介绍)。
以上的内容,就是IPv4向IPv6地址过渡的三种技术,有关IPv6的内容就介绍完了,这也就意味着网络层的内容介绍完了。从下面一节开始,我们学习传输层的相关内容。
参考教材:谢希仁《计算机网络》第八版
相关文章:

38、IPv6过渡技术
本节内容作为IPv6相关知识的最后一节内容,同时也作为我们本专栏网络层知识的最后一节内容,主要介绍从IPv4地址到IPv6地址过渡的相关技术。在这里我们只学习各类考试中常考的三种技术。 IPv4向IPv6的过渡 在前面的知识中,我们学习到了两种IP地…...
HMMER-序列分析软件介绍
HMMER是一个软件包,它提供了制作蛋白质和DNA序列域家族概率模型的工具,称为轮廓隐马尔可夫模型、轮廓HMM或仅轮廓,并使用这些轮廓来注释新序列、搜索序列数据库以寻找其他同源物,以及进行深度多重序列比对。HMMER是已知蛋白质和DN…...

【项目学习1】如何将java对象转化为XML字符串
如何将java对象转化为XML字符串 将java对象转化为XML字符串,可以使用Java的XML操作库JAXB,具体操作步骤如下: 主要分为以下几步: 1、创建JAXBContext对象,用于映射Java类和XML。 JAXBContext jaxbContext JAXBConte…...
nginx负载均衡
负载均衡:反向代理来实现 正向代理的配置方法。 1、NGINX的七层代理和四层代理: 七层是最常用的反向代理方式,只能配置在nginx配置文件的http模块。而且配置方法名称:upstream 模块,不能写在server中,也…...

【毕业项目】自主设计HTTP
博客介绍:运用之前学过的各种知识 自己独立做出一个HTTP服务器 自主设计WEB服务器 背景目标描述技术特点项目定位开发环境WWW介绍 网络协议栈介绍网络协议栈整体网络协议栈细节与http相关的重要协议 HTTP背景知识补充特点uri & url & urn网址url HTTP请求和…...

关于安卓jar包修改并且重新发布
背景: 对于某些jar包,其内部是存在bug的,解决的方法无外乎就有以下几种方法: (1)通过反射,修改其赋值逻辑 (2)通过继承,重写其方法 (3࿰…...

Java课题笔记~ AspectJ 对 AOP 的实现(掌握)
AspectJ 对 AOP 的实现(掌握) 对于 AOP 这种编程思想,很多框架都进行了实现。Spring 就是其中之一,可以完成面向切面编程。然而,AspectJ 也实现了 AOP 的功能,且其实现方式更为简捷,使用更为方便,而且还支…...

npm 报错 cb() never called!
不知道有没有跟我一样的情况,在使用npm i的时候一直报错:cb() never called! 换了很多个node版本,还是不行,无法解决这个问题 百度也只是让降低node版本请缓存,gpt给出的解决方案也是同样的 但是缓存清过很多次了&a…...
finally有什么作用以及常用场景
在Java中,finally是一个关键字,用于定义一个代码块,该代码块中的代码无论是否发生异常都会被执行。finally块通常用于确保在程序执行过程中资源的释放和清理。 使用场景: 1. 资源释放:finally块经常用于释放打开的资…...
Python web实战之Django URL路由详解
概要 技术栈:Python、Django、Web开发、URL路由 Django是一种流行的Web应用程序框架,它采用了与其他主流框架类似的URL路由机制。URL路由是指将传入的URL请求映射到相应的视图函数或处理程序的过程。 什么是URL路由? URL路由是Web开发中非常…...

10-数据结构-队列(C语言)
队列 目录 目录 队列 一、队列基础知识 二、队列的基本操作 1.顺序存储 编辑 (1)顺序存储 (2)初始化及队空队满 (3)入队 (4)出队 (5)打印队列 &…...
面试之快速学习C++11 - 右值 移动构造 std::move
C11右值引用 字面意思,以引用传递的方式使用c右值左值和右值,左值是lvalue loactor value 存储在内存中,有明确存储地址的数据, 右值rvalue read value , 指的是那些可以提供数据值的数据(不一定可以寻址,…...

vue实现5*5宫格当鼠标滑过选中的正方形背景颜色统一变色
vue实现5*5宫格当鼠标滑过选中的正方形背景颜色统一变色 1、实现的效果 2、完整代码展示 <template><div id"app" mouseleave"handleMouseLeave({row: 0, col: 0 })"><div v-for"rowItem in squareNumber" :key"rowItem…...

2023-08-09 LeetCode每日一题(整数的各位积和之差)
2023-08-09每日一题 一、题目编号 1281. 整数的各位积和之差二、题目链接 点击跳转到题目位置 三、题目描述 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例1: 示例2: 提示: 1 …...

EditPlus连接Linux系统远程操作文件
EditPlus是一套功能强大的文本编辑器! 1.File ->FTP->FTP Settings; 2.Add->Description->FTP server->Username->Password->Subdirectory->Advanced Options 注意:这里的Subdirectory设置的是以后上传文件的默认…...
JVM 垃圾回收
垃圾回收算法 标记-清除算法(Mark and Sweep) 标记-清除算法分为两个阶段。在标记阶段,垃圾收集器会标记所有活动对象;在清除阶段,垃圾收集器会清除所有未标记的对象。标记-清除算法存在的问题是会产生内存碎片&#…...

编程中的宝藏:二分查找
二分查找 假设你需要在电话簿中找到一个以字母 “K” 开头的名字(虽然现在谁还在用电话簿呢!)。你可以从头开始翻页,直到进入以 “K” 打头的部分。然而,更明智的方法是从中间开始,因为你知道以 “K” 打头…...

计算机网络 数据链路层
...

如何维护自己的电脑
目录 1、关于电脑选择的建议 1.1、价格预算 1.2、明确需求 1.3、电脑配置 1.4、分辨率 1.5、续航能力 1.6、品牌选择 1.7、用户评测 1.8、各个电商平台对比 1.9、最后决策 2、我的选择 3、电脑保养 3.1 外部清洁 3.2 安装软件 3.3 优化操作系统 3.4 维护硬件设…...

智能优化算法——哈里鹰算法(Matlab实现)
目录 1 算法简介 2 算法数学模型 2.1.全局探索阶段 2.2 过渡阶段 2.3.局部开采阶段 3 求解步骤与程序框图 3.1 步骤 3.2 程序框图 4 matlab代码及结果 4.1 代码 4.2 结果 1 算法简介 哈里斯鹰算法(Harris Hawks Optimization,HHO),是由Ali As…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...

解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...