网站向我的连接尝试返回 syn:false ack:true 意味着什么?

网络工程 tcp
2022-02-23 03:55:27

我正在使用用户空间 TCP 堆栈,syn:true, ack:false并向网站发送一个:

[2021-06-20T19:30:24Z DEBUG async_smoltcp::packet_log] PHY >>>>
[2021-06-20T19:30:24Z DEBUG async_smoltcp::packet_log] IP [192, 168, 1, 2] -> [13, 224, 38, 134]
[2021-06-20T19:30:24Z DEBUG async_smoltcp::packet_log] TCP: 47675 -> 80 syn: true, ack: false

有时它有效,但有时我得到syn:false, ack:true

[2021-06-20T19:30:25Z DEBUG async_smoltcp::packet_log] PHY <<<<
[2021-06-20T19:30:25Z DEBUG async_smoltcp::packet_log] IP [13, 224, 38, 134] -> [192, 168, 1, 2]
[2021-06-20T19:30:25Z DEBUG async_smoltcp::packet_log] TCP: 80 -> 47675 syn: false, ack: true
[2021-06-20T19:30:25Z DEBUG smoltcp::socket::tcp] #0:0.0.0.0:47675:13.224.38.134:80: expecting a SYN|ACK
[2021-06-20T19:30:25Z TRACE smoltcp::socket::tcp] #0:0.0.0.0:47675:13.224.38.134:80: state=SYN-SENT=>CLOSED
[2021-06-20T19:30:25Z DEBUG smoltcp::iface::interface] cannot process ingress packet: dropped by socket

我尝试了其他网站,但这发生在所有网站上。发生这种情况时,我不会尝试重新连接。这是正常的吗?为什么有些网站会这样做?

1个回答

syn:false, ack:true当服务器已经建立连接时,它会响应。

您可能会重复使用源端口而没有完全关闭连接。