Networking 发送SYN并接收SYN-ACK后发送到远程主机的RST请求

Networking 发送SYN并接收SYN-ACK后发送到远程主机的RST请求,networking,tcp,stack,ip,Networking,Tcp,Stack,Ip,我目前正在开发一个TCP/IP协议栈;我在Linux下运行,我使用libnet(用于传输)和libpcap(用于捕获以太网帧)来模拟链路层 我已经开始研究TCP,特别是主动打开连接。基本上,我发送一个SYN数据包,远程主机用SYN-ACK响应,我必须用ACK确认。问题是在我收到SYN-ACK后,RST数据包立即被发送到服务器,可能是由内核,而不是由我自己的程序。我认为libpcap捕获并由我的网络堆栈分析的数据包也被内核捕获,内核不明白为什么他从从未尝试连接的主机接收到SYN-ACK数据包,因此

我目前正在开发一个TCP/IP协议栈;我在Linux下运行,我使用libnet(用于传输)和libpcap(用于捕获以太网帧)来模拟链路层

我已经开始研究TCP,特别是主动打开连接。基本上,我发送一个SYN数据包,远程主机用SYN-ACK响应,我必须用ACK确认。问题是在我收到SYN-ACK后,RST数据包立即被发送到服务器,可能是由内核,而不是由我自己的程序。我认为libpcap捕获并由我的网络堆栈分析的数据包也被内核捕获,内核不明白为什么他从从未尝试连接的主机接收到SYN-ACK数据包,因此发送RST以取消连接

因此,基本上,连接在还没有建立的时候就被重置了,这使得我很难尝试其他测试

我怎样才能解决这个问题?
提前感谢。

您可以使用iptables设置防火墙规则,这将阻止内核响应您的连接。libpcap在防火墙拒绝数据包之前获取数据包,这样您仍然可以读取数据包并自己响应它们