首先,我是网络编程的新手.我想在HTTP流量到达服务器应用程序之前对其进行拦截和延迟.我已经深入研究libnetfilter_queue,它为我提供了需要适当延迟的所有信息,但是级别太低.我可以在那儿延迟通信,但是除非我几乎立即接受IP数据报(以便在我想延迟它们时将它们发送到堆栈中),否则它们将被重新发送(当没有ACK到达时),这不是我想要的.
我不想或不需要处理TCP,只需处理它提供的有效负载即可.因此,我的问题是,如何在特定端口到达目的地之前,但在TCP确认并检查之后,拦截该端口上的流量?
谢谢
编辑:希望从标记和libnetfilter_queue中显而易见-这是针对Linux的
解决方法:
通过HTTP代理劫持连接.如果您不能只在客户端上设置HTTP_PROXY,或者不能设置使用当前服务器的IP和端口号运行的过滤器,然后将真实服务器移至另一个IP,则Google提供了一种很好的方法.
因此,实际的TCP连接是在客户端和您之间,然后是从您到服务器之间.这样,您就不必处理ACK,因为TCP总是可以看到任务已完成.
编辑:我看到关于原始意见已经使用iptables通过同一台机器上的透明代理进程重定向流量了.