计算机网络:网络层 —— 移动 IP 技术

文章目录

      • IPv6
        • IPv6 的诞生背景
        • 主要优势
          • IPv6引进的主要变化
        • IPv6数据报的基本首部
          • IPv6数据报首部与IPv4数据报首部的对比
        • IPv6数据报的拓展首部
        • IPv6地址
          • IPv6地址空间大小
          • IPv6地址的表示方法
        • IPv6地址的分类
        • 从IPv4向IPv6过渡
          • 使用双协议栈
          • 使用隧道技术
        • 网际控制报文协议 ICMPv6
          • ICMPv6报文的封装
          • ICMPv6报文的分类

IPv6

IPv6 的诞生背景

IPv4 是在20世纪70年代末期设计的,其IPv4地址的设计存在以下缺陷:

  • IPv4 的设计者最初并没有想到该协议会在全球范围内广泛使用因此将IPv4地址的长度规定为他们认为足够长的32比特

  • IPv4 地址早期的编址方法(分类的IPv4地址划分子网的IPv4地址)也不够合理,造成 IPv4 地址资源的浪费。

主要优势

如果没有 网络地址转换 NAT 技术 的广泛应用,IPv4 早已停止发展。然而,NAT 仅仅是为了延长 IPv4 使用寿命而采取的权宜之计,解决 IPv4 地址耗尽的根本措施就是采用具有更大地址空间(IP地址的长度为128比特)的新版本IP,即IPv6。但到目前为止,IPv6还只是草案标准阶段 [RFC2460,RFC4862,RFC4443]

IPv6引进的主要变化

IPv6(Internet Protocol version 6)是互联网上的下一代 IP 协议,用于解决 IPv4 地址空间有限的问题。

  • 更大的地址空间:相比 IPv4 的 32 位地址,IPv6 采用了 128位地址空间,提供了大量可用的 IP 地址。在采用合理编址方法的情况下,在可预见的未来是不会用完的。

  • 扩展的地址层次结构:可划分为更多的层次,这样可以更好地反映出因特网的拓扑结构,使得对寻址和路由层次的设计更具有灵活性。

  • 灵活的首部格式:与IPv4首部并不兼容。IPv6定义了许多可选的的扩展首部,不仅可提供比IPv4更多的功能,还可以提高路由器的处理效率,因为路由器对逐跳扩展首部外的其他扪展首部都不进行处理。

  • 改进的选项:IPv6允许分组包含有选项的控制信息,因而可以包含一些新的选项。然而IPv4规定的选项却是固定不变的。

  • 允许协议继续扩充:这一点很重要,因为技术总是在不断地发展,而新的应用也会层出不固定不变的。

  • 支持即插即用(即自动配置):IPv6支持主机或路由器自动配置IPv6地址及其他网络配置参数。因此IPv6不需要使用DHCP

  • 支持资源的预分配:IPv6能为实时音视频等要求保证一定带宽和时延的应用,提供更好的服务质量保证

IPv6数据报的基本首部

![[IPv6数据报的基本首部.png]]

  • 所有的扩展首部并不属于IPv6数据报的首部,它们与其后面的数据部分合起来构成有效载荷(payload,也称为净负荷)

  • 通信量类字段:长度为8比特,该字段用来区分不同的IPv6数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。

  • 流标号字段:长度为20比特。IPv6提出了的抽象概念。

    “流”就是因特网上从特定源点到特定终点(单播或多播)的一系列IPv6数据报(如实时音视频数据的传送),而在这个“流”所经过的路径上的所有路由器都保证指明的服务质量

    所有属于同一个流的IPv6数据报都具有同样的流标号。换句话说,流标号用于资源分配

    流标号对于实时音视频数据的传送特别有用,但对于传统的非实时数据,流标号则没有用处,把流标号字段的值置为0即可。

  • 有效载荷长度字段:长度为16比特,它指明IPv6数据报基本首部后面的有效载荷(包括扩展首部和数据部分)的字节数量。该字段以字节为单位,最大取值为 65535,IPv6数据报基本首部后面的有效载荷的最大长度为 65535 字节

  • 下一个首部字段:长度为8比特。该字段相当于IPv4数据报首部中的协议字段或可选字段。

    当IPv6数据报没有扩展首部时,该字段的作用与IPv4的协议字段一样,它的值指出了IPv6数据报基本首部后面的数据是何种协议数据单元PDU。如取值为 6 时,则数据载荷部分是 TCP 报文段;取值为 17,则有效载荷部分是 UDP 用户数据报。

    当 IPv6 数据报基本首部后面带有扩展首部时,该字段的值就标识后面第一个扩展首部的类型

    ![[下一个首部字段.png]]

  • 跳数限制字段:长度为8比特。该字段用来防止IPv6数据报在因特网中永久兜圈。

    源点在每个 IPv6 数据报发出时即设定某个跳数限制(最大255跳)每个路由器在转发 IPv6 数据报时,要先把跳数限制字段中的值减1。当跳数限制的值为 0 时,就把这个 IPv6 数据报丢弃(即不转发)。

    该字段的作用与IPv4数据报首部中的生存时间TTL字段完全一样。IPv6将名称改为跳数限制后可使名称与作用更加一致。

  • 源地址字段和目的地址字段:长度都为128比特。分别用来填写IPv6数据报的发送端的IPv6地址和接收端的IPv6地址。

