5.5.4 从IPv4到IPv6过渡——双协议栈

news2025/1/13 15:58:58

5.5.4 从IPv4到IPv6过渡——双协议栈

与软件版本更新不同,IP协议版本的更新不可能在短时间内完成,只能够采用逐步演进的方法,也就是说在很长一段时间内,必须允许两种协议的网络并存,并且能够确保网络能够互联互通,从而不影响用户的使用。也就是说安装了IPv6协议的主机系统之间的数据可以利用IPv4网络传输,或者支持IPv4系统和IPv6系统之间的通信。这就需要从IPv4逐步实现到IPv6的过度。

一、从IPv4到IPv6过渡

主要使用了两种方法

  1. 双协议栈(dual stack),顾名思义就是在完全实现协议更新之前网络中的一部分主机或路由器必须同时安装两个协议栈,一个IPv4和一个IPv6。

    如图 在这里插入图片描述

    最左边系统中安装的协议栈仅仅支持IPv4 ,可以产生并且接收处理IPv4的数据报,最右边的系统中仅仅支持IPv6,可以生成并处理IPv6的数据报,这两个系统之间是无法直接通信的,在二者之间有一个安装双协议栈的系统,同时支持IPv4和IPv6,利用这个系统可以实现网际协议转换的任务。比如将从最左边系统接收到的IPv4分组经过协议转换产生右侧系统能够识别并且能够处理IPv6的分组,从而实现不同协议版本系统之间的通信与信息交换。

    • 如何实现利用系统的IPv4网络来传送两个安装IPv6协议栈主机之间的数据?使用双协议栈应该如何实现?如图所示

      在这里插入图片描述

      图中A和F是两台主机,都安装IPv6的协议栈,这两台远程主机之间进行通信必须经过中间的IPv4网络,B和E是IPv4网络两台接入路由器,为了使用中间的IPv4网络实现A和F之间的信息交换,B和E上必须部署双协议栈来支持A和F的接入。

      具体的过程是主机A产生IPv6数据报,首部填写的目的地址是F,数据报先到达路由器B,B利用IPv6协议规范来解析分组以后转换成相应的IPv4的分组,如此以来这个分组就可以直接在IPv4网络中进行转发,处理。经过C和D的转发,到达E,主机E再经过反向的协议转换将该分组转换成相应的IPv6报文,从而传送给F主机。

      在整个的传输过程中通过在B和E上的双协议栈结构实现协议转换,实现两台IPv6主机利用IPv4网络的远程通信。

      这种利用双协议栈转换的方法带来的弊端欢迎大家在讨论区参与讨论。

  2. 隧道技术

    除了利用双协议栈进行网际协议转换之外,我们还可以利用隧道技术来实现IPv4向IPv6的过渡。隧道技术对我们来说并不陌生因为在实际的互联网的环境中隧道技术的应用是非常广泛的,比如我们前面讨论的虚拟专用网(VPN)(5.4.1 虚拟专用网VPN)就使用了隧道技术来支持在企业的内部网络之间的安全的远程通信,那么摆在我们面前的就是如何使用隧道技术来实现IPv4向IPv6过渡的问题。

    如图

    在这里插入图片描述

    同样A和F安装IPv6的协议栈,他们利用IPv4网络进行远程通信,主机A产生IPv6数据报,首部填写的目的地址是F,数据报先到达路由器B,此时B不再执行网际协议的转换,而是将A产生的IPv6报文作为数据部分封装到一个新的IPv4数据报的数据部分,外层的IPv4数据报的首部中源IP地址是B,目的IP地址是E,都是IPv4网络中的接入路由器,这个封装过程就被成为隧道封装,封装后形成的IPv4数据报在IPv4网络中传输,直到到达路由器E,在此过程中IPv4网络中所有中间的路由器都不会去处理内部的IPv6报文,换句话说主机A和F之间交换的IP数据报对于IPv4网络而言是不可见的。在路由器E上从IPv4分组中取出内部的IPv6的分组,直接交付给目的主机F。这个传输过程就宣告结束。

    从数据的整个传输过程我们可以看到采用隧道技术虽然在路由器B和E上安装了双协议栈的结构,但并没有实现协议报文格式的变换,而是利用了封装的技术来屏蔽协议和协议之间的差异性,从而保护了原有数据信息的完整性。

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

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

相关文章

C++11语法杂记(更新中)

文章目录 一. delctype二. default三. delete四. 可变参数模板五. emplace系列六. noexcept七. constexpr 一. delctype delctype和auto类似,也可以自动识别类型 举例如下: 与auto不同的是,auto只能用于定义变量类型,而decltyp…

查看ResultSet中的rowData

之前的dml语句都返回值都是int表示有改动的行数 那么Select可是要展示数据的 SELECT查询的结果 通过这个ResultSet遍历 然后通过next方法来一行行读取数据 类似于迭代器(肯定不是迭代器) 里面还包含获得的数据元素 相当于这个既包含元素,还能迭代自己的元素 具体你…

MySQL——DQL,DCL语言学习

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 本章将会讲解MySQLDQL,DCL语言的学习。 一.DQL DQL 英文全称是 Data …

