网络技术-链路层可靠传输协议

news2024/11/23 10:03:43

可靠传输

在链路层传输中,可能出现的错误包括数据位出错、分组丢失、分组失序、分组重复等。可靠传输服务希望实现发送端发送什么,接收端就接收到什么。虽然下面将在链路层这一章节中介绍SW、GBN、SR三种协议,但要明确的是,可靠传输服务并不仅仅局限于链路层,其他各层均可选择实现可靠传输。

停等协议 - SW

停等协议(Stop and Wait, SW)的发送方每发送一帧数据就停止,并等待接收方发送确认帧,收到确认后再发送下一帧。

确认与否认、超时重传

发送方发送数据后等待接收方ACKNAK的响应,并启动超时计时器,如果一定时间收不到响应则启动超时重传。

确认丢失

如果确认分组丢失,接收方需要能感知到数据分组是否重复,因此数据分组需要编号,在停等协议中,由于每发送一个数据就进行等待,因此使用一位编号就够了。

确认迟到

如果确认分组迟到,在图示情况中,发送方需要感知到第二个ACK是对第二个DATA 0的重复确认,而不是对DATA 1的确认。因此确认分组也需要使用一位编号。

回退N帧协议 - GBN

回退N帧协议(Go Back N, GBN)允许发送方连续发送多个帧(即发送窗口可以大于1),以解决停等协议信道利用率低的问题。

发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去;但接收方的接收窗口大小仅为1,也就是只有接收到了此窗口所代表的序号的分组,接收方才会回复ACK并且移动接收窗口。同理,发送方收到了发送窗口中最早的那个序号对应分组的ACK,才会移动发送窗口。

累计确认

接收方不一定要对收到的数据逐个确认,也可以对最后一个分组进行确认。ACK n表示序号为n及其之前的分组都已经被正确接收。称这种方法为累计确认。例如图中,接收方只对1号、4号数据分组进行确认,并且ACK 1在传输过程中丢失,发送方仍然可以根据收到的ACK 4判断0~4号分组都已经被正确接收。

有差错情况

例如发送方发送了5/6/7/0/1五个分组,但5号数据分组丢失,此时由于到达的四个分组都与接收窗口序号不匹配,接收方会将其丢弃,并重复响应ACK 4

选择重传协议 - SR

选择重传协议(Selective Repeat, SR)加大接收窗口的长度(即接收窗口也可以大于1),缓存乱序到达的帧,这样不至于在一些情况下需要重传所有未被确认的帧从而导致效率降低。

与GBN一样,发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去;接收方可接收未按序到达但没有误码并且序号落在接收窗口内的数据分组;发送方收到未按序到达的确认分组时,对其进行记录,以防止其相应数据分组的超时重发,但发送窗口不能向前滑动。为了使发送方仅重传出现差错的分组,接收方不再采用累积确认,而是对每个正确接收的数据分组进行逐一确认

例如发送方发送了0/1/2/3四个分组,但2号数据分组丢失,此时0号、1号按序到达,接收窗口可以向前移动;而3号分组可以被接收,但接收窗口不能移动。

返回的ACK到达发送方之后,发送方可以把发送窗口的起点移动到2号,同时记录3号分组已接收。移动发送窗口后,可以把新纳入窗口的4号、5号发送出去。

如果4号、5号可以被正常接收,并且返回的ACK 4ACK 5可以正确到达发送方,那么最后会使得发送窗口和接收窗口都卡在2的位置,并最终触发2号分组超时重传。


回退N帧协议 - GBN
 1:若采用后退N帧的ARQ协议进行流量控制,帧编号字段为7位,则发送窗口的最大长度为

A .7   B.8  C.127 D.128

解题: 
发送窗口+接收窗口<=帧序号
m+1<=帧序号
帧编号7位,表示占7个二进制位,2的7次方128
m+1<=128  ,m<=127   

SR协议
2:一个使用选择重传协议的数据链路层协议,如果采用了5位的帧序列号,那么可以选用的最大接收窗口是 16.
解题:发送端窗口+接收端窗口<=序列号
           发送窗口=接收窗口
          x+y = 36 ,  2的5次方
          x=y
          y = 16  

