计算机网络:流量控制与可靠传输机制

news2025/4/16 18:04:50

目录

基本概念

流量控制:别噎着啦!

可靠传输:快递必达服务

传输差错:现实中的意外

滑动窗口

基本概念

换句话说:批量发货+排队验收

停止-等待协议 SW(发1份等1份)

超时重传:

分组编号:

信道利用率

回退N帧协议 GBN(批量发货,错了就从错的重发!)

选择重传协议 SR(只补丢的那杯)


基本概念

流量控制:别噎着啦!

概念:流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧(数据链路层,点到点;传输层也有流量控制,端到端)巴拉巴拉~~

🍔 吃汉堡比喻

  • 你(发送方)喂朋友(接收方)吃汉堡

  • 朋友嘴里塞满时说:"慢点!等我咽下去再喂!" → 这就是流量控制

  • 如果不管不顾猛塞,朋友会吐(缓冲区溢出)

📱 手机内存例子

  • 旧手机接收大文件时跳提示:"存储空间不足"

  • 发送方需要暂停发送 → 流量控制起作用

可靠传输:快递必达服务

概念:尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输 => 有确认机制和超时重传机制 巴拉巴拉~~

换句话说:丢了就重发!

📦 网购快递场景

  1. 商家发货后要求:"收到请按1"(确认ACK)

  2. 三天没回复?自动补发(超时重传)

  3. 收到破损件?申请换货(差错重传)

🚚 特别服务对比

  • 普通快递(UDP):丢了不赔

  • 顺丰保价(TCP):丢件必赔

传输差错:现实中的意外

1、比特错误:使用差错检测技术,接收方的数据链路层就可检测出帧在传输过程中是否产生了误码

2、分组丢失、分组失序和分组重复:一般不出现在数据链路层,而在上层

🔧 常见问题

  • 比特错误 → 就像快递单被雨水打糊

  • 分组丢失 → 快递车半路抛锚

  • 分组乱序 → 快递员不按楼层送货

  • 分组重复 → 商家不小心发了两件

🌐 有线vs无线

网络类型好比...可靠性需求
有线网络室内通话小声说也能听清(一般不重传)
无线网络工地对讲机必须重复确认(必须可靠传输)

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

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


滑动窗口

基本概念

发送(接收)方维持一组连续的允许发送(接收)的帧的序号,称为发送(接收)窗口

发送方:发送窗口的大小代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。只有发送方接收到确认帧后发送窗口才可能向前滑动

接收方:只有收到数据帧的序号落在接收窗口内,才允许将帧收下,否则丢弃

换句话说:批量发货+排队验收

场景:奶茶店一次做5杯奶茶(窗口大小=5),顾客按顺序取。

  • 发送方:连续做5杯(不用等每杯确认),但最多做5杯。

  • 接收方:只按顺序喝,如果第3杯洒了,要求从第3杯重做(回退N帧)。

帧缓冲区:

1、目的:为了超时重发和判定重复帧的需要

2、实现方式:发送端在发送完数据帧时,必须在其发送缓存中保留此数据帧的副本,这样才能在出错时进行重传(只有收到确认帧ACK时,才删除副本)

