一、概念与原理

停止-等待协议是一种简单的自动重传请求(ARQ)协议。在这种协议中,发送方每发送一帧数据后,就会停止发送并等待接收方的确认(ACK)消息。只有在收到接收方的确认消息后,发送方才会继续发送下一帧数据。该协议通过确认机制来保证数据的可靠传输。

二、工作过程

发送方:
发送方发送一帧数据后,会启动一个超时计时器。
如果在超时计时器设定的时间内没有收到接收方的确认消息,发送方会认为该帧数据已丢失或出错,并重新发送该帧数据。
如果收到接收方的确认消息,发送方会关闭超时计时器,并继续发送下一帧数据。

接收方:
接收方在收到发送方发送的数据帧后,会进行差错检测。
如果数据帧没有差错,接收方会向发送方发送确认消息。
如果数据帧有差错,接收方会丢弃该帧,并不会向发送方发送确认消息(或者发送否认消息NAK,具体取决于协议实现)。

三、协议特点

简单易实现:停止-等待协议的实现相对简单,不需要复杂的逻辑和大量的存储空间。

信道利用率低:由于发送方在发送完一帧数据后需要等待接收方的确认消息才能继续发送下一帧数据,这导致信道在大部分时间内都处于空闲状态,因此信道利用率较低。

适用于低延迟、低误码率环境:在延迟较小、误码率较低的网络环境中,停止-等待协议能够较好地工作。但在高延迟、高误码率的环境中,其性能会显著下降。

四、改进与发展

为了克服停止-等待协议信道利用率低的缺点,人们提出了其他更高效的协议,如后退N帧协议(GBN)和选择重传协议(SR)。这些协议通过引入滑动窗口机制,允许发送方在未经确认的情况下发送多个帧,从而提高了信道利用率和传输效率。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