Administrator
发布于 2022-12-04 / 274 阅读 / 0 评论 / 0 点赞

CLOSE_WAIT模拟分析排查

1.代码模拟

定义模拟接口,2s返回结果 image

定义请求,并设置超时时间为100毫秒 image-1670144791051

2.启动服务并调用接口,服务器查询状态,服务端口18081

执行命令

netstat -an|grep 18081|grep CLOSE_WAIT

image-1670144881115

如上图发现已有CLOSE_WAIT状态

3.liunx服务器安装tcpdump,对10.0.8.13的18081抓包并输入到文件

执行命令

tcpdump -i eth0 host 10.0.8.13 and  port 18081  -w test.cap

注意保在抓包时调用接口 将文件test.cap下载到本地,用Wireshark打开进行分析

image-1670144945831

红色部分代表服务器询问客户端,客户端失联,不能正常关闭TCP,导致close_wait; 右键一条进行追踪

image-1670144966158

image-1670144974929 根据接口信息排查具体原因,发现超时时间设置太短导致close_wait.