Я пытаюсь понять, почему много открытых соединений TCP, когда я выполняю много синхронных запросов.
В Windows я использую Python 3, чтобы открыть тестовый сервер HTTP в консоли:
python -m http.server 9000
В консоли Git Bash я запускаю множество запросов с циклом:
for i in $(seq 1000); do curl http://localhost:9000/; done
Во время запросов я вижу множество TCP-соединений, связанных с клиентом curl и Pythonсервер.Как видно на скриншоте, количество открытых TCP-соединений со временем увеличивается.Через некоторое время соединения закрываются.
Снимок экрана Windows Ressource Monitor
Почему соединения все еще открыты?
Редактировать 1:
С помощью одной команды curl я вижу открытое соединение в течение 2 минут с помощью netstat -n | grep :9000
:
TCP 127.0.0.1:64301 127.0.0.1:9000 TIME_WAIT
Изменение TTL не меняет длительность открытого запроса.