停止等待协议17 Mar 2025 | 4 分钟阅读 在理解停止等待协议之前,我们首先了解错误控制机制。错误控制机制用于确保接收到的数据与发送方发送的数据完全相同。错误控制机制分为两类:停止等待ARQ和滑动窗口。滑动窗口进一步分为两类:回退N帧和选择重传。人们根据使用情况选择错误控制机制,无论是停止等待还是滑动窗口。 什么是停止等待协议?这里的停止等待意味着,发送方希望发送的任何数据,都会将其发送给接收方。发送数据后,他会停止并等待直到收到接收方的确认。停止等待协议是一种流量控制协议,其中流量控制是数据链路层的一项服务。 它是一种数据链路层协议,用于在无噪声信道上传输数据。它提供单向数据传输,这意味着一次只能进行发送或接收数据。它提供流量控制机制,但不提供任何错误控制机制。 使用此帧的目的是,当发送方发送帧时,他会在发送下一帧之前等待确认。 停止等待协议的基元停止等待协议的基元是 发送方侧 规则 1:发送方一次发送一个数据包。 规则 2:发送方仅在收到前一个数据包的确认后才发送下一个数据包。 因此,发送方侧的停止等待协议的思想非常简单,即一次发送一个数据包,并且在收到确认之前不要发送另一个数据包。 接收方侧规则 1:接收并消耗数据包。 规则 2:当数据包被消耗后,接收方会向发送方发送确认。 因此,接收方侧的停止等待协议的思想也非常简单,即消耗数据包,一旦数据包被消耗,就发送确认。这被称为流量控制机制。 停止等待协议的工作原理![]() 上图显示了停止等待协议的工作原理。如果存在发送方和接收方,那么发送方发送数据包,该数据包称为数据包。发送方在收到第一个数据包的确认之前不会发送第二个数据包。接收方会发送它已收到的数据包的确认。一旦收到确认,发送方就会发送下一个数据包。此过程一直持续到所有数据包都发送完毕。此协议的主要优点是其简单性,但它也有一些缺点。例如,如果要发送 1000 个数据包,则不能一次性发送所有 1000 个数据包,因为在停止等待协议中,一次只能发送一个数据包。 停止等待协议的缺点停止等待协议存在以下问题: 1. 因数据丢失引起的问题 ![]() 假设发送方发送了数据,但数据丢失了。接收方长时间等待数据。由于接收方未收到数据,因此不会发送任何确认。由于发送方未收到任何确认,因此不会发送下一个数据包。这个问题是由于数据丢失引起的。 在这种情况下,会出现两个问题
2. 因确认丢失引起的问题 ![]() 假设发送方发送了数据,并且接收方也已收到。接收方收到数据包后,会发送确认。在这种情况下,确认在网络中丢失,因此发送方没有机会收到确认。发送方也没有机会发送下一个数据包,因为在停止等待协议中,在收到前一个数据包的确认之前,无法发送下一个数据包。 在这种情况下,出现一个问题
3. 因数据或确认延迟引起的问题 ![]() 假设发送方发送了数据,并且接收方也已收到。接收方随后发送确认,但确认在发送方的超时周期之后才收到。由于确认接收得很晚,因此可能会错误地将该确认视为对其他数据包的确认。 下一主题IMAP 协议 |
我们请求您订阅我们的新闻通讯以获取最新更新。