十六、停止等待协议

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

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








相关文章
|
3天前
|
Java API 调度
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
46 0
|
9月前
|
应用服务中间件
【端口号清除工具】port is already in use解决利器,从此告别每次输入命令杀端口
【端口号清除工具】port is already in use解决利器,从此告别每次输入命令杀端口
96 0
|
网络协议 Java
《bug记录》在利用TCP协议创建【服务器-客户端交互程序】中出现的一些问题
《bug记录》在利用TCP协议创建【服务器-客户端交互程序】中出现的一些问题
|
网络协议 Linux 应用服务中间件
一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)
一台linux服务器最多能支持多少个TCP连接?(要区分客户端还是服务端)
842 0
|
存储 测试技术 C语言
西门子S7-200 SMART自由口通信参数如何设置?如何编写发送程序和接收程序?如何测试?
西门子S7-200 SMART除了支持以太网通信,还可以通过CPU上或信号板上的RS485接口实现串口通信。支持的串口协议,包括自由口协议、USS协议、MODBUS协议和PPI协议。STEP7 Micro/WIN SMART编程软件安装时自动集成串口通信所需要的功能块和子程序。
西门子S7-200 SMART自由口通信参数如何设置?如何编写发送程序和接收程序?如何测试?
|
前端开发 测试技术 API
【测试平台开发】二十、完成编辑页发送接口请求功能
【测试平台开发】二十、完成编辑页发送接口请求功能
【测试平台开发】二十、完成编辑页发送接口请求功能
|
网络协议
Swoole v4.7 版本新特性预览之支持为每个端口设置不同的心跳检测时间
在之前的版本中,多端口监听的心跳检测功能只能配置在主服务上,无法为每个端口单独设置心跳时间。 例如需要在9501端口上设置 30 秒,而9502端口上设置 60 秒。从v4.7版本开始进行了支持.
166 0
|
JSON 监控 Java
zabbix精华篇-低级自动发现详解---批量自动获取主机所有tomcat端口并进行监控(二十四)
zabbix利用低级自动发现自动监控tomcat端口 1.为什么要使用自动发现 由于我们tomcat服务器特别多,且每一个上面跑的实例长达几十个,但是这些tomcat的端口也都需要监控起来,如果手动添加的话将会非常麻烦,我们可以利用自动发现,将自动发现配置一些规则并做成模板,给有tomcat的服务器链接模板就可以了,这个过程就会大大减少人工的工作量
477 0
zabbix精华篇-低级自动发现详解---批量自动获取主机所有tomcat端口并进行监控(二十四)
|
监控 网络协议 网络安全
zabbix自定义TCP 11种状态监控模板(十四)
zabbix自定义TCP 11种状态监控模板 如果一直对多个主机同时增加监控项那么会非常麻烦,在实际生产中有很多时候我们都需要对一批机器同时增加多个相同的监控项,如果一个一个手动添加将会非常麻烦,因此就有了模板的诞生,我们只需要创建一个模板,让需要监控的主机链接模板即可
241 0
zabbix自定义TCP 11种状态监控模板(十四)
|
XML 测试技术 数据安全/隐私保护
一起谈.NET技术,VS2010测试功能之旅:编码的UI测试(2)-操作动作的录制原理(上)
  回顾    在之前我们介绍了如何用VS2010的UI测试功能创建一个简单的示例,大致描述了如何使用编码的UI测试进行录制和回放,在这章会着重描述VS2010是如何录制操作,并且生成代码,以及初步介绍如何通过自己写代码的方式进行测试。
1130 0