3:对于窗口大小为n的滑动窗口,最多可以有()帧已发送但没有确认
A.0          B.n-1        C.n       D.n/2
发送窗口的大小<=窗口总数-1
4:对于无序接收的滑动窗口协议,若序号位数为n,则发送窗口最大尺寸为

A. 2n次方-1,B. 2n   C.2n-1   D.2的n-1次方

发送端窗口+接收端窗口<=帧序号
发送端窗口=接收端窗口


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

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

相关文章

山东省文史书画研究会成立20周年系列活动徽标征集胜选名单公布

2024年5月1日&#xff0c;山东省文史书画研究会成立20周年系列活动徽标征集落下帷幕。征稿启事下发后&#xff0c;得到社会各界人士的广泛关注与参与&#xff0c;共收到设计方案608件。经过初评&#xff0c;选出5幅作品进入复评&#xff0c;并经过网络投票和专家投票相结合的方…

Fluence Developer Rewards 国内 每个账号收2000元

# 国内有金主支持 每个账号收2000元 Fluence Developer Rewards account_line 白名单见附件 # 感兴趣的请留言 或加微信 Fluence Developer Rewards This repo allows one to generate a proof signature for Fluence dev reward claiming. 感兴趣 Caution Beware of s…

【Oracle】Linux x86-64 安装Oracle 23AI指南

本文为云贝教育 刘峰 原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎和未经注明出处的转载。 前言 在信息技术日新月异的今天&#xff0c;企业级数据库系统扮演着数据管理与业务支撑的核心角色。Oracle数据库&#xff0c;作为全球…

智慧校园整体解决方案

智慧校园囊括了校园事务的各个方面&#xff0c;同时&#xff0c;智慧校园又是所有相关子系统的数据输出与枢纽。可以看出&#xff0c;智慧校园是一个大而全的系统。鉴于此&#xff0c;智慧校园的模块众多&#xff0c;本文将智慧校园的所有模块做出大致梳理&#xff0c;以完整支…

C++缺省参数、函数重载、引用

一、缺省参数 1.1缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&#xff0c;如果没有指定实参则采用该形参的缺省值&#xff0c;否则使用指定的实参。 void func(int n 0) {cout << n << endl; }int main() {func();func…

JavaScript解决精度问题-math.js-使用入门

JavaScript精度失真案例 0.1+0.2 结果是:0.300000000000000041-0.9 结果是:0.099999999999999984.10*100 结果是:409.999999999999946.10/0.1 结果是:60.99999999999999大数计算 9007199254740992+1 结果是9007199254740992 JavaScript 浮点数运算结果不对,因浮点数的存储…

06_Flutter自定义锚点分类列表

06_Flutter自定义锚点分类列表 这样的效果&#xff0c;大家在一些商超应用里&#xff0c;应该也看到过。接下来咱们就用Flutter一步一步的来实现。 一.自定义属性抽取 categoryWidth: 左侧边栏的宽度&#xff0c;右侧区域的宽度填充剩余空间即可。itemCount: 总共有多少个分类…

Python进阶之-jinja2详解

✨前言&#xff1a; &#x1f31f;什么是jinja2&#xff1f; Jinja2 是一个强大的 Python 模版引擎&#xff0c;主要用于生成HTML或其他文本文件。这个库非常适合开发动态网站和Web应用的视图层&#xff0c;因为它支持逻辑操作如循环和条件判断&#xff0c;还可以继承和重用模…

信息系统项目管理师0091:项目经理的能力(6项目管理概论—6.3项目经理的角色—6.3.3项目经理的能力)

点击查看专栏目录 文章目录 6.3.3项目经理的能力1.概述2.项目管理技能3.战略和商务管理技能4.领导力技能5.领导力与管理记忆要点总结6.3.3项目经理的能力 1.概述 项目经理需要重点关注三个方面的关键技能包括项目管理、战略和商务、领导力

linux进阶篇:Nginx反向代理原理与案例详解

Linux服务搭建篇&#xff1a;Nginx反向代理原理与案例详解 一、什么是正向代理 举个栗子&#xff1a; 我们在校外、公司外&#xff0c;是访问不到学校、公司的内网的&#xff0c;但是我们想要访问内网资源时&#xff0c;会用到VPN。而一般内网会存在一个VPN服务器&#xff0c…

