3.4、可靠传输

news/2024/4/30 5:10:01/文章来源:https://blog.csdn.net/qq_67720621/article/details/128044575

3.4、可靠传输

3.4.1、基本概念

image-20221124204257611

使用差错检测技术\color{red}差错检测技术(例如循环冗余校验 CRC ),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码\color{red}误码(比特错误)。

数据链路层向上层提供的服务类型

  • 不可靠传输服务\color{red}不可靠传输服务仅仅丢弃有误码的帧\color{red}仅仅丢弃有误码的帧,其他什么也不做;
  • 可靠传输服务\color{red}可靠传输服务:想办法实现发送端发送什么,接收端就收到什么\color{red}发送端发送什么,接收端就收到什么

例如:

  • 接收方可以发送给发送发一个通知帧,告诉它:“之前发送的帧产生了误码,请重发”。
  • 发送方收到通知后,重发之前产生了误码的那个帧即可

若通知帧也出现了误码,又会怎么样呢?

image-20221124204647113


一般情况下,有线链路\color{red}有线链路线的误码率比较低,为了减小开销,并不要求数据链路层\color{red}不要求数据链路层向上提供可靠\color{red}可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

无线链路\color{red}无线链路线易受干扰,误码率比较高,因此要求数据链路层\color{red}要求数据链路层必须向上层提供可靠\color{red}可靠传输服务。

image-20221124204850127


比特差错\color{red}比特差错只是传输差错中的一种。

从整个计算机网络体系结构来看,传输差错还包括分组丢失\color{red}分组丢失分组失序\color{red}分组失序以及分组重复\color{red}分组重复

分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。

可靠传输服务并不仅局限于数据链路层\color{red}可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。

例如:

image-20221124210149621

可靠传输的实现比较复杂,开销也比较大,是否使用可靠传输取决于应用需求。

3.4.1.1、分组丢失

主机 H6 给主机 H2 发送的分组到达了路由器 R5

由于此时 R5 的输入队列快满了。

R5 根据自己的分组丢弃策略将该分组丢弃

image-20221124205251230

3.4.1.2、分组失序

主机 H6 给主机 H2 发送了 333 个分组。

它们并未按照发送顺序依次到达 H2。(最先发送的分组未必最先到达)

fenzushixu

3.4.1.3、分组重复

主机 H6 给主机 H2 发送的分组。由于某些原因在网路中滞留了,没有及时到达 H2

这可能造成了 H6H2 的超时重发,重发的分组到达了 H2。一段时间后,滞留在网络中的那个分组又到达了 H2

这又会造成分组重复的传输差错

image-20221124210000914


注意:

  • 以下三种可靠传输实现机制的基本原理并不仅限于数据链路层,
  • 可以应用到计算机网络体系结构的各层协议中。

3.4.2、停止-等待协议 SW

每发送一个数据分组就进行停止等待

3.4.2.1、误码情况

