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

时间:2013-07-09 23:15:21

标签: networking tcp stack ip

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

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

基本上,连接在重置时甚至尚未建立,这使我很难尝试其他测试。

我怎么能解决这个问题? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

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