以下主要讲的是TCP从建立到关闭的整个流程图。
SYN:建立链接
FIN:关闭连接
ACK:响应,确认号
PSH:tcp缓存区读取数据
ISN:初始化序列号
RST:重新建立连接
URG:紧急指针是否有效
1.服务器端运行,socket套接字处于LISTEN状态
2.客户端主动发送SYN,此时变为SYN_SENT状态
3.服务器端收到客户端发送的SYN以后,会给客户端发送自己的SYN和ACK,此时变为SYN_RCVD状态
4.客户端收到服务器端发送的SYN和ACK,发送ACK进行确认
5.服务器收到ACK确认后变为ESTABLISHED
此时三次握手已经完成
1.当服务端或客户端一方想要关闭时,会给对方发送FIN。自己的状态变为FIN_WAIT1
2.对方收到FIN后回复ACK(此时对方变为CLOSE_WAIT) ,发送方状态转为FIN_WAIT2
3.对方程序如果要关闭,就会发送一个FIN,此时发送方收到FIN。变为TIME_WAIT(TIME_WAIT会运行一段时间后消失)
4.对方发出FIN后,变为LAST_A