计算机网络 (34)可靠传输的工作原理

news2025/1/13 10:52:26

前言

       计算机网络可靠传输的工作原理主要依赖于一系列协议和机制,以确保数据在传输过程中能够准确无误地到达目的地。

一、基本概念

       可靠传输指的是数据链路层的发送端发送什么,在接收端就收到什么,即保证数据的完整性、正确性和顺序性。由于网络环境的复杂性和不确定性,如误码、丢包、乱序等问题时有发生,因此需要通过可靠传输机制来应对这些问题。

二、主要机制

  1. 停止-等待协议

    • 这是最简单的可靠传输协议。发送方每发送一个分组就停止发送,等待接收方的确认。如果收到确认,则发送下一个分组;如果超时未收到确认,则重传前一个分组。
    • 该协议的优点是简单易懂,但缺点是信道利用率低,因为发送方在等待确认的过程中无法发送其他分组。
  2. 连续ARQ协议

    • 为了提高信道利用率,引入了连续ARQ协议。发送方可以连续发送多个分组,而不必每发送一个分组就等待确认。
    • 接收方采用累积确认的方式,即对按序到达的最后一个分组发送确认,表示到这个分组为止的所有分组都已经正确收到。
    • 如果发送方在超时时间内未收到某个分组的确认,则会重传该分组及其之后的所有未确认分组(在回退N帧协议GBN中)或仅重传未确认的分组(在选择重传协议SR中)。
  3. 滑动窗口协议

    • 滑动窗口协议是连续ARQ协议的一种实现方式。它通过维护一个发送窗口和一个接收窗口来控制数据的发送和接收。
    • 发送窗口的大小决定了发送方在未收到确认之前可以连续发送的分组数量。接收窗口的大小则决定了接收方可以接收但尚未确认的分组数量。
    • 滑动窗口协议通过调整窗口的大小来平衡传输效率和可靠性。窗口越大,传输效率越高,但可靠性可能降低;窗口越小,可靠性越高,但传输效率可能降低。

三、关键技术

  1. 校验和:在数据发送前,发送方会计算数据的校验和并将其附加在数据后。接收方在收到数据后,会重新计算校验和并与发送方的校验和进行比较,以检测数据是否在传输过程中发生错误。
  2. 确认和重传:接收方在收到正确的数据后,会向发送方发送确认信息。如果发送方在超时时间内未收到确认信息,则会认为数据丢失或出错,并触发重传机制。
  3. 序号管理:每个数据分组都会被分配一个唯一的序号,以便接收方能够按序接收和处理分组。同时,序号也可以用于检测重复分组和乱序分组。
  4. 流量控制和拥塞控制:流量控制用于防止发送方发送数据过快而导致接收方无法及时处理;拥塞控制则用于防止网络中的数据包过多而导致网络拥塞和性能下降。

四、实现层次

       在计算机网络中,可靠传输通常是在运输层实现的,如TCP协议。TCP协议通过一系列复杂的机制和算法来保证数据的可靠传输,包括三次握手建立连接、四次挥手断开连接、超时重传、拥塞控制等。相比之下,数据链路层通常只提供尽最大努力的服务,不保证数据的可靠传输。

总结

       综上所述,计算机网络可靠传输的工作原理是一个复杂而精细的系统工程,它依赖于多种协议和机制来确保数据的完整性、正确性和顺序性。在实际应用中,需要根据具体场景和需求选择合适的可靠传输机制和参数配置。

 结语    

认识未来是一回事

而走向未来是另一回事

!!!

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

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

相关文章

基于ADAS 与关键点特征金字塔网络融合的3D LiDAR目标检测原理与算法实现

一、概述 3D LiDAR目标检测是一种在三维空间中识别和定位感兴趣目标的技术。在自动驾驶系统和先进的空间分析中,目标检测方法的不断演进至关重要。3D LiDAR目标检测作为一种变革性的技术,在环境感知方面提供了前所未有的准确性和深度信息. 在这里&…

Vue3初学之常用的指令

v-bind:动态绑定属性 v-bind 用于动态绑定一个或多个属性,或一个组件 prop 到表达式的值。 v-model:双向数据绑定 见上篇 https://editor.csdn.net/md/?articleId145022994 v-if、v-else-if、v-else:条件渲染 v-show&…

docker中jenkins流水线式部署GitLab中springboot项目

本质就是将java项目拉取下来,并自动打包成docker镜像,运行 首先启动一个docker的jenkins 如果没有镜像使用我的镜像 通过网盘分享的文件:jenkins.tar 链接: https://pan.baidu.com/s/1VJOMf6RSIQbvW_V1zFD7eQ?pwd6666 提取码: 6666 放入服…

在ubuntu下对NFS做性能测试

安装NFS 首先,安装服务 sudo apt update sudo apt install nfs-kernel-server然后创建共享文件夹 # 请自定义你自己的共享目录 sudo mkdir -p /exports/nfs4/homes sudo chmod -R 777 /exports/nfs4/homes# 这个可以根据no_root_squash标致选择设置。 # 如果不设…

Open FPV VTX开源之默认MAVLink设置

