计算机网络 ——可靠传输的实现机制

2021/5/3 18:28:15

本文主要是介绍计算机网络 ——可靠传输的实现机制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

停止等待协议 (SW)


正常情况

  • SWStop and Wait
  • 发送方发送分组给接收方后,必须收到接收方ACK,才能发送下一个分组
  • 如果接收方检测出分组有误,则发送NAK发送方,要求发送方重传
  • 如图:
    在这里插入图片描述

超时重传

  • 发送方的分组在传输中意外丢失,那么
    在这里插入图片描述
  • 如下
    在这里插入图片描述

确认丢失

  • 如果接收方的 ACK 丢失,发送方触发超时重传:接收方如何区别重复分组
    在这里插入图片描述

确认迟到

  • 如果接收方对 DATA0 的确认迟到,那么会导致DATA0的重传
  • 然后姗姗来迟的ACK0被当成了重传的DATA0的确认分组,并开始传输DATA1
  • 如果DATA1传输失败,但是上一个DATA0的确认分组,会让发送方误以为是DATA1的确认分组,从而导致分组DATA1 缺失
  • 因此,需要对确认分组ACK也编号
    在这里插入图片描述

缺点

  • 发送方必须停止等待上一个分组确认才可以发送下一个分组,信道利用率低
    在这里插入图片描述

回退N帧协议(GBN)


正常情况

  • GBNGo Back N

  • 首先规定用几个比特给分组编号,如 3 个,即序号 0~7

  • 发送窗口尺寸Wt的取值必须在 1 < Wt < 23 - 1

  • 接收窗口尺寸Wr取值只能是1,即 Wr = 1
    在这里插入图片描述

  • 位于发送窗口的分组都可以连续发送
    在这里插入图片描述

  • 当接收窗口的序号与接收分组的序号一致时,接收窗口向后滑动
    在这里插入图片描述

累计确认

  • 接收方可以对收到的分组进行累计确认
    在这里插入图片描述

回退N帧

  • 如果发送过程中出现了错误,例如 5 号分组出错被丢弃
  • 那么后面的 6 ~ 1 号分组因为与接收窗口的序号不一致,也只能丢弃
  • 因此需要发送方重新发送 N 帧
    在这里插入图片描述

Wt取值过大

  • 如果发送窗口大于等于 2n - 1,假如此处取 7,那么
    在这里插入图片描述

缺点

  • 仅有一个分组出错,就会导致其后的所有分组重传,在网络条件差的情况下,效率很低

选择重传协议(SR)


正常情况

  • SRSelective Request
  • 首先规定用几个比特给分组编号,如 3 个,即序号 0~7
  • 发送窗口尺寸Wt的取值必须在 1 < Wt <= 23-1
  • 接收窗口尺寸Wr = Wt

-

分组丢失时

  • 接收方会接收成功的分组,并尽可能的滑动接收窗口
    在这里插入图片描述

  • 发送方收到确认分组后,标记哪些分组被成功发送,并尽可能的滑动窗口
    在这里插入图片描述

  • 未收到确认分组的,发送方则触发超时重传
    在这里插入图片描述

  • 如下
    在这里插入图片描述

Wt 取值过大

  • 导致接收方无法分辨新、旧数据分组

在这里插入图片描述



这篇关于计算机网络 ——可靠传输的实现机制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程