この文書は、インターネット・コミュニティーのために Internet Best Current Practices (インターネットの現時点での最良の慣行) を定め、かつ改善のための議論と提案とを求めるものである。 このメモの配布に制限はない。
標準路線の文書の多くには仕様の要求レベルを示すのに用いられている語がいくつかある。 それらの語はしばしば大文字で書かれる。 この文書では、それらの語を IETF 文書の中で解釈されるべきとおりに定義する。 このガイドラインに従う執筆者は自らの文書の冒頭近くに次の一節を盛り込むべきである。
この文書中の「しなければならない」(MUST)、「してはならない」(MUST NOT)、「必須である」(REQUIRED)、「するものとする」(SHALL)、「しないものとする」(SHALL NOT)、「すべきである」(SHOULD)、「すべきではない」(SHOULD NOT)、「推奨される」(RECOMMENDED)、「してもよい」(MAY)、および「任意である」(OPTIONAL) のキーワードは、RFC 2119 に記述されているとおりに解釈すべきである。
これらの語の効力はそれが使われている文書の要求レベルによって加減されることに注意されたい。
「しなければならない」(MUST)、ないし「必須である」(REQUIRED) または「するものとする」(SHALL) という用語は、その定義が仕様の絶対要件であることを意味する。
「してはならない」(MUST NOT)、ないし「しないものとする」(SHALL NOT) という用語は、その定義が仕様の絶対禁止事項であることを意味する。
「すべきである」(SHOULD)、ないし「推奨される」(RECOMMENDED) という用語は、特定の状況下では特定の事項を無視する正当な理由が存在しうるが、異なる進路を採る前に、あらゆる影響を把握し注意深く検討しなければならないことを意味する。
「すべきではない」(SHOULD NOT)、ないし「推奨されない」(NOT RECOMMENDED) という用語は、特定の振る舞いが許容範囲にあるか、あるいは有用でさえあるような特定の状況下では正当な理由が存在しうるが、このキーワードを伴って記述されたいかなる振る舞いも、その実装の前にあらゆる影響を把握し、それを実装した場合について注意深く検討すべきであることを意味する。
「してもよい」(MAY)、ないし「任意である」(OPTIONAL) という用語は、ある項目が真に任意であることを意味する。 あるベンダーは、特定の市場がそれを求めているという理由で、あるいはそれが自らの製品を強化すると考えて、その項目を含めることを選択するかもしれないが、別のベンダーはその同じ項目を割愛するかもしれない。 特定のオプションを含まない実装は、おそらく機能が削減されることになろうが、そうではあっても、そのオプションを含んだ別の実装との相互運用に備えたものとしなければならない。 同様に、特定のオプションを含んだ実装は、そのオプションを含まない別の実装との相互運用に備えたものとしなければならない (当然ながら、そのオプションの提供する機能については除く)。
このメモで定義した類いの命令語は慎重かつ控えめに使用しなければならない。 とくに、相互運用のために本当に必要とされる場合や、不都合を引き起こす可能性のある振る舞いを制限する場合 (再送を制限するなど) に限って使用しなければならない。 たとえば、相互運用性には必要のない特定の手法を実装者に強要しようと試みたりするのに使用してはならない。
これらの用語はしばしばセキュリティー上の影響をもつ振る舞いを指定するのに用いられる。 「しなければならない」事項や「すべきである」とされた事項を実装しないこと、あるいは「してはならない」ないし「すべきではない」と仕様が言う事項をすることによるセキュリティー上の結果は、非常に捉え難いものである。 ほとんどの実装者はその仕様を生み出した経験や議論の恩恵を受けていないであろうから、文書の執筆者は推奨事項や必須事項に従わないことによるセキュリティー上の影響を詳述することに時間を割くべきである。
これらの用語の定義は多数の RFC からとった定義の混合物である。 加えて、Robert Ullmann、Thomas Narten、Neal McBurnett、Robert Elz の各氏を含む多くの人々からの提案が盛り込まれている。
Scott Bradner
Harvard University
1350 Mass. Ave.
Cambridge, MA 02138
phone – +1 617 495 3864
email – sob@harvard.edu