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

目录

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号帧,于是重传这两帧。

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

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

相关文章

SAP PP学习笔记04 - BOM2 -通过Serial来做简单的BOM变式配置,副明细,BOM状态,BOM明细状态,项目种类,递归BOM

本章继续讲BOM。 本章讲通过Serial来做简单的BOM变式配置。还讲了BOM的相关概念&#xff1a;副明细&#xff0c;BOM状态&#xff0c;BOM明细状态&#xff0c;项目种类&#xff0c;递归BOM 等。 1&#xff0c;通过Serial&#xff08;序列号&#xff09;来做简单的 VC&#xff0…

软考信息系统项目管理师零基础怎么学习?

软考考信息系统项目管理师&#xff0c;零基础怎么入手高项&#xff1f; 要我说对于没有基础的人群来说零基础考信息系统项目管理师还是有一定的难度的&#xff0c;难就难在需要时间去了解基础&#xff0c;而相对于系统分析师、系统构架设计师、网络规划设计师、系统规划与管理…

C++多态详解

文章目录 多态概念定义及实现构成条件虚函数虚函数的重写override 和 final重载、覆盖、隐藏 抽象类纯虚函数接口继承与实现继承 多态的原理虚函数表原理动态绑定与静态绑定 多继承的虚函数表多继承中的虚函数表 多态 概念 多态是面向对象三大特性中相对复杂的一个&#xff0…

c语言网络编程学习整理 网络编程结构框架 一些常见协议的介绍

1.网络分层&#xff1a;osi体系结构 重点&#xff1a;网络层&#xff0c;传输层。 口诀&#xff1a;物数网传会表应。 可是osi体系过于理想&#xff0c;不过其为原型依旧通用&#xff1a; TCP/IP协议 是Internet事实上的工业标准 2.TCP/IP 4层模型 1&#xff09;网络接口与…

Java生成 word报告

Java生成 word报告 一、方案比较二、Apache POI 生成三、FreeMarker 生成 在网上找了好多天将数据库信息导出到 word 中的解决方案&#xff0c;现在将这几天的总结分享一下。总的来说&#xff0c;Java 导出 word 大致有 5 种。 一、方案比较 1. Jacob Jacob 是 Java-COM Bri…

7款炫酷的前端动画特效分享(三)(附效果图及在线演示)

分享7款好玩的前端动画特效 其中有CSS动画、SVG动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS3模仿四季交替动画 基于HTML5CSS3实现的卡通风格一年四季交替动画特效 以下效果图只能体现框架的…

ThreadPoolExecutor 学习

ThreadPoolExecutor 是开发中最常用的线程池&#xff0c;今天来简单学习一下它的用法以及内部构造。 1、线程池存在的意义&#xff1f; 一般在jvm上&#xff0c;用户线程和操作系统内核线程是1&#xff1a;1的关系&#xff0c;也就是说&#xff0c;每次创建、销毁线程的时候&am…

10.WEB渗透测试-Linux基础知识-Linux用户权限管理(下)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;9.WEB渗透测试-Linux基础知识-Linux用户权限管理&#xff08;上&#xff09;-CSDN博客 ch…

Linux进程详细介绍

文章目录 Linux进程1、计算机体系结构和操作系统管理1.1、计算机体系结构 -- 硬件1.2、操作系统&#xff08;Operator System&#xff09; -- 软件 2、进程2.1、进程基本概念2.2、进程标识符2.2.1、获取当前进程标识符和当前进程的父进程标识符2.2.2、通过系统调用创建进程 -- …

微信小程序开发学习笔记《19》uni-app框架-配置小程序分包与轮播图跳转

微信小程序开发学习笔记《19》uni-app框架-配置小程序分包与轮播图跳转 博主正在学习微信小程序开发&#xff0c;希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、配置小程序分包 分包可以减少小程序首次启动时的加载时间 为此&#…

Google Play上架:自查封号政策解析(高风险行为之不允许破坏Google Play生态系统中用户信任度的应用或应用内容)

本文章提供给近期被封号的开发者们&#xff0c;希望能带来帮助&#xff0c;有其他的自查方向后续也会发布出来。 ——————————————————————————————————————— 用户数据设备和网络滥用 用户数据 设备和网络滥用

前端学习之HTML(第二天)--多媒体标签和表格标签

注&#xff1a;里面的注释是对各个标签的解释 多媒体标签 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title> </head> <body> <!-- audio是音频可以填写绝对路径也可填写相对路径 --> &l…

解决微软活动目录管理工作中常见问题

微软活动目录&#xff08;AD域&#xff09;是一种由微软的用于管理网络中用户、计算机、资源等的目录服务。活动目录被广泛应用于企业内部的网络管理中&#xff0c;尤其是对于使用微软产品的企业来说&#xff0c;活动目录是至关重要的基础设施之一。 因此&#xff0c;以微软为…

索引下推 INDEX CONDITION PUSHDOWN

索引下推 (INDEX CONDITION PUSHDOWN&#xff0c;简称ICP)是在 MySQL5.6 针对扫描索引下推二级索引的一项优化改进。 用来在范围查询时减少回表的次数。ICP适用于 MYISAM和INNODB.

ref和reactive用哪个?

ref和reactive用哪个? 1.&#x1f916;GPT&#x1f916;:ref和reactive用哪个根据数据类型而定 ref 用于将基本类型的数据&#xff08;如字符串、数字&#xff0c;布尔值等&#xff09;转换为响应式数据。使用 ref 定义的数据可以通过 .value 属性访问和修改。 reactive 用于…

JavaScript 学习笔记(7)

一模板字符串 1.用途 允许在字符串中嵌入表达式和变量&#xff0c;是一种方便的字符串语法 2.用法 模板字符串使用反引号 作为字符串的定界符分隔的字面量&#xff1b;模板字面量是用反引号&#xff08;&#xff09;分隔的字面量&#xff0c;允许多行字符串、带嵌入表达式…

ElasticSearch之分布式查询过程分析

写在前面 本文一起看下es分布式查询的过程。 1&#xff1a;分布式搜索过程 分布式搜索分为两个阶段&#xff0c;query和fetch,即query-then-fetch。 假定primary shard3,replica shard1&#xff0c;即3个主分片&#xff0c;1个副本分片。 1.1&#xff1a;query阶段 某data …

二叉树——700. 二叉搜索树中的搜索、98. 验证二叉搜索树

二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,1,3], val 2 …

【论文精读】基于知识图谱关系路径的多跳智能问答模型研究

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

96道前端面试题,前端开发工作内容

HTML、CSS、JS三大部分都起什么作用&#xff1f; HTML内容层&#xff0c;它的作用是表示一个HTML标签在页面里是个什么角色&#xff1b;CSS样式层&#xff0c;它的作用是表示一块内容以什么样的样式&#xff08;字体、大小、颜色、宽高等&#xff09;显示&#xff1b;JS行为层…