是否有一种简单的方法可以在Java中执行1:1的TCP数据包副本并将其发回,以便强制客户端的TCP实现自动丢弃它?或者我是以错误的方式接近这个?这似乎是一件简单的事情,但让我难过。
编辑原始套接字库是否与此处有任何关联,或者是否严格要求?
答案 0 :(得分:1)
是的,您可以复制并重新发送所需的所有有效负载数据。
不,没有办法直接使用Java套接字重新创建TCP / IP头(和/或以太网帧头)。
您可能希望查看libpcap:
答案 1 :(得分:1)
TCP数据包复制应该在内核级别完成,因为TCP / IP标头填充在内核级别。
也许您需要重新编译linux内核,并修改TCP / IP堆栈实现,以模拟数据包丢弃和重复。