Устойчивость сетей к ошибкам – обнаружение ошибок и реконфигурация сетей
Обнаружение ошибок сетевой аппаратуры достаточно сложно. Для обнаружение ошибки связи может быть использован протокол "рукопожатия" (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 отказала, эта информация должна быть доведена до любой машины в сети.
Если имеет место отказ машины, то любая другая машина должна быть также нотифицирована о том, что сервисы, обеспечиваемые отказавшей машиной, более не доступны.
Когда связь или машина становятся доступны снова, данная информация должна также быть сообщена всем машинам в сети.
На практике при перезапуске какого-либо сервера в локальной сети имеется возможность послать всем пользователям сети предупреждение о том, что через минуту произойдет перезагрузка сервера, и они должны срочно сохранить свои данные.