数据链路层----滑动窗口协议的相关计算

目录

1.窗口大小的相关计算

•停等协议:

•后退N帧协议:

•选择重传协议:

2.信道利用率相关计算

 •停等协议的信道利用率:

•连续ARQ(后退N帧协议,选择重传协议)的信道利用率:


在看这一篇之前,建议先看:http://t.csdnimg.cn/iGrub

1.窗口大小的相关计算

对于窗口大小,有以下规定:

停等协议:

发送窗口(W_{T})=接收窗口(W_{R})=1

后退N帧协议:

W_{T}\leq 2^n-1

因为接收窗口整体向前移动时,新窗口中的序列号和旧窗口的序列号产生重叠,致使接收方无法区别发送方发送的帧是重发帧还是新帧,因此在后退 N帧的 ARQ 协议中,发送窗口 W_{T}\leq 2^n-1

接收窗口(W_{R})=1

例题:

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

2^7-1=127

选择重传协议:

在选择重传协议中,若用n比特对帧编号,则发送窗口和接收窗口的大小关系为1< W_{R}\leq W_{T},还需满足W_{R}+W_{T}\leq 2^n,所以接收窗口的最大尺寸不超过序号范围的一半,即W_{R}\leq 2^{n-1}

例题:

1.一个使用选择重传协议的数据链路层,若采用5位的帧序列号,则可以选用的最大接收窗口是(16)

2.对于选择重传协议,帧采用5位编号,接收窗口大小为14,则发送窗口最大为()

2^n=2^5=32,W_{R}+W_{T}\leq 2^n,所以WT=32-14=18

注:

在连续ARQ(后退N帧协议,选择重发协议)中发送窗口大小≤窗口总数-1。例如,窗口总数为 8,编号为 0~7,假设这8个帧都已发出,下一轮又发出编号0~7的8个帧,接收方将无法判断第二轮发的8个帧到底是重传帧还是新帧,因为它们的序号完全相同。

另一方面,对于后退N帧协议,发送窗口大小可以等于窗口总数-1,因为它的接收窗口大小为1,所有的帧保证按序接收。因此对于窗口大小为n的滑动窗口,其发送窗口大小最大为n-1。

例题:

对于窗口大小为n的滑动窗口,最多可以有(n-1)帧已发送但没有确认。

2.信道利用率相关计算
 •停等协议的信道利用率:

U=\frac{T_{D}}{T_{D}+RTT+T_{A}}

其中TD为发送时延,TA为接收时延,RTT为往返时延

•连续ARQ(后退N帧协议,选择重传协议)的信道利用率:

U=\frac{nT_{D}}{T_{D}+RTT+T_{A}}

只比停等协议多了n,即窗口大小

我们将发送时延+往返时延+接收时延统为一个帧的发送周期T,则:

信道利用率U=\frac{T_{D}}{T}

在TD和T确定的情况下,n越大,信道利用率就越大。设帧序号的比特数为k,则停止-等待协议的发送窗口W_{T1}=1; GBN协议的发送窗口W_{T2}=2^{k}-1;SR协议的发送窗口总是W_{T3}<=2^{k-1},通常取 2^{k-1}W_{T1}<=W_{T3}<=W_{T2},因此 U1≤U3≤U2。

也就是GBN协议的信道利用率最大,停等协议的信道利用率最小

对于信道相关的计算,大致可以分为以下几类:
1.求数据帧长

(1)主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是 6kb/s,单向传播时延是100ms,忽略确认帧的发送时延。若信道的利用率为40%,则数据帧的长度为()

此处说忽略确认帧的发送时延,所以数据帧的发送时延/(数据帧的发送时延+往返时延)=0.4,即 (L数据帧长)/6kb/s  /  (L数据帧长)/6kb/s +往返时延(100*2)=0.4,得到数据帧长=800bit 

 (2)【2018 统考真题】主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是 3kb/s,单向传播时延是 200ms,忽略确认帧的传输时延。当信道利用率等于40%时,数据帧的长度为()

同样的计算方法:数据帧长为800bit

2.求最大信道利用率

假设主机甲采用停止- 等待协议向主机乙发送数据帧,数据帧长 与 确认帧长均为 1000B,数据传输速率是10kb/s,单向传播延时是 200ms。则主机甲的最大信道利用率为()

这里明确说明了数据帧长与数据帧长,所以信道利用率:

发送时延 /  发送时延+往返时延+接收时延

发送数据帧和确认帧的时间均为 t=1000*8b/10kb/s=800ms

发送周期T=800ms+200ms+800ms+200ms=2000ms

信道利用率t/T*100%=800/2000=40%

3.帧序号的比特数

这里比求数据帧长多了一步,即数据帧长---->比特数

(1) 主机甲通过 128kb/s 卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播时延为 250ms,帧长为1000字节。不考虑确认帧的开销,为使链路利用率不小于80%,帧序号的比特数至少是()

发送周期:

T=第一个帧的发送时延+第一个帧的传播时延+确认帧的发送时延+确认帧的传播时延,这里忽略确认帧的发送时延。因此:

