前面两篇详细地给大家介绍过了TCP的三次握手以及四次挥手流程(学习笔记-TCP三次握手, 学习笔记-TCP四次挥手 ),
状况介绍
CLOSED:表示初始状况。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
LISTEN:表示服务器端的某个SOCKET处于,可以接受连接了。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
SYN_RCVD:这个状况表示接受到了SYN,在正常情况下,这个状况是服务器端的SOCKET在树立TCP连接时的会话进程中的一个中间状况,很短暂,基本上用netstat你是很难看到这类状况的,除了非你特地写了一个客户端,故意将三次TCP握手进程中最后一个ACK报文不予发送。因而这类状况时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状况。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
SYN_SENT:这个状况与SYN_RCVD一唱一和,当客户端SOCKET执行CONNECT连接时,它首先发送SYN,因而也随即它会进入到了SYN_SENT状况,并等待服务端的发送中的第2个报文。SYN_SENT状况表示客户端已发送SYN报文。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
ESTABLISHED:表示连接已经树立了。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
FIN_WAIT_1:这个状况要好好解释一下,其实FIN_WAIT_1以及FIN_WAIT_2状况的真正含意都是表示等待对方的FIN。而这两种状况的区分是:FIN_WAIT_1状况其实是当SOCKET在ESTABLISHED状况时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状况。而当对方回应ACK报文后,则进入到FIN_WAIT_2状况,固然在实际的正常情况下,不管对方何种情况下,都应当马上回应ACK报文,所以FIN_WAIT_1状况通常为比较难见到的,而FIN_WAIT_2状况还有经常常可以用netstat看到。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
FIN_WAIT_2:上面已经详细解释了这类状况,实际上FIN_WAIT_2状况下的SOCKET,表示半连接,也即有一方请求close连接,但此外还告知对方,我暂时还有点数据需要传送给你,稍后再关闭连接。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
TIME_WAIT:表示收到了对方的FIN,并发送出了ACK报文,就等2MSL后便可回到CLOSED可用状况了。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
以上就是微观生活(93wg.com)关于“学习笔记-TCP连接状况解析”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html 文章源自微观生活(93wg.com)微观生活-https://93wg.com/6621.html
评论