Чем закрыть сокет процессора

Обновлено: 06.07.2024

Я запускаю определенную программу на linux, которая иногда аварийно завершается. Если после этого быстро открыть ее, она слушает сокет 49201, а не 49200, как в первый раз. netstat показывает, что 49200 находится в состоянии TIME_WAIT.

Есть ли программа, которую можно запустить, чтобы немедленно заставить этот сокет выйти из состояния TIME_WAIT?

Ответ 1

/etc/init.d/networking restart

Transmission Control Protocol (TCP) разработан как двунаправленный, упорядоченный и надежный протокол передачи данных между двумя конечными точками (программами). В данном контексте термин « надежный » означает, что он будет повторно передавать пакеты, если они будут потеряны в процессе передачи. TCP гарантирует надежность, посылая обратно пакеты подтверждения (ACK) для одного или нескольких пакетов, полученных от аналога.

То же самое относится и к управляющим сигналам, таким как запрос/ответ на завершение. RFC793 определяет состояние TIME-WAIT следующим образом:

TIME-WAIT — представляет собой ожидание достаточного времени, чтобы убедиться, что удаленный TCP получил подтверждение своего запроса на разрыв соединения.

TCP — это протокол двунаправленной связи, поэтому, когда соединение установлено, нет разницы между клиентом и сервером. Кроме того, любой из них может объявить о выходе из соединения, и для полного закрытия установленного TCP-соединения оба соединения должны договориться о закрытии.

Назовем первого, кто объявляет о прекращении соединения, активным замыкающим, а другого — пассивным замыкающим. Когда активный доводчик посылает FIN, состояние переходит в FIN-WAIT-1. Затем он получает ACK на отправленный FIN, и состояние переходит в FIN-WAIT-2. Получив FIN также от пассивного доводчика, активный доводчик отправляет ACK на FIN, и состояние переходит в TIME-WAIT. Если пассивный доводчик не получил ACK на второй FIN, он повторно передает FIN-пакет.

RFC793 устанавливает TIME-OUT , равным удвоенному времени жизни максимального сегмента, или 2MSL. Поскольку MSL, максимальное время, в течение которого пакет может блуждать по и нтернету, установлено в 2 минуты, 2MSL равно 4 минутам. Поскольку нет ACK на ACK, активный досылатель не может сделать ничего, кроме как подождать 4 минуты, если он правильно придерживается протокола TCP/IP, на случай, если пассивный отправитель не получил ACK на свой FIN (теоретически).

В реальности пропущенные пакеты, вероятно, редки и очень редки, если все это происходит в пределах локальной сети или в пределах одной машины.

Чтобы ответить на вопрос дословно : « Как принудительно закрыть сокет в TIME_WAIT? » , я буду придерживаться своего первоначального ответа:

/etc/init.d/networking restart

Практически говоря, я бы запрограммировал его так, чтобы он игнорировал состояние TIME-WAIT, используя опцию SO_REUSEADDR. Что именно делает SO_REUSEADDR?

Эта опция сокета сообщает ядру, что , даже если этот порт занят (находится в состоянии TIME_WAIT), все равно используйте его повторно. Если он занят, но в другом состоянии, вы все равно получите ошибку « адрес уже используется » . Это полезно, если ваш сервер был выключен, а затем сразу же перезапущен, а сокеты на его порту все еще активны. Вы должны знать, что , если поступят неожиданные данные, это может запутать ваш сервер, хотя такое маловероятно.

Ответ 2

Насколько я знаю, нет способа принудительно закрыть сокет, кроме написания лучшего обработчика сигналов в вашей программе, но есть файл /proc, который управляет временем тайм - аута. Файл имеет следующий вид:

/proc/sys/net/ipv4/tcp_tw_recycle

и вы можете установить тайм-аут в 1 секунду, выполнив следующее:

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

Однако на этой странице содержится предупреждение о возможных проблемах с надежностью при установке этой переменной.

Существует также соответствующий файл:

/proc/sys/net/ipv4/tcp_tw_reuse

который контролирует возможность повторного использования сокетов TIME_WAIT (предположительно без какого-либо тайм - аута).

