Tcp 使用NFQUEUE强制重新传输

Tcp 使用NFQUEUE强制重新传输,tcp,iptables,netfilter,Tcp,Iptables,Netfilter,对于我的一个项目,我试图手动触发TCP流中某些数据包的重新传输。 到目前为止,我发现NetFilterQueue是一种很好的方法,但现在我被卡住了。 我有一个处理每个数据包的工作版本,所以我可以修改/接受/删除它。 所以这部分是有效的 此时,当我找到要重新传输的数据包时,我设置了一个标记并使用NF_REPEAT将该数据包重新注入队列。 我想这样做的话,我会将数据包发送出去,并再次通过队列发送一份副本,在队列中,由于标记的原因,数据包将被NF_ACCEPT’ed。有效地重新传输该数据包 但事实证明

对于我的一个项目,我试图手动触发TCP流中某些数据包的重新传输。
到目前为止,我发现NetFilterQueue是一种很好的方法,但现在我被卡住了。
我有一个处理每个数据包的工作版本,所以我可以修改/接受/删除它。
所以这部分是有效的

此时,当我找到要重新传输的数据包时,我设置了一个标记并使用NF_REPEAT将该数据包重新注入队列。
我想这样做的话,我会将数据包发送出去,并再次通过队列发送一份副本,在队列中,由于标记的原因,数据包将被NF_ACCEPT’ed。有效地重新传输该数据包

但事实证明这并不像我希望的那样有效

所以我的问题是:
有没有一种方法可以使用NFQueue来完成重传


或者还有其他方法可以做到这一点吗?

由于我的帖子目前未保存编辑内容,请原谅我的问题中遗漏的“您好”和介绍,据我所知,您试图诱导数据包复制,而不是重新传输。@FORMERCP好的。。。理论上,我想做一次重传,但对接收者来说,复制的数据包不就是重传吗?是的,我反对使用“重传”这个词。在TCP上下文中,重传意味着发送方认为原始数据包丢失。接收方将数据包视为副本。如果你想做真正的重传,你需要诱导数据包丢失。这个链接有用吗?我的目标是,接收者将数据包视为真正的重传,我希望他同时看到这两个数据包。Wireshark称之为“虚假的重新传输”。Netem看起来不错,但我只需要复制非常特定的数据包,而不是“1%的数据包”。我可能会试图阻止ACK数据包,让发送者相信他的数据包确实丢失了。