ポステルの法則とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ポステルの法則の意味・解説 

ロバストネス原則

(ポステルの法則 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/10 21:45 UTC 版)

ナビゲーションに移動 検索に移動

ロバストネス原則(ロバストネスげんそく、robustness principle)または堅牢性原則(けんろうせいげんそく)とは、ソフトウェアの設計指針の一つで、「貴方が自分ですることに関しては厳密に、貴方が他人から受けることに関しては寛容に」(be conservative in what you do, be liberal in what you accept from others)というものである。これは「送信するものに関しては厳密に、受信するものに関しては寛容に」(be conservative in what you send, be liberal in what you accept)とも言い換えられる。この原則は、TCPの初期仕様[1]でこのことを主張したジョン・ポステルにちなんでポステルの法則(Postel's law)とも呼ばれる。

これは、他の装置(または同じ装置上の他のプログラム)との間でメッセージをやり取りする場合、送信側は仕様に完全に準拠すべきであるが、受信側は、メッセージの意味が明確である限り、仕様に非準拠であってもそれを受け入れるべきであるということである。

解釈

1989年の RFC 1122 では、ロバストネス原則を発展させて、プログラマに対し「ネットワークには、考え得る限り最悪の効果をもたらすように設計されたパケットを送ってくる悪意のある組織が存在すると仮定する」(assume that the network is filled with malevolent entities that will send in packets designed to have the worst possible effect)よう推奨している[2]

プロトコルは、将来のバージョンのプロトコルで既存のフィールドに新しいコードを追加できるように、未知のコードを持ったメッセージを受け入れられる(少なくとも、そのようなメッセージを受け取ったというログを取る)ようにするべきである。プログラマはプログラムを設計する際に、受信側の欠陥をあらわにしてしまう可能性のあるような「プロトコルには書かれているが不明瞭な機能」を持ったメッセージの送信を避け、「仕様に従わない他のホストを生き残らせるのではなく、そのようなホストが通信設備に与える混乱を少なくするために協力する」ようにするべきである[3]

批判

マーシャル・ローズ英語版は2001年に、新しいアプリケーションプロトコルの設計にポステルの法則を適用した場合の問題点を指摘した[4]。仕様に適合しないメッセージを送信する欠陥のある実装は、当初は仕様からの逸脱を許容する実装のみで使用されたとしても、その数年後には、そのメッセージを拒否するような許容度の低い実装と接続される可能性がある。この場合、問題を特定するのが難しくなり、解決策が判明しても、その導入にコストがかかる。そこでローズは、「実装上のオーバーヘッドが発生してでも、プロトコルで明示的に一貫性をチェックする」べきであると主張した。

マーティン・トムソンは、2015年から2018年にかけて執筆したインターネットドラフトの中で、ロバストネス原則は、実際にはセキュリティを含むロバストネスの「欠如」につながると主張した[5]

とある欠陥はデファクトスタンダードとして確立してしまう。そのプロトコルのいかなる実装も、異常な動作を再現しなければならず、そうしなければ相互運用性のないものになる。これはロバストネス原則を適用した結果であり、致命的なエラー状態を避けようとする自然な抵抗の産物でもある。このような環境で相互運用性を確実にしようとすることは、しばしば「バグ互換性英語版によるバグ」(bug for bug compatible)を作ることになる。

2018年のFlorentin RochetとOlivier Pereiraによるプライバシー強化技術英語版に関する論文で、Torのルーティングプロトコルがロバストネス原則を適用していることを利用して、Torクライアントの匿名性を破る方法が示された[6]

脚注

  1. ^ Postel, Jon, ed. (January 1980). Transmission Control Protocol (英語). IETF. doi:10.17487/RFC0761. RFC 761. 2014年6月9日閲覧
  2. ^ Braden, R., ed. (October 1989). Requirements for Internet Hosts: Communication Layers (英語). IETF. doi:10.17487/RFC1122. RFC 1122. 2014年6月9日閲覧
  3. ^ Wilde, Erik (2012). Wilde's WWW: Technical Foundations of the World Wide Web. Springer‑Verlag. p. 26. doi:10.1007/978-3-642-95855-7. ISBN 978-3-642-95855-7. https://archive.org/details/springer_10.1007-978-3-642-95855-7 
  4. ^ Rose, M. (November 2001). On the Design of Application Protocols (英語). IETF. doi:10.17487/RFC3117. RFC 3117. 2014年6月9日閲覧
  5. ^ Thomson, Martin (May 2019). The Harmful Consequences of the Robustness Principle (英語). IETF. 2019年10月4日閲覧
  6. ^ Rochet, Florentin; Pereira, Olivier (2018). “Dropping on the Edge: Flexibility and Traffic Confirmation in Onion Routing Protocols”. Proceedings of the Privacy Enhancing Technologies Symposium (De Gruyter Open) (2): 27–46. ISSN 2299-0984. https://petsymposium.org/2018/files/papers/issue2/popets-2018-0011.pdf. 

関連項目

外部リンク


ポステルの法則

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/04/13 01:49 UTC 版)

ジョン・ポステル」の記事における「ポステルの法則」の解説

詳細は「en:Postel's law」を参照 ポステルの法則(英語: Postel's law)とは、「送信するものに関して厳密に受信するものに関して寛容に」という、通信における設計原則である。堅牢性原則 (robustness principle, ロバストネス原則) とも。 元々はポステルTCP規定した RFC793 において、相互運用性確保するためにTCP実装が持つべき性質として要約した節が、より一般化され知られるようになったのである原文次のとおり。 2.10. robustness principle TCP implementations will follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others. — RFC793

※この「ポステルの法則」の解説は、「ジョン・ポステル」の解説の一部です。
「ポステルの法則」を含む「ジョン・ポステル」の記事については、「ジョン・ポステル」の概要を参照ください。

ウィキペディア小見出し辞書の「ポステルの法則」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ポステルの法則」の関連用語

ポステルの法則のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ポステルの法則のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのロバストネス原則 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのジョン・ポステル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS