若用连续ARQ协议通信,采用3位比特对窗口编码,则最大发送窗口可以达到 A 3 B 4 C 7 D

2020-09-17 10:33发布

2条回答
Anonyem
2楼 · 2020-09-18 10:04





首先可以看下别的大佬给出的答案。下边是原文链接。https://blog.csdn.net/gdc6916/article/details/93654939

我并不想讨论这个是不是以结论证明结论,但确实方便记忆。

下边看严谨的证明,书上的,我只是帮忙讲解一下。首先注意的是Wt和Wr,分别代表发送窗口的最大值和接收窗口的最大值。题干中已经说明Wr值为1。下边看①②③,图中的①②③(窗口区间,也就是整一小段)代表了发送窗口的所在位置,根据图片可以看出,三个窗口的长度都是6,符合≤2³-1

①的情况最简单,接收窗口在发送窗口中间,只要Wt内无重复序号即可,Wt≤2³即可。

②,它的位置已经是最右了,如果再靠右一位,则发送窗口内不包含7号分组,这是矛盾的,因为接收窗口为7号分组,表明接收方还未接收7号分组。此时的发送窗口由于包括了7号分组,它的取值也是Wt≤2³。

③,相对②,它的位置则是最靠左了,也就是Wt的范围最多是0123456(2³-1),如果再靠左一位,即012345,发送窗口中不包含6号分组,可是接收窗口表面6号分组已经接收到了,这是矛盾的,由于Wt不包括7号分组,所以Wt的最大值为7。

综合①②③,Wt≤2³-Wr,也就是上边的Wt+Wr≤2^n(结论很好记)最后顺便提一下,什么时候会出现③这种情况呢?当发送方发送完窗口中的所有分组,并且所有分组都到达了接收方,接收方发回确认的时候,全部确认都丢失(或者延迟很久),导致发送方窗口没有移动,就出现了③的情况


给你三个亿
3楼 · 2020-09-21 14:34







数据链路层中的协议

  1. 数据链路层功能2.区分几个名词3.为什么采用数据链路控制规程?4.停止等待协议4.1特征4.2要解决的问题及对策4.3缺点

  2. 5.连续ARQ协议5.1概念5.2例子

  3. 6.滑动窗口6.1概念6.2图例

  4. 7.接受端对发送端的应答8.面向比特的链路控制规程HDLC8.1帧结构8.2零比特填充法8.3HDLC特点

  5. 9.因特网的点对点协议PPP(面向无连接)9.1特点9.2PPP的帧格式9.3透明传输9.4ppp协议总结




  1. 数据链路层功能

  2. (1)链路管理:主要指面向连接的协议,如建立和释放连接。帧同步:简单是说就是指收方应当从收到的比特流中准确的区分帧的起始与终止。将数据和控制信息区分开。(2)流量控制(FlowControl):是一种利用软件或硬件方式来实现对电脑网络流量的控制,解决网络拥塞的问题。(3)透明传输:透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。(4)寻址:指MAC寻址,在数据链路层中,通过MAC地址主要主机的物理地址,因为交换机中有一张mac表。

  3. 2.区分几个名词

  4. 链路也指物理链路,没有协议和软件的含义。数据链路:多了实现通信规程的硬件和软件。规程和协议:一个意思,ISO叫协议,ITU(国际电信联盟电信标准分局)叫规程。

3.为什么采用数据链路控制规程?

在物理层提供的、可能存在差错的比特流传输基础上,增加适当的控制功能,就可以使通信变得比较可靠。



4.停止等待协议

4.1特征

发方每发送一帧就暂停,等待应答(ACK)到来。收方收到数据帧后发ACK帧给发方,发方再发送下—个数据帧。

4.2要解决的问题及对策

(1)DATA帧出错。对策:收方用NAK应答。(2)DATA帧丢失。对策:使用定时器及重发。(3)收方收到重复的DATA帧。对策:帧编号:0,1,0,1…如图

4.3缺点

数据每次发送都要等待应答帧的到来,效率较低。尤其是利用卫星进行通信的时候,卫星的传播延迟是270毫秒,每发一帧要用540毫秒。

5.连续ARQ协议

5.1概念

ARQ(AutomaticRepeatreQuest)--自动请求重发,又称GO-BACK-N

一次可发多帧

流水线发送和接收


5.2例子

如下:(1)发送端一次性发送8帧,但二号帧出错了,而接收端只按序接收数据帧。虽然在有差错的2号帧之后接着又收到了正确的3个数据帧,但都必须将它们丢弃,因为这些帧的发送序号都不是所需的2号。结点A重传2号帧时,以后的各帧也要全部进行重传。(2)发送端在每发送完一个数据帧时都要设置超时定时器。在定时器超时(Timeout)后仍未收到确认帧,就要重发。(3)在等待2号数据帧时,收到非2号帧,或出错的2号帧,可以接收方发送应答帧“REJ2#”表示拒收2号帧,要求发方重发2#数据帧或者不发送应答帧。


6.滑动窗口

6.1概念

滑动窗口(Slidingwindow)是一种流量控制技术。早期的网络通信中,通信双方不会考虑网络的拥挤情况直接发送数据。由于大家不知道网络拥塞状况,一起发送数据,导致中间结点阻塞掉包,谁也发不了数据。所以就有了滑动窗口机制来解决此问题。

6.2图例

如图:帧序号:0~7号NS–发送序号:通常取0至“2的n(整数)次幂减1”(为什么?)

(1)当我们假设是发送到2的n次方时n取3,也就是说编号是从0~8一个轮回。

(2)于是,当发送端发送0~8号帧后,如果接收端出了问题或者其他原因,它发送的应答帧,

接收端都没收到,那么,此时接受端不会再继续发了,因为发了这么多的数据帧,一个应答帧都没收到。

(3)过一段时间帧0的计时器会到达预定时间进行重发(按顺序开始,因为0号帧最先)。

(4)那么问题来了,因为取得是2的n次方,也就是8,那么此时重发的0号帧是重发的呢,还是新一轮的开始呢?这就难办了!


(5)如果是2的n次方减一,就不会了,取0~7,,也就是窗口大小为8(加上0),但发送7号帧后,如果一个应答帧

都没收到,此时,过一段时间帧0的计时器会到达预定时间进行重发,于是,机器就知道,这个重发的了,因为

如果不是重发,接下来发送的帧应该是从8号开始的。


备注:至于n为什么一般取3,按老师的意思,这是先人总结出来的规律,取这个值的时候,整个网络的传输处于一个良好的状态,恩,对!!!。。。


NR–接收序号:期望收到的对方发出的帧的发送序号发送窗口用来对发送端进行流量控制,而发送窗口的大小WT就代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。严格地说,发送窗口和发送窗口的大小WT是两个不同的概念,(有时也有不加区分的情况),在上述图中:

(a)的发送窗口为[0,1,2,3,4]

(c)的发送窗口为[4,5,6,7,0]

它们的发送窗口大小WT都=5


7.接受端对发送端的应答

如图:像停止等待协议中的应答情况就是这种方式

NS:发送的帧的编号

NR:我想要的帧的编号




连续等待协议的应答有如下情况捎带应答:发送端在应答时,顺便发送数据例子:

A:VS为0,VR为5标识我将要发送0信号帧,我想要5号帧

B:一开始,B有5号帧,它想要0号帧




8.面向比特的链路控制规程HDLC

备注:该协议被广泛用于广域网中,是一个面向连接的链路层协议。了解各个站

8.1帧结构

从左到右,标识(8位)——地址(8位)——控制字段(8位)——数据字段(可变)——检验序列(16位)——标识(8位)

标识字段:固定位01111110