Кстати, документация ядра предупреждает вас не изменять ни одно из этих значений без "совета/просьбы технических экспертов". Программа должна была быть написана для попытки привязки к порту 49200 и последующего увеличения на 1, если порт уже используется. Поэтому, если у вас есть контроль над исходным кодом, вы можете изменить это поведение, чтобы подождать несколько секунд и повторить попытку на том же порту, вместо инкремента.


Ответ 3

Другой вариант — использовать опцию SO_LINGER с тайм-аутом 0. Таким образом, при закрытии сокета он будет закрыт принудительно, посылая RST, а не переходя в режим закрытия FIN/ACK. Это позволит избежать состояния TIME_WAIT и может быть более подходящим для некоторых случаев.

Ответ 4

Альтернативным решением может быть использование надежного прокси-сервера или программы переадресации портов, которая прослушивает порт 49200, а затем переадресует соединение на один из нескольких экземпляров вашей менее надежной программы, использующих разные порты. Например, HAPROXY.

Кстати, порт, через который вы подключаетесь, довольно высокий. Вы можете попробовать использовать неиспользуемый порт чуть выше диапазона 0-1024. Ваша система с меньшей вероятностью будет использовать более низкий номер порта в качестве него.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Как установить или заменить процессор в компьютере

Современный компьютер похож на конструктор. Только дети собирают трансформеров, а взрослым подавай видеокарты да процессоры. Когда необходимо установить или заменить компьютерную запчасть, появляется много нюансов и мелочей, без которых правильно собрать и настроить технику не получится. Здесь навыков игры в LEGO недостаточно. В такой ситуации всегда лучше один раз увидеть, чем сто раз услышать, поэтому мы покажем весь процесс от А до Я.

Подготовка

Save your game

Перед любой вылазкой в недра системного блока главное — сохранить важные данные куда-нибудь подальше. Например, на внешний жесткий диск, а еще лучше в домашний NAS или в облако. Уже после этого руки станут дрожать меньше и реже.

Как правило, после переустановки процессора сбрасываются настройки BIOS — их тоже лучше сохранить в специальный профиль. Также учитываем, что вместе с настройками полетят и другие параметры: RAID, если он настроен силами чипсета; разгон и настройка оперативной памяти. Поэтому еще раз и погромче:

Перед любой работой с комплектующими сохраняемся по-максимуму.

Набор домашнего админа

Для работы с компьютерной электроникой хватает классического набора инструментов:

  • отвертка,
  • ватка для протирания контактов,
  • спирт (не пить, а протирать),
  • запас термопасты.

А если работать по фэн-шую и в комфортных условиях, то вот список того, что точно понадобится для ремонта:

  • Перчатки антистатические. Человек заряжается статикой: будет достаточно одного разряда куда-нибудь в район оперативной памяти, видеовыходов или процессора, чтобы «попасть» на покупку новых железок. Гарантия при этом аннулируется, а ремонту такая электроника скорее всего не подлежит. Поэтому необходимо работать в специальных перчатках — безопасно и без «пальчиков».


  • Отвертка крестовая. Компьютерные винтики и болтики стандартные: к ним подойдет отвертка с жалом под винты типа М3. Еще лучше иметь под рукой набор отверток.
  • Ватные диски и ватные палочки. Для удаления пыли и загрязнений в компьютере лучше использовать бесконтактный метод, применяя сжатый воздух. С осторожностью, избегая близкого контакта воздушного потока с мелкими деталями. А для контактной чистки можно использовать салфетки, ватки и безворсовые материалы. Например, чтобы убрать термопасту с процессора и кулера, можно использовать влажные салфетки для техники.
  • Органайзер. Винты и мелкие детали в компьютере уникальны, и после разборки системы лучше сделать так, чтобы они не укатились за стол и не попали в лапы к домашним животным. Для этого можно использовать магнитные коврики, ну а если такую роскошь не найти, то для этого можно приспособить органайзер.
  • Жидкость для очистки. Классически это спирт. А по современному — специальные спреи и очистители. Нужна для того, чтобы без проблем снять прикипевшую термопасту с процессора, радиатора или хрупкого графического чипа. А также для протирки контактов процессора и оперативной памяти.
  • Термопаста. Обязательно иметь в запасе, если меняем процессор, охлаждение (кулер) и даже если просто снимаем радиатор — термопасту менять обязательно. Это может быть всеми любимая Arctic Cooling MX-4 или любая другая с высоким коэффициентом теплопроводности.


