TCP各个连接状态的含义以及listen的backlog的含义

本文深入探讨TCP连接的各个状态,包括CLOSED、LISTENING、CLOSE_WAIT等,解析服务端关闭连接的异常场景,特别是关注listen函数backlog的含义。当TCP全连接队列满时,服务端如何处理新连接请求,并通过实例分析Ubuntu和Centos7的不同表现。
摘要由CSDN通过智能技术生成

线上大量CLOSE_WAIT的原因深入分析
浅谈CLOSE_WAIT

1 工具

  • 查看TCP各个状态的连接数量
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LISTEN 5
TIME_WAIT 3
ESTABLISHED 5
  • perf火焰图
    如果对业务代码不熟悉,可以直接使用perf把所有的调用关系使用火焰图给绘制出来。
    在这里插入图片描述

2 TCP各个阶段的状态

  • CLOSED 表示socket连接没被使用。
  • LISTENING 表示正在监听进入的连接。
  • SYN_SENT 表示客户端发送SYN包,还未收到服务端的响应。
  • SYN_RECEIVED 表示服务端收到了客户端的SYN包,并发送SYN+ACK,还未收到客户端的ACK报文。
  • ESTABLISHED 表示连接已被建立。
    • 客户端表示已经收到了服务端的SYN+ACK报文,并发送了ACK报文。
    • 服务端表示收到了客户端的ACK报文。
  • CLOSE_WAIT 表示服务端收到了客户端的FIN包&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值