地址字段A:非平衡方式传送数据时,地址字段总是写入次站的地址。平衡方式时,地址字段总是填入确认站的地址。

全1地址---广播方式,全0地址---无效地址。

帧检验序列FCS字段共16bit,采用的生成多项式是CRC-CCITT

控制字段:用于区分信息帧I、监控帧S、无编号帧U。



其中,控制字段的第1位为“0”表示是信息帧,第1、2位为“10”是监控帧,“11”是无编号帧。


信息帧:用于传送有效信息或数据,2,3,4位为存放发送帧序号,5位为轮询位,当为1时,要求被轮询的从站给出响应,6,7,8

位为下个预期要接收的帧的序号。


监督帧:用于差错控制和流量控制,3,4位为S帧类型编码。第5位为轮询/终止位,当为1时,表示接收方确认结束。

【注】S帧类型编码如下:00、01、10、11分别表示接收准备就绪、接收未就绪、拒绝、选择拒绝等


无编号帧:用于提供对链路的建立、拆除以及多种控制功能,但是当要求提供不可靠的无连接服务时,它有时也可以承载数据。

用3,4,6,7,8,这五个M位来定义,可以定义32种附加的命令或应答功能。




8.2零比特填充法

零比特填充法的目的:若在两个标志字段之间的比特串中,碰巧出现了和标志字段F(01111110)一样的比特组合,那么就会误认为是帧的边界。为了避免出现这种情况,HDLC采用零比特填充法使一帧中两个F字段之间不会出现6个连续1。过程如下:发送端:发现有5个连续1,则立即填入一个0。接收端:每当发现5个连续1时,删除其后的一个0。例如:01001111110001010发送:010011111010001010接收:01001111110001010


8.3HDLC特点

a.协议不依赖于任何一种字符编码集;


b.数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;


c.全双工通信,不必等待确认便可连续发送数据,有较高的数据链路传输效率;


d.所有帧均采用CRC校验,对信息帧进行顺序编号,可防止漏收或重复,传输可靠性高;



9.因特网的点对点协议PPP(面向无连接)

9.1特点

广域网上用得第二多的链路层协议点对点协议PPP(Point-to-PointProtocol),PPP协议支持身份鉴别,HDLC协议不支持。

9.2PPP的帧格式

PPP协议的帧格式和HDLC相比,可以省略一些字段

9.3透明传输

PPP用在同步传输链路时,采用比特填充法(和HDLC的做法一样)。PPP用在异步传输时,使用字符填充法发送(接收时进行相反处理),具体如下:(1)如果信息中含0x7E,则将其转变成2字节序列(0x7D,0x5E)。如果信息中含0x7D,则将其转变成2字节序列(0x7D,0x5D)。

01111110(8bit,7E)——>01111101(7D),01011110(5E)


(2)如果信息中含0x7D,则将其转变成2字节序列(0x7D,0x5D)。

(3)若信息字段中出现ASCII码的控制字符(即小于0x20的字符)b7b6b5b4b3b2b1b0,则将其左数第3位取反(1变0,0变1),例如:0x13——>0x7D,0x33其它字符不变

00010011(13)——>01111101(7D),00110011(33)




9.4ppp协议总结

在非平衡配置的正常响应方式NRM中(上图已展示非平衡的结构),次站不能主动向主站发送信息。

次站只有收到主站发出的P比特为1的命令帧(S帧或I帧)以后才能发送响应帧。此时,次站若有数据发送,则在最后一个数据帧中将F比特置1。若无数据发送,则应在回答的S帧中将F比特置1,表示结束。

在平衡配置的异步响应方式ABM中,当两个复合站全双工通信时,任何一方都可随时使P=1。这时对方就要立即回答RR帧,并置F=1。这样做可以更早地收到对方的确认。

如果不使用P/F比特,则收方不一定马上发出确认帧。收方可以在发送自己的信息帧时,在某一个信息帧中捎带把确认信息发出(利用N(R))


相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问