Open FPV VTX开源之默认MAVLink设置 1. 源由2. 准备3. 连接4. 安装5. 配置6. 测试6.1 启动wfb-ng服务6.2 启动wfb-ng监测6.3 启动QGroundControl6.4 观察测试结果 7. 总结8. 参考资料9. 补充9.1 telemetry_tx异常9.2 DEBUG串口部分乱码9.3 PixelPilot软件问题 1. 源由 飞控图传…

26个开源Agent开发框架调研总结(2)

根据Markets & Markets的预测,到2030年,AI Agent的市场规模将从2024年的50亿美元激增至470亿美元,年均复合增长率为44.8%。 Gartner预计到2028年,至少15%的日常工作决策将由AI Agent自主完成,AI Agent在企业应用中…

mark 一下conductor github

Netflix 关闭conductor 后,后续https://orkes.io/content/ 继续在维护,github地址如下 https://github.com/conductor-oss/conductor 最新release为3.21.11

PyCharm文档管理

背景:使用PyCharmgit做文档管理 需求:需要PyCharm自动识别docx/xslx/vsdx等文件类型,并在PyCharm内点击文档时唤起系统内关联应用(如word、excel、visio) 设置步骤: 1、file -》 settings -》file types 2、在Files opened i…

嘉立创画原理图和PCB

一、环境 进入立创EDA官网 注册登录的环节就不介绍了。 登录账号后,选择专业版 二、原理图 工程中,有原理图和PCB,这里选择原理图 那么接下来就是进行绘制 元器件在如下区域搜索使用。 双击进行放置,也可以左键提前预览。 网…

科创驱动 | 华望系统科技荣膺西湖区年度前沿创新新锐企业

2025年1月3日,由中共西湖区党委、西湖区人民政府主办的“新年第一会”—西湖区科技创新大会在杭州隆重举行。大会现场揭晓了西湖区年度科技创新团队与项目,并发布了“2024西湖区科技十大事件”与“西湖区五大年度科技榜单”。杭州华望系统科技有限公司榜…

Monorepo设置:新手指南

Monorepo是一种项目代码管理方法,指在单个代码仓库中管理多个项目,有助于简化代码共享、版本控制、构建和部署的复杂性,并提供更好的可重用性和协作性。 简单理解:所有项目都在一个代码仓库中 📦,但这并不意…

[Python学习日记-75] 计算机基础与网络

[Python学习日记-75] 计算机基础与网络 简介 计算机基础 什么是网络编程 计算机网络 简介 本篇主要介绍的计算机基础是浓缩的,这是因为我们主要学习的是 Python,而 Python 主要是为了开发应用程序的,并不会用它来开发操作系统和嵌入式程序…

1. Doris分布式环境搭建

一. 环境准备 本次测试集群采用3台机器hadoop1、hadoop2、hadoop3, Frontend和Backend部署在同一台机器上,Frontend部署3台组成高可用,Backend部署3个节点,组成3副本存储。 主机IP操作系统FrontendBackendhadoop1192.168.47.128Centos7Foll…

【Java】-- 利用 jar 命令将配置文件添加到 jar 中

目录 1、准备 2、目标 3、步骤 3.1、安装 jdk 3.2、添加配置文件 3.3、校验 1、准备 java 环境hadoop-core-1.2.1.jar 和 core-site.xml 2、目标 将 core-site.xml 添加到 hadoop-core-1.2.1.jar 中。 3、步骤 3.1、安装 jdk 3.2、添加配置文件 jar -cvf hadoop-core-…

day14-Linux系统基础权限知识精讲

1. 给文件加特殊属性 1.1 chattr a:只能追加内容,不能删除 i:不能修改,不能删除;保护关键文件,防止非法写入 [rootoldboy ~]# chattr a test.txt [rootoldboy ~]# chattr i test.txt [rootoldboy ~]# echo 123 >> test.txt -bash: t…

Android使用系统消息与定时器实现霓虹灯效果

演示效果: 界面设计: 在帧布局FrameLayout中添加6个TextView 依次设置这6个TextView的宽,高,权重 也可在XML中直接设置 添加自定义颜色 关联自定义颜色到数组变量 关联6个TextView控件到数组变量 处理自定义系统消息 Handler _sysHandler new Han…

数据结构大作业——家谱管理系统(超详细!完整代码!)

目录 设计思路: 一、项目背景 二、功能分析 查询功能流程图: 管理功能流程图: 三、设计 四、实现 代码实现: 头文件 结构体 函数声明及定义 创建家谱树头结点 绘制家谱树(打印) 建立右兄弟…

vue3+elementPlus之后台管理系统(从0到1)(day1)

vue3官方文档:https://cn.vuejs.org/guide/introduction.html 1、项目创建 确保电脑已安装node 查看命令: node -v进入项目目录,创建项目 npm init vuelatest Need to install the following packages: create-vue3.13.0 Ok to procee…

汉图科技XP356DNL高速激光打印一体机综合性能测评

汉图科技XP356DNL高速激光打印一体机效率方面表现出色,支持A4纸型的高速打印,单面打印速度高达35页/分钟,自动双面打印速度可达32面/分钟,这样的速度在日常办公中能够极大地提高打印效率,减少等待时间,满足…

【芯片封测学习专栏 -- 什么是 Chiplet 技术】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 OverviewChiplet 背景UCIeChiplet 的挑战 Overview Chiplet 又称为小芯片。该技术通过将大型SoC划分为更小的芯片,使得每个部分都能采用不同…