首页 > 解决方案 > 你能解释一下为什么在运行多个请求时打开了很多 TCP 连接吗?

问题描述

当我运行大量同步请求时,我试图理解为什么会有很多打开的 TCP 连接。

在 Windows 中,我使用 Python 3 在控制台中打开 HTTP 测试服务器:

python -m http.server 9000

在 Git Bash 控制台中,我使用循环启动了许多请求:

for i in $(seq 1000); do curl http://localhost:9000/; done

在请求期间,我看到很多与 curl 客户端和 Python 服务器相关的 TCP 连接。如您在屏幕截图中所见,打开的 TCP 连接数会随着时间的推移而增加。一段时间后,连接关闭。

Windows 资源监视器的屏幕截图

为什么连接仍然打开?

编辑1:

使用一个 curl 命令,我可以在 2 分钟内看到一个打开的连接netstat -n | grep :9000

  TCP    127.0.0.1:64301        127.0.0.1:9000         TIME_WAIT

更改 TTL 不会更改打开请求的持续时间。

标签: pythonhttpcurltcp

解决方案


推荐阅读