我想构建一个包含客户端和 Web 服务器的测试平台,我可以在其中向 Web 服务器重放一些记录的 http get 请求。所以我打算用原始源地址和端口号的请求来精确模拟实际流量。
为了构建客户端,我希望可以使用套接字选项 IP_FREEBIND 绑定到任何可能的源地址和端口号。为此目的是否有任何已知代码?(我真的不想重新发明轮子)我应该按照这个线程的建议使用原始套接字吗?
任何帮助将不胜感激。
我想构建一个包含客户端和 Web 服务器的测试平台,我可以在其中向 Web 服务器重放一些记录的 http get 请求。所以我打算用原始源地址和端口号的请求来精确模拟实际流量。
为了构建客户端,我希望可以使用套接字选项 IP_FREEBIND 绑定到任何可能的源地址和端口号。为此目的是否有任何已知代码?(我真的不想重新发明轮子)我应该按照这个线程的建议使用原始套接字吗?
任何帮助将不胜感激。
IP_FREEBIND 用于侦听当前主机尚未配置的地址,因此如果稍后配置了该地址,您的程序可以接收到它的连接。它不允许您发送假装来自另一台计算机的数据包。你需要一个原始套接字。
如果您在客户端伪造数据包的源地址,请记住服务器会将其响应发送到该伪造地址。您的客户端必须能够接收这些返回的数据包,因为您需要进行双向通信以建立 TCP 连接,然后才能发送实际的 HTTP 请求。您可以使用原始套接字来实现您自己的整个假 IP 层,但在隔离网络上进行测试并使用您希望测试请求来自的任何 IP 地址配置客户端计算机可能会简单得多。
您可以尝试使用原始源地址重放 http 流量的tcpcopy 。