网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

“停止并等待”协议,其存在的问题及解决方案

更新时间:2026年03月27日   作者:spoto   标签(Tag):

这是一种最简单的流量控制方法。发送方会先发送数据包,然后等待接收方确认已经收到该数据包。只有在接收到接收方的确认后,发送方才会继续发送下一个数据包。
“停止并等待”协议其实非常容易实现。
 


发送所需的总时间长度为:
 

Ttotal = Tt(data) + Tp + Tq + Tprocess + Tt(ack) + Tp     ( since, Tq and Tprocess = 0)Ttotal = Tt(data) + 2Tp + Tt(ack)Ttotal = Tt(data) + 2Tp   (when Tt(ack) is negligible) 
效率 = useful time / total cycle time = Tt / (Tt+2Tp)= 1 / (1+2a)    [a = Tp/Tt] 


注意:在较短的距离内,采用“停止并等待”的策略更为合适。因此,这种策略非常适合局域网环境。而对于较大的数据包来说,采用“停止并等待”的策略则更为有利。
如果数据包在传输过程中丢失了该怎么办呢?
 

  1. 根据发件人的说法,收件人确实很忙,但实际上数据还是丢失了。
  2. 接收方将认为,发送方没有发送任何数据包。
  3. 他们俩都会等待对方,最终会导致僵局。


需要设置超时计时器: 
系统会设置一个超时计时器。接收方会等待该超时时间过后,才会确认数据已经丢失。
如果数据包已经丢失了,该怎么办呢? 
在超时时间结束后,发送方会认为数据已经丢失了,但实际上,确认消息也丢失了。由于这种假设,发送方会再次发送数据包,但接收方却认为这是一个新的数据包。因此,就会出现数据包重复的问题。
为了消除重复的数据包,会在数据包中添加一个序列号。因此,通过利用这些数据包的编号,可以很容易地识别出重复的数据包。
如果收到确认消息的时间有所延迟,该怎么办呢?
 


根据发送方的描述,数据包1的确认信息延迟了,而数据包2则丢失了。但是接收方认为,所接收到的确认信息实际上是关于数据包2的。这个问题被称为“数据包丢失问题”。
如果确认消息也带有编号的话,那么缺失的数据包问题就可以得到解决。
 

              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料