假设,发送者发送了一个数据包,但它没有收到确认。发送方的计时器已用完。在哪些情况下发送方会重新发送数据包,而在哪些情况下不会?
我知道这一点:如果发送方没有收到确认帧,发送方将重新发送帧,这将增加拥塞。
但在一本书中我读到:在确认策略中,如果接收者不确认每个数据包,那么它可能会减少拥塞。这怎么可能 ?发送方如何得知数据包已成功发送?
假设,发送者发送了一个数据包,但它没有收到确认。发送方的计时器已用完。在哪些情况下发送方会重新发送数据包,而在哪些情况下不会?
我知道这一点:如果发送方没有收到确认帧,发送方将重新发送帧,这将增加拥塞。
但在一本书中我读到:在确认策略中,如果接收者不确认每个数据包,那么它可能会减少拥塞。这怎么可能 ?发送方如何得知数据包已成功发送?
你没有阅读完整的句子。这是 Behrouz A. Forouzan 第 526 页的Data Communications and Networking 第 5 版:
确认策略 接收方施加的确认策略也可能影响拥塞。如果接收方没有确认收到的每个数据包,它可能会减慢发送方的速度并有助于防止拥塞。在这种情况下使用了几种方法。接收者只有在有要发送的数据包或特殊计时器到期时才可以发送确认。接收方可能决定一次只确认 N 个数据包。
我强调了重要的部分。接收者可以“聪明”地发送确认并在它也有数据要发送时发送它们,而不是自己发送确认。换句话说,接收方不是说“我收到了你的最后一个数据包”,而是说“这是我给你的数据,我也收到了你的最后一个数据包”接收方发送一条消息而不是两条。如果接收方没有数据要发送,那么它会在定时器到期时发送确认。