计算机网络学习笔记13--可靠数据传输协议(流水线协议和滑动窗口协议)

https://www.bilibili.com/video/BV1Up411Z7hC?p=4&spm_id_from=pageDriver

 

如有错误之处请指出,谢谢!

目录

流水线机制和滑动窗口协议

rdt3.0:

 流水线机制:

流水线协议

 允许发送方在收到ACK之前连续发送多个分组

基于滑动窗口协议

 滑动窗口协议

滑动窗口协议:

窗口:

滑动窗口

滑动窗口协议:

 GBN协议(Go-Back-N)协议:发送方

发送方扩展FSM

  GBN协议(Go-Back-N)协议:接收方

ACK机制:发送红油最高序列号的、已被正确接收的分组的ACK

乱序到达的分组:

接收方扩展FSM

GBN示例 

GBN练习题

Selective Repeat协议

GBN有什么缺陷?

接收方对每个分组单独进行确认

 发送方只重传那些没收到ACK的分组

发送方窗口:

发送方/接收方窗口

 SR协议的动作

 SR协议示例

SR的问题

可靠数据传输原理与协议


p46-p48

流水线机制和滑动窗口协议

提高rdt3.0的性能:打破停等协议

rdt3.0:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

 流水线机制:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

流水线协议

 允许发送方在收到ACK之前连续发送多个分组

更大的序列号范围

发送方和接收方需要更大的存储空间以缓存分组

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_16,color_FFFFFF,t_70,g_se,x_16

基于滑动窗口协议

 滑动窗口协议

滑动窗口协议:

Slidintg-window protocol

窗口:

允许使用的序列号范围

窗口尺寸为N:最多有N个等待确认的消息

滑动窗口

随着协议的运行,窗口在序列号空间内向前滑动

滑动窗口协议:

GBN,SR

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_10,color_FFFFFF,t_70,g_se,x_16

 GBN协议(Go-Back-N)协议:发送方

分组头部包含k-bit序列号

窗口尺寸为N,最多允许N个分组未确认

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_15,color_FFFFFF,t_70,g_se,x_16

ACK:确认到序列号n(包含n)的分组均已被正确接收

 可能收到重复ACK(信道丢包)

为空中的分组设置计时器(timer)

超市事件Timeout(n)事件:重传序列号大于等于n,还未收到ACK的所有分组

发送方扩展FSM

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_14,color_FFFFFF,t_70,g_se,x_16

  GBN协议(Go-Back-N)协议:接收方

接收方没有缓存

ACK机制:发送红油最高序列号的、已被正确接收的分组的ACK

可能产生重复ACK

只需要记住唯一的expectedseqnum

乱序到达的分组:

直接丢弃--->接收方没有缓存

重新确认序列号最大的、按序到达的分组

接收方扩展FSM

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_15,color_FFFFFF,t_70,g_se,x_16

GBN示例 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

会丢弃掉2之后所有并发送一个ACK1,不过所有的ACK1全部丢失,最终直到pkt2超时才会进行从2开始的重发 

GBN练习题

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

 ACK1可能丢失掉了,数据包并未丢失

Selective Repeat协议

GBN有什么缺陷?

GBN在重传时会重传很多分组,导致网络中充斥着很多重传的分组,影响性能

接收方对每个分组单独进行确认

设置缓存机制,缓存乱序到达的分组

 发送方只重传那些没收到ACK的分组

为每个分组设置单独的定时器

发送方窗口:

N个连续的序列号

限制已发送且未确认的分组

SR与GBN多了接收方窗口

发送方/接收方窗口

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

 SR协议的动作

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

 SR协议示例

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

 等到收到2的ACK才能继续发送

SR的问题

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YWz5rOo5ZiJ54S25LuK5aSp5ZCD5LuA5LmI,size_20,color_FFFFFF,t_70,g_se,x_16

  接收方无法分辨a、b两种情况

序列号为k个

发送方加接收方窗口的总的个数小于等于2^k

可靠数据传输原理与协议

信道的不可靠特性

可靠数据传输的需求:不错不丢不乱

Rdt1.0

Rdt2.0、2.1、2.2

Rdt3.0

流水线与滑动窗口协议

GBN

SR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软糖工程001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值