Клиент сначала закрывает сокет, когда данных с сервера не так много, отключение tcp-соединения в порядке, например:
FIN -->
<-- ACK
<-- FIN, ACK
ACK -->
Когда сервер занят отправкой данных:
FIN -->
<-- ACK,PSH
RST -->
И соединение с сервером приходит в состояние CLOSE_WAIT и долго там висит.
В чем здесь проблема? Клиент или сервер? Это происходит на Redhat5 для локальных сокетов.
В этой статье рассказывается о том, почему отправляется "RST", но я не знаю, почему соединение с сервером зависло на CLOSE_WAIT, и не отправляю FIN out.
[РЕДАКТИРОВАТЬ] Я проигнорировал самую важную информацию, это происходит при эмуляции сети qemu slirp. Похоже, что это проблема с ошибкой slirp для работы с тесным соединением.