它是最简单的流量控制方法,发送方将发送数据包,然后等待接收方确认已收到数据包,然后发送下一个数据包。
停止等待协议很容易实现。
发送所需的总时间是,
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)
Efficiency
= useful time / total cycle time
= Tt / (Tt+2Tp)
= 1 / (1+2a) [a = Tp/Tt]
注意:停止和等待距离越短越好。因此它是一个很好的局域网协议。停止并等待有利于更大的数据包。
如果中间的数据包丢失怎么办?
- 根据发送方的说法,接收方很忙,但实际上数据丢失了。
- 接收方会假设,发送方没有发送数据包。
- 两者都会互相等待,然后就会陷入僵局。
需要超时定时器:
应用计时器,接收器将等待数据的超时计时器,然后确认数据已丢失。
如果数据包丢失了怎么办?
超时定时器到期后,发送方将假设数据丢失但实际上确认丢失。假设它会再次发送数据包,但根据接收器,它是一个新的数据包,因此会产生重复数据包问题。
为消除重复包问题,将序列号添加到数据包中。因此使用数据包编号可以轻松确定重复数据包。
如果接收确认有延迟怎么办?
根据发送方,数据包 1 的确认被延迟,数据包 2 已丢失。但接收方假设收到的确认是数据包 2。这个问题称为丢失数据包问题。
如果确认也有数字,则可以解决丢包问题。