TCP连接状态图解析

本文详细解析了TCP连接从建立到关闭的全过程,包括TCP的三步握手和四步挥手,并通过状态图展示了服务器端和客户端的状态转换。特别地,针对遇到的Tomcat生成大量CLOSE_WAIT状态连接的问题,分析了原因在于Client端HTTP Header中的"Connection: keep-alive"导致服务器未能正常关闭连接。
摘要由CSDN通过智能技术生成

TCP状态图,展示的是TCP从连接建立到连接关闭的整个生命周期,TCP的状态转换以及处理流程。TCP面向的是端口,Linux里面可以通过netstat -a命令查看连接状态。笔者遇到Tomcat生成大CLOSE_WAIT状态的连接问题,故想了解一下TCP的连接机制。

TCP状态图纵览

TCP连接本质是点对点的,理论上无所谓服务器,客户端。不过总得有一个进程等待在那里,对外提供连接的服务,就称之为服务器。

下图是来源于Wikipedia的状态图,蓝线表示服务器的运行线路,棕色描述客户端。

TCP连接状态图

总的来说,状态共4个。连接中、已连接、断开连接中、已断开。由于客户端,服务器角色,以及连接和断开的多步过程,使得状态图有点复杂。下面尝试拆开来看看。

TCP建立连接过程

TCP连接,三步握手,大家应该都很熟悉。

TCP握手过程

  1. 客户端发出SYN连接请求, Sequence设置为一个随机数A。
  2. 服务端回应SYN-ACK,ACK内容设置为A+1,Sequence设置为一个随机数B。
  3. 客户端回应ACK,ACK内容设置为B+1,Sequence设置为A+1。

TCP关闭连接过程

TCP关闭连接,4步握手。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值