前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )

【计算机网络】数据链路层 : 流量控制 ( “流量控制“ 机制 | 停止-等待协议 | 滑动窗口协议 | 后退 N 帧协议 GBN | 选择重传协议 SR | 滑动窗口 与 流量控制、可靠传输 )

作者头像
韩曙亮
发布2023-03-28 16:58:29
1.3K0
发布2023-03-28 16:58:29
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、 数据链路层 流量控制


发送方 发送数据 速率高 , 接收方 接收数据 能力差 , 造成传输出错 , 数据链路层 的 负责进行流量控制的工作 ;

数据链路层 流量控制 是 点对点的 ; 是 每两个相邻节点间的流量控制 ; 如 主机 到 路由器 , 路由器 到 路由器 ;

传输层 流量控制 是 端到端的 ; 是 两个主机端的 流量控制 ;

二、 数据链路层 与 传输层 流量控制 机制


数据链路层 流量控制 机制 : 如果接收方发现接收不了 , 就不再回复 确认帧 ; 确认帧 是 不包含数据的 控制帧 ;

传输层 流量控制 机制 : 接收方 给 发送方 发送 窗口公告 ; 窗口公告 就是接收方的 接收缓冲区大小 , 让发送方不要发送太多数据 ;

三、 数据链路层 流量控制


数据链路层 流量控制 : 发送方 向 接收方 发送数据 , 如果接收方 接收了数据 , 还能再继续接收 , 就会向 发送方 发送 确认帧 , 发送方 接收到 接收方 的 确认帧 后 , 就会继续发送 数据帧 ;

四、 数据链路层 流量控制 方法分类


流量控制方法 :

① 停止等待协议 : 发送端 每发送 完一帧 , 就停止发送 , 等待 接收方 确认 , 收到 接收方 的确认信息后 , 再发送下一帧 ;

② 滑动窗口协议 :

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

五、停止等待协议


停止等待协议 :

① 发送端 : 发送端 发送

M_1

信息 给 接收端 ;

② 接收端 : 接收端 收到

M_1

信息后 , 向 发送端 回送

M_1

确认帧 ;

③ 发送端 : 发送端 继续 发送

M_2

信息 给 接收端 ;

④ 接收端 : 接收端 收到

M_2

信息后 , 向 发送端 回收

M_2

确认帧 ;

停止等待协议 , 效率比较低 ;

六、滑动窗口协议


滑动窗口 协议 :

① 发送窗口 : 发送端 维持 一段连续的 帧序号 , 这一串 帧序号 称为 发送窗口 ;

  • 不等待确认帧持续发送 : 发送窗口 发送 一帧数据后 , 不用等待确认信息 , 可以继续发送发送窗口的后续信息 ;
  • 收到确认帧滑动 : 发送端 接收到 确认信息后 , 滑动窗口就会向前滑动一位 ;

② 接收窗口 : 接收端 维持 一段连续的 帧序号 ; 这一串 帧序号 称为 接收窗口 ;

  • 接收信息 : 接收端 收到 信息后 滑动窗口 向前滑动 一位 , 并回送 确认帧 ;

七、滑动窗口协议


滑动窗口 协议 示例 :

① 发送窗口 :

6

个帧序号

0

~

5

;

② 接收窗口 :

1

个 ;

③ 发送数据 : 发送端 发送

0

序号帧 给接收端 ;

④ 接收数据 : 接收端接收到

0

序号帧 , 接收端 回送 确认

0

号帧 数据 给 发送端 , 接收端的 接收窗口 向前移动一位 ;

⑤ 发送窗口移动 : 发送端 接收到

0

序号帧 确认信息 , 发送端的发送窗口 向前移动一格 , 继续发送 ;

⑥ 持续发送 : 如果 发送端 没有收到

0

序号帧 确认信息 , 会继续发送

1 , 2, 3, 4, 5

序号帧给接收端 ;

八、滑动窗口 大小


滑动窗口 大小 :

① 停止等待协议 : 发送窗口

1

, 接收窗口

1

;

② 后退

N

帧协议 ( GBN ) : 发送窗口

> 1

, 接收窗口

1

;

③ 选择重传协议 ( SR ) : 发送窗口

>1

, 接收窗口

>1

;

数据链路层 流量控制中 , 发送过程中的 发送窗口 和 接收窗口 大小都是固定值 ;

九、滑动窗口 解决 流量控制、可靠传输 问题


可靠传输 : 发送端发送什么数据 , 接收端就接收什么数据 ; 如果 出现 帧丢手 , 帧失序 , 帧重复 等问题 , 都需要解决 , 保证接接收端 接收的数据 与 发送端 发送的数据 一致 ;

流量控制 : 控制 发送端 发送数据的速率 , 让 接收方 有足够的缓冲空间 接收 发送端发送的每一帧数据 ;

滑动窗口 就是 解决 上述 可靠传输 与 流量控制的问题 :

① 滑动窗口 解决 流量控制 问题 : 发送方 接收到 确认帧 后 , 才能向前移动 发送窗口 , 如果发送端 一致没有收到确认帧 , 其发送窗口一直不动 , 卡死在原位置 , 无法发送后续帧 , 该过程就是对流量的控制 ;

② 滑动窗口 解决 可靠传输 问题 : 发送方 如果 一直没有收到 接收方 的确认帧 , 超过超时等待时间 , 发送方就会重传一次 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、 数据链路层 流量控制
  • 二、 数据链路层 与 传输层 流量控制 机制
  • 三、 数据链路层 流量控制
  • 四、 数据链路层 流量控制 方法分类
  • 五、停止等待协议
  • 六、滑动窗口协议
  • 七、滑动窗口协议
  • 八、滑动窗口 大小
  • 九、滑动窗口 解决 流量控制、可靠传输 问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档