微信开发者工具Cannot read property ‘getCloudAPI‘ of undefined

运行项目时一开始是正常的&#xff0c;然后就遇到工具报错&#xff1a;Error: Fatal: unexpected loadSdkSubPackage case&#xff0c;尝试了更新开发工具、重新拉取代码后依然无效 解决方案&#xff1a; 最新版开发者工具&#xff0c;基础库用最新的2.31.0就出现这个错误 降…

【计算机科学速成课】笔记四

文章目录 19.内存&存储介质课程引出——内存与存储器的区别纸带存储磁芯存储磁带、磁鼓存储磁盘&#xff08;硬盘&#xff09;存储软盘存储光盘存储&#xff08;CD&DVD&#xff09;固态硬盘存储 20.文件系统课程引出——文件格式.txt文本文件.wav 音频文件.bmp位图文件…

Golang | Leetcode Golang题解之第67题二进制求和

题目&#xff1a; 题解&#xff1a; func addBinary(a string, b string) string {ans : ""carry : 0lenA, lenB : len(a), len(b)n : max(lenA, lenB)for i : 0; i < n; i {if i < lenA {carry int(a[lenA-i-1] - 0)}if i < lenB {carry int(b[lenB-i-1…

今天看到一个有意思的问题:个人网站被恶意大量访问,怎么办(文末附GPT指令优化)

目录 问题描述 一、GPT 3.5 二、通义千问 三、讯飞星火 四、文心一言 五、Kimi 六、智谱清言 个人分析&#xff1a; 问题描述 大家好&#xff01;我的个人网站每天晚上7点30到11点被固定的十几个IP大量下载exe&#xff0c;造成网站带宽不够&#xff0c;怎么办! 已经把…

谷歌发布 HEAL 架构,4 步评估医学 AI 工具是否公平

如果把维持健康状态想象成一场赛跑&#xff0c;并不是所有人都能够站在统一起跑线上&#xff0c;有的人能够平稳的跑完全程&#xff0c;有的人即使跌倒也能够在第一时间获得帮助&#xff0c;但是有些人可能因为经济条件、居住地、教育水平、种族或其他因素而面临更多障碍。 「…

AHB---数据总线

1. 数据总线 为了实现AHB系统&#xff0c;需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位&#xff0c;但这可以根据数据总线宽度进行更改。 数据总线包含以下部分&#xff1a; HWDATAHRDATAEndianness&#xff08;字节序&#xff09; 1.1 HWDATA 在写传输…

2024年最新 CKA 导航页

1. Dokcer 基础相关 Docker 、 Docker-Compose 安装教程Docker基础知识、相关概念以及基本使用命令Docker 一句话删除所有镜像/容器 2. CKA 相关学习 CKA&#xff08;Certified Kubernetes Administrator&#xff09;是由 Cloud Native Computing Foundation&#xff08;CNC…

嵌入式C语言教程:实现声音监测系统

声音监测在许多应用中都十分重要&#xff0c;如噪声控制、安全系统、和智能家居控制。 本教程将介绍如何在STM32微控制器上使用模数转换器&#xff08;ADC&#xff09;和声音传感器实现实时声音监测系统。 一、开发环境准备 硬件要求 微控制器&#xff1a;STM32F746NG&…

美国站群服务器在站群管理中的防护和数据安全保障?

美国站群服务器在站群管理中的防护和数据安全保障? 美国站群服务器的防护和数据安全保障是站群管理中的关键问题。站群服务器位于美国&#xff0c;通常由专业的服务器提供商管理和维护&#xff0c;其安全性受到多方面因素的影响。 美国站群服务器在站群管理中的防护和数据安全…

《深入解析WIndows操作系统》第10章读书笔记

1、大页面和小页面&#xff1a;虚拟地址空间被划分成以页面为单位&#xff0c;这是因为硬件内存管理单元在页面的粒度上&#xff0c;将虚拟地址转译为物理地址。Windows支持两种页面尺寸&#xff1a;大页面和小页面&#xff0c;根据处理器体系结构不同&#xff0c;实际尺寸值有…