【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★

简介: 【计算机网络】数据链路层 : 选择重传协议 SR ( 帧分类 | “发送方“ 确认帧、超时事件 | “接受方“ 接收帧机制 | 滑动窗口长度 | 计算示例 )★

文章目录

一、 选择重传协议 ( SR ) 引入

二、 选择重传协议 ( SR ) 帧分类

三、 发送方 事件 ( 确认帧、超时事件 )

四、 接收方 事件 ( 接收帧 )

五、 滑动窗口长度

五、 选择重传协议 SR 重点

六、 选择重传协议 SR 计算示例





一、 选择重传协议 ( SR ) 引入


后退 N NN 帧协议 ( GBN ) 弊端 : 累计确认 机制 , 导致的批量重传 , 这些重传的帧 , 可能已经传输成功 , 就是因为之前的帧出错 , 导致传输成功的帧被丢弃 ;



上述弊端 解决方案 : 设置 单个帧确认机制 , 加大 接收窗口 , 设置接收缓存 , 可处理乱序到达的帧 ;






二、 选择重传协议 ( SR ) 帧分类


发送方 帧 分类 :


① 发送窗口外 , 发送完毕 , 被确认的帧 ; 滑动窗口已经划过的位置 ;


② 发送窗口内 , 发送完毕 , 被确认的帧 ;


③ 发送窗口内 , 发送完毕 , 等待确认的帧 ; 此时该数据帧需要被缓存 ;


④ 发送窗口内 , 还能发送的帧 ;


⑤ 发送窗口外 , 还不能发送的帧 ; 滑动窗口还没有滑到的位置 ;




接收方 帧 分类 :


① 接收窗口外 , 已经成功接收的帧 ;


② 接收窗口内 , 希望收到 , 但是未收到的帧 ;


③ 接收窗口内 , 希望收到 , 刚收到的帧 ;


④ 接收窗口内 , 不希望收到 , 却提前收到的帧 , 已经缓存下来 ;


⑤ 接收窗口内 , 等待接收的帧 ;






三、 发送方 事件 ( 确认帧、超时事件 )


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


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


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




A C K ACKACK 确认帧 事件 : 逐一确认 ;


① 接收确认帧 : 接收方收到 ACK 确认帧 ;


② 标记已接收 : 发送窗口 内 将该 帧序号 对应的帧 标记为 已接收 ;


③ 移动发送窗口 : 如果 该 帧序号 是 发送窗口 的下界 ( 最左侧窗口 ) , 将 发送窗口 移动到 最小序号的 没有确认 的帧位置 ; 可能移动 一个位置 , 也可能移动多个位置 ;


④ 发送未发送帧 : 发送窗口 移动完毕后 , 如果发现 该 发送窗口 中有没有发送的帧 , 就将这些帧发送出去 ;




超时事件 : 每个帧 都有 自己的定时器 , 如果 某个 帧出现了定时器超时事件 , 重传该单个帧 ;






四、 接收方 事件 ( 接收帧 )


接收方 事件 :


① 接收正确帧 : 接收方 接收 正确的帧 , 不管其帧的顺序 ;


② 失序处理 : 失序的帧 , 将会被缓存起来 , 并向 发送方 发送该 失序帧 的 ACK 确认帧 ;


③ 移动接收窗口 : 如果 接收到的 帧序号 是 接收窗口 的下界 ( 最左侧窗口 ) , 将成功接收到的连续数据交付给上层 , 将 接收窗口 移动到 最小序号的 没有接收到 的帧位置 ; 可能移动 一个位置 , 也可能移动多个位置 ;






五、 滑动窗口长度


发送窗口 与 接收窗口 大小相等 , 便于流量控制 ;



使用 n nn 比特 对 帧进行编号 , 发送窗口的尺寸 W T W_TW

T


 和 接收窗口尺寸 W R W_RW

R


满足如下公式要求 :


W T = W R = 2 n − 1 W_T = W_R = 2^{n - 1}

W

T


=W

R


=2

n−1






五、 选择重传协议 SR 重点


选择重传协议 SR 重点 :


① 数据帧 逐一确认 , 接收方收到一个帧 , 就会单独发送该帧的确认帧 ;


② 重传 出错 的 单个帧 ;


③ 接收方 有缓存 ;


④ 滑动窗口大小 : W T = W R = 2 n − 1 W_T = W_R = 2^{n - 1}W

T


=W

R


=2

n−1

 ;






六、 选择重传协议 SR 计算示例


数据链路层 使用 选择重传协议 SR , 发送方发送了 0 , 1 , 2 , 3 0 , 1, 2,30,1,2,3 帧 , 当前时刻 , 收到了 1 11 号确认帧 , 0 , 2 0, 20,2 号帧出现超时 , 则需要重发哪些帧 ? ??



SR 协议是收到一帧 , 确认一帧 ;


1 11 号帧 已经确认 , 不用重发 ;


0 , 2 0 , 20,2 帧 超时 , 必须重发 ;


3 33 号帧 等待确认 , 当前时刻不用管 , 如果超时 , 就需要重发 , 当前没有超时 , 等待即可 ;


因此最终只需要重发 0 , 2 0 , 20,2 数据帧 ;


目录
相关文章
|
网络协议 网络安全 数据中心
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
354 11
|
缓存 算法 网络协议
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
这篇文章详细介绍了计算机网络中数据链路层的概念、基本问题、点对点信道和广播信道的数据链路协议(如PPP和CSMA/CD),以及局域网和以太网的相关知识。
2679 0
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
12月前
|
Go 数据安全/隐私保护 UED
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
|
网络协议 网络架构
【网络】TCP/IP 五层网络模型:数据链路层
【网络】TCP/IP 五层网络模型:数据链路层
266 1
|
Ubuntu Linux 应用服务中间件
阿里云国际短信业务网络超时排障指南
阿里云国际短信业务网络超时排障指南
|
存储 安全 网络安全
POP3 协议在计算机网络中的优缺点
【8月更文挑战第19天】
477 0
POP3 协议在计算机网络中的优缺点
|
网络协议 视频直播 SDN
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.
162 1