IPv6数据报首部与IPv4数据报首部的对比
  • IPv6将IPv4数据报首部中不必要的功能取消了,这使得IPv6数据报基本首部中的字段数量减少到只有8个

  • 由于IPv6地址的长度扩展到了128比特,因此使得IPv6数据报基本首部的长度反而增大到了40字节,比IPv4数据报首部固定部分的长度(20字节)增大了20字节。

  • 取消了首部长度字段,IPv6数据报的首部长度是固定的40字节。

  • 取消了区分服务(服务类型)字段,IPv6数据报首部中的通信量类流标号字段实现了区分服务字段的功能。

  • 取消了总长度字段,改用有效载荷长度字段。IPv6数据报的首部长度是固定的40字节,只有其后面的有效载荷长度是可变的。

  • 取消了标识、标志和片偏移字段,这些功能已包含在IPv6数据报的分片扩展首部中

  • 把生存时间TTL字段改称为跳数限制字段,这样名称与作用更加一致。

  • 取消了协议字段,改用下一个首部字段。

  • 取消了首部检验和字段,这样可以加快路由器处理IPv6数据报的速度。

  • 取消了选项字段,改用扩展首部来实现选项功能。

IPv6数据报的拓展首部

IPv4数据报如果在其首部中使用了选项字段,则在数据报的整个传送路径中的全部路由器,都要对选项字段进行检查,这就降低了路由器处理数据报的速度

实际上,在路径中的路由器对很多选项是不需要检查的。因此,为了提高路由器对数据报的处理效率IPv6把原来IPv4首部中的选项字段都放在了扩展首部中,由路径两端的源点和终点的主机来处理,而数据报传送路径中的所有路由器都不处理这些扩展首部(除逐跳选项扩展首部)。

[RFC 2460] 中定义了以下六种扩展首部:

  1. 逐跳选项

  2. 路由选择

  3. 分片

  4. 鉴别

  5. 封装安全有效载荷

  6. 目的站选项

每一个扩展首部都由若干个字段组成,它们的长度也各不相同。所有扩展首部中的第一个字段,都是8比特的下一个首部字段。该字段的值指出在该扩展首部后面是何种扩展首部。当使用多个扩展首部时,应按以上的先后顺序出现

IPv6地址
IPv6地址空间大小

在IPv6中,每个地址占128个比特。IPv6地址空间大小为 2 128 ( 大于 3.4 × 1 0 38 ) 2^{128} (大于 3.4 \times 10^{38}) 2128(大于3.4×1038)

如果整个地球表面(包括陆地和水面)都覆盖着需要IPv6地址的通信设备,那么IPv6允许每平方米拥有 7 × 1 0 23 7\times10^{23} 7×1023 个IPv6地址。

如果IPv6地址分配速率是每微秒分配100万个IPv6地址,则需要 1 0 19 10^{19} 1019年的时间才能将所有可能的地址分配完毕。

很显然,这样巨大的地址空间在采用合理编址方法的情况下,在可预见的未来是不会用完的

IPv6地址的表示方法


IPv6 地址的表示形式是将每16比特分为1组,以 8组16进制数 表示,每组使用冒号(:)分隔(冒号十六进制记法),例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334不区分大小写)。

