CLOSED:没有任何连接状态
SYN-SENT:在发送连接请求后,等待对方确认
LISHEN:监听状态,等待客户端TCP端口的连接请求
SYN-RECEVED:接收到客户端发来的连接请求,已发送连接请求,等待对方确认
ESTABLISHED:代表传输连接建立,双方进入数据传送状态
----------------------------------------------------------------------------------------------------
FIN-WAIT1:主动关闭,客户端已发送关闭连接请求,等待服务器确认
FIN-WAIT2:主动关闭,客户端已收到服务器关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT:完成双向连接传输关闭,等待所有分组消失
CLOSE-WAIT:被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK:被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING:双方同时尝试关闭传输连接,等待对方确认。
使用命令:ss -ntap
讯享网

iptables与ssh命令结合,查看SYN-SENT状态
在A上使用iptables命令丢弃目的地址为B的数据包,A与B尝试建立SSH通信,在A上查看状态:
在A上:
讯享网
查看状态:ss -nta

① 只有服务器端的ACK
只收到服务器的ACK,客户端会进入FIN-WAIT2状态,后续当收到服务器端的FIN时,回应发送一个ACK,进入TIME-WAIT状态,这个状态会持续保留2MSL(TCP报文在网络中的最大生存时间)。
② 只有服务器端的FIN

客户端回应ACK给服务器,进入CLOSING状态,接收到服务器ACK时,进入TIME-WAIT状态。
③ 既有ACK,又有FIN
同时收到服务器端的ACK和FIN,直接进入TIME-WAIT状态。

当服务器接收到客户端第一次SYN连接请求时,将创建的request_sock结构存储在syns半连接队列中,然后向客户端发送【SYN,ACK】报文。此时服务器处于SYN-RECEVE状态。
当服务器收到客户端ACK时,将半连接队列相应条目删除,然后将相应的连接放入accept队列中,此时服务器端连接状态为ESTABLISTHENED。进入accept queue中的连接等待accept()调用。
查看帮助:man 7 tcp

示例:
① 查看和修改客户端的动态端口范围

② 查看和修改TCP的MSL
讯享网

③ 查看syns queue和syns queue队列长度

参考链接:
图解 TCP 三次握手:一步步构建网络会话-51CTO.COM
TCP半连接队列和全连接 - zh1164 - 博客园

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/207446.html