Хобрук: Ваш путь к мастерству в программировании

Инициация закрытия TCP-соединения сервером благоприятна?

В соответствии с протоколом tcp, когда когда-либо происходит завершение tcp-соединения, tcp-сокет инициатора переходит в следующие состояния FIN-WAIT-1, FIN-WAIT-2,TIME-WAIT, прежде чем соединение будет полностью закрыто, а tcp-сокет другого конца переходит в следующие состояния CLOSE-WAIT, LAST-ACK, CLOSED, прежде чем соединение будет полностью закрыто. В нашем приложении сервер инициирует завершение соединения, что приводит к тому, что сокеты на стороне сервера бесконечно ожидают в состоянии FIN_WAIT2, из-за этого соединения, сделанные клиентами, сбрасываются сервером из-за недоступности портов. Выгодно ли завершение соединения, инициированное клиентами, или нет?

05.12.2013

Ответы:


1

Инициирование завершения с клиента может быть благоприятным, поскольку оно не позволяет серверу перейти в состояние TIME_WAIT. Ваша проблема в другом.

Сокет в FIN_WAIT2 «наполовину открыт»: клиентская сторона все еще может отправлять данные, и вы можете их читать, но вы не можете ничего отправить обратно. Сокет будет оставаться в этом состоянии до тех пор, пока клиент не закроет его или сервер не сбросит соединение.

Таким образом, похоже, что ваши клиенты просто не закрывают свои стороны соединений.

05.12.2013
Новые материалы

Создание успешной организации по науке о данных
"Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

Технологии и проблемы будущей работы
Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

Игорь Минар из Google приедет на #ReactiveConf2017
Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...