精华内容
下载资源
问答
  • 十七、选择重传协议

    千次阅读 2021-11-20 19:50:40
    文章目录1、GBN的弊端2、选择重传协议中的滑动窗口2.1 SR发送方必须相应的三件事2.1.1 上层的调用2.1.2 收到了一个ACK2.1.3 超时事件2.2 SR接收方必须相应的三件事2.3 运行中的SR2.4 滑动窗口的长度3、SR协议的重点...

    1、GBN的弊端

    \qquad 累积确认导致批量重传,所以想要有一种协议可以只重传出错的帧;解决方法是:设置单个确认,同时加大接收窗口,设计接收缓存,缓存乱序到达的帧。这种机制就是选择重传协议(SR协议)。

    2、选择重传协议中的滑动窗口

    在这里插入图片描述

    2.1 SR发送方必须相应的三件事

    2.1.1 上层的调用

    \qquad 从上层网络层收到数据之后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。

    2.1.2 收到了一个ACK

    \qquad 如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.1.3 超时事件

    \qquad 每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

    2.2 SR接收方必须相应的三件事

    \qquad SR接收方将确认一个正确接收的帧不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧【收到谁确认谁】,直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层网络层,然后向前移动滑动窗口
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    \qquad SR接收方如果收到了窗口序号之外并且小于窗口下界的帧,则直接返回一个ACK。其他情况忽略该帧。

    2.3 运行中的SR

    \qquad 假设发送窗口和接收窗口尺寸大小都是4。
    在这里插入图片描述

    2.4 滑动窗口的长度

    \qquad 发送窗口最好等于接收窗口,发送窗口大了会发生溢出,发送窗口小了没有意义。窗口最大尺寸计算公式如下: W T m a x = W R m a x = 2 n − 1 W_{Tmax}=W_{Rmax}=2^{n-1} WTmax=WRmax=2n1 \qquad 其中n表示帧的序号使用多少个比特标示。如果帧的序号有0,1,2,3,共有四种,则n的取值为2( 2 2 = 4 2^2=4 22=4)。
    \qquad 窗口过大会产生二异性的问题,即接收方无法判断当前发送方发送的帧是某个序号下新的的帧还是旧的帧。

    3、SR协议的重点

    \qquad 对数据帧逐一确认,收一个确认一个;
    \qquad 只重传出错帧;
    \qquad 接收方有缓存;
    \qquad W T m a x = W R m a x = 2 n − 1 W_{Tmax}=W_{Rmax}=2^{n-1} WTmax=WRmax=2n1

    THE END

    展开全文
  • 过程: 发送方每接受到一个确认帧,就向前滑动一个...问题:接收方如何确定收到的帧是重传帧还是新帧? 左图,假设接收方发出的三个确认帧0、1、2帧全部丢失,则当0帧的超时计时器超时后,发送方会重新发送一个...

    选择重传协议图解:

     发送方每接受到一个确认帧,就向前滑动一个窗口,接收方每收到一个帧,就发送一个确认帧,并向前滑动一个窗口,现在因为2帧丢失,所以接收方没有收到2帧,则2帧后面的帧也无法移动,只能先进行缓存,待2帧的超时计时器超时后,发送方将重新发送2帧,此次接收方成功接受,2帧及之后收到确认的帧全部移动,等待发送方发送下一个帧,详细过程如下图。

     问题:接收方如何确定收到的帧是重传帧还是新帧?

     左图,假设接收方发出的三个确认帧0、1、2帧全部丢失,则当0帧的超时计时器超时后,发送方会重新发送一个0帧

    右图,假设接收方发出的三个确认帧0、1、2帧中,0、1帧已全部发送并接收,2、3帧也发送了确认帧但还在路上,发送方还未收到,此时发送方将发送下一个帧0帧,

     

     这就引出选择重传协议的弊端:窗口过大

    所以我们规定发送窗口最好等于接收窗口。(大了 会溢出,小了没意义)   

    Q: 为什么选择重传协议的最大发送窗口大小是 2n−12n−1?

     答:现在先假设选择重传协议的最大发送窗口是 W,那么可以一次性发送 0 ~ W 1 号帧,并且接收方都已经收到了(就是说,这 W 个确认帧都已经发了),但是这 W 个确认帧全部在传输过程中丢失了,此时接收窗口的位置已经移动到 W ~ 2W - 1. 如果发送方再发一轮,这 W 个帧应该落在W ~ 2W - 1上,但是此时的 W 帧是重传的,所以如要正确,就必须满足 2W - 1 是在最大序号 2n−12n−1之内,也就是说 2W−1≤2n−12W−1≤2n−1,即 W≤2n−1W≤2n−1.
    由于选择重传协议的最大发送窗口是 2n−12n−1 还是比较难以理解的。举个例子,假设 n=3n=3 ,则 2n−1=4 2n−1=4.如果发送窗口和接收窗口为 5. 假设 t1t1 时刻发送方发送序号为 0~4 的帧 ,t2t2 时刻接收方收到序号为 0~4 的帧,但是确认帧在传输过程中丢失了。于是,发送方在 t3t3时刻重新发送帧0,当t4t4时刻接收方收到帧 0时候,由于帧0 在其接受范围之内, 0 被错误的当作下一个新帧接受,导致协议错误。因此 W≤2n−1W≤2n−1.

     Q: 不按序接收会影响传送吗

    答:如果没有按序,正确的接受帧先存入接收方的缓冲区中,同时要求发送方重传出错帧,一旦接收到重传帧之后,就和原先存在缓冲区的其余帧按照正确的顺序发送到主机。所以说选择重选协议避免了重复传输那些本来已经正确到达接收方的数据帧,进一步提高了信道的利用率,但是代价是增加了缓冲空间。

    后退N帧协议(GBN协议)图解: 

     发送方正常发送了0帧与1帧,但2帧不小心丢失,对于接收方来说一直有一个期待值Exceptedseqnum,此时虽然又正常发送了3帧、4帧,但接收方心里希望的是2帧(它知道自己下一帧应该接收的是2帧),即Exceptseqnum=2,所以3、4帧发过来接收方也会选择丢弃并一直发送上一帧的确认帧(1帧),直到2帧的超时计时器超时,发送方重新发送2帧,此时接收方成功接收,则发送方再正常发送其余的3、4、5帧

     

     GBN发送方必须响应的三件事


    1.上层的调用(即网络层)
    上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送,如果窗口已满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一会再发送。(实际实现中, 发送方可以缓存这些数据,窗口不满时再发送帧)。


    2.收到了一个ACK
    GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧。(可以累积收到好几个帧然后再确认,不需要收到每一个帧的确认帧,以发送方接收到的所有帧中的最大帧为基准,表明它和它之前的全部收到)


    3.超时事件
    协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。如果出现超时,发送方重传所有已发送但未被确认的帧。

     GBN接收方要做的事


    1. 如果正确收到n号帧,并且按序,那么接收方为n帧发送一个ACK,并将该帧中的数据部分交付给上层。

    2.其余情况都丢弃帧,并为最近按序接收的帧重新发送ACK。接收方无需缓存任
    何失序帧,只需要维持一个信息: expectedseqnum( 即下一个按序接收的帧)  

    PS:发送窗口最大为2的n-1次方,接收窗口大小为1

    (接收窗口为1,可以保证按序接收数据帧。若采用n比特对帧编号,则其发送窗口的尺寸Wt应该满足 1<=Wt<=(2^n)-1,则会造成接收方无法分辨新帧和旧帧)

    GBN协议优缺点:

    优点:因连续发送数据帧而提高了信道利用率
    缺点:在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低。
     

    展开全文
  • 选择重传协议_SR协议

    2020-12-21 21:29:15
    为了弥补回退N协议,选择重传协议的有点久很明显了,只传出错的帧。 解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。 SR协议的特点是收到谁就确认谁,不在采用累积确认方式。当收到...

    为了弥补回退N协议,选择重传协议的有点久很明显了,只传出错的帧。
    解决办法:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。
    SR协议的特点是收到谁就确认谁,不在采用累积确认方式。当收到乱序的帧,就会放到缓存里,直到所有的帧都确认收到窗口才会向前移动,并向上交付到网络层。
    SR协议,选择重传协议和GBN协议最大的区别就是,SR协议来者不拒,只要是接收串口内的帧就会收下放到缓存里,而不会直接丢弃
    在这里插入图片描述
    运行中的SR流程,最后部分接收到三号帧的确认帧,窗口还是不能往前移动,必须等到2号的确认帧,发送窗口才能向前移动。
    在这里插入图片描述

    展开全文
  • 这也就是选择重传协议SR。 SR中的滑动窗口 如图所示为SR中的发送窗口,假设此时3的确认帧已经收到: 可分为以下部分: 发送完被确认的:01 发送完等待确认的:24 目前可发送:5 不可发送的:其余的 再看...

    引言

    GBN协议的弊端

    累计确认,从而导致某一帧错误后会批量重传。

    可行的解决方案

    可以只重传出错的帧,设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。这也就是选择重传协议SR。

    SR中的滑动窗口

    如图所示为SR中的发送窗口,假设此时3的确认帧已经收到:

    可分为以下部分:

    发送完被确认的:01

    发送完等待确认的:24

    目前可发送:5

    不可发送的:其余的

    再看接收方(假设此时5号帧没有收到):

    希望收到还未收到:5号帧

    收到且确认的:6号帧

    等待接收的:70

    SR发送方必须响应的事件

    上层的调用

    从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层,之后再传输。

    收到ACK

    如果收到ACK,假如该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。

    超时事件

    每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

    SR接收方要做的事

    对于窗口内的帧,无条件接收

    SR接收方将确认一个正确接收的帧而不管其是否按序。失序的帧将被缓存,并返回给发送方一个该帧的确认帧(收到谁确认谁),直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前移动滑动窗口。

    如果收到了窗口下界之前的帧,就返回一个ACK。其他情况,就忽略该帧。

    运行中的SR

    假设发送窗口和接收窗口都为4,发送方发送0帧,接收方收到0帧,并回复0帧确认,由于0帧是接收窗口下界,于是移动窗口使得窗口下界为第一个未被接收的帧(1号帧),同时把新加入帧(4号帧)的状态置为可接收状态:

    发送方发送1帧,接收方收到1帧,并回复1帧确认,由于1帧是接收窗口下界,于是移动窗口使得窗口下界为第一个未被接收的帧(2号帧),同时把新加入帧(5号帧)的状态置为可接收状态:

    发送方发送2帧,但是2帧丢失,接收方未收到2帧:

    发送方发送3帧,接收方收到3帧,缓存三帧,发送ACK3:

    发送方收到ACK0,由于窗口下限被确认,所以窗口右移一个,发送4帧,接收方收到4帧,缓存,发送ACK4:

    发送方收到ACK1,由于窗口下界被确认,所以窗口右移1个,发送5帧,接收方接收5帧,缓存,发送ACK5:

    发送方2帧超时未收到2帧确认,重新传2帧,这次接收方收到了,2-5帧交付(发送给上层网络层),发送ACK2:

    发送方收到ACK3,但是无帧可发,等待,一直到ACK2到达,然后下界移至6.

    滑动窗口长度

    发送窗口最好等于接收窗口

    大了会溢出,小了没意义

    存在以下公式

    W_{Tmax} = W_{Rmax} =2^{n-1},其中W_{Tmax}W_{Rmax}分别是发送窗口和接收窗口大小,n是帧号的比特位数。

    SR协议重点总结

    对数据帧逐一确认,收一个确认一个

    只重传出错帧

    接收方有缓存

    展开全文
  • 代码如下:#include #include #include "protocol.h"#include "datalink.h"#define MAX_SEQ 31#define DATA_TIMER 3800//calculagraph timer#define ACK_TIMER 1100#define NR_BUFS 16 //windows number#define inc...
  • 可靠数据传输(二) GBN 和选择重传 GBN 回退N步协议 在回退N步协议中,允许发送方发送多个分组但也受限于在流水线中未确认的分组不能超过某个最大允许数N。 send_base之前的是已发送并确认的分组 send_base到...
  • 可靠传输实现机制——选择重传协议SR 概述: 回退N帧协议的接收窗口尺寸Wr只能是1,因此接收方只能按需接收正确到达的数据分组 一个数据分组的误码就会导致其后续对个数据分组不能被接收方按序接收而丢弃(尽管...
  • 喜欢专研自己所热爱的知识,以及项目完成的那一份喜悦感 ...文章目录停等协议的弊端 停等协议的弊端 发送方发送速度很快,但是需要接受到确认才能继续发送(导致发送方一直处于等待状态) 改进方法:</> ...
  • 【实例简介】北邮 计算机网络课程实验 滑动窗口协议 选择重传协议与go-back-n协议压缩包内附实验报告与配套代码【实例截图】【核心代码】Selective└── Selective├── datalink-A.log├── datalink-B.log├─...
  • 多帧滑动窗口与选择重传协议SR:
  • 文章目录一. 流量控制① 必要性② 数据链路层 VS 传输层... 选择重传协议(SR)三. 后退N帧协议(GBN) ppt来源:王道考研B站教程 一. 流量控制 ① 必要性 较高的发送速度和较低的接收能力不匹配的话,会造成传输出错
  • 选择重传协议(SR)一、选择重传协议中的滑动窗口二、SR发送方必须响应的三件事三、SR接收方要做的事四、滑动窗口长度五、总结 一、选择重传协议中的滑动窗口 二、SR发送方必须响应的三件事 1、上层的调用 从上层...
  • 选择重传协议实验报告2.传输层协议分析 数据包捕获分析部分 实验目的 理解TCP报文首部格式和字段的作用,TCP连接的建立和释放过程,TCP数据传输中编号与确认的作用。 实验内容 应用TCP应用程序传输文件,截取...
  • 数据链路层在物理层提供的服务的基础上通过执行数据链路层协议向网络层提供服务,其最基本的服务就是将从源机器网络层来的数据可靠地传输到目标机器网络层。 帧同步 由差错控制码产生的校验和可以检查出一个帧在传输...
  • ARQ协议,即自动重传请求(Automatic Repeat-reQuest),是OSI模型中的错误纠正协议之一,它通过使用确认和重传这两个机制,在不可靠服务的基础上实现可靠的信息传输。
  • 选择重传协议中的滑动窗口 GBN接收方可以想成滑动窗口为1,SR接收方滑动窗口为多个 SR发送方必须响应的事情 SR发送方必须对上层调用进行响应,其次如果窗口的最小的序号收到了确认请求,那么窗口需要向右...
  • 计算机网络选择重传协议实验报告.《计算机网络》选择重传协议实验报告1.实验内容和实验环境描述实验内容:利用所学数据链路层原理,设计一个滑动窗口协议,在仿真环境下编程实现有噪音信道环境下两站点之间无差错...
  • 索引后退N\rm NN帧协议GBN\rm GBNGBNGBN\rm GBNGBN发送方GBN\rm GBNGBN接收方选择重传协议SR\rm SRSRSR\rm SRSR发送方SR\rm SRSR接收方 后退N\rm NN帧协议GBN\rm GBNGBN GBN\rm GBNGBN发送方 Ⅰ.上层调用 上层要...
  • 本博客为个人学习、研究或者欣赏用,如有侵权,请与我联系删除,谢谢 文章目录 0.... 1.... 2.... 3.... 4.... 5.... (1)为什么要有停止-等待协议? (2)研究停止等待协议的前提 (3)
  • 3.4.4 选择重传协议(SR)

    2021-04-06 15:54:30
    3.4.4 选择重传协议(SR)
  • 选择重传协议的滑动窗口 SR发送方必须响应的三件事 SR接收方要做的事 运行中的SR 滑动窗口长度 SR协议重点总结 习题1 脑图时刻 GBN协议弊端 选择重传协议的滑动窗口 SR发送方必须响应的三件事 SR...
  • 第三章知识 数据链路层的基本概念 数据链路层功能概述 封装成帧 透明传输 ...发送方:超时自动重传 总结 停止-等待协议 1.无差错情况: ACK 确认帧 两个0帧不一样,只是编号相同而已 2.有差错情况
  • 1. 流量控制与可靠传输协议概述 数据链路层的流量控制:控制发送方的发送速度 1. 1 数据链路层和传输层的流量控制 数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。 链路层的流量控制手段:接收...
  • 1. 后退N帧协议(GBN) 1.1 GBN发送方必须响应的三件事 ...2.2 选择重传协议中的滑动窗口 2.3 SR发送方必须响应的三件事 2.4 SR接收方要做的事 2.5 滑动窗口长度 2.6 练习 2.6 SR协议重点总结
  • 文章目录传输控制协议中流水线(pipelining)差错恢复方法回退N步GBN(Go-Back-N)发送方接收方选择重传SR(Selective Repeat)发送方接收方TCP 选择确认(Selective acknowledgment)发送方接收方对比 传输控制协议中流水线...
  • 2016年下半年上海自考考试时间于10月份,为方便各位自考考生更好的备考,育路_上海自考网为大家收集整理了全国2010年7月自考04741计算机网络原理试题及答案,可供大家参考:一、单项选择题(本大题共24小题,每小题1...
  • 自动重传请求协议 ARQ

    2021-08-22 16:15:43
    传统的自动重传请求分为三种:停止-等待 ARQ(stop and wait)、回退N帧 ARQ(go-back-n)、选择重传 ARQ(selective repeat)。 优点:比较简单 。因而被广泛的应用在分组交换网络中。 缺点:通信信道的利用率不高,即...
  • TCP协议重传机制

    2021-04-03 17:30:24
    既然是一种可靠的传输协议,那么必须有一种机制来保证接收方收到的数据是完整地,今天聊聊TCP协议下的重传机制。 TCP重传机制包括两部分:超时重传机制和快速重传机制。 在说超时重传和快速重传机制之前我们先说说...
  • 发送窗口最大为,接收窗口大小为1 GBN协议的性能 优点:因连续发送数据帧而提高了信道利用率 缺点:在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低 选择重传协议 选择重传协议产生的原因?...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,954
精华内容 31,981
关键字:

选择重传协议