📜  停止和等待协议

📅  最后修改于: 2020-11-10 05:57:24             🧑  作者: Mango

停止和等待协议

在了解停止和等待协议之前,我们首先了解错误控制机制。使用错误控制机制,以便无论发送者发送了什么数据,接收到的数据都应该完全相同。错误控制机制分为两类,即停止和等待ARQ和滑动窗口。滑动窗口进一步分为两类,即“返回N”和“选择性重复”。人们根据使用情况选择错误控制机制,无论是停止和等待还是滑动窗口。

什么是停止和等待协议?

这里的停止和等待意味着,无论发送方想要发送什么数据,他都会将数据发送给接收方。发送数据后,他停止并等待,直到他从接收器接收到确认。停止和等待协议是一种流控制协议,其中流控制是数据链路层的服务之一。

它是一种数据链路层协议,用于通过无噪声信道传输数据。它提供了单向数据传输,这意味着一次将发送或接收数据。它提供流控制机制,但不提供任何错误控制机制。

使用此帧背后的想法是,当发送方发送帧时,他等待确认,然后再发送下一个帧。

停止和等待协议原语

停止和等待协议的原语是:

发送方

规则1:发件人一次发送一个数据包。

规则2:发件人仅在收到前一个数据包的确认后才发送下一个数据包。

因此,发送方的停止和等待协议的想法非常简单,即一次发送一个数据包,而在接收到确认之前不发送另一个数据包。

接收方

规则1:接收然后使用数据包。

规则2:当数据包被消耗时,接收方将确认发送给发送方。

因此,接收方的停止和等待协议的思想也非常简单,即消耗数据包,并且一旦数据包被消耗,就发送确认。这被称为流控制机制。

停止和等待协议的工作

上图显示了停止和等待协议的工作方式。如果存在发送方和接收方,则发送方发送数据包,该数据包称为数据包。如果没有收到第一个数据包的确认,发送方将不会发送第二个数据包。接收器发送对已接收到的数据包的确认。收到确认后,发送方将发送下一个数据包。继续该过程,直到没有发送所有分组为止。该协议的主要优点是它的简单性,但也有一些缺点。例如,如果有1000个数据包要发送,则不能一次发送所有1000个数据包,如Stop and Wait协议中所示,一次发送一个数据包。

停止和等待协议的缺点

以下是与停止和等待协议相关的问题:

1.由于数据丢失而出现问题

假设发送方发送数据并且数据丢失。接收器正在等待数据很长时间。由于接收方未接收到数据,因此不会发送任何确认。由于发送方没有收到任何确认,因此它将不会发送下一个数据包。由于数据丢失,会出现此问题。

在这种情况下,会出现两个问题:

  • 发件人等待无数时间进行确认。
  • 接收方等待无数时间来获取数据。

2.由于丢失确认而出现问题

假设发送方发送数据,并且接收方也已接收到该数据。接收到数据包后,接收方将发送确认。在这种情况下,确认在网络中丢失,因此发送者没有机会接收确认。发送者也没有机会像停止和等待协议那样发送下一个数据包,在接收到前一个数据包的确认之前,无法发送下一个数据包。

在这种情况下,会出现一个问题:

  • 发件人等待无数时间进行确认。

3.由于延迟的数据或确认引起的问题

假设发送方发送数据,并且接收方也已接收到该数据。然后,接收方发送确认,但是在发送方的超时时间段之后接收到确认。由于确认是迟到的,因此确认可以错误地视为对某些其他数据包的确认。