停止并等待协议 - 当计时器等于往返时间时会发生什么

时间:2015-06-05 19:50:53

标签: network-protocols

我理解停止等待协议但不确定如何处理某个场景。 当使用停止等待协议时,定时器到期(超时事件发生)恰好在ack帧到达时会发生什么。这种情况是帧(带有ACK)的往返时间与计时器相同。

我知道它更具有假设性,但这是一个被问到我的问题。我猜它与发件人处于什么状态有关。即阻塞状态或就绪状态

1 个答案:

答案 0 :(得分:1)

这是一个实施问题。通常,最简单的情况是协议或状态机一次处理一个事件。如果在处理ACK之前处理超时,则可以重新发送该消息。然后,当处理ACK时,可以将其视为第二消息的ACK,第二ACK仅重复一次并丢弃。另一方面,另一个节点需要检测第二个消息是否重复并丢弃它或其他不会改变其状态的消息。该另一节点必须为所接收的第二消息发送ACK,因为它不知道是否未接收到先前的ACK。

其他可能性是在超时之前处理ACK。为此,超时事件需要将数据与发送的消息相关联。然后,当处理超时事件时,状态机检测到超时对应于已经确认的消息。

为了处理这些特殊情况,您需要使用其他数据:消息和ACK需要具有序列号。处理其他情况可能需要其他数据。

您可以在Tanenbaum的计算机网络书籍,第3章,数据链路层和TCP(非停止和等待协议)章节中看到此类协议稳健性机制的实现。

相关问题