TCP是可靠的传输协议,停止等待协议是保证TCP可靠传输的其中一种措施

正常传输

正常的TCP通信是这样的:

分析:在正常传输时,发送端发每发送一段数据,接受端就要确认一下并给出答复(就像你给喜欢的人表白一下,你问对方能做你对象吗,对方答应了,那么你才可以说接下来的话)

出现差错

如果对方没有应答,那可能就是下面这种情况:

当对方还没有答应你时,你在说我带你去吃饭,是不是会被别人当傻子呀,这个时候,你稍等一下,再重新问一次,当对方答应了,你才能说带她去吃饭。

分析:在进行数据传输的时候,也是上边这种情况,当发送方将一个数据分组发送过去后,对放迟迟没有回应,那么可以认为这个数据分组在传输过程中已经丢失了。在这种情况下,接受端不会回应任何信息,而接受端在每一次发送数据分组后,都会设置一个超时计时器。如果接受端在超时计时器到期之前收到了对方的确认,就撤销超时计时器,如果没有收到确认就会重新发送这个数据分组。

注意:发送方在发送完一个数据分组后,必须暂时保留已发送的分组的副本,在发生超时重传的时候使用,只有在按时收到对方的确认信息后才会清楚保留的副本。

分组和确认分组都必须进行编号。这样才能明确是哪一个发送出去的分组收到了确认,而哪一个分组还没有收到确认(这里其实指的是传输层所用的滑动窗口协议,后续会进行详细叙述,现在是在链路层,只需要用一位编号即可)

超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些(在介绍超时重传时会详细叙述)。

确认丢失和确认迟到

上述超时重传的前提有两种情况:

一,发送端发送的数据在传输中丢失了,接收方根本就没有收到;

二,接收方收到了来自发送方的数据分组,但它回应的确认信息在传输途中丢失了

现在假设其中一种情况发生了,需要重传,当重传之后可能又会有这样一个问题,我发送端之前丢失的数据分组又回来了或者之前丢失的确认信息又回来了,而且传输到了接受端(发送端),那么此时接受端就有两份相同的数据(或者两份确认信息),此时采取的措施是丢弃重复的分组数据或确认信息。即,收到重复就丢弃。

图解:

谈到这里,我们可能已经看出了停止等待协议的缺点:它的信道利用率太低了,我们没发一个数据就确认一次,这样太耗费时间,那么我们如何解决呢?

接下一篇,滑动窗口 !!!

TCP的可靠传输-停止等待协议相关推荐

  1. 26-tcp可靠传输——停止等待协议

    1. tcp可靠传输   通过前面的学习可知,网络层传输数据时是尽最大努力传输到目的地,并不保障数据的可靠传输,对于网络拥塞,延迟,数据丢失等问题没有采取有效的措施.因此我们需要一种数据可靠传输的通信 ...

  2. 可靠传输的原理:停止等待协议、ARQ协议;TCP协议的可靠传输

    停止等待协议 停止等待协议是最简单的可靠传输协议,停止等待就是每发送完一个分组就停止发送,等待对方的确认.在收到确认后再发送下一个分组.若接收方收到重复的分组,就会丢弃该分组,但同时还要向发送方发送确 ...

  3. TCP可靠传输:ARQ协议(停止等待、超时重传、滑动窗口、回退N帧、选择重传)

    ARQ(Automatic Repeat-reQuest,自动重传请求) 一. ARQ简介 二. 停止等待ARQ (1)正常传输 (2)传输出现差错 1. 超时重传 2. 编号 (3)信道利用率 三. ...

  4. 大白话了解TCP协议:了解TCP?先别急,来看看TCP的前世——“最简单的”可靠传输协议:停止等待协议

    TCP是可靠传输协议的衍生.拓展 先了解可靠传输协议的基本概念就可以非常轻松得了解TCP协议了! 这是个有安全感的协议类型~ 在漫长的线路中,这些数据要经过路由器.网线,甚至还有风风雨雨--数据就很容 ...

  5. 传输层 可靠传输 重传与确认 停止等待协议工作原理

    谈谈你对停止等待协议的理解? 停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认,在收到确认后再发下一个分组. 在停止等待协议中,若接收方收到重复分组,就丢弃该分 ...

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

    文章目录 一. 数据链路层 流量控制 二. 数据链路层 与 传输层 流量控制 机制 三. 数据链路层 流量控制 四. 数据链路层 流量控制 方法分类 五.停止等待协议 六.滑动窗口协议 七.滑动窗口协 ...

  7. 3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制

    文章目录 0.思维导图 1.什么是流量控制? 2.什么是可靠传输机制? 3.什么是滑动窗口机制? 4.可靠传输.流量控制.滑动窗口之间的关系 5.停止-等待协议 (1)为什么要有停止-等待协议? (2 ...

  8. 计算机网络之数据链路层:4、流量控制和可靠传输机制(停止等待协议、后退N帧协议、选择重传协议)

    数据链路层:4.流量控制和可靠传输机制 思维导图: 流量控制: 实现流量控制的方法: 停止等待协议:(发送和接收窗口为1的滑动窗口协议) 滑动窗口协议: 实现可靠传输的方法: 总结: 思维导图: 流量 ...

  9. 王道考研 计算机网络11 数据链路层 封装成帧 透明传输 流量控制 停止-等待协议 后退N帧协议GBN 选择重传协议SR

    第三章知识 数据链路层的基本概念 数据链路层功能概述 封装成帧 透明传输 什么数据都能传输 数据链路层的流量控制 流量控制方法 滑动窗口协议: 每一个小格标识一个帧 发送窗口:发送端正在处理的发送的数 ...

最新文章

  1. 史上最全ajax全套讲解
  2. python输出多个随机数_怎么用python输出随机数
  3. Apache在windows下的安装配置
  4. Java中枚举的线程安全性及序列化问题
  5. php dm,DM_cp.php
  6. 2492 上帝造题的七分钟 2
  7. 免费下载需付费的qq音乐/各种音乐
  8. Arduino IDE 1.0以上LiquidCrystal_I2C驱动
  9. Labelme对图像标注、json转化png格式
  10. 郑州大学计算机翟雨轩,郑州大学文件-20210331220732.doc-原创力文档
  11. 快门速度,光圈,感光度
  12. 【将门创投】商汤徐立:计算机视觉的完整链条,从成像到早期视觉再到识别理解...
  13. iphone 存图片和视频到iPhone相册
  14. linux----------2--3----(无名)管道通信原理及管道编程实战
  15. linux卸载mysql(完全卸载)
  16. [论文笔记]On the Detection of Digital Face Manipulation
  17. 【cpg控制】Hopf振荡器的一种python实现
  18. mysql 查询语句超时_解决SQL查询总是 超时已过期
  19. 粘塑性自洽多晶体塑性模型VPSC(二)
  20. 数据不平衡问题解决方法——欠采样

热门文章

  1. python one hot编码_One-Hot编码详解与Python实现
  2. 日本之行(京都、大阪、奈良)
  3. 大家不要退小黄车的押金了
  4. vue 拦截器,增加token参数
  5. cygwin下面编译proxmark3(at 2015.09.09)
  6. prefetch 和preload_prefetch和preload
  7. linux文件及目录管理常见练习
  8. 记录报错日志——Log4j方式
  9. c语言假设有21根火柴棍,10道火柴棍趣味智力题,据说全对的都是天才!
  10. 发布职位:智行者科技idriverplus#d轮结束,即将ipobase:北广鄂渝技术路线:激光雷达+摄像头+高精地图前端后端移动端大数据感知嵌入式算法