logo
Lectures / Лекция 5

Устойчивость сетей к ошибкам – обнаружение ошибок и реконфигурация сетей

Обнаружение ошибок сетевой аппаратуры достаточно сложно. Для обнаружение ошибки связи может быть использован протокол "рукопожатия" (handshake) – обмена сообщениями о каждом выполненном действии (посланном и принятом сообщении). Предположим, что система A и система B установили связь. Через фиксированные интервалы времени системы должны обмениваться сообщениями типа "я в порядке" (I-am-up), указывающими, что они нормально функционируют.

Если система A не получает сообщения через фиксированный интервал, то, по-видимому, либо другая система не работает, либо данное сообщение потеряно.

Система A теперь посылает сообщение вида: "Вы в порядке?" (are-you-up?) системе B.

Если система A не получает ответа, она может повторить сообщение или попробовать альтернативный маршрут к системе B

На практике используется следующий метод обнаружения, работает ли хост с именем hostname, - команда ping:

ping hostname (или: ping A.B.C.D с указанием IP-адреса хоста)

При выполнении этой команды происходит пробный обмен сообщениями фиксированной длины с заданным хостом, трассировка отправки и получения которых выдается на консоль, после чего выдается стандартное сообщение "Host hostname alive" (хост hostname жив). Если этих сообщений нет, видимо, связь с хостом по каким-то причинам потеряна (он перезагружается, либо нарушена связь на физическом уровне, либо произошло отключение электропитания и т.д.).

Если система A не получает обязательного ответа от системы B, она заключает, что имеет место какая-либо ошибка.

Типы ошибок:

Система B не работает

Непосредственная связь между A и B не работает

Альтернативная связь между A и B не работает

Сообщение потеряно.

Однако система A не может точно определить, почему произошла ошибка.

Реконфигурация сети. Когда система A определяет, что произошла ошибка, она должна реконфигурировать систему:

Если связь между A и B отказала, эта информация должна быть доведена до любой машины в сети.

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

Когда связь или машина становятся доступны снова, данная информация должна также быть сообщена всем машинам в сети.

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