5.14. Сбой на узле сервера
5.14. Сбой на узле сервера
В следующем примере мы проследим за тем, что происходит в случае сбоя на узле сервера. Чтобы мы могли имитировать эту ситуацию, клиент и сервер должны работать на разных узлах. Мы запускаем сервер, запускаем клиент, вводим строку на стороне клиента для проверки работоспособности соединения, отсоединяем узел сервера от сети и вводим еще одну строку на стороне клиента. Этот сценарий охватывает также ситуацию, в которой узел сервера становится недоступен во время отправки данных клиентом (например, после того как соединение установлено, выключается некий промежуточный маршрутизатор).
События развиваются следующим образом:
1. Когда происходит сбой на узле сервера, по существующим сетевым соединениям от сервера не отправляется никакой информации. Мы считаем, что на узле происходит именно сбой, а не завершение работы компьютера оператором (что мы рассмотрим в разделе 5.16).
2. Мы вводим строку на стороне клиента, она записывается с помощью функции writen (см. листинг 5.3) и отправляется протоколом TCP клиента как сегмент данных. Затем клиент блокируется в вызове функции readline в ожидании отраженного ответа.
3. Если мы понаблюдаем за сетью с помощью программы tcpdump, то увидим, что TCP клиента последовательно осуществляет повторные передачи сегмента данных, пытаясь получить сегмент ACK от сервера. В разделе 25.11 [128] показан типичный образец повторных передач TCP: реализации, происходящие от Беркли, делают попытки передачи сегмента данных 12 раз, ожидая около 9 мин перед прекращением попыток. Когда TCP клиента наконец прекращает попытки ретрансляции (считая, что узел сервера за это время не перезагружался или что он все еще недоступен, если на узле сервера сбоя не было, но он был недоступен по сети), клиентскому процессу возвращается ошибка. Поскольку клиент блокирован в вызове функции readline, она и возвращает эту ошибку. Если на узле сервера произошел сбой, и на все сегменты данных клиента не было ответа, будет возвращена ошибка ETIMEDOUT. Но если некий промежуточный маршрутизатор определил, что узел сервера был недоступен, и ответил сообщением ICMP о недоступности получателя, клиент получит либо ошибку EHOSTUNREACH, либо ошибку ENETUNREACH.
Хотя наш клиент в конце концов обнаруживает, что собеседник выключен или недоступен, бывает, что нужно определить это раньше, чем пройдут условленные девять минут. В таком случае следует поместить тайм-аут в вызов функции readline, о чем рассказывается в разделе 14.2.
В описанном сценарии сбой на узле сервера можно обнаружить, только послав данные на этот узел. Если мы хотим обнаружить сбой на узле сервера, не посылая данные, требуется другая технология. Мы рассмотрим параметр сокета SO_KEEPALIVE в разделе 7.5.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Сбой в работе приложений
Сбой в работе приложений Современные программы функционируют достаточно стабильно, однако иногда в их работе появляются внутренние ошибки. Это приводит к тому, что приложение перестает отвечать на запросы пользователя и зависает. Рассмотрим, как следует поступать в
5.15. Сбой и перезагрузка на узле сервера
5.15. Сбой и перезагрузка на узле сервера В этом сценарии мы устанавливаем соединение между клиентом и сервером и затем считаем, что на узле сервера происходит сбой, после чего узел перезагружается. В предыдущем разделе узел сервера был выключен, когда мы отправляли ему
Настройка сервера NTP
Настройка сервера NTP Из протоколов, обеспечивающих работу временных серверов, наиболее популярен NTP (Network Time Protocol — сетевой протокол времени), который описан в документе RFC 1305 (http://www.ietf.org/rfc/rfc1305.txt). Рассмотрению более старых версий этого протокола посвящены документы RFC 958,
Глава 16 Поиск информации на узле SharePoint
Глава 16 Поиск информации на узле SharePoint В этой главе вы научитесь:• использовать поисковую систему;• выполнять простой поисковый запрос;• выполнять простой поисковый запрос.Для поиска информации на узлах службы Windows SharePoint доступно два основных метода. Первый:
Сбой в работе приложений
Сбой в работе приложений Вообще-то современные программы стараются работать надежно, но… Они слишком сложны для этого. А чем сложнее система, тем выше вероятность сбоя – это вам любой кибернетик скажет. Поэтому время от времени приложение «вылетает» (внезапно
«Сбой» в системе интернет-казино
«Сбой» в системе интернет-казино В последние годы на многих досках бесплатных объявлений и прочих рекламно-информационных ресурсах можно встретить объявления вроде этого:Добрый день! Вы наверняка слышали про интернет-казино, а также о том, что в них выиграть практически
11.4.3. Запуск сервера
11.4.3. Запуск сервера Для запуска сервера достаточно ввести в командной строке имя server. Если не задать номер порта с помощью опции --port (-p). ОС Linux самостоятельно выберет порт. При указании опции --verbose (-v) сервер покажет, какой порт ему назначен.Если не назначить серверу адрес с
Тестирование сервера
Тестирование сервера Обычно первое, что вы захотите сделать после завершения инсталляции, - это проверить обращение к серверу. Это даст вам реальную возможность убедиться, что ваша клиентская машина может видеть хост в вашей сети. Предположим, что IP-адрес вашего сервера в
23.2. Программный сбой
23.2. Программный сбой Прежде всего, нужно выяснить и по возможности устранить причину сбоя. Если это сугубо программный сбой, то причины две: неправильная настройка программы (или системы) и ошибка
23.3. Аппаратный сбой
23.3. Аппаратный сбой Причиной аппаратного сбоя, как мы знаем, может стать или полный отказ устройства, или частичный отказ одного из его модулей, что свидетельствует о необходимости замены всего устройства. При полном отказе устройства результат виден невооруженным
Сбой в BIOS
Сбой в BIOS Несмотря на то, что BIOS записана в память ROM (что защищает ее от потери данных при выключении питания), она может повреждаться. Причины сбоев могут быть различными – вирусы, неполные или ошибочные записи, запись неправильной версии BIOS, ошибки в BIOS и так далее.При
Сбой в BIOS
Сбой в BIOS Несмотря на то, что BIOS записана в память ROM (что защищает ее от потери данных при выключении питания), она может повреждаться. Причины сбоев могут быть различными – вирусы, неполные или ошибочные записи, запись неправильной версии BIOS, ошибки в BIOS и так далее.При
Ошибка 0x00000023: сбой драйвера FAT
Ошибка 0x00000023: сбой драйвера FAT Причина ошибки – проблема в драйвере файловой системы FAT. Чаще всего ошибка вызывается ошибкой чтения/записи данных. Нужно проверить жесткий диск на предмет «битых»
Ошибка 0x00000024: сбой драйвера NTFS
Ошибка 0x00000024: сбой драйвера NTFS То же самое, что и 0x00000023, но причина в драйвере файловой системы NTFS. Иногда номер ошибки позволяет легко локализировать раздел, содержащий ошибку. Например, у вас два раздела – один NTFS, а другой FAT. Если вы получили ошибку 24, значит, вам нужно