前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算机网络之传输层-停等协议与滑动窗口协议

计算机网络之传输层-停等协议与滑动窗口协议

作者头像
越陌度阡
发布2020-11-26 11:32:09
2.1K0
发布2020-11-26 11:32:09
举报

1. 可靠数据传输基本原理

不可靠传输信道在数据传输中可能发生:

1. 比特差错: 1001变为1000;

2. 乱序: 数据块1、2、5、6、3、4;

3. 数据丢失: 数据块1、2、5。

为了使传输层提供可靠的数据传输服务,基于不可靠信道实现可靠数据传输需要采取以下措施:

1. 差错检测: 利用编码实现数据包传输过程中的比特差错检测;

2. 确认: 接收方向发送方反馈接收状态。

(1). ACK( 肯定确认),Positive Acknowledgement, 正确接收数据;

(2). NAK( 否定确认),Negative Acknowledgement, 没有正确接收数据。

3. 重传: 发送方重新发送接收方没有正确接收的数据。

4. 序号: 确保数据按序提交。

5. 计时器: 解决数据丢失问题。

2. 停-等协议

停-等协议工作流程:

1. 发送方发送经过差错编码和编号的报文段, 等待接收方的确认;

2. 接收方如果差错检测无误且序号正确, 则接收报文段, 并向发送方发送ACK,发送方收到ACK,继续发送后续报文段;

3. 接收方如果差错检测序号有误,则丢弃报文段, 并向发送方发送NAK,发送方收到NAK, 重发刚刚发送的报文段。

3. 滑动窗口协议

由于停等协议性能差、 信道利用率低,因此产生了流水线协议( 管道协议)。

流水线协议允许发送方在没有收到确认前连续发送多个分组,最典型的流水线协议: 滑动窗口协议。

在滑动窗口协议中,增加多个分组序号,发送方和接收方可以缓存多个分组。

发送窗口(Ws): 发送方可以发送未被确认分组的最大数量。

接收窗口(Wr): 接收方可以缓存的正确到达的分组的最大数量。

上图为发送方已经发送的分组序号。

上图为发送方正在发送的分组序号。

上图为发送方待发送的分组序号。

上图为接收方已经确认收到的分组序号。

上图为接收方正在接收的分组序号。

上图为接收方待接收的分组序号。

滑动窗口协议, 根据窗口的大小, 可以具体分为:

1. 回退N步协议: GBN协议( Go-Back-N)

GBN协议 :发送窗口WS≥1 , 接收窗口Wr=1。

GBN协议中发送端缓存能力高, 可以在没有得到确认前发送多个分组。接收端缓存能力很低, 只能接收1个按序到达的分组, 不能缓存未按序到达的分组。

GBN发送方响应的3类事件:

1. 上层调用;

2. 收到1个ACKn,GBN采用累积确认方式, 即发送方收到ACKn时, 表明接收方正确接收序号n以及序号小于n的所有分组;

3. 计时器超时,发送方只使用一个计时器。

2. 选择重传协议: SR协议( Selective Repeat)

SR协议: 发送窗口WS> 1, 接收窗口Wr> 1。

SR协议中发送端缓存能力高,接收端缓存能力高。

SR发送方响应事件:

1. 上层调用;

2. 计时器超时,发送方对每个分组进行计时;

3. 收到ACKn,SR协议采取逐个确认方式。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 可靠数据传输基本原理
  • 2. 停-等协议
  • 3. 滑动窗口协议
相关产品与服务
数据传输服务
腾讯云数据传输服务(Data Transfer Service,DTS)可帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库多活架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。同时,DTS 还提供私有化独立输出版本 DTS-DBbridge,支持异构数据库和同构数据库之间迁移和同步,可以帮助企业实现完整数据库迁移(如 Oracle)。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档