计算机网络:网络层 —— 移动 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]]

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

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

相关文章

window 利用Putty免密登录远程服务器

1 在本地电脑用putty-gen生成密钥 参考1 参考2 2 服务器端操作 将公钥上传至Linux服务器。 复制上述公钥到服务器端的authorized_keys文件 mkdir ~/.ssh vi ~/.ssh/authorized_keys在vi编辑器中,按下ShiftInsert键或者右键选择粘贴,即可将剪贴板中的文…

词嵌入模型:Skip-Gram模型和CBOW模型

目录 Skip-Gram模型和CBOW模型 一、实现方式 二、训练目标 三、应用场景选择 Skip-Gram模型和CBOW模型 都是Word2Vec的两种实现方法,它们的确在实现方式和训练目标上有所不同,但共同的目标都是学习词汇的分布式表示(即词向量),以便捕捉词与词之间的语义和句法关系。以…

使用docker安装zlmediakit服务(zlm)

zlmediakit安装 zlmediakit安装需要依赖环境和系统配置,所以采用docker的方式来安装不容易出错。 docker pull拉取镜像(最新) docker pull zlmediakit/zlmediakit:master然后先运行起来 sudo docker run -d -p 1935:1935 -p 80:80 -p 8554:554 -p 10000:10000 -p …

微信小程序 uniapp+vue老年人身体监测系统 acyux

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 过此方式促进老年人辅助程序信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的老年人辅助程序…

什么是Scaling Law,谈谈你对它的理解

1. 什么是Scaling Law 1.1 Scaling Law的目标 Having a sense of the capabilities of a model before training can improve decisions around alignment, safety, and deployment. — GPT4 Technical Report 在训练之前了解模型的能力,以改善关于大模型的对齐、…

Postgresql源码(137)执行器参数传递与使用

参考 《Postgresql源码(127)投影ExecProject的表达式执行分析》 0 总结速查 prepare p_04(int,int) as select b from tbl_01 where a $1 and b $2为例。 custom计划中,在表达式计算中使用参数的值,因为custom计划会带参数值&…

MMBench-Video:上海 AI Lab 联合多所高校推出长视频理解基准测试工具,全面评估 LVLMs 视频理解的能力

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号&#xff…

【万字详文介绍】:迭代扩张卷积神经网络(IDCNN)

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…

(转载)Tools for Learning LLVM TableGen

前提 最近在学习有关llvm的东西,其中TableGen占了一部分,所以想特意学习下TableGen相关的语法。这里找到了LLVM官网的一篇介绍TableGen的博客,学习并使用机器翻译为中文。在文章的最后也添加了一些学习TableGen的资源。 原文地址&#xff1…

明源地产ERP WFWebService.asmx 反序列化RCE漏洞复现

0x01 产品简介 明源地产ERP是一款专为房地产行业设计的企业资源规划(ERP)系统,系统集成了项目管理、财务管理、客户关系管理、营销管理等多个模块,旨在帮助房地产企业提升运营效率、降低成本和提高客户满意度。它充分考虑了房地产行业的特性和需求,通过整合企业的各个业务…

AIGC时代LaTeX排版的应用、技巧与未来展望

文章目录 一、LaTeX简介与基础设置二、常用特殊符号与公式排版三、图片与表格的插入与排版四、自动编号与交叉引用五、自定义命令与样式六、LaTeX在AIGC时代的应用与挑战七、LaTeX的未来展望《LaTeX 入门实战》内容简介作者简介目录前言/序言读者对象本书内容充分利用本书 在AI…

redis:set集合命令,内部编码,使用场景

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令SADDSMEMBERSSISMEMBERSCARDSPOPSMOVESREM集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码使用场景总结 前言…

智慧工地:引领工地管理和监测的革新

一、智慧工地是什么 智慧工地是智慧地球理念在工程领域的具体应用,是工程全生命周期管理的崭新理念。通过运用信息化手段,智慧工地利用三维设计平台对工程项目进行精确设计和施工模拟,重点关注施工过程管理,建立互联协同、智能生…

如何在Linux系统中使用Netcat进行网络调试

文章目录 Netcat简介安装Netcat在Debian/Ubuntu系统中安装在CentOS/RHEL系统中安装 Netcat基本命令Netcat基本用法示例1:监听端口示例2:连接到远程主机 Netcat选项-l选项-p选项-v选项 Netcat模式监听模式连接模式 Netcat排除和包含排除端口包含端口 Netc…

《AI产品经理手册》——解锁AI时代的商业密钥

在当今这个日新月异的AI时代,每一位产品经理都面临着前所未有的挑战与机遇,唯有紧跟时代潮流,深入掌握AI技术的精髓,才能在激烈的市场竞争中独占鳌头。《AI产品经理手册》正是这样一部为AI产品经理量身定制的实战宝典,…

多核架构的基本概念

目录 1.为什么使用多核 2.多核分类 2.1 同构和异构 2.2 SMP和AMP 3 小结 1.为什么使用多核 这个问题个人认为可以从两个方面来看: 性能问题 随着汽车ECU对集成化的要求越来越高,把多个ECU功能集中到一个多核MCU的需求也越来越明显。 以汽车制动…

NeurIPS 2024 | 机器人操纵世界模型来了,成功率超过谷歌RT-1 26.6%

对于人类而言,一旦掌握了 “打开瓶盖” 的动作,面对 “拧紧螺丝” 这样的任务通常也能游刃有余,因为这两者依赖于相似的手部动作。然而,对于机器人来说,即使是这样看似简单的任务转换依然充满挑战。例如,换…

OceanBase V4.3.3,首个面向实时分析场景的GA版本发布

在10月23日举办的 OceanBase年度发布会 上,我们怀着激动之情,正式向大家宣布了 OceanBase 4.3.3 GA 版的正式发布,这也是OceanBase 为实时分析(AP)场景打造的首个GA版本。 2024 年初,我们推出了 4.3.0 版本…

TS-AWG控制电光调制器:推动科技应用新发展的利器

一、电光调制有什么用? 如今,基于光学、光子学和脉冲激光以及电光调制器的应用正变得极为流行,最新一代科学家正在为其实际应用开辟新领域,如汽车激光雷达、医疗解决方案、航空航天和国防、量子和激光传感器。 测试挑战、上市时…

程序员开发速查表

作为一名苦逼的程序员,在开发的过程中,我们总是在各种编程语言中来回穿梭,忙完后端整前端,还得做一部分的运维工作,忙的我们有时候忘记语法,忘记编写规则,甚至混淆。这时候我们就希望有一个综合…