【发布时间】:2018-08-08 20:28:25
【问题描述】:
我想设计一个系统来减少数据包的传输时间发生了什么,实际上,我是否从客户端发送了一个 SYN 位,这个位通过路由器传输到服务器,服务器回复 SYN+ACK通过路由器到达客户端。
所以我只想要其他的东西,例如如果客户端将 SYN 发送到路由器,然后路由器将其发送到服务器并复制此数据包,将 SYN 修改为 SYN+ACK 并在服务器发送此 SYN+ 后发送回客户端之前服务器可以发送向路由器确认,路由器只是接受它(在回复到来时看到它)并丢弃它。
为了实现上述目标,我设计了一个设置,其中我有一台笔记本电脑,它从两个以太网接口发送和接收数据包,另一台是台式机,它充当路由器(数据包来了,它只转发到它的目的地)我从双方设置路由表并在桌面(充当路由器)上启用IP转发。
一切工作正常,在笔记本电脑上我有服务器和客户端程序发送数据包并接收它,但问题是我想将数据包发送到它来自的地方(源自身)所以我修改了使用 Netfilter 模块在路由端的数据包,复制整个 skb(使用 skb_copy)并交换它的 ip 源和目标(我在 NF_INET_PREROUTING 上这样做)并交换端口号,但数据包总是到达目的地。
我还需要做哪些其他修改才能将数据包发送到其源本身?
【问题讨论】:
标签: linux-kernel router tcp-ip netfilter