在OS X中尝试TCP握手时获取FIN和RST标志

时间:2015-07-28 18:28:44

标签: macos sockets tcp websocket handshake

尝试在客户端/服务器之间建立tcp连接。两台机器都是Mac,并且位于同一个LAN上。服务器的应用程序侦听端口12345.收到" SYN,ACK"从服务器,我发送"确认"但后来我的客户自动发送了一个" FIN,ACK"然后是" RST,ACK"。因此TCP流程最终成为:

客户端发送SYN。 SVR发送SYN,ACK。 客户端发送ACK。 客户端发送FIN,ACK。 客户端发送RST,ACK。 SVR发送ACK。 SVR发送ACK。 客户端发送RST。 客户端发送RST。

从阅读其他类似问题的帖子看起来可能会发生这种情况,因为我试图在用户级别手动创建握手,而Unix内核(在系统级别运行)会看到" SYN,ACK"远在用户级别上的任何内容之前可以响应并移动以关闭连接,无缘无故地将其视为打开。与此Linux用户遇到的问题类似的问题:Unwanted RST TCP packet with Scapy

虽然iptables适用于Linux用户,我应该在Mac OS X中使用类似pf的东西来阻止/删除FIN和RST消息吗?我的客户端运行10.9.5和我的服务器10.10.3。

这里的tcp通信服务器的流程图是10.0.100.5,客户端是10.0.100.4:

0 个答案:

没有答案