精华内容
下载资源
问答
  • 【计算机网络】数据链路层 : 后退 N 帧协议 GBN ( 滑动窗口 | 发送窗口长度 | “发送方“ 累计确认、超时...
    千次阅读 多人点赞
    2020-08-18 12:59:13





    一、 滑动窗口协议引入



    "停止-等待" 协议 弊端 : 信道利用率低 , 发送完一帧后等待 , 这个时候信道完全是空闲的 ;


    为了提高信道利用率 , 发送端 发送完一帧后 , 不用等待 接收端的 ACK 确认帧 , 立刻发送 第二帧 , 第三帧 , 这样信道的利用率就提高了 ;


    相应协议也要做一些更改 :

    ① 增加 发送方 的 帧 序号范围 ;

    ② 发送方 缓存 多个 帧分组 ; 连续发送 N N N 帧 , 其中某一帧 可能需要重传 , 但不知道哪一帧需要重传 , 这里 需要将这 N N N 帧全部缓存下来 ;


    这里有引出了两个在 “停止-等待” 协议基础上 , 改进的两个协议 :

    • 后退 N N N 帧协议 ( GBN )
    • 选择重传协议 ( SR )




    二、 后退 N 帧协议 ( GBN ) 滑动窗口



    后退 N 帧协议 滑动窗口 :

    ① 发送窗口 : 发送方 维持的 一组 连续的 允许发送的 帧序号 ; ( 本质是 序号 ) , 可以有多个 ;

    ② 接收窗口 : 接收方 维持的 一组连续的 允许接受的 帧序号 ; ( 本质是 序号 ) , 只有 1 1 1 个 ;





    三、 后退 N 帧协议 ( GBN ) 运行过程



    后退 N 帧协议 运行过程 :

    ① 初始发送方滑动窗口 : { 0 , 1 , 2 , 3 , 4 , 5 } \{ 0 , 1 , 2 , 3 , 4, 5 \} {0,1,2,3,4,5}

    ② 发送备份 0 0 0 帧 : 发送方 发送 0 0 0 号帧 , 同时 建立 0 0 0 帧副本 , 为后面可能需要重传做准备 ;

    ③ 发送备份 1 1 1 帧 : 发送方 紧接着 发送 1 1 1 号帧 , 建立 1 1 1 帧 副本 ;

    ④ 接收方 滑动窗口 : { 0 } \{ 0 \} {0}

    ⑤ 接收确认 0 0 0 帧 : 接收方 接收到了 0 0 0 号帧 , 回复 ACK 0 0 0 给发送方 , 表示收到 0 0 0 帧 ;

    ⑥ 接收窗口滑动 : 接收方 将 接收窗口 向前滑动一格 ;

    ⑦ 接收方 滑动窗口 : { 1 } \{ 1 \} {1}

    ⑧ 发送窗口 滑动 : 发送方 收到 ACK 0 0 0 , 此时 0 0 0 号帧已经发送完毕 , 将滑动窗口向前移动一格 ;

    ⑨ 发送方滑动窗口 : { 1 , 2 , 3 , 4 , 5 , 6 } \{ 1 , 2 , 3 , 4, 5 , 6 \} {1,2,3,4,5,6}





    四、 后退 N 帧协议 ( GBN ) 发送方数据分类



    发送方 根据 滑动窗口 状态 , 将数据分为以下 四类 :

    ① 发送完确认的帧 : 数据发送完毕 , 已经收到了接收端确认信息 ;

    ② 发送完等待确认的帧 : 数据发送完毕 , 还没有收到确认信息 ;

    ③ 还能发送的帧 : 滑动窗口中 , 还没有发送的帧 ;

    ④ 还不能发送的帧 : 滑动窗口 后面的帧 ;





    五、 后退 N 帧协议 ( GBN ) 发送方 需要 响应的事件 ( 累计确认 、超时发送机制)



    上层调用事件 : 上层发送数据时 , 先检查 发送窗口 ;

    ① 如果 发送窗口 未满 : 则 生成 数据帧 , 发送数据 ;

    ② 如果 发送窗口 已满 : 发送方将该信息通知上层 , 让 上层 延迟发送 ;



    A C K ACK ACK 确认帧 事件 :

    ① 累计确认 : GBN 协议中 , 采用 累计确认 方式 , 如果收到一个确认帧 , 默认已经收到了 该帧 , 及之前的全部帧 ;

    ② 不逐一确认 : 接收方 不用 对每个 数据帧 逐一返回确认帧 , 可以每隔一段时间返回一个确认帧 ;



    超时事件 : “后退 N 帧协议” 顾名思义 , 如果出现 帧丢失 , 帧延迟 等错误 , 就会回退到 上一个 确认的帧 后面的第一帧位置 , 重传 N N N 帧 ;

    ① 重发 1 1 1 帧 : 停止-等待协议 只会 重发 没有确认的 一帧 数据 ;

    ② 重发 N N N 帧 : 后退 N N N 帧协议 , 会重发 没有收到确认的 N N N 帧数据 ;





    六、 后退 N 帧协议 ( GBN ) 接收方 需要 响应的事件 ( 按序接收 、确认帧发送机制 )



    后退 N 帧协议 接收方 需要 响应的事件 :

    ① 收到正确帧 : 收到的帧 正确 , 并且顺序正确 ; 为接收的 N N N 帧发送 ACK 确认信息 , 将该帧的数据交给上层 ;

    ② 没有收到正确帧 : 收到错误帧 , 或 顺序错误 ; 接收方 为 最近的 正确的帧 发送 ACK , 丢弃错误帧 ;


    示例 :

    ① 出错场景 : 接收端 成功接收了 1 , 2 , 3 1,2,3 1,2,3 号帧 , 等待接收 4 4 4 号帧 , 但是直接接收到了 5 , 6 5,6 5,6 号帧 , 此时 4 4 4 号帧丢失 ;

    ② 处理方案 : 5 , 6 5,6 5,6 号帧 丢弃 , 重新发送 最近 正确的帧序号 , 将 A C K 3 ACK 3 ACK3 会送给发送端 , 通知发送端从 4 4 4 号帧开始发送 ;





    七、 后退 N 帧协议 ( GBN ) 运行细节



    后退 N 帧协议 运行细节 :

    ① 发送端连续发送 :

    • 发送窗口 大小为 4 4 4 , 可以一次性发送 4 4 4 帧数据 , { 0 , 1 , 2 , 3 } \{ 0, 1, 2, 3 \} {0,1,2,3} ;

    • 发送端 发送 0 0 0 帧 , 接收方 接收到 0 0 0 帧 , 返回 ACK 0 0 0 ;

    • 发送端 发送 1 1 1 帧 , 接收方 接收到 1 1 1 帧 , 返回 ACK 1 1 1 ;


    ② 丢失 2 2 2 帧 : 发送端 发送 2 2 2 帧 , 2 2 2 号帧 半路丢失 , 接收方 没有收到 2 2 2 帧 ;


    ③ 期待 2 2 2 帧 :收方 的 期待帧是 第 2 2 2 帧 ;


    ④ 接收方 获知 丢帧 : 发送方 发送 3 3 3 帧 , 接收方 接收到 3 3 3 帧 , 此时发现 2 2 2 帧丢失 , 直接丢弃 3 3 3 帧 , 并向接收方 发送 上一个成功接收的帧的确认信息 ACK 1 1 1 , 让发送方从 第 2 2 2 帧开始发送 ;


    ⑤ 发送方 收到 ACK 确认帧 :

    • 发送方 收到 ACK 0 0 0 之后 , 发送窗口 向后 滑动一位 , 变成 { 1 , 2 , 3 , 4 } \{ 1, 2, 3 , 4 \} {1,2,3,4} ;

    • 发送方 收到 ACK 1 1 1 之后 , 发送窗口 向后 滑动一位 , 变成 { 2 , 3 , 4 , 5 } \{ 2, 3 , 4 , 5\} {2,3,4,5} ;


    ⑥ 发送超时处理 : 如果 发送方 一直 没有收到 ACK 2 2 2 , 等待时间超时 , 就会 后退 N N N 帧 , 重发 2 , 3 , 4 , 5 2 , 3, 4, 5 2,3,4,5 帧 ;





    八、 后退 N 帧协议 ( GBN ) 发送窗口长度



    后退 N 帧协议 滑动窗口长度 :

    使用 n n n 比特 对 帧进行编号 , 发送窗口的尺寸 W T W_T WT 满足如下公式要求 :

    1 ≤ W T ≤ 2 n − 1 1 \leq W_T \leq 2^{n} - 1 1WT2n1


    如果不满足上述公式 , 就会因为 发送窗口 过大 , 接收方 无法识别 新帧 和 旧帧 ;


    滑动窗口示例 :

    如使用 2 2 2 比特 进行帧编号 , 那么滑动窗口大小是 1 ≤ W T ≤ 3 1 \leq W_T \leq 3 1WT3 ;

    如果滑动窗口有 4 4 4 比特 , 那么发送 0 , 1 , 2 , 3 0 , 1, 2, 3 0,1,2,3 四帧数据 给 接收端 , 四个帧全部丢失 , 此时就会将 四个帧 再次重传 , 4 4 4 帧数据 , 是重发的旧的帧 还是下一个滑动窗口 新的帧 , 无法确定 ;





    九、 后退 N 帧协议 ( GBN ) 重点



    发送方 累计确认 机制 : 收到 ACK N N N , 就表示 N N N 号帧及之前的帧 , 全部正确 ;


    接收方 按序接收 : 接收方 只能 按照顺序接收 , 人如果中间有帧丢失 , 那么后续帧全部丢弃 ;


    接收方 确认帧 : 接收方 如果 收到错误帧 , 失序帧 , 那么查找最近成功接收的正确的帧的最大的 , 按序到达的帧 序号是多少 , 发送该帧对应的 ACK 确认帧 ;


    发送窗口 : n n n 是帧序号编码长度 , 发送窗口大小 最大是 2 n − 1 2^n - 1 2n1 , 最小 1 1 1 ;





    十、 后退 N 帧协议 ( GBN ) 计算示例



    数据链路层 采用 后退 N N N 帧协议 , 发送方 发送了 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 0,1,2,3,4,5,6,7 0,1,2,3,4,5,6,7 编号的数据帧 , 当计时器超时时 , 只接收到了 0 , 2 , 3 0 , 2, 3 0,2,3 帧的确认帧 , 发送方需要重发的帧数时 4 , 5 , 6 , 7 4,5,6,7 4,5,6,7 帧 ;


    计时器超时 , 发送方 发送 已发送 , 但是没有被 确认 的帧 ;

    确认机制 是 累计确认 的 , 发送方 接收到了 3 3 3 确认帧 , 说明 3 3 3 之前的帧已经成功接收了 , 虽然没有收到 1 1 1 确认帧 , 但是该帧已经默认接收成功 ;

    重发 没有被确认的帧 , 即 4 , 5 , 6 , 7 4,5,6,7 4,5,6,7 帧 ;





    十一、 后退 N 帧协议 ( GBN ) 协议性能



    后退 N 帧协议 ( GBN ) 协议性能 :

    ① 优点 : 发送端可以先 连续 发送 滑动窗口中的 N N N 帧 数据帧 , 提高了信道利用率 ;

    ② 缺点 : 选择重传时 , 将某些正确发送的数据帧进行了重传 , 降低了传输效率 ;


    为了解决上述弊端 , 引入了 选择重传协议 ;

    更多相关内容
  • 如果窗口已满, 发送方只需将数据返回给上层, 暗示上层已满, 上层等一会再发送 收到一个ACK GBN协议中, 对N号帧的确认采用累积确认的方式, 标明接收方已经收到N号帧和它之前的全部帧 超时事件 协议的名字为后退N帧, ...

    滑动窗口:

    发送窗口: 发送方维持一种连续的允许发送的帧的序号
    在这里插入图片描述
    接收窗口: 接收方维持一种连续的允许接收的帧的序号
    在这里插入图片描述
    在这里插入图片描述

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

    上层的调用

    上层要发送数据时, 发送方先检查发送窗口是否已满, 如果未满, 则产生一个帧将其发送;

    如果窗口已满, 发送方只需将数据返回给上层, 暗示上层已满, 上层等一会再发送

    收到一个ACK

    GBN协议中, 对N号帧的确认采用累积确认的方式, 标明接收方已经收到N号帧和它之前的全部帧

    超时事件

    协议的名字为后退N帧, 来源于出现丢失和延时过长帧时发送方行为。
    如果出现超时时, 发送方重传所有已发送但未被确认的帧

    运行中的GBN

    在这里插入图片描述
    接收方只按序接收帧, 不按序无情丢弃
    在这里插入图片描述

    展开全文
  • 后退N帧协议GBN GBN发送方必须响应的三件事 GBN接收方要做的事情 GBN运行过程 较高的发送速度和较低的接收能力不匹配,会造成传输出错 数据链路层的流量控制和传输层的流量控制比较 数据链路层的流量控制...

    目录

    数据链路层的流量控制和传输层的流量控制比较

    流量控制方法

    停止等待协议

    滑动窗口协议

    后退N帧协议GBN

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

    GBN接收方要做的事情

    GBN运行过程


    较高的发送速度和较低的接收能力不匹配,会造成传输出错

    数据链路层的流量控制和传输层的流量控制比较

    数据链路层的流量控制是点对点的,而传输层的流量控制是端对端的

    数据链路层控制手段:接收方收不下就不回复确认

    传输层流量控制手段:接收方给发送方一个窗口公告

    流量控制方法

    停止等待协议

    发送方发送完一个帧后就停止发送,等待对方的确认,当收到对方发送的确认帧后才进行下一帧的发送。

    发送方有一个超时定时器,其时间的设置比帧传输的平均RTT长一些,发送方还保留了发送帧的副本,如果超时以后还未收到确认信号,发送方将重新的进行发送。

    需要注意的是发送帧和确认帧要编号。

    另一种情况,如果确认帧丢失,那么发送方会再次发送一个帧,接收方收到以后,会丢弃新的这个帧,并且再次发送一个确认帧

    还有一种情况,如果确认帧超时。发送方发现超时后会再次发送一帧,接收方收到以后会将其丢弃,再次发送一个确认帧,接收方收到确认帧以后,不管什么时候来的,有几个确认帧,只要有一个确认帧,那么就认为已经收到了确认帧,会将多的确认帧进行丢弃。

    信道利用率:发送方在一个发送周期中,有效发送数据所需要的时间占整个发送周期的比率

     

    滑动窗口协议

    后退N帧协议(GBN)

    选择重传协议(SR)

    停止-等待协议                发送窗口大小=1,接收窗口=1

    后退N帧协议(GBN)   发送窗口大小>1,   接收窗口=1

    选择重传协议(SR)     发送窗口大小>1,   接收窗口>1

    后退N帧协议GBN

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

    1、上层的调用

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

    2、收到了确认信号

    GBN协议中,对n号帧的确认采用累积确认的方式,标明接收方已经收到n号帧和它之前的全部帧

    3、超时事件

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

    比如,发送方发了五个帧,接收方收到了1号帧,但是2号帧没有收到,但此时接收方将不再接收从2号帧以后的帧,来了就丢弃,此时发送方不知道2号帧是否已经发送成功,但由于它有定时器,因此超时以后,它将重新发送从2号帧开始的帧。

    GBN接收方要做的事情

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

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

    比如接收方收到了1、2、4、5、6 它将返回最大序号2的确认序号,并且期望得到接下来的3,而对于不是它所期望的4、5、6将进行丢弃

    GBN运行过程

    å¨è¿éæå¥å¾çæè¿°

     一个题目:

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

    虽然少了1号,但接收方不需要按序发送,只发送最大的即可,因此是4号

     

    展开全文
  • 文章目录0.思维导图1.什么是流量控制?2.什么是可靠传输机制?3.什么是滑动窗口机制?4.停止-等待协议(1)为什么要有停止-等待协议?...多帧滑动窗口与后退N帧协议GBN)(1)后退N帧协议(GB...


    0.思维导图

    在这里插入图片描述

    1.什么是流量控制?

    • 流量控制是数据链路层的一种功能,流量控制对数据链路上的帧的发送速率进行控制,以使接收方有足够的缓冲空间来接受每个帧
    • 流量控制的基本方法是由接收方控制发送方发送数据的速率
    • 常见的流量控制方式有两种:停止-等待协议、滑动窗口协议
      在这里插入图片描述

    2.什么是可靠传输机制?

    • 可靠传输机制是为了使数据可以正确稳定的传输和接收而制定的规则。

    • 数据链路层的可靠传输通常使用确认超时重传两种机制来完成。

    • 确认是一种无数据的控制帧,这种控制帧使得接收方可以让发送方知道哪些内容被正确接收。有些情况下为了提高传输效率,将确认捎带在一个回复帧中,称为捎带确认

    • 超时重传是指发送方在发送某一个数据帧以后就开始一个计时器,在一定时间内如果没有得到发送的数据帧的确认帧,那么就重新发送该数据帧,直到发送成功为止。

    • 自动重传请求(Auto Repeat reQuest,ARQ),通过接收方请求发送方重传出错的数据帧来恢复出错的帧,是通信中用于处理信道所带来差错的方法之一。

    • 传统自动重传请求分为三种,即停等式(Stop-and-Wait)ARQ、后退N帧(Go-Back-N)ARQ以及选择性重传(Selective Repeat)ARQ。后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大,帧在线路上可以连续地流动,因此又称为连续ARQ协议。

    3.什么是滑动窗口机制?

    • 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口
    • 发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。
    • 不同的滑动窗口协议窗口大小一般不同。
    • 发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。

    在这里插入图片描述
    在这里插入图片描述

    • 发送端,每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧(即窗口内的帧全部是已发送但未收到确认的帧),发送方就会停止发送,直到收到接受方发送的确认帧使窗口移动,窗口内有可以发送的帧,之后才开始继续发送。

    • 接受端,当收到数据帧后,将窗口向前移一个位置,并发回确认帧,若收到的数据帧落在接受窗口之外则一律丢弃。

    • 滑动窗口有以下重要特性

    1. 只有接受窗口向前滑动时(同时接受方发送确认帧),发送窗口才有可能(只有发送方收到确认帧才是一定)向前滑动。

    2. 从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只有在发送窗口大小和接收窗口大小有所差别。

    3. 停止-等待协议:发送窗口大小=1,接受窗口大小=1;

    4. 后退N帧协议:发送窗口大小>1,接受窗口大小=1;

    5. 选择重传协议:发送窗口大小>1,接受窗口大小>1;

    6. 当接受窗口的大小为1时,可保证帧的有序接受。

    4.可靠传输、流量控制、滑动窗口之间的关系

    在这里插入图片描述

    5.停止-等待协议

    • 停止-等待协议也称为单帧滑动窗口与停止-等待协议
    • 当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。
    • 该协议规定发送方每发送一帧后就要停下来,等待接收方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。
    • 由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方要为每一个帧加一个序号。
    • 由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。

    (1)为什么要有停止-等待协议?

    在这里插入图片描述

    (2)研究停止等待协议的前提

    • 虽然现在常用全双工通信方式,但是为了讨论方便,我们仅考虑一方发送数据(发送方),一方接收数据。

    (3)停止-等待协议有几种应用情况?

    • 两种:无差错和有差错
    1️⃣ 无差错情况

    在这里插入图片描述

    2️⃣ 有差错情况
    ① 数据帧丢失或检测到帧出错

    在这里插入图片描述

    ② ACK确认帧丢失

    在这里插入图片描述

    ② ACK确认帧迟到超时

    在这里插入图片描述

    (4)停止等待协议性能分析

    • 关于信道利用率可参考我之前的:https://blog.csdn.net/weixin_43914604/article/details/104541219
      在这里插入图片描述
    • 发送方从开始发送数据到收到第一个确认帧ACK为止,这段时间称为一个发送周期
    • 信道利用率=发送时间/发送周期
      在这里插入图片描述
    • 由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n帧协议(GBN)和选择重传协议(SR)
      在这里插入图片描述

    6.多帧滑动窗口与后退N帧协议(GBN)

    • 后退n协议中,发送方在发完一个数据帧后,不停下来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时定时器。只要在所设置的超时时间内仍未收到确认帧,就要重发相应的数据帧。
    • 如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。
    • 从这里不难看出,后退n协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传(仅因这些数据帧之前有一个数据帧出了错),这种做法又使传送效率降低。
    • 由此可见,若传输信道的传输质量很差因而误码率较大时,连续测协议不一定优于停止等待协议。此协议中的发送窗口的大小为k,接收窗口仍是1。

    (1)后退N帧协议(GBN)的滑动窗口

    在这里插入图片描述

    (2)GBN发送方响应的三件事

    1️⃣ 上层的调用
    • 上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口己满,发送方只需将数据返回给上层,暗示上层窗口已满。上层等一 会再发送。 ( 实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)。
    • 配合下图加深理解
      在这里插入图片描述
    2️⃣ 收到一个ACK
    • GBN协议中,对n号帧的确认采用·累积确认·的方式,标明接收方已经收到n号帧和它之前的全部帧。
    3️⃣ 超时事件
    • 协议的名字为后退N帧/回退N帧,来源于出现丢失和时延过长帧时发送方的行为。
    • 就像在停等协议中一样,定时器将再次用于恢复数据帧或确认帧的丢失。
    • 如果出现超时,发送方重传所有已发送但未被确认的帧。

    (3)GBN接受方要做的事

    在这里插入图片描述

    (4)一张图了解GBN发送方和接受方之间的传输过程

    在这里插入图片描述

    (5)GBN滑动窗口的限制

    在这里插入图片描述

    (6)GBN重点知识

    在这里插入图片描述

    • 来道题目熟悉一下知识

    在这里插入图片描述

    • 因为接收端可以累积确认,所以只要看最大的确认帧就行,所以接下来发送方要重发的帧数为4

    (7)GBN性能分析

    在这里插入图片描述

    7.多帧滑动窗口与选择重传协议(SR)

    • 在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。由此诞生了SR(SELECTICE REPEAT)。
    • SR工作原理:当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以将已存于缓冲区中的其余帧一并按正确的顺序递交上一层。
    • 显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。

    (1)SR的滑动窗口图

    在这里插入图片描述

    (2)SR发送方必须响应的三件事

    1️⃣ 上层的调用
    • 从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧;否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
    2️⃣ 收到一个ACK确认帧
    • 如果收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧序号是窗口的下界(最左边第-一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。

    • 图解此过程
      在这里插入图片描述
      在这里插入图片描述

    3️⃣ 超时处理
    • 每个帧都有自己的定时器,一个超时事件发生后只重传一个帧。

    (3)SR接受方要做的事

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

    • 图解此过程
      在这里插入图片描述
      在这里插入图片描述

    (4)一张图了解SR发送方和接受方之间的传输过程

    在这里插入图片描述

    (5)SR滑动窗口的大小限制

    在这里插入图片描述

    (6)SR重点知识

    在这里插入图片描述

    • 一道小例题加深理解
      在这里插入图片描述

    参考:https://www.bilibili.com/video/av70228743?p=25

    展开全文
  • 后退N帧协议GBN

    千次阅读 2020-03-26 09:45:32
    前言: GBN协议和SR协议,都是为了提高信道利用率。  ...后退N帧协议中的滑动窗口 建议大家认真看下图: 窗口的移动: 原来的发送窗口中是0~5帧,发送0帧之后,如果接收窗口接收到0帧,窗...
  • 收到一个,发送窗口前进一格,并返回一个对n的确认 停止等待协议是一种特殊的滑动窗口协议。 数据链路层的滑动窗口是固定的 可靠传输,滑动窗口,流量控制 发送方:超时自动重传 总结 停止-等待协议 1.无...
  • 喜欢专研自己所热爱的知识,以及项目完成的那一份喜悦感 ...文章目录停等协议的弊端 停等协议的弊端 发送方发送速度很快,但是需要接受到确认才能继续发送(导致发送方一直处于等待状态) 改进方法:</> ...
  • 如图,假如发送方的发送窗口大小是6,首先发送0号,并建立0号的副本,防止丢失,然后发送0号,发送1号,一直到5号: 接收方收到了0号之后,回复发送方ACK0: 发送方收到了ACK0之后,发送窗口...
  • 数据链路层:6、后退N帧协议后退N帧协议:GBN发送方必须相应的三件事: 后退N帧协议: 当0帧发送且接收窗口接收后,接收窗口返回确认帧并后移,发送窗口接收到确认帧0时发送窗口后移;因为发送窗口值不为1,所以在...
  • 后退N帧协议(GBN协议)

    2022-04-12 09:44:57
    计算机网络中的数据链路 层的协议
  • 后退N帧协议gbn

    万次阅读 2017-02-10 14:29:47
    转自...讲到gbn,首先要讲到累积确认。 累积确认的意思是:接收方不必对收到的分组逐个发送确认,而是可以在收到几个分组后,对按序到达的最后一个分组加以确认。 比如,发送
  • 后退N帧协议GBN)一、后退N帧协议中的滑动窗口二、GBN发送方必须响应的三件事三、GBN接收方要做的事四、滑动窗口长度 一、后退N帧协议中的滑动窗口 发送窗口:发送方维持一组连续的允许发送的帧的序号。 接收窗口...
  • 3.1.4.2 后退N帧协议GBN) 停止等待协议的弊端:信道利用率太低,太闲了 采用流水线技术对停止-等待协议(一个数据帧跟着数据帧发送)进行改进 使用流水线技术后: 1.必须增加数据帧序号的范围 2.发送方需要...
  • 3.4.3后退N帧协议GBN

    千次阅读 2020-09-05 21:26:38
    1.后退N帧协议GBN) 2.选择重传协议(SR) 后退N帧协议中的滑动窗口 GBN发送方必须响应的三件事: 1.上层的调用:上层要发送数据时,发送方先检查发送窗口是否已满。如果未满,则产生一个帧并将其发送;如果窗口...
  • 一、 数据链路层 流量控制、 二、 数据链路层 与 传输层 流量控制 机制、 ...五、停止等待协议、 六、滑动窗口协议、 七、滑动窗口协议、 八、滑动窗口 大小、 九、滑动窗口 解决 流量控制、可靠传输 问题
  • 流量控制 —— 后退N帧协议GBN

    千次阅读 2019-10-09 10:25:38
    五、后退N帧协议GBN)的缺点及改进方向 GBN连续发送数据帧,提高了信道利用率。但在重传时必须把原来已经正确传送的数据帧重传,使得传送效率降低,为了解决这个问题,我们引入了 选择重传协议(SR) ...
  • 1. 后退 N 帧协议 (GBN) 的发送窗口 这个文章的最后说明了后退 N 帧协议 (GBN) 的发送窗口为什么 ≤ 2^n-1 https://blog.csdn.net/OOFFrankDura/article/details/79858712 他明确了 ACKn 的意义是:已经收到了序号为...
  • 【2012统考真题】 两台主机之间的数据链路层采用了后退N帧协议GBN)传输数据,数据的传输速率为16kb/s,单向传播时延为270ms,数据帧长度范围是128~512字节,接收方总是以数据帧等长的帧进行确认。为使信道利用率...
  • 后退N帧协议-GBN

    千次阅读 2020-11-21 14:09:57
    GBN发送方要做的事: 1.上层的调用: 上层要发送的数据的时候,发送方先检查窗口有没有满,如果...协议的名字为后退N帧协议,来源于出现丢失和时延过长帧时发送方的行为,就像在停等协议中一样,定时器将再次用于恢复数
  • 十八、后退N帧协议

    2021-11-20 22:32:10
    文章目录1、后退N帧协议中的滑动窗口2、GBN协议中发送方必须相应的三件事2.1 上层的调用2.2 收到了一个ACK2.3 超时事件3、GBN协议中接收方必须相应的事4、运行中的GBN4.1 滑动窗口的长度4.2 GBN协议性能分析THE END ...
  • 假设发送方和接收方约定好,发送的的比特空间总共有kbit,也就是说,当k = 3时有三个bit可以用来作为的编号,那么就意味着,编号的范围是[0,1,2,3,4,5,6,7],共8个序号,二进制为[000,001,010,011,100,101,110,...
  • 数据长度,即一个数据的大小,也是发送方的一个窗口的大小。 信道利用率,指的是发送方在一个发送时间周期内,有效的发送数据所需要的时间占整个发送周期的比率。 下面来分析这一道题比较难以理解的问题: 题...
  • 索引后退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发送方 Ⅰ.上层调用 上层要...
  • 1. 后退N帧协议(GBN) 1.1 GBN发送方必须响应的三件事 1.2 GBN接收方要做的事 1.3 运行中的GBN 1.4 滑动窗口长度 1.5 小结 1.6 性能分析 1.7 例题 习题1: 习题2: 1.8 小结 2. 选择重传协议...
  • 计算机网络错题总结 题目原题 这道题刚开始看的时候始终读不懂题意,后来看了看答案解析又搜了搜百度终于理解了。 其实本题考察的是对数据传输率的理解。...后退N帧协议的定义:在收到第一个数据帧
  • 假设n=3 发送窗口大小为0-7(8个),接受方收到0-7 后返回确认ack0-ack7 但是ack0-ack7都丢失了; 一段时间后超时了。发送方重新发送旧的0-7, 接受方以为是新的0-7 这样就出错了。 2。网上找到答案就不一一细说了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 774
精华内容 309
关键字:

后退n帧协议gbn

友情链接: gouwu1.rar