为了简化地址表示,IPv6还引入了一些缩写规则,如 “左侧零”省略“连续零”压缩

  • 左侧零省略:指两个冒号间的十六进制数中最前面的一串0可以省略不写

  • 连续零压缩:指一连串连续的 0 可以用一对冒号取代,即连续的 0 组简写为“::”,例如 2001:db8::1

  • 在一个IPv6地址中只能使用一次“连续零”压缩,否则会导致歧义。

使用多次“连续零”压缩:

在这里插入图片描述
只使用一次“连续零”压缩,并使用“左侧零”省略:

在这里插入图片描述

冒号十六进制记法还可结合点分十进制的后缀。在IPv4向IPv6过渡阶段非常有用:

![[冒号十六进制记法还可结合点分十进制的后缀.png]]

CIDR的斜线表示法在IPv6中仍然可用

![[CIDR的斜线表示法在IPv6中仍然可用.png]]

IPv6地址的分类

IPv6数据报的目的地址有三种基本类型:

  • 单播(unicast):传统的点对点通信

  • 多播(multicast):一点对多点的通信。数据报发送到一组计算机中的每一个。IPv6没有采用广播的术语,而将广播看作多播的一个特例。

  • 任播(anycast):这是IPv6新增的一种类型。任播的终点是一组计算机,但数据报只交付其中的一个,通常是按照路由算法得出的距离最近的一个

[RFC 4291] 对IPv6地址进行了分类:

  • 未指明地址

    • 128个比特为“全0”的地址,可缩写为两个冒号 “::

    • 该地址不能用作目的地址,只能用于还有配置到一个标准IPv6地址的主机用作源地址

    • 未指明地址仅有一个

  • 环回地址

    • 最低比特为1,其余127个比特为“全0”,即 0:0:0:0:0:0:0:1,可缩写为 ::1

    • 该地址的作用与IPv4的环回地址相同。

    • IPv6的环回地址只有一个

  • 多播地址

    • 最高8比特为“全1”的地址,可记为 FF00::/8 .

    • IPv6多播地址的功能与IPv4多播地址相同。

    • 这类地址占IPv6地址空间的1/256

  • 本地链路单播地址

    • 最高 10 比特为 1111111010 的地址,可记为 FE80::/10

    • 连接在这种网络上的主机即使用户网络没有连接到因特网,但仍然可以使用TCP/IP协议。都可以使用本地链路单播地址进行通信,但不能和因特网上的其他主机通信

    • 这类地址占IPv6地址空间的1/1024

  • 全球单播地址

    • 全球单播地址是使用得最多的一类地址。

    • IPv6全球单播地址采用三级结构,这是为了使路由器可以更快地查找路由。

    ![[三级结构的IPV6全球单播地址.png]]

从IPv4向IPv6过渡

因特网上使用IPv4的路由器的数量太大,要让所有路由器都改用IPv6并不能一蹴而就。因此,从IPv4转变到IPv6只能采用逐步演进的办法

另外,新部署的IPv6系统必须能够向后兼容,也就是IPv6系统必须能够接收和转发IPv4数据报,并且能够为IPv4数据报选择路由

有两种由IPv4向IPv6过渡的策略:使用双协议栈、使用隧道技术
相关文档为 [RFC2473,RFC2529,RFC 2893,RFC 3056,RFC 4038,RFC 4213]

使用双协议栈

双协议栈(Dual Stack)是指在完全过渡到IPv6之前,使一部分主机或路由器装有IPv4和IPv6两套协议栈

双协议栈主机或路由器既可以和IPv6系统通信,又可以和IPv4系统通信

  • 双协议栈主机或路由器记为 IPv6/IPv4,表明它具有一个IPv6地址和一个IPv4地址

  • 双协议栈主机在与IPv6主机通信时采用IPv6地址,而与IPv4主机通信时采用IPv4地址。

双协议栈主机通过域名系统DNS查询目的主机采用的IP地址

  • DNS 返回的是 IPv4 地址,则双协议栈的源主机就使用 IPv4 地址

  • DNS 返回的是 IPv6 地址,则双协议栈的源主机就使用 IPv6 地址

![[双协议栈主机.png]]

IPv6数据报中的流标号字段无法转换为IPv4数据报中的内容,IPv4数据报转换为IPv6数据报时也无法将流标号恢复,这种信息的损失是使用首部转换方法所不能避免的。

使用隧道技术