停止-等待协议 SW(发1份等1份

从滑动窗口机制的角度看,停止-等待协议相当于发送窗口和接收窗口大小均为1的滑动窗口协议

超时重传:

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

2、重传时间一般略大于平均往返时间(平均 RTT),因为代价大,需要多来点时间避免又错啦!

分组编号:

为了让接收方(发送方)能够判断收到的数据分组是否重复,需要给数据(ACK)分组编号。由于停-等协议特性,只需一个比特编号即可(0、1)

场景:你给同学传纸条,必须等他回复“收到”再传下一张。

  • 优点:简单。

  • 缺点:慢!(像玩“你拍一我拍一”)

信道利用率

1、发送方在一个发送周期内,有效发送数据的时间占整个发送周期的比例

2、信道利用率U = TD / (TD + RTT + TA)

回退N帧协议 GBN(批量发货,错了就从错的重发!

1、发送方连续发送帧,当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧后的所有未被确认帧

场景:你开了一家奶茶店,顾客一次性点了5杯奶茶(编号1~5)。

  • 正常情况:你按顺序做好5杯,顾客按顺序喝(1→2→3→4→5)。

  • 出错情况:如果第3杯做错了(帧错误),顾客会说:“从第3杯开始,全部重做!”

    • 于是你把第3、4、5杯都重新做一遍(回退N帧)。

2、n比特编号,发送窗口大小:1 <= WT <= 2^n - 1 接收窗口大小:1

  • 发送窗口(WT):你最多能同时做多少杯奶茶(比如最多5杯)。

    • 如果编号用n个比特,最多能发 2^n - 1 杯(比如n=3,最多发7杯)。

  • 接收窗口(WR)=1:顾客一次只喝1杯,必须按顺序,乱了就扔掉。

3、累计确认

  • 顾客喝了第1、2、3杯后,只回复“3号收到”(代表1~3都OK)。

  • 如果你没收到确认,就全部重发(比如3号丢了,就重发3~5)。

稍待确认:或者在自己有数据分组要发送时才按累计确认规则进行捎带确认

4、缺点

若信道的传输质量很差导致误码率较大时,不一定优于停止-等待协议

选择重传协议 SR(只补丢的那杯

1、概述:设法只重传出现差错的数据帧和计时器超时的数据帧

  • 每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传
  • 一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行重传
  • 接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧

场景:奶茶店发现第3杯做错了,只重做第3杯,其他照常给。

  • 优点:高效。

  • 缺点:需要记录哪杯错了(复杂)。

2、缺点:需要开辟缓存空间用来存储数据

3、n比特编号,窗口大小:WR <= 2^(n-1)

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

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

相关文章

架构生命周期(高软57)

系列文章目录 架构生命周期 文章目录 系列文章目录前言一、软件架构是什么&#xff1f;二、软件架构的内容三、软件设计阶段四、构件总结 前言 本节讲明架构设计的架构生命周期概念。 一、软件架构是什么&#xff1f; 二、软件架构的内容 三、软件设计阶段 四、构件 总结 就…

JMeter使用

1.简介 1.1 打开方式 ①点击bat,打开 ②添加JMeter系统环境变量,输⼊命令jmeter即可启动JMeter⼯具 1.2 配置 简体中文 放大字体 1.3 使用 ①添加线程组 ②创建http请求 2. 组件 2.1 线程组 控制JMeter将⽤于执⾏测试的线程数&#xff0c;也可以把⼀个线程理解为⼀个测…

Ant Design Vue 表格复杂数据合并单元格

Ant Design Vue 表格复杂数据合并单元格 官方合并效果 官方示例 表头只支持列合并&#xff0c;使用 column 里的 colSpan 进行设置。 表格支持行/列合并&#xff0c;使用 render 里的单元格属性 colSpan 或者 rowSpan 设值为 0 时&#xff0c;设置的表格不会渲染。 <temp…

ECharts 如何实现柱状图悬停时,整个背景区域均可触发点击事件

1. 前言 ECharts 柱状图的点击事件默认仅响应柱子本身的点击&#xff0c;本文旨在实现整个背景区域均可触发点击事件 2. 实现思路 核心&#xff1a;全局监听 坐标判断 数据转换 通过 getZr() 监听整个画布点击&#xff0c;结合像素坐标判断是否在图表区域内‌通过 containPi…

金融简单介绍及金融诈骗防范

在当今社会&#xff0c;金融学如同一股无形却强大的力量&#xff0c;深刻影响着我们生活的方方面面。无论是个人的日常收支、投资理财&#xff0c;还是国家的宏观经济调控&#xff0c;都与金融学紧密相连。​ 一、金融学的概念​ 金融学&#xff0c;简单来说&#xff0c;是研…

cursor+高德MCP:制作一份旅游攻略

高德开放平台 | 高德地图API (amap.com) 1.注册成为开发者 2.进入控制台选择应用管理----->我的应用 3.新建应用 4.点击添加Key 5.在高德开发平台找到MCP的文档 6.按照快速接入的步骤&#xff0c;进行操作 一定要按照最新版的cursor, 如果之前已经安装旧的版本卸载掉重新安…

Kubernetes控制平面组件:API Server Webhook 授权机制 详解

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes控…

【Python爬虫】简单案例介绍2

本文继续接着我的上一篇博客【Python爬虫】简单案例介绍1-CSDN博客 目录 跨页 3.2 环境准备 跨页 当对单个页面的结构有了清晰的认识并成功提取数据后&#xff0c;接下来就需要考虑页面之间的跨页问题。此时我们便迎来了下一个关键任务&#xff1a;如何实现跨页爬取&#xf…

【神经网络】python实现神经网络(四)——误差反向传播的基础理论

一.反向传播 本章将介绍能够高效计算权重参数的梯度的方法——误差反向传播法,这里简单介绍一下什么是反向传播,加入有个函数y = f(x),那么它的反向传播为图下这个样子: 反向传播的计算顺序是,将输入信号E乘以节点的局部导数,然后将结果传递给下一个节点。这里所…

I/O进程(全)

I/O 一、标准IO 1.概念 在C库中定义的一组用于输入输出的函数 2.特点 (1).通过缓冲机制减少系统调用&#xff0c;提高效率 (2.)围绕流进行操作&#xff0c;流用FILE *来描述(3).标准IO默认打开了三个流&#xff0c;stdin&#xff08;标准输入&#xff09;、stdout&#xff08;标…

vue2使用ezuikit-js播放萤石视频

需求&#xff1a;需要在大屏上播放萤石视频&#xff0c;用到官方的ezuikit-js插件实现&#xff0c;并实现视频播放切换功能。有个问题至今没有解决&#xff0c;就是萤石视频的宽高是固定的&#xff0c;不会根据大屏缩放进行自适应。我这边做了简单的刷新自适应。 1.下载ezuikit…

【笔试强训day19】

目录 第一题&#xff1a;小易的升级之路 描述 输入描述&#xff1a; 输出描述&#xff1a; 输入&#xff1a; 输出&#xff1a; 第二题&#xff1a;礼物的最大价值 描述 输入&#xff1a; 返回值&#xff1a; 备注&#xff1a; 第三题&#xff1a;对称之美 题目描述…

STM32电机库 电机控制特性

ST MC FW库提供FOC和六步法两种电机控制方式。这使得它能够驱动永磁同步电机 (PMSM) 和无刷直流电机 (BLDC)。FOC 更适合 PMSM,而六步法更适合 BLDC 电机。该固件可以驱动内嵌式PMSM 和标贴式PMSM。 ST Motor Control 固件库提供以下功能: FOC SVPWM 生成: 可配置的 PW…

【Linux】42.网络基础(2.4)

文章目录 2.3 TCP协议2.3.10 拥塞控制2.3.11 延迟应答2.3.12 捎带应答2.3.13 面向字节流2.3.14 粘包问题2.3.15 TCP异常情况2.3.16 TCP小结2.3.17 基于TCP应用层协议 2.3 TCP协议 2.3.10 拥塞控制 虽然TCP有了滑动窗口这个大杀器, 能够高效可靠的发送大量的数据. 但是如果在刚…

SPI接口DAC设备驱动与应用程序开发

本文章相关专栏往期内容&#xff0c;SPI子系统专栏&#xff1a; SPI通信协议与Linux设备驱动框架解析SPI传输与驱动框架的实现spidev.c&#xff1a;SPI设备驱动的核心实现逻辑 PCI/PCIe子系统专栏&#xff1a; 专栏地址&#xff1a;PCI/PCIe子系统PCIe设备MSI/MSI-X中断源码分析…

第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 满分题解

题面链接Htlang/2025lqb_python_b 个人觉得今年这套题整体比往年要简单许多&#xff0c;但是G题想简单了出大问题&#xff0c;预估50101015120860&#xff0c;道阻且长&#xff0c;再接再厉 代码仅供学习参考&#xff0c;满分为赛后洛谷中的测评&#xff0c;蓝桥杯官方测评待…

旧版 VMware 虚拟机迁移至 KVM 平台-案例2

项目背景 需将一台旧版 VMware 虚拟机&#xff08;VMDK 格式&#xff09;迁移至 KVM 虚拟化平台&#xff0c;具体要求如下&#xff1a; 格式转换&#xff1a;将 VMDK 转换为 QCOW2 格式。磁盘扩容&#xff1a;将原 40GB 磁盘扩展至 60GB。密码重置&#xff1a;修改 aiden 用户…

若依代码生成器原理velocity模板引擎(自用)

1.源码分析 代码生成器:导入表结构(预览、编辑、删除、同步)、生成前后端代码 代码生成器表结构说明&#xff1a; 若依提供了两张核心表来存储导入的业务表信息&#xff1a; gen_table&#xff1a;存储业务表的基本信息 &#xff0c;它对应于配置代码基本信息和生成信息的页…

OpenCV直方图均衡化全面解析:从灰度到彩色图像的增强技术

目录 一、直方图均衡化基础&#xff1a;原理与核心思想 二、彩色图像的直方图均衡化&#xff1a;挑战与解决方案 三、进阶技巧与注意事项 四、应用场景与典型案 一、直方图均衡化基础&#xff1a;原理与核心思想 1. 直方图的本质与作用 直方图是图像像素强度分布的统计图表…

Web前端之Vue+Element实现表格动态复杂的合并行功能、localeCompare、forEach、table、push、sort、Map

MENU 效果图公共数据数据未排序时&#xff08;需要合并的行数据未处于相邻位置&#xff09;固定合并行方法&#xff08;写死&#xff09;动态合并行&#xff0c;行数计算方法当太合并行&#xff0c;合并方法方法&#xff08;函数&#xff09;执行 效果图 公共数据 Html <e…