我正在使用原始套接字与TCP服务器通信。出于我的项目的目的,我需要模拟TCP超时。
每当发生超时时,服务器都会重新发送第一个丢失的数据包。在接收到该分组的ACK时,服务器重新发送第二分组,并且还发送先前未见过的分组(由于F-RTO算法)。为了停止F-RTO,我需要为后一个数据包发送重复的ACK。
Lets说在超时时拥堵窗口是20。服务器将发送数据包1,我将确认数据包1.服务器将发送数据包2和数据包21.我将确认数据包2并发送数据包21的重复ACK以停止F-RTO。我遇到的问题是,虽然客户端发送2个ACK,但由于某些未知原因,服务器只获得一个ACK。结果它陷入了F-RTO。
Wireshark显示客户端发送多个重复的ACK,但是从服务器端我只能看到一个ACK。由于第二个ACK与第一个ACK重复,因此它们的字段和校验和是相同的。有人可以帮帮我吗?