十六、停止等待协议

简介: 十六、停止等待协议

1、为什么要有停止等待协议


除了比特出差错,底层信道还会出现丢包问题,为了实现流量控制,设计出停等协议。


丢包: 物理线路故障,设备故障,病毒攻击,路由问题错误等原因,会导致数据报的丢失。



2、研究停等协议的前提



虽然现在常用全双工通信方式,但是为了讨论问题方便,仅考虑一方发送数据,一方接收数据;


因为是在讨论可靠性传输的原理,所以并不考虑数据是在那一个层次上传输的;


“停止-等待”就是没发送完一个分组就停止发送,等待对方确认,在收到确认后再发送下一个分组。




3、应用停等协议的两种情况


3.1 无差错的情况

e8ed97b19fc344b5b904d12ace5779b7.png


每发送1个数据就停止并等待,因此用1bit来编号就足够。



3.2 有差错的情况


3.2.1 数据帧丢失或检测到帧出错


超时计时器:每次发送一个帧就启动一个计时器,超时计时器设置的重传时间应当比帧传输的平均往返传输时延(RTT)更长一些。计时器如果超时了,则放松放松就会重传上一次传过的帧数据。

c4d9fddb17864a8b97dc87e162a07fa1.png



发送方发送完一个帧之后,必须保留它的副本;数据帧和确认帧必须编号。


3.2.2 ACK丢失

4ded496a1a744a61bffd51317433cbdc.png


3.2.3 ACK迟到

14c95216b7cc4275a5b7b37f0cf09266.png




4、停等协议的性能分析


 实现方式简单,但是信道利用率太低。

2578f15d132c4d27a77236c32f926564.png


信道利用率: 发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。


=(L/C)/T


其中  L表示T内发送L比特数据;  C表示发送发的数据传输率; T表示发送周期,从开始发送数据,到收到第一个确认帧为止。


信道吞吐率: =信道利用率*发送方的发送速率。


下面通过一个例题来说明信道利用率:


18b855329cd44f7788600f95f51819f9.png








相关文章
|
4月前
|
安全 网络安全 Windows
Serv-U无法开启后台模式,如何处理?
Serv-U无法开启后台模式,如何处理?
82 13
|
应用服务中间件
【端口号清除工具】port is already in use解决利器,从此告别每次输入命令杀端口
【端口号清除工具】port is already in use解决利器,从此告别每次输入命令杀端口
189 0
|
Java Linux Shell
如何在Linux中使SpringBoot项目关闭终端后不关闭项目进程
如何在Linux中使SpringBoot项目关闭终端后不关闭项目进程
146 0
如何在Linux中使SpringBoot项目关闭终端后不关闭项目进程
|
网络协议 Java
《bug记录》在利用TCP协议创建【服务器-客户端交互程序】中出现的一些问题
《bug记录》在利用TCP协议创建【服务器-客户端交互程序】中出现的一些问题
|
存储 测试技术 C语言
西门子S7-200 SMART自由口通信参数如何设置?如何编写发送程序和接收程序?如何测试?
西门子S7-200 SMART除了支持以太网通信,还可以通过CPU上或信号板上的RS485接口实现串口通信。支持的串口协议,包括自由口协议、USS协议、MODBUS协议和PPI协议。STEP7 Micro/WIN SMART编程软件安装时自动集成串口通信所需要的功能块和子程序。
西门子S7-200 SMART自由口通信参数如何设置?如何编写发送程序和接收程序?如何测试?
|
网络协议 Linux 应用服务中间件
一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)
一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)
1260 0
|
数据采集
GEE——sentinel-5p数据停止运行(S5P OFFL CH4停运)
GEE——sentinel-5p数据停止运行(S5P OFFL CH4停运)
139 0
GEE——sentinel-5p数据停止运行(S5P OFFL CH4停运)
Actuator远程关闭服务“黑科技”
之前章节介绍了`Actuator`对服务系统监控相关的知识点,了解到了开放指定`监控节点`、`查看详细健康信息`,我们本章来介绍下`Actuator`的黑科技,远程关闭应用服务。
|
JSON 监控 Java
zabbix精华篇-低级自动发现详解---批量自动获取主机所有tomcat端口并进行监控(二十四)
zabbix利用低级自动发现自动监控tomcat端口 1.为什么要使用自动发现 由于我们tomcat服务器特别多,且每一个上面跑的实例长达几十个,但是这些tomcat的端口也都需要监控起来,如果手动添加的话将会非常麻烦,我们可以利用自动发现,将自动发现配置一些规则并做成模板,给有tomcat的服务器链接模板就可以了,这个过程就会大大减少人工的工作量
542 0
zabbix精华篇-低级自动发现详解---批量自动获取主机所有tomcat端口并进行监控(二十四)
|
监控 网络协议 网络安全
zabbix自定义TCP 11种状态监控模板(十四)
zabbix自定义TCP 11种状态监控模板 如果一直对多个主机同时增加监控项那么会非常麻烦,在实际生产中有很多时候我们都需要对一批机器同时增加多个相同的监控项,如果一个一个手动添加将会非常麻烦,因此就有了模板的诞生,我们只需要创建一个模板,让需要监控的主机链接模板即可
324 0
zabbix自定义TCP 11种状态监控模板(十四)