延迟的 ACK 数据包是否必须重传?

网络工程 tcp
2022-03-01 10:10:01

节点 A 向节点 B 发送 2 个数据包(节点 B 有 2 个可用缓冲区大小),如果节点 A 已发送 2 个数据包,并且节点 B 成功接收了 2 个数据包。节点 B 向 A 发送了确认,但由于某种原因它有被推迟了。如果必须延迟数据包的重传,直到节点 A 获得信用才能发送另一个数据包,如果在超时发生之后并且在节点 A 获得信用之前收到了该数据包的延迟确认,它是否必须重新发送?未确认的数据包?即无论发生什么情况,每次超时都必须重新传输吗?

编辑:节点A的信用是有效窗口 在此处输入图像描述

这是我从以下位置获得这张照片的链接: http ://slideplayer.com/slide/16761168/

1个回答

如果数据没有被确认,则需要重新传输数据。TCP 窗口并不是关于总共可以发送多少数据的任何“信用”,而是仅描述了可以“进行中”的应用程序数据量,即没有(还)返回 ACK。因此,重传已发送的数据不受此“信用”的影响,因为这只是在现有窗口内(重)传输数据。