全志V3S嵌入式驱动开发(五种镜像烧入的方法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 关于v3s的镜像烧入,大约有五种方法。前面陆陆续续已经介绍了三种方法,实际工作中具体使用哪一种,大家可以根据自…

SpringBoot 监控与管理的主要组件

SpringBoot 监控与管理的主要组件 SpringBoot作为一款开箱即用的Java Web开发框架,集成了很多方便开发者使用的组件。其中一个非常重要的组件就是监控与管理组件。在现代的分布式应用中,监控与管理已经成为了必不可少的一部分。SpringBoot提供了一些非常…

指针与数组--动态数组(1)[1、C程序的内存映像 2、动态内存分配]

目录 一、C程序的内存映像 二、动态内存分配 1、malloc()函数 2、calloc()函数 3、free()函数 4、realloc()函数 一、C程序的内存映像 一个编译后的C程序 获得并使用4块在逻辑上不…

vue+leaflet 使用js自定义封装动画marker样式点

效果图 1. 引入leaflet import L from leaflet2. 使用原生js实现 import L from leaflet; import ../assets/css/blinkmarker.css; L.blinkMarker (point, property) > {// 使用js标签,便于操作,这个temDivEle的作用是将divEle通过innerHTML的方式获取为字符串var temp…

Nacos 打通 CMDB 实现就近访问

博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面…

小程序 体验版 快速配置https服务接口 - 项目是nodeJS配置本地https服务,不用下载源码不用付费,直接使用Git的openssh功能(亲测有效)

背景 学习网易云音乐小程序开发,用了老师的node JS做后端服务器,上线小程序体验版必须要https接口。 接下来就是配置NodeJs服务https踩的坑跟发现的惊喜。 配置https 下载与配置 密钥生成 1 运行命令 : openssl genrsa -out privatekey.p…

BST有缺陷--红黑树(RBT)应运而生

1.首先介绍一下什么是BST(二叉查找树) 若其左子树非空,则左子树上所有节点的值都小于根节点的值若其右子树非空,则右子树上所有节点的值都大于根节点的值其左右子树都是一棵二叉查找树二叉排序树通过中序遍历可以得到递增序列 如下…

技能树-网络爬虫-selenium

文章目录 前言一、selenium二、selenium 测试用例总结 前言 大家好,我是空空star,本篇给大家分享一下《技能树-网络爬虫-selenium》。 一、selenium Selenium是web自动化测试工具集,爬虫可以利用其实现对页面动态资源的采集,对于…

一位老程序员的忠告:别想着靠技术生存一辈子

注:本文系转载。 笔者目前是自己单干,但此前有多年在从事软件开发工作,回头想想自己,特别想对那些初学JAVA/DOT、NET技术的朋友说点心里话,希望我们的体会多少能给你们一些启发。 一、 在一个地方工作8小时就是“穷”…

Python多线程与多进程教程:全面解析、代码案例与优化技巧

文章目录 引言多线程多线程概述案例1:使用多线程实现并发下载文件案例2:使用多线程处理CPU密集型任务 使用threading模块案例1:自定义线程类并启动线程案例2:使用锁保护共享资源 线程同步与互斥案例:使用锁实现线程安全…

css用法总结

1. 块级元素合并时边框重叠问题的解决方案 设置边框2px 红色 如果不做处理,仅仅添加边框则会是这个样子 设置处理后的样式 代码展示 2. 拥有边框的div , hover时的展示效果 代码展示 3. img 和 文字环绕展示 代码展示 设置左浮动即可 4. text-align: center; 可…

Linux——Samba文件共享服务

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。 个人主页:小李会科技的…

Go语言基础-基础语法

前言: \textcolor{Green}{前言:} 前言: 💞这个专栏就专门来记录一下寒假参加的第五期字节跳动训练营 💞从这个专栏里面可以迅速获得Go的知识 本文主要是根据今天所学(链接放在了最后)总结记录的…

please specify ‘programme‘ in launch.json

故障现象: 在windows下点击F5,以运行vscode代码,在屏幕右下角出现这个错误提醒; 故障原因: 在配置文件(settings.json或者launch.json)中,缺少“program”这个参数配置&#xff1b…

SpringBoot 如何使用 Actuator 进行应用程序监控

SpringBoot 如何使用 Actuator 进行应用程序监控 在现代的应用程序开发中,应用程序监控是非常重要的,因为它可以帮助我们快速发现和解决问题。Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具,它可以帮助我们监控和管理…

0003Java程序设计-SSM+JSP现代家庭教育网站

摘 要 本毕业设计的内容是设计并且实现一个基于java技术的现代家庭教育网站。它是在Windows下,以MYSQL为数据库开发平台,java技术和Tomcat网络信息服务作为应用服务器。现代家庭教育网站的功能已基本实现,主要包括主页、个人中心、会员管理、…

Maven如何创建Maven web项目

1、创建一个新的模块: 1.1 使用骨架点一下,这里 1.2 找到maven-archetype-webapp项目,选中点击,一路next就行。 1.3 删除不必要的maven配置:(这里我不需要,针对自己情况而定) 可以从name这里开…