隧道技术(Tunneling)的核心思想是:

  1. 当IPv6数据报要进入IPv4网络时,将IPv6数据报重新封装成IPv4数据报,即整个IPv6数据报成为IPv4数据报的数据载荷

  2. 封装有IPv6数据报的IPv4数据报在IPv4网络中传输。

  3. 当IPv4数据报要离开IPv4网络时,再将其数据载荷(即原来的IPv6数据报)取出并转发到IPv6网络。

要使双协议栈路由器 R4 知道 IPv4 数据报的数据载荷是 IPv6 数据报,则IPv4数据报首部中协议字段的值必须设置为41.

![[隧道技术.png]]

使用隧道技术就好像在路由器 R1 和 R4 之间,为 IPv6 数据报的传送打通了一条专用的隧道。

网际控制报文协议 ICMPv6

由于IPv6与IPv4一样,都不确保数据报的可靠交付,因此IPv6也需要使用 网际控制报文协议ICMP 来向发送IPv6数据报的源主机反馈一些差错信息,相应的 ICMP 版本为 ICMPv6

ICMPv6ICMPv4 要复杂得多,它 合并了原来的地址解析协议ARP 和 网际控制报文协议ICMP 的功能。因此与 IPv6 配套使用的网际层协议就只有 ICMPv6 这一个协议。

![[网际控制报文协议ICMPv6.png]]

ICMPv6报文的封装

ICMPv6 报文需要封装成 IPv6 数据报进行发送

![[ICMPv6报文.png]]

IPv6 数据报的有效载荷中,包含有扩展首部,在扩展首部之后封装的是ICMPV6报文,则在ICMPv6 报文前面的那个扩展首部中的下一个首部字段的值必须设置为58,表明该扩展首部后面是 ICMPv6 报文

![[IPV6数据报扩展首部.png]]

ICMPv6报文的分类

ICMPv6 报文可被用来报告差错获取信息探测邻站管理多播通信

在对 ICMPv6 报文进行分类时,不同的 RFC 文档使用了不同的策略:

[RFC 2463] 中定义了六种类型的 ICMPv6 报文
[RFC 2461] 中定义了五种类型的 ICMPv6 报文
[RFC 2710] 中定义了三种类型的 ICMPv6 报文

![[ICMPv6报文的分类.png]]

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大客户营销数字销售实战讲师培训讲师唐兴通专家人工智能大模型销售客户开发AI大数据挑战式销售顾问式销售专业销售向高层销售业绩增长创新

唐兴通 销售增长策略专家、数字销售实战导师 专注帮助企业构建面向AI数字时代新销售体系,擅长运用数字化工具重塑销售流程,提升销售业绩。作为《挑战式销售》译者,将全球顶尖销售理论大师马修狄克逊等理论导入中国销售业界。 核心专长&…

【dvwa靶场:XSS系列】XSS (Stored)低-中-高级别,通关啦

更改name的文本数量限制大小&#xff0c; 其他我们只在name中进行操作 【除了低级可以在message中进行操作】 一、低级low <script>alert("假客套")</script> 二、中级middle 过滤了小写&#xff0c;咱们可以大写 <Script>alert("假客套…

css中pointer-events:none属性对div里面元素的鼠标事件的影响

文章目录 前倾提要当没有设置属性pointer-events时候结果 当子元素设置了pointer-events: none修改后的代码结果如下所示 当父元素设置了pointer-events: none若两个div同级也就是兄弟级 前倾提要 在gis三维开发的地图组件上放一个背景图片&#xff0c;左右两侧的颜色渐变等&a…

Vue:计算属性

Vue&#xff1a;计算属性 计算属性getset 在模板中&#xff0c;有时候填入的值要依赖于多个属性计算得出。 例如使用姓和名拼出全名&#xff1a; 以上效果可以通过以下代码实现&#xff1a; <div id"root">姓&#xff1a;<input type"text" v-m…

就业市场变革:AI时代,我们将如何评估人才?

内容概要 在这个充满变革的时代&#xff0c;就业市场正被人工智能&#xff08;AI&#xff09;技术深刻改变。随着技术的进步&#xff0c;传统的人才评估方式逐渐显示出其局限性。例如&#xff0c;过去依赖于纸质简历和面试评估的方式在快速变化的环境中难以准确识别真实的人才…

网站504错误出现的原因以及如何修复

504网关超时错误意味着上游服务器未能在规定时间内完成请求&#xff0c;导致无法传递网站内容。当您访问某个网站时&#xff0c;浏览器会向该网站的服务器发出请求。如果请求处理成功&#xff0c;服务器会返回200 OK状态码&#xff1b;但如果服务器响应超时&#xff0c;浏览器可…

