虚线为服务器状态转换
实现为客户端状态转换
正常TCP连接中客户端与服务端状态转换
服务器端状态
1. LISTEN 服务启动后处于监听状态
2. SYN_RECV 收到一个连接请求,尚未确认
3. ESTABLISHED 连接建立,正常数据传输状态
4. CLOSE_WAIT (被动关闭)收到对方关闭请求,已经关闭
5. LAST_ACK (被动关闭) 等待最后一个关闭确认,并等待所有分组死掉
6. CLOSED 关闭状态,没有连接活动或正在进行
客户端状态
1. SYN_SENT 已经发出连接请求,等待确认2.ESTABLISHED 连接建立,正常数据传输
3.FIN_WAIT 1 (主动关闭)已经发送关闭请求,等待确认
4.FIN_WAIT 2 (主动关闭)收到对方关闭确认,等待对方关闭请求
5.TIME_WAIT 完成双向关闭,等待所有分组死掉(MSL)。可靠的终止连接,持续2×MSL.
SYN ACK FIN
需要知道的命令
netstat -ntpl 查看端口使用情况
netcat 网络工具中的瑞士军刀