若收发双方基于互联网进行通信,而不是局限在一条点对点的数据链路。

  • 发送方给接收方发送数据分组,接收方收到后对其进行差错检测。

  • 若没有误码,则接受该分组,并给发送方发送确认分组,简称为 ACK

  • 发送方收到对所发送方数据分组的确认分组后,才能发送下一个数据分组。

  • 假设这个数据分组在传输过程中出现了误码.

  • 接收方收到后对其进行差错检测。发现了误码,则丢弃该数据分组

  • 并给发送发发送否认分组(NAK

  • 发送方收到所发送数据分组的否认分组后,就知道了之前自己所发送的数据分组出现了差错而被接收方拒绝

  • 于是立刻重传该数据分组

  • 因此,发送方每发送一个数据分组后,并不能立刻将该数据分组从缓存中删除,只有在收到针对该数据分组的确认分组后,才能将其从缓存中删除

image-20221124222521017


3.4.2.2、数据丢失情况

发送方发送的数据分组丢失

image-20221124222720924


3.4.2.3、确认/否认丢失情况

接收方发送的确认或否认分组就也有可能丢失

image-20221124223012248

接收方丢弃重复的数据分组,并给发送方发送针对该数据分组的确认分组。

以免发送方对该数据分组的再次超时重传

image-20221124223153857


3.4.2.4、确认分组迟到情况

由于某些原因,该确认分组迟到了,这必然会导致发送方对 000 号数据分组的超时重传

在重传的 000 号分组的传输过程中,发送方收到了迟到的确认分组,于是发送 111 号分组

image-20221124223642413

发送方如何知道这是一个对 000号分组的重复确认

若不采取其他措施,发送会误认为这是对 111 号数据分组的确认。

若对确认分组也进行编号,就可以使发送方避免这种误判

image-20221124223933496

因此,若只在数据链路层实现停止-等待协议,可以不用给确认分组编号

3.4.2.5、注意事项

  • 接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。

    • 但对于误码率较高的点对点链路,为使发送方尽早重传\color{red}尽早重传也可给发送方发送NAK分组\color{red}也可给发送方发送 NAK 分组NAK
  • 为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号\color{red}数据分组编号

    • 由于停止-等待协议的停等特性,只需1个比特编号\color{red}只需 1 个比特编号1就够了,即编号 000111
  • 为了让发送方能够判断所收到的 ACK 分组是否是重复的,需要给 ACK分组编号\color{red}ACK 分组编号ACK,所用比特数量与数据分组编号所用比特数量一样\color{red}与数据分组编号所用比特数量一样

    • 数据链路一般不会出现 ACK 分组迟到的情况,因此在数据链路层实现停止−等待协议可以不用给ACK分组编号\color{red}数据链路层实现停止-等待协议可以不用给ACK分组编号ACK
  • 超时计时器设置的重传时间\color{red}重传时间应仔细选择。

    • 一般可将重传时间选为 略大于“从发送方到接收方的平均往返时间”。\color{red}略大于“从发送方到接收方的平均往返时间”。

    • 数据链路层点对点的往返时间比较确定,重传时间比较好设定。

    • 然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。

3.4.2.6、信道利用率

image-20221124233946227

TDT_DTD :发送方发送数据分组所耗费的发送时延 TD(仅仅在 TDT_DTD 内才用来传送有用的数据,也就是数据分组)

RTTRTTRTT:收发双方之间的往返时间 RTTRTTRTT

TAT_ATA:接受方发送确认分组所耗费的发送时延 TAT_ATA

此处忽略了就收方对数据分组的处理时延,以及发送方对确认分组的处理时延


image-20221124234140773

当往返时延RTT远大于数据帧发送时延TD时(例如使用卫星链路),信道利用率非常低。\color{red}当往返时延RTT远大于数据帧发送时延T_D时(例如使用卫星链路),信道利用率非常低。RTTTD使)

若出现重传,则对于传送有用的数据信息来说,信道利用率还要降低。

为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议

  • 即后退N帧协议 GBN 和 选择重传协议 SR

3.4.2.7、习题

image-20221124234338730

解析:

  • image-20221124235720717

3.4.3、回退 N 帧协议 GBN

image-20221125165404085

此协议在流水线传输的基础上,利用发送窗口限制发送方可连续发送数据分组的个数


收发双发各自的分组序号,当序号增加到 777 时,下一个序号又从 000 开始。

发送方维持一个发送窗口,序号落在发送窗口内的数据分组可被连续发送,而不必等收到接受方的相应确认分组后再发送

image-20221125170534673

1<WT≤23−11 < W_T \le 2^3 - 11<WT231 :其中的 333 是构成分组序号的比特数量。

  • WT=1W_T = 1WT=1,则是停止-等待协议
  • WTW_TWT 超过取值范围的上限,则会造成严重的错误

对于回退 NNN 帧协议, WRW_RWR 只能为 111

3.4.3.1、无差错情况

发送方将序号落在发送窗口内的 0−40 - 404 号数据分组,依次连续发送出去

他们经过互联网的传输正确到达了接收方。