学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)

目录 一、部署单点RocketMQ 二、原理篇 三、实操篇 1、引入依赖 2、启动自动装配 3、配置application.yml 4、启动类 5、编写一个统一格式的消息对象 6、生产者 ​编辑 7、定义一个constant 8、多/单个消费者订阅一个主题 1.实现消费者 2.编写接口发送消息 3.接口…

安全关键型嵌入式系统设计模式整理及应用实例

本文提供了对安全关键型嵌入式系统设计模式的全面概述&#xff0c;这些模式旨在提高系统在面临潜在故障时的安全性和可靠性。文中详细介绍了15种设计模式&#xff0c;包括同质冗余&#xff08;HmD&#xff09;、异质冗余&#xff08;HtD&#xff09;、三模冗余&#xff08;TMR&…

京东零售推荐系统可解释能力详解

作者&#xff1a;智能平台 张颖 本文导读 本文将介绍可解释能力在京东零售推荐系统中的应用实践。主要内容包括以下几大部分&#xff1a;推荐系统可解释定义、系统架构、排序可解释、模型可解释、流量可解释。 推荐系统可解释定义 推荐系统可解释的核心包括三部分&#xff0…

java项目之校园周边美食探索及分享平台(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园周边美食探索及分享平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 校园周边美食…

stack和queue --->容器适配器

不支持迭代器&#xff0c;迭代器无法满足他们的性质 边出边判断 实现 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<stack> #include<queue> using namespace std; int main() {stack<int> st;st.push(1);st.push(2);st.push(3);…

vue3动态监听div高度案例

案例场景 场景描述&#xff1a;现在左边的线条长度需要根据右边盒子的高度进行动态变化 实践代码案例 HTML部分 <div v-for"(device, index) in devices" :key"index"><!-- 动态设置 .left-bar 的高度 --><div class"left-bar"…

华为OD机试真题(Python/JS/C/C++)- 考点 - 细节

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题 点这里。 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。

Spring源码学习(五):Spring AOP

免责声明 本人还处于学习阶段&#xff0c;如果内容有错误麻烦指出&#xff0c;敬请见谅&#xff01;&#xff01;&#xff01;Demo <dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.8<…

vue 使用docx-preview 预览替换文档内的特定变量

在开发合同管理中&#xff0c;需要使用到此功能&#xff0c;就是替换合同模板内的一些字符串&#xff0c;如&#xff1a;甲乙方名称&#xff0c;金额日期等&#xff0c;合同内容不变。效果如下&#xff1a; 使用docx-preview 好处是只预览不可编辑内容。 前端vue import { re…

若依项目搭建

若依的大版本 基本环境搭建 搭建注意点

(11)(2.1.6) Hobbywing DroneCAN ESC(二)

文章目录 前言 2 配置ESC 3 测试 4 设置视频 5 参数说明 前言 具有 CAN 接口&#xff08;including these&#xff09;的业余 ESC 支持 DroneCAN&#xff0c;它允许自动驾驶仪通过 CAN 控制 ESC /电机&#xff0c;并检索单个转速、电压、电流和温度。 2 配置ESC 默认情…

JVM结构图

JVM&#xff08;Java虚拟机&#xff09;是Java编程语言的核心组件之一&#xff0c;负责将Java字节码翻译成机器码并执行。JVM由多个子系统组成&#xff0c;包括类加载子系统、运行时数据区、执行引擎、Java本地接口和本地方法库。 类加载子系统&#xff08;Class Loading Subsy…

【智能算法改进】混沌映射策略--一网打尽

摘要 本文研究了多种混沌映射策略在智能算法中的改进效果&#xff0c;提出了一种综合不同混沌映射策略的多元混合方法&#xff0c;以提高算法的全局优化能力和收敛速度。通过引入不同的混沌映射&#xff08;如 Logistic、Tent、Sine 等&#xff09;生成初始种群分布&#xff0…

QML —— QML调用C++两种方法(附完整测试源码)

代码效果 说明 QML 其实是对JavaScript 的扩展,融合了Qt Object 系统,它是一种新的解释型的语言, QML 引擎虽然由Qt C++ 实现,但QML 对象的运行环境,说到底和C++ 对象的上下文环境是不同的,是平行的两个世界。如果你想在QML 中访问C++ 对象,那么必然要找到一种途径来在两…