Jump to content

Принцип надежности

В вычислительной технике принцип надежности — это руководство по проектированию программного обеспечения, которое гласит: «будьте консервативны в том, что вы делаете, будьте либеральны в том, что вы принимаете от других». Его часто перефразируют так: «будьте консервативны в том, что отправляете, будьте либеральны в том, что принимаете». Этот принцип также известен как закон Постеля , в честь Джона Постела , который использовал эту формулировку в ранней спецификации TCP . [1]

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

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

Интерпретация

[ редактировать ]

RFC 1122 (1989) расширил принцип Постела, рекомендуя программистам «предполагать, что сеть заполнена злонамеренными объектами, которые будут отправлять пакеты, предназначенные для оказания наихудшего возможного эффекта». [2] Протоколы должны позволять добавлять новые коды для существующих полей в будущих версиях протоколов, принимая сообщения с неизвестными кодами (возможно, записывая их в журнал). Программистам следует избегать отправки сообщений с «законными, но неясными функциями протокола», которые могут выявить недостатки в получателях, и разрабатывать свой код «не только для того, чтобы выдержать другие плохо ведущие себя хосты, но и для сотрудничества, чтобы ограничить количество сбоев, которые такие хосты могут вызвать в общей системе». средство связи». [3]

В 2001 году Маршалл Роуз описал несколько проблем развертывания при применении принципа Постела при разработке нового протокола приложения. [4] Например, дефектная реализация, которая отправляет несоответствующие сообщения, может использоваться только с реализациями, которые допускают такие отклонения от спецификации, пока, возможно, через несколько лет она не будет связана с менее толерантным приложением, которое отклоняет его сообщения. В такой ситуации выявить проблему часто бывает сложно, а внедрение решения может оказаться дорогостоящим. Поэтому Роуз рекомендовал «явные проверки согласованности в протоколе… даже если они накладывают накладные расходы на реализацию».

В 2018 году статья Флорентена Роше и Оливье Перейры о технологиях повышения конфиденциальности показала, как использовать принцип надежности Postel внутри Tor, протокола маршрутизации чтобы поставить под угрозу анонимность луковых сервисов и клиентов Tor. [5]

В 2023 году Мартин Томсон и Дэвид Шинази утверждали, что принцип надежности Постела на самом деле приводит к отсутствию надежности, включая безопасность: [6]

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

См. также

[ редактировать ]
  1. ^ Постел, Джон , изд. (январь 1980 г.). Протокол управления передачей . IETF . дои : 10.17487/RFC0761 . РФК 761 . Проверено 9 июня 2014 г.
  2. ^ Брейден, Р. , изд. (октябрь 1989 г.). Требования к интернет-хостам: уровни связи . IETF . дои : 10.17487/RFC1122 . РФК 1122 . Проверено 9 июня 2014 г.
  3. ^ Уайльд, Эрик (2012) [1999]. WWW Уайльда: Технические основы Всемирной паутины . Спрингер-Верлаг. п. 26 . дои : 10.1007/978-3-642-95855-7 . ISBN  978-3-642-95855-7 . S2CID   19897299 .
  4. ^ Роуз, М. (ноябрь 2001 г.). О разработке прикладных протоколов . IETF . дои : 10.17487/RFC3117 . РФК 3117 . Проверено 9 июня 2014 г.
  5. ^ Роше, Флорентен; Перейра, Оливье (2018). «Переход на периферию: гибкость и подтверждение трафика в протоколах луковой маршрутизации» (PDF) . Материалы симпозиума по технологиям повышения конфиденциальности . 2018 (2). Де Грютер Опен: 27–46. дои : 10.1515/popets-2018-0011 . ISSN   2299-0984 .
  6. ^ М. Томсон; Д. Шинази (июнь 2023 г.). Поддержание надежных протоколов . Совет по архитектуре Интернета (IAB). дои : 10.17487/RFC9413 . RFC 9413 . Информационный.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1c9018f9de1e01970443b5c913f3c21f__1721112240
URL1:https://arc.ask3.ru/arc/aa/1c/1f/1c9018f9de1e01970443b5c913f3c21f.html
Заголовок, (Title) документа по адресу, URL1:
Robustness principle - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)