T=1000B / 128kb/s+RTT = 0.5625s。

接着计算在T内需要发送多少数据才能满足利用率不小于80%。设数据大小为L字节,则(L 128kb/s) / T > 0.8,得L>7200B,即在一个发送周期内至少要发 7.2个帧才能满足要求。

设需要编号的比特数为n,则2^n-1\geq 7.2,因此n至少为 4

(2)假设两台主机之间采用后退N帧协议传输数据,数据传输速率为 16kb/s,单向传播时延为250ms,数据帧的长度是128 字节,确认帧的长度也是128 字节,为使信道利用达到最高,则帧序号的比特数至少为()

为使信道利用率最高(即100%)要让发送方在一个发送周期内持续发送,不能出现发送窗口内的帧发完但还未收到第一个帧的确认帧的情况。发送周期=发送一个数据帧的时间往返时延 +发送一个确认帧的时间,发送一个数据帧或确认帧的时间均为128B/16kb/s=64ms,发送周期=64ms+250msx2+64ms=628ms。为保证发送方持续发送帧,在一个发送周期内至少要发送的帧数为 628ms/64ms=10,即发送窗口大小至少为10,所以帧序号至少采用4比特

下面这题好好分析:

(3) 两台主机之间的数据链路层采用后退N帧协议(GBN)传输数据,数据传输速率为 16kb/s,单向传播时延为 270ms,数据帧长范围是128~512字节,接收方总是以与数据帧等长的帧进行确认。为使信道利用率达到最高,帧序号的比特数至少为()

上面分析过,数据帧长越大,信道利用率就越高。数据帧长是不确定的,范围 128~512B,在计算最小窗口数时,为了保证无论数据帧长如何变化,信道利用率都能达到100%,应以128B的帧长计算。因此,当最短的帧长都能达到 100% 的信道利用率时,发送更长的数据也都能达到 100%的信道利用率。若以512B的帧长计算,则求得的最小窗口数在128B 的帧长下,达不到100%的信道利用率。

首先计算出发送一个帧的时间128x8 / (16x10^3)= 64ms;发送一个帧到收到确认帧为止的总时间 64+270x2+64=668ms;这段时间总共可发送 668/64=10.4帧,即发送窗口≥11,又因为采用后退N帧协议,接收窗口=1,所以至少需要用4(2^4=16)位比特进行编号。

注:

信道利用率=发送周期内用于发送数据帧的时间/发送周期,其中发送周期=发送一个数据帧的时间 + 往返时延 +发送一个确认帧的时间。停止-等待协议的发送窗口为1,不可能达到100%的信道利用率。后退N帧协议和选择重传协议只要发送窗口够大,都有可能达到100%的信道利用率。

4.求最大平均数据传输速率

主机甲与主机乙之间使用后退N帧协议(GBN)传输数据,主机甲的发送窗口尺寸为 1000,数据帧长为1000字节,信道带宽为 100Mb/s,主机乙每收到一个数据帧,就立即利用一个短帧(忽略其传输延迟)进行确认,若主机甲和主机乙之间的单向传播时延是50ms,则主机甲可以达到的最大平均数据传输速率约为()

考虑制约甲主机的数据传输速率的因素。

首先,信道带宽能直接制约数据的传输速率,传输速率一定是小于或等于信道带宽的。其次,因为甲方和乙方之间采用后退N帧协议传输数据,要考虑发送个数据到接收到它的确认之前,最多能发送多少数据,甲方的最大传输速率受这两个条件的约束,所以甲方的最大传输速率是这两个值中的小者。

甲方的发送窗口尺寸为1000,即收到第一个数据的确认前,最多能发送1000个数据帧,即1000x1000B=1MB 的内容,而从发送第一个到接收到它的确认的时间是一个帧的发送时间加上往返时间,即1000B/100Mb/s+50ms+50ms=0.10008s,此时的最大传输速率为1MB/0.10008s\approx10MB/s=80Mb/s。信道带宽为100Mbs,因此答案为:min{80Mb,100Mb/s}=80Mb/s

补充:选择重传协议与后退N帧协议重传的帧数

这不算计算题,但是在这里还是说一下:

后退N帧协议重传协议(GBN)

数据链路层采用了后退N帧(GBN)协议,发送方已经发送了编号为  0~7 的帧。当计时器超时的时候,若发送方只收到0、2、3号帧的确认,则送方需要重发的帧数是()

A.2        B.3        C.4        D.5

在 GBN 协议中,当接收方检测到某个帧出错时,会简单地丢弃该帧及所有的后续帧,发送方超时后需重传该数据帧及所有的后续帧。注意,在GBN协议中,接收方一般采用累积确认的方式,即接收方对按序到达的最后一个分组发送确认,因此本题中收到3的确认帧就表示编号为0、1、2、3的帧已接收,而此时发送方未收到1号帧的确认只能代表确认帧在返回的过程中丢失,而不代表1号帧未到达接收方。因此需要重传的帧为编号是4、5、6、7的帧。

