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

2023-03-28 16:58:29 浏览数 (1)

文章目录

  • 一、 数据链路层 流量控制
  • 二、 数据链路层 与 传输层 流量控制 机制
  • 三、 数据链路层 流量控制
  • 四、 数据链路层 流量控制 方法分类
  • 五、停止等待协议
  • 六、滑动窗口协议
  • 七、滑动窗口协议
  • 八、滑动窗口 大小
  • 九、滑动窗口 解决 流量控制、可靠传输 问题

一、 数据链路层 流量控制


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

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

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

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


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

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

三、 数据链路层 流量控制


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

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


流量控制方法 :

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

② 滑动窗口协议 :

  • 后退 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

;

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

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


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

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

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

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

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

0 人点赞