Разбираем систему

Отключаем системник

Перед тем, как заглянуть в системник, его нужно обесточить. Выключаем компьютер кнопкой «Завершить работу», дожидаемся полного выключения и щелкаем тумблер на блоке питания, а затем достаем вилку из розетки:


Снимаем боковые панели

Модные и современные корпуса имеют стеклянные боковые панели, которые крепятся на четырех винтах. Обычно на них присутствуют резиновые проставки — их лучше не терять:


Батарейка

Перед работой с электроникой в корпусе, необходимо вытащить батарейку CMOS. После этого компьютер будет полностью обесточен и готов к любым действиям:


Посторонние помехи

Для удобства работы с околосокетным пространством следует убрать лишние провода и детали. Например, достать видеокарту:


Система охлаждения

Для доступа к процессору необходимо снять систему охлаждения.

В зависимости от состояния термопасты между процессором и теплосъемной плоскостью кулера может возникнуть проблема с их разъединением. Чаще всего это происходит с процессорами AMD (особенность геометрии крышки процессора). В случае, если система охлаждения не собирается отставать от процессора, ни в коем случае не тянем ее на себя, вырывая процессор из сокета. Также нельзя тащить на излом — для безопасного снятия необходимо плавно прокручивать радиатор по часовой стрелке относительно процессора, постепенно смещая плоскости относительно друг друга. После каждого прокручивания нужно пытаться разъединить детали.

Для платформы Intel используются системы как с «боксовым» креплением, так и универсальным. В первом случае необходимо провернуть защелки против часовой стрелки до упора и потянуть на себя, чтобы освободить ход «ершей» в отверстиях материнской платы. Так работает похожая система от стороннего производителя:

Заводское крепление охлаждения для процессоров AMD обладает быстросъемной системой, где нужно отпустить прижимную лапку, и радиатор будет освобожден.

Универсальные системы крепления снимаются проще и нагляднее: достаточно открутить четыре винта и процессор свободен. Это относится как к системам Intel, так и AMD:

Перед снятием радиатора не забываем вытащить клемму вентилятора или помпы из разъема:


Очищаем рабочие поверхности

Для улучшения теплопередачи с процессора на радиатор кулера используется термопаста. После снятия системы она окажется непригодной для повторного использования, поэтому ее нужно убрать:

Остатки термопасты лучше убирать мягким материалом или ватным диском, а после обезжирить. Если термопаста присохла и не поддается снятию без усилий, лучше воспользоваться каким-либо растворителем: спиртом или специальным средством для снятия термопасты.

Аналогичные действия проводим и с подошвой охлаждения:

Установка нового процессора

Во время установки нового процессора необходимо соблюдать несколько правил. Процессор — это хрупкий элемент и его легко повредить неаккуратными движениями. Например, у процессоров Intel есть дополнительные компоненты со стороны контактной площадки, которые легко сбиваются от ударов или грубых действий. Не забываем и про контакты в сокете — больше тысячи ножек так и ждут, чтобы их погнули:

Процессоры AMD имеют специфическое строение контактов: если у конкурентов это просто контактные площадки, то у «красных» это более тысячи внешних проводников типа «ножки». Они очень эффектно заминаются под воздействием пальцев неаккуратного пользователя:

Чтобы избежать повреждений во время демонтажа или установки процессора, необходимо знать об этих нюансах. Для этого нужно правильно обращаться с процессором: держать аккуратно за края и обязательно в антистатических перчатках:


Вынимаем старый

Чтобы достать процессор из материнской платы, необходимо открыть сокет. Процессоры AMD держатся в нем только за счет тех самых ножек. Достаточно потянуть за рычажок, чтобы сдвинуть контакты внутри сокета и освободить процессор:


Сокеты для процессоров Intel устроены иначе — контакты процессора должны плотно прилегать к контактам в разъеме. Особенность такой конструкции диктует свои условия: прижимная сила в сокете достаточно высокая, поэтому не нужно бояться применить чуть больше усилия в работе.