选择重传协议SR

数据链路层采用选择重传协议(SR)传输数据,发送方已发送0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是()

A. 1        B.2        C.3        D.4

在选择重传协议中,接收方逐个确认正确接收的分组,不管接收到的分组是否有序,只要正确接收就发送选择 ACK 分组进行确认,因此ACK分组不再具有累积确认的作用。对于这一点要特别注意与GBN协议的区别。此题中只收到1号帧的确认,0、2号帧超时,因为对1号帧的确认不具累积确认的作用,所以发送方认为接收方未收到0、2号帧,于是重传这两帧。

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

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

相关文章

Python+Vue全栈开发BI数据可视化项目

如何得到这样一个大屏可视化展示 数据清洗&#xff0c;运算&#xff0c;建模&#xff0c;分析&#xff0c;可视化

【MGR】MySQL Group Replication 管理操作

目录 17.5 Group Replication Operations 17.5.1 Deploying in Multi-Primary or Single-Primary Mode 17.5.1.1 Single-Primary Mode 17.5.1.2 Multi-Primary Mode 17.5.1.3 Finding the Primary 17.5.2 Tuning Recovery Donor Selection (数据源选择) Enhanced Automa…

【TEE】内存完整性保护

Hash Functions&Merkle Tree 对读操作进行完整性检查&#xff0c;通过在加载的块上重新计算一个哈希&#xff0c;然后根据片外地址将得到的哈希与片上哈希比较。 缺点&#xff1a;不可承受的片上存储开销&#xff0c;并假设128位哈希和512位cache line&#xff0c;其开销为…

SQL技巧笔记(一):连续3人的连号问题—— LeetCode601.体育馆的人流量

SQL 技巧笔记 前言&#xff1a;我发现大数据招聘岗位上的应聘流程都是需要先进行笔试&#xff0c;其中占比很大的部分是SQL题目&#xff0c;经过一段时间的学习之后&#xff0c;今天开了一个力扣年会员&#xff0c;我觉得我很有必要去多练习笔试题目&#xff0c;这些题目是有技…

光伏发电预测

XGB、LGB在datacamp(学习网站) data fountain与国家电投系列赛,光伏发电预测 题目:给一组特征,预测瞬时发电量,训练集9000个点,测试集8000个点,特征包含光伏板的属性和外部环境等。 数据字段:ID、光伏电池板背侧温度、光伏电站现场温度、计算得到的平均转换效率、数…

记录前端面试的一些笔试题(持续更新......)

文章目录 js相关数组去重数组对象去重 实现数组unshift数组扁平化tree型数据扁平化list数据转tree型数据 对象深拷贝防抖/节流函数柯里化函数管道 随便记录一些&#xff0c;面试或者工作中都会用到&#xff0c;实现的方法很多&#xff0c;这里只是一小部分&#xff0c;有更好的…

C语言经典算法-1

C语言经典算法讲解练习 文章目录 C语言经典算法讲解练习1.汉若塔2.费式数列3. 巴斯卡三角形4.三色棋5.老鼠走迷官&#xff08;一&#xff09;6.老鼠走迷官&#xff08;二&#xff09;7.骑士走棋盘8.八皇后9.八枚银币10.生命游戏 1.汉若塔 说明&#xff1a;河内之塔(Towers of …

【Redis】Redis入门

文章目录 一、Redis简介二、Redis的特性三、Redis的使用场景四、Redis可以做什么五、Redis不可以做什么六、CentOS7安装Redis5七、Redis通用命令 一、Redis简介 Redis 是⼀种基于 键值对&#xff08;key-value&#xff09; 的NoSQL数据库&#xff0c;与很多键值对数据库不同的…

低代码平台开发实践:基于React的高效构建与创新【文末送书-29】

文章目录 背景低代码平台简介基于React的优势低代码平台的实际应用 低代码平台开发实践&#xff1a;基于React【文末送书-29】 背景 随着技术的不断进步和业务需求的日益复杂&#xff0c;低代码平台成为现代软件开发领域中备受关注的工具之一。在这个快节奏的时代&#xff0c;…

C++ 之LeetCode刷题记录(三十八)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 目标&#xff1a;执行用时击败90%以上使用 C 的用户。 18. 四数之和 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target…

Crossover24新版发布!搭载Wine9提升Mac游戏体验!

2024年2月28日&#xff0c;著名的软件Crossover正式推出了2024年的首个全新版本Crossover24。Crossover 24版本的更新带来了许多功能优化和游戏优化&#xff0c;使用户能够更好地在Mac系统上运行各种软件和游戏&#xff0c;并且支持32位旧版软件的兼容运行。 Crossover24最新版…

MySQL分布式事务多数据源分库分表常见点罗列

前言 这个面试题是校招时候问的&#xff0c;整体来说面试感受是校招的面试题目更加考验基础&#xff0c;考验原理。社招的话技术广度会更大&#xff0c;会考验框架的使用程度。问题可能没有记录全&#xff0c;大致考的是数据库方面以及hashmap深入的问了一下还有就是线程这块。…