接收方按序接受他们,每接收一个,接收窗口就向前滑动一个位置,并给发送方发送针对所接受分组的确认分组

image-20221125171222698

发送方每接收一个,发送窗口就向前滑动一个位置

  • 这样就有新的序号落入了发送窗口。发送方可以将确认的数据分组从缓存中删除了。

而接收方可以择机将已接受的数据分组交付上层处理

3.4.3.2、累计确认

image-20221125171747660

发送方将序号落在发送窗口内的 0−40 - 404 号数据分组,依次连续发送出去。

他们经过互联网的传输正确到达了接收方。

接收方按序接受他们:

  • 当接收完 000 号和 111 号数据分组后,给发送方发送了一个累计确认 ACK1
  • 当接收完 2−42 - 424 号数据分组后,给发送方发送了一个累计确认 ACK4

假设 ACK1 再传输过程中丢失了,ACK4 正确到达了发送方。

发送方接受 ACK4 后就知道了序号为 444 及之前的数据分组已被接收方正确接收了。

  • 于是将发送窗口向前滑动 555 个位置
  • 这样就有新的序号落入了发送窗口。发送方可以将确认的数据分组从缓存中删除了。

而接收方可以择机将已接受的数据分组交付上层处理

image-20221125172418788

例如:

  • 本例中 ACK1 丢失了,但并没有造成 111 号数据分组的超时重传。

使用累计确认还有其他好处

  • 例如:可以减少接收方的开销,减少对网络资源的占用

缺点

  • 不能向发送方及时反应出接收方已经正确接收的数据分组信息

3.4.3.3、有差错情况

发送方将序号落在发送窗口内的这 555 个数据分组依次连续发送出去

他们经过互联网的传输到达了接收方。

假设他们再传输过程中受到了干扰,其中 555 号数据分组出现了误码

  • 接收方通过数据分组中的检错码发现了错误,于是丢弃该数据分组

  • 而后序到达的这 444 个数据分组的序号与接受窗口的序号不匹配

    image-20221125173944538

  • 接收方同样也不能接受他们,将他们丢弃

  • 接收方并对之前按序接受的最后一个数据分组进行确认,(也就是发送 ACK4

  • 每丢弃一个数据分组,就发送一个 ACK4

  • 444ACK4 经过互联网的传输到达了发送方

image-20221125173445004


假设收到这 444 个重复的确认并不会触发发送方立刻重传。

一段时间后,超时计时器出现超时,发送方将发送窗口内已发送过的这些数据分组全部重传。

image-20221125174557829


image-20221125184751077

发送方将序号落在发送窗口内的这 0−70 -707888 个数据分组依次连续发送出去

他们经过互联网的传输到达了接收方。

接收方按序正确接受他们后,给发送方发回累积确认 ACK7

假设 ACK7 在传输过程中丢失了,这将导致发送方的超时重传。

  • 重传的 0−70 -707 号数据分组到达接收方。

image-20221125185209897

  • 进而会产生分组重复这种传输差错。

因此,发送窗口的尺寸不能超过其上限

3.4.3.4、小结

image-20221125185506189

image-20221125190343547

3.4.3.5、习题

image-20221125185630595

解析:

  • image-20221125190227423

3.4.4、选择重传协议 SR

image-20221125190608544

3.4.4.1、工作原理

收发双发各自的分组序号,当序号增加到 777 时,下一个序号又从 000 开始。

发送方维持一个发送窗口,序号落在发送窗口内的数据分组可被连续发送,而不必等收到接受方的相应确认分组后再发送

说明:

  • 若每个序号 等于 一个数据分组,那么发送方将在发送窗口的序号直接发送出去,不需要找的过程
  • 若这是分组序号表,那么发送方找到对应的数据分组发送出去

image-20221125191703128

1<WT≤23−11 < W_T \le 2^3 - 11<WT231 :其中的 333 是构成分组序号的比特数量。

  • WT=1W_T = 1WT=1,则是停止-等待协议
  • WTW_TWT 超过取值范围的上限,则会造成严重的错误

发送方将序号落在发送窗口内的这 444 个数据分组依次连续发送出去

他们经过互联网的传输到达了接收方。

但是其中的 222 号数据分组丢失了,只要序号落入接收窗口内且无误码的数据分组,接收方都会接受

  • 接收方接受 000 号和 111 号数据分组,并发送 000 号和 111 号确认分组。

  • 接受窗口向前滑动两个位置,这样就有 444555 这两个新的序号进入接收窗口。

  • 接收方接受 333 号数据分组,并发送 333 号确认分组,但接受窗口不能向前滑动

    • 因为 333 号数据分组是未按序到达的数据分组。

image-20221125192238937

这些确认分组经过互联网的传输到达了发送方。

  • 发送方每按序收到一个确认分组,发送窗口就向前滑动一个位置。
  • 发送方接受 000 号和 111 号确认分组,发送窗口向前滑动两个位置。
  • 这样就有 444555 这两个新的序号落入发送窗口。
  • 发送方将序号落入发送窗口的 444 号和 555 号数据分组发送出去。
  • 发送方现在可以将已经收到确认的 000 号和 111 号数据分组从发送缓存中删除了

而接收方可以择机将已接受的 000 号和 111 号数据分组交付上层处理

image-20221125192705109

发送方接受 333 号数据分组,但是发送窗口不能向前滑动。

  • 因为这是一个未按序到达的确认分组
  • 发送方还未收到它之前的 222 号确认分组。
  • 需要记录 333 号数据分组已收到确认。这样该数据分组就不会超时重发

444 号和 555 号分组到达接收方。接收方并接受他们,并发送444 号和 555 号确认分组

但是接受窗口不能向前滑动。

  • 因为这是一个未按序到达的数据分组,接收方还未收到它们之前的 222 号数据分组。

image-20221125193053698


假设在 444 号和 555 号确认分组的传输过程中,发送方针对 222 号数据分组的重传计时器超时了。

发送方重传 222 号数据分组。

image-20221125193307237

444 号和 555 号确认分组陆续到达发送方。

发送方接受他们,但是发送窗口不能向前滑动

  • 因为它们是未按序到达的确认分组,发送方还未收到它们之前的 222 号确认分组。
  • 需要记录 444 号和 555 号数据分组已收到确认,这样它们就不会超时重发。

发送方之前重传的 222 号数据分组到达接受方

  • 接收方接受该数据分组,并发送 222 号确认分组。
  • 接收窗口现在可以向前滑动 444 个位置,这样就有 6,7,0,16,7,0,16701 这四个新的序号落入接收窗口。

image-20221125193655880

222 号确认分组经过互联网的传输到达发送方。

发送方接受该确认分组,

  • 发送窗口现在可以向前滑动 444 个位置,这样就有 6,7,0,16,7,0,16701 这四个新的序号落入发送窗口。
  • 发送方现在就可以继续将这四个序号的数据分组依次发送出去了。

image-20221125193853623

3.4.4.2、尺寸问题

image-20221125194420253

若发送窗口和接收窗口的尺寸超过了他们的取值范围

image-20221125194622158

发送方将序号落在发送窗口内的 0−40-404555 个数据分组依次连续发送出去

他们经过互联网的传输到达了接收方。

  • 接收方接受他们,并发送 0−40-404 号确认分组
  • 接受窗口向前滑动 555 个位置,这样就有 5,6,7,0,15,6,7,0,156701 这五个新的序号落入发送窗口。

image-20221125194812131

这些确认分组经过互联网的传输到达了发送方。

  • 但其中的 000 号确认分组丢失了
  • 发送方接受 1−41-414 号确认分组,并记录 1−41-414 号数据分组已收到确认。
  • 发送窗口不能向前移动

image-20221125195040028

一段时间后,000 号数据分组的重传计时器超时了。

  • 发送方重传 000 号数据分组

该数据分组经过互联网的传输到达了接收方。

  • 其序号 000 落在接受窗口内,接收方会接受它

  • 但是,接收方先前已经正确接收过该数据分组了。

    如果现在还要接受,那就会出现分组重复这种传输差错。

  • 接收方无法分辨新、旧数据分组

image-20221125195509811

3.4.4.3、小结

image-20221125195816528

3.4.4.4、习题

image-20221125200048285

解析:

  • image-20221125200927557

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

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

相关文章

kubernetes组件 Controller manager深刻认知

kubernetes组件 Controller manager深刻认知Controller manager常见的controllerController manager的工作流程informer的内部机制控制器的协同工作原理ReplicaSet controller 是如何被管理的&#xff1f;statefuleset 和deployment controller是如何控制滚动升级的statefulese…

若依(Ruoyi-Vue-Plus版)——1.登录(SaToken)

这里学习一下若依框架的一个扩展版本&#xff1a; RuoYi-Vue-Plus: 后台管理系统 重写RuoYi-Vue所有功能 集成 Sa-TokenMybatis-PlusJacksonXxl-JobSpringDocHutoolOSS 定期同步 (gitee.com) 官方文档&#xff1a;文档预览 - Gitee.com 项目有关SaToken登录写在最后&#xff0c…

善网ESG周报(第二期)

ESG报告&#xff1a; 聚焦五大战略&#xff0c;信公股份首次披露ESG报告 近日&#xff0c;信公股份发布首份ESG报告&#xff0c;报告主要涵盖可持续发展战略、高效现代的公司治理、可持续的商业模式与创新、传递社会影响力和守护地球家园等几个维度。 能链智电发布ESG报告&a…

Java8-新特性及Lambda表达式

1、Java8新特性内容概述 1.1、简介 Java 8(又称为jdk1.8)是Java语言开发的一个主要版本 Java 8是oracle公司于2014年3月发布&#xff0c;可以看成是自Java 5以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性 1.2、新特性思维导图总结 1.…

SpringBoot SpringBoot 原理篇 1 自动配置 1.2 bean 的加载方式【二】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.2 bean 的加载方式【二】1.2.1 第二种方式1 自动配置 1.2 bean …

Linux下Jenkins服务搭建及配置

一、简介 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;为软件的持续集成提供了一种便捷的方式。 二、Jenkins自动化部署实现原理 Jenkins的自动化部署实…

map容器(20221125)

一、map/multimap容器 1、map基本概念 map中所有元素都是pair&#xff1b; pair第一个元素为key&#xff08;键值&#xff09;,起到索引的作用&#xff0c;第二个元素为value(实值)&#xff1b; 所有元素会根据元素的键值&#xff08;key&#xff09;自动排序。 map/multi…

【自学前端】HTML篇已完结(附14节视频)

I have a dream,Front end development will not require additional training. 目录 内容预览 通过这里找视频&#xff1a; 1、内容仍然有所欠缺 2、目前以0基础再实战为主 3、目前未包含面试题 4、下一步的计划 5、希望收到反馈 内容预览 △ 目前纯HTML篇课程已经完成…

[足式机器人]Part3机构运动微分几何学分析与综合Ch02-2 平面机构离散运动鞍点综合——【读书笔记】

本文仅供学习使用 本文参考&#xff1a; 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch02-2 平面机构离散运动鞍点综合2.3 鞍点圆2.3.1 鞍圆与二副连架杆R-R2.3.2 鞍圆误差2.3.3 四位置鞍圆2.3.4 五位置鞍圆2.3.5 多位置鞍圆2.3 鞍点圆 平面连杆机构中…

第五站:操作符(第二幕)

在前面的文章中我们详细讲解了操作符的一些内容&#xff0c; 今天我们来继续了解操作符剩余的内容 操作符第一幕的传送门在这&#xff1a;第五站&#xff1a;操作符&#xff08;第一幕&#xff09; 目录 七、关系操作符 八、逻辑操作符 1.基础知识 2.几道经典的题目 九、条…

手摸手教会你在idea中配置Tomcat进行servlet/jsp开发(多图超详)

1. 下载安装idea&#xff0c;创建project&#xff0c;如果没有JDK可以通过idea指定文件夹并下载JDK。工程就是普通的Java工程&#xff0c;名字为webdemo 2.因为是Web项目&#xff0c;所以要对这个普通的项目进行WEB扶持^^&#xff0c;在项目名称webdemo上右键单间选择菜单项&qu…

20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕

20221125使用PR2023自动识别obs-studio录屏生成的MKV视频的字幕 2022/11/25 19:07 01 obs.png obs studio &#xff08;64bit&#xff09; 02 obs 设置.png 03 obs 输出.png 04 obs默认为MKV.png 05 obs改mkv为MP4.png 警告&#xff1a;如果文件无法完成&#xff08;例如&…

嵌入式驱动初级-阻塞与非阻塞

文章目录前言一、五种IO模型二、阻塞与非阻塞三、多路复用前言 记录嵌入式驱动学习笔记 一、五种IO模型 当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将应用程 序对应的线程挂起&#xff0c;直到设备资源可以获取为止…

b站黑马JavaScript的Ajax案例代码——图书管理案例

目录 目标效果&#xff1a; 重点原理&#xff1a; 1.js数组操作中push方法 2.jquery中append方法 3.js数组操作中join方法 4.jQuery中attr方法 5.jQuery中trim方法 代码部分&#xff1a; 1. 图书管理案例.html(js部分全是重点&#xff0c;html部分用于看结构) 2.jquery.js…

mybatis复习05,mybatis的缓存机制(一级缓存和二级缓存及第三方缓存)

mybatis复习05,mybatis的缓存机制&#xff08;一级缓存和二级缓存&#xff09;MyBatis的缓存机制MyBatis的一级缓存MyBatis的二级缓存二级缓存的相关配置MyBatis缓存查询的顺序整合第三方缓存EHCacheEHCache配置文件说明&#xff1a;MyBatis的缓存机制 MyBatis作为持久化框架&…

什么是DCS系统?DCS和SCADA的区别

如果你在工业自动化的企业环境中操作&#xff0c;可能听说过分布式控制系统 (DCS) 和监控和数据采集 (SCADA) 系统。 DCS系统和SCADA系统有很多共同点&#xff0c;因为它们都被称为受控计算机系统&#xff0c;接收和评估合法数据以实现远程访问监控和管理。 DCS(分布式控制系…

Flutter 中使用 extension 使项目更具可读性和效率 01

Flutter 中使用 extension 使项目更具可读性和效率 01 原文 https://medium.com/bedirhanssaglam/make-your-flutter-projects-more-readable-and-effective-with-extensions-b7dffd32e2f4 前言 代码的可读性和实用性在《 Flutter 》中非常重要。今天我们将编写一些 extension …

体系结构27_多处理机(1)

单处理机的发展正在走向尽头&#xff1f; 并行处理机在未来将会发挥更大的作用。 1.获得超过单处理器的性能&#xff0c;最直接的方法就是把多个处理器连在一起。 2.自1985年以来&#xff0c;体系结构的改进使性能迅速提高&#xff0c;这种改进的速度能否持续下去还不清楚&a…

信号类型(雷达)——雷达波形认识(一)

系列文章目录 《信号类型&#xff08;雷达通信&#xff09;》 文章目录 前言 简述 总结 前言 本文将结合个人研究经验&#xff0c;从雷达波形简单谈谈我对雷达的认识。之后将对常见的雷达波形进行简单分析。 简述 雷达的波形决定了信号处理的手段以及对应的雷达功能&#x…

体系结构29_多处理机的互联网络

互连网络是将集中式系统或分布式系统中的结点连接起来所构成的网络&#xff0c;这些结点可能是处理器、存储模块或者其它设备&#xff0c;它们通过互连网络进行信息交换。在拓扑上&#xff0c;互连网络为输入和输出两组结点之间提供一组互连或映象&#xff08;mapping&#xff…