Для открытия сокета необходимо нажать на лапку, сдвинуть ее в сторону от сокета и поднять вместе с нажимной рамкой. Это освободит процессор и его можно будет достать:


Перед установкой

Прежде чем установить новый процессор, необходимо осмотреть его на наличие сколов, а также отсутствие испорченных контактов и поврежденных электронных компонентов на задней части:

Монтаж

Процессоры обеих платформ имеют защиту «от дурака» и просто физически не установятся в гнездо сокета, если их расположить неверным образом. И все же, производители предусмотрели второй уровень защиты: ключи-треугольники. На процессоре:



Чтобы не гадать, какой стороной установить процессор в разъем, достаточно совместить треугольники в одном направлении:


После остается опрокинуть верхнюю часть сокета и зафиксировать систему рычажком. Нажимаем на металлическую лапку и заводим ее под замок:


Установка системы охлаждения

Наносим термопасту

Одна из философских тем на любом ресурсе — сколько термопасты наносить и каким способом размазать ее на процессоре. Энтузиасты проводят целые тесты и исследования, замеряют температуру и сравнивают различные пасты. Но эти «гонки» скорее из разряда «наши руки не для скуки», поэтому обычному пользователю с его домашней системой будет достаточно получить базовые знания по этой теме. Если лень читать, можно посмотреть видео, наглядно и мельчайших подробностях:

Если вместе с процессором меняется и система охлаждения, то, скорее всего, на подошве нового кулера уже будет нанесен заводской слой термопроводника — устанавливаем и пользуемся. Для уверенности можно изучить и ассортимент самих паст, чтобы подобрать лучшее по цене/качеству. В остальных случаях смотрим видеоинструкцию и выбираем метод по душе:

Например, легендарная термопаста Arctic Cooling MX-4 до сих пор эффективно охлаждает мощные восьмиядерники в разгоне:


При нанесении нужно учитывать, что сама по себе паста проводит тепло хуже, чем чистый металл, но намного лучше, чем воздушная прослойка между двумя плоскостями. Для этого слой термоинтерфейса должен быть как можно тоньше, но равномерным и без посторонних предметов, ворса и пыли:

Возвращаем радиатор на место

Система охлаждения процессора собирается в обратной последовательности.

Если это платформа Intel с боксовым (стандартный) кулером на клипсах, то его необходимо подготовить — нужно взвести все четыре ножки крепления, а затем вставить «ершики» в отверстия возле сокета и зафиксировать их нажатием клипс.

Стандартная система охлаждения AMD работает еще проще — возвращаем на место радиатор и рычажком придавливаем его к процессору. Тема установки различных систем уже неоднократно обсуждалась.

Универсальные системы с четырьмя винтами идентичны на всех платформах. Попадаем креплением радиатора или водоблока по четырем стойкам и притягиваем с усилием — качественные системы выполнены таким образом, чтобы длина резьбы притягивающих гаек закончилась раньше, чем он успеет перетянуть:


После установки не забываем подключить вентиляторы и помпу (если установлена жидкостная система охлаждения). Вентиляторы подключаются к разъему CPU FAN, а помпа управляется через AIO PUMP — названия могут меняться в зависимости от производителя.

Сборка

Возвращаем батарейку BIOS на место:


А также устанавливаем видеокарту и не забываем подключить к ней дополнительное питание:


Проверяем, все ли разъемы и провода находятся на своих местах, закрываем боковые крышки и делаем пробный пуск системы:


Компьютер включился, инициализация BIOS завершилась и на экране появился экран загрузки операционной системы — задача по установке нового процессора выполнена успешно!

И еще.

После установки новых комплектующих или смены термопасты нужно убедиться, что компьютер работает в нагрузке исправно и стабильно. Для этого можно запустить стресс-тест, например AIDA System Stability Test:


Для изначально исправной системы достаточно 10 минут, чтобы процессор вышел на постоянную рабочую температуру в нагрузке — если компьютер продолжает работать и не перегревается, то миссию можно считать выполненной полностью.

Читайте также: