SYSTEM ATLASЗагрузка материала

Проблема двух генералов

Two Generals Problem

Нельзя добиться общего знания о доставке через ненадежный канал.

Простыми словами

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

Формальное определение

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

Механизм действия

После каждого последнего сообщения существует исполнение, где именно оно потеряно. Тогда стороны имеют разные знания о готовности. Добавление ещё одного подтверждения лишь переносит неопределённость на следующий последний пакет.

Пример в работе

Нерабочий подход

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

Системный подход

Перед изменением проверяют, как «Проблема двух генералов» влияет на ограничения, стимулы, зависимости и вторичные последствия.

Ограничения

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

Источник

Eralp A. Akkoyunlu; K. Ekanadham; R. V. Huber. «Some Constraints and Tradeoffs in the Design of Network Communications» (1975).

Первоисточник