home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-stdguide-ops-04.txt < prev    next >
Text File  |  1997-05-29  |  44KB  |  1,047 lines

  1.  
  2.  
  3.  
  4.  
  5. Network Working Group                                   G. Scott, Editor
  6. INTERNET DRAFT                        Defense Information Systems Agency
  7.                                                                 May 1997
  8.  
  9.                   Guide for Internet Standards Writers
  10.                     <draft-ietf-stdguide-ops-04.txt>
  11.  
  12. Status of this Memo
  13.  
  14.   This document is an Internet Draft.  Internet Drafts are working
  15.   documents of the Internet Engineering Task Force (IETF), its areas,
  16.   and its working groups.  Note that other groups may also distribute
  17.   working documents as Internet Drafts.
  18.  
  19.   Internet Drafts are draft documents valid for a maximum of six months
  20.   and may be updated, replaced, or obsoleted by other documents at any
  21.   time.  It is not appropriate to use Internet Drafts as reference
  22.   material or to cite them other than as a "working draft" or "work in
  23.   progress."
  24.  
  25.   To learn the current status of any Internet-Draft, please check the
  26.   "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
  27.   Directories on ds.internic.net (US East Coast), nic.nordu.net
  28.   (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  29.   Rim).
  30.  
  31.   Distribution of this document is unlimited. 
  32.  
  33.   This Internet Draft expires on 5 December 1997.
  34.  
  35. Abstract
  36.  
  37.   This document is a guide for Internet standard writers.  It defines
  38.   those characteristics that make standards coherent, unambiguous, and
  39.   easy to interpret.  Also, it singles out usage believed to have led
  40.   to unclear specifications, resulting in non-interoperable
  41.   interpretations in the past.  These guidelines are to be used with
  42.   RFC 1543, "Instructions to RFC Authors."
  43.  
  44.   This version of the document is a draft.  It is intended to generate
  45.   further discussion and addition by the STDGUIDE working group. 
  46.   Please send comments to stdguide@midnight.com.  
  47.  
  48. CHANGES FROM PREVIOUS DRAFT
  49.  
  50.   Section 2.10 was rewritten to avoid conflict with BCP 14/RFC 2119,
  51.   "Key words for use in RFCs to Indicate Requirement Level." 
  52.  
  53.  
  54.  
  55.  
  56. draft-ietf-stdguide-ops-04.txt                                  [Page 1]
  57.  
  58. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  59.  
  60.  
  61.  
  62.  
  63. Table of Contents
  64.  
  65. 1     Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  2
  66. 2     General Guidelines  . . . . . . . . . . . . . . . . . . . . . .  3
  67. 2.1   Discussion of Security  . . . . . . . . . . . . . . . . . . . .  3
  68. 2.2   Protocol Description  . . . . . . . . . . . . . . . . . . . . .  5
  69. 2.3   Target Audience . . . . . . . . . . . . . . . . . . . . . . . .  6
  70. 2.4   Level of Detail . . . . . . . . . . . . . . . . . . . . . . . .  6
  71. 2.5   Protocol Versions . . . . . . . . . . . . . . . . . . . . . . .  6
  72. 2.6   Decision History  . . . . . . . . . . . . . . . . . . . . . . .  7
  73. 2.7   Response to Out of Specification Behavior . . . . . . . . . . .  7
  74. 2.8   The Liberal/Conservative Rule . . . . . . . . . . . . . . . . .  7
  75. 2.9   Handling of Protocol Options  . . . . . . . . . . . . . . . . .  8
  76. 2.10  Indicating Requirement Levels . . . . . . . . . . . . . . . . .  9
  77. 2.11  Notational Conventions  . . . . . . . . . . . . . . . . . . . .  9
  78. 2.12  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 10
  79. 2.13  Network Management Considerations . . . . . . . . . . . . . . . 10
  80. 2.14  Scalability Considerations  . . . . . . . . . . . . . . . . . . 11
  81. 2.15  Network Stability . . . . . . . . . . . . . . . . . . . . . . . 11
  82. 2.16  Glossary  . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
  83. 3     Specific Guidelines . . . . . . . . . . . . . . . . . . . . . . 12
  84. 3.1   Packet Diagrams . . . . . . . . . . . . . . . . . . . . . . . . 12
  85. 3.2   Summary Tables  . . . . . . . . . . . . . . . . . . . . . . . . 13
  86. 3.3   State Machine Descriptions  . . . . . . . . . . . . . . . . . . 14
  87. 3.4   Character Sets  . . . . . . . . . . . . . . . . . . . . . . . . 16
  88. 4     Document Checklist  . . . . . . . . . . . . . . . . . . . . . . 16
  89. 5     Security Considerations . . . . . . . . . . . . . . . . . . . . 17
  90. 6     References  . . . . . . . . . . . . . . . . . . . . . . . . . . 17
  91. 7     Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 18
  92. 8     Editor's Address  . . . . . . . . . . . . . . . . . . . . . . . 19
  93.  
  94.  
  95. 1  Introduction
  96.  
  97.   This document is a guide for Internet standard writers.  It offers 
  98.   guidelines on how to write a standards-track document with clarity,
  99.   precision, and completeness.  These guidelines are based on both
  100.   prior successful and unsuccessful IETF specification experiences. 
  101.   These guidelines are to be used with RFC 1543, "Instructions to RFC
  102.   Authors," or its update.  Note that some guidelines may not apply in
  103.   certain situations.  The process for standardizing protocols and
  104.   procedures is given in BCP 9/RFC 2026, "The Internet Standards
  105.   Process -- Revision 3."
  106.  
  107.   The goal is to increase the possibility that multiple implementations
  108.   of a protocol will interoperate.  Writing specifications to these
  109.  
  110.  
  111. draft-ietf-stdguide-ops-04.txt                                  [Page 2]
  112.  
  113. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  114.  
  115.  
  116.  
  117.   guidelines will not guarantee interoperability.  However, a
  118.   recognized barrier to the creation of interoperable protocol
  119.   implementations is unclear specifications.  
  120.  
  121.   Many will benefit from having well-written protocol specifications. 
  122.   Implementors will have a better chance to conform to the protocol
  123.   specification.  Protocol testers can use the specification to derive
  124.   unambiguous testable statements.  Purchasers and users of the
  125.   protocol will have a better understanding of its capabilities. 
  126.  
  127. 2  General Guidelines
  128.  
  129.   It is important that multiple readers and implementors of a standard
  130.   have the same understanding of a document.  To this end, information
  131.   should be orderly and detailed.  The following are general guidelines
  132.   intended to help in the production of such a document.  The IESG may
  133.   require that all or some of the following sections appear in a
  134.   standards track document.
  135.  
  136. 2.1  Discussion of Security
  137.  
  138.   If the Internet is to achieve its full potential in commercial,
  139.   governmental, and personal affairs, it must assure users that their
  140.   information transfers are free from tampering or compromise.  Well-
  141.   written security sections in standards-track documents can help
  142.   promote the confidence level required.  For an implementor will find
  143.   it easier to provide the security measures specified.  While users
  144.   will understand the security measures, and so have a higher level of
  145.   trust in the Internet.  Above all, new protocols and practices must
  146.   not worsen overall Internet security. 
  147.  
  148.   A significant threat to the Internet are those individuals who are
  149.   motivated and capable of exploiting circumstances, events, or
  150.   vulnerabilities of the system to cause harm.  Also, deliberate or
  151.   inadvertent user behavior may expose the system to attack or
  152.   exploitation.  The harm could range from disrupting or denying
  153.   network service, to damaging user systems.  Additionally, information
  154.   disclosure could provide the means to attack another system, or
  155.   reveal patterns of behavior that could be used to harm an individual,
  156.   organization, or network.  This is a particular concern with
  157.   standards that define a portion of the Management Information Base
  158.   (MIB).  
  159.  
  160.   Standards authors must accept that the protocol they specify will be
  161.   subject to attack.  They are responsible for determining what attacks
  162.   are possible, and for detailing the nature of the attacks in the
  163.   document.  Otherwise, they must convincingly argue that attack is not
  164.  
  165.  
  166. draft-ietf-stdguide-ops-04.txt                                  [Page 3]
  167.  
  168. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  169.  
  170.  
  171.  
  172.   realistic in a specific environment, and restrict the use of the
  173.   protocol to that environment.  
  174.  
  175.   This discussion of the threat model and other assumptions should
  176.   appear early in the standard.  Doing so will establish a basis for
  177.   the further discussion of security throughout the document.  
  178.  
  179.   After the document has exhaustively identified the security risks the
  180.   protocol is exposed to, the authors must formulate and detail a
  181.   defense against those attacks.  They must discuss the applicable
  182.   countermeasures employed, or the risk the user is accepting by using
  183.   the protocol.  The countermeasures may be provided by a protocol
  184.   mechanism or by reliance on external mechanisms.  Authors should be
  185.   knowledgeable of existing security mechanisms, and reuse them if
  186.   practical.  When cryptographic algorithms are use, the protocol
  187.   should be written to permit its substitution with another algorithm
  188.   in the future.  Finally, the authors should discuss implementation
  189.   hints or guidelines, e.g., how to deal with untrustworthy data or
  190.   peer systems.  
  191.  
  192.   Additionally, the effects the security measures have on the
  193.   protocol's use and performance should be discussed.  Security
  194.   measures will have an impact on the environment they are used in. 
  195.   Perhaps users will now be locked out of portions of the Internet
  196.   previously open to them, or users will experience a degradation in
  197.   the speed of service.  The user may decided to accept a greater risk
  198.   in exchange for improved access or service.  But the user must be
  199.   able to make an informed decision.  They need to understand the risks
  200.   they are facing and the costs of reducing their risk.  
  201.  
  202.   The discussion of security can be concentrated in the Security
  203.   Considerations section of the document, or throughout the document
  204.   where it is relevant to particular parts of the specification.  An
  205.   advantage of the second approach is that it ensures security is an
  206.   integral part of the protocol's development, rather than something
  207.   that is a follow-on or secondary effort.  If security is discussed
  208.   throughout the document, the Security Considerations section must
  209.   summarized and make reference to the appropriate specification
  210.   sections.  This will insure that the protocol's security measures are
  211.   emphasized to implementor and user both.  
  212.  
  213.   Within the Security Considerations section a discussion of the path
  214.   not taken may be appropriate.  There may be several security
  215.   mechanisms that were not selected for a variety of reasons:  cost or
  216.   difficulty of implementation; ineffectiveness for a given network
  217.   environment; or export control.  By listing the mechanisms they did
  218.   not use and the reasons, editors can demonstrate that the protocol's
  219.  
  220.  
  221. draft-ietf-stdguide-ops-04.txt                                  [Page 4]
  222.  
  223. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  224.  
  225.  
  226.  
  227.   WG gave security the necessary thought.  Also, this gives the
  228.   protocol's users the information they need to consider whether one of
  229.   the non-selected mechanisms would be better suited to their
  230.   particular requirements.
  231.  
  232.   Currently, a RFC is being considered that would give guidance on how
  233.   to do a security analysis.  It will provide a listing of classes of
  234.   attacks, and methods of analysis that are useful in developing
  235.   countermeasures to them.  Standards authors should obtain a current
  236.   copy of this RFC to assist them in their preparation of the security
  237.   portion of the standard.
  238.  
  239.   Finally, it is no longer acceptable that Security Considerations
  240.   sections consist solely of statements to the effect that security was
  241.   not considered in preparing the standard.
  242.  
  243.   Some examples of Security Considerations sections are found in
  244.   STD 33/RFC 1350, STD 51/RFC 1662, and STD 53/RFC 1939.
  245.  
  246. 2.2  Protocol Description
  247.  
  248.   Standards track documents must include a description of the protocol. 
  249.   This description must address the protocol's purpose, intended
  250.   functions, services it provides, and, the arena, circumstances, or
  251.   any special considerations of the protocol's use.  
  252.  
  253.   The authors of a protocol specification will have a great deal of
  254.   knowledge as to the reason for the protocol.  However, the reader is
  255.   more likely to have general networking knowledge and experience,
  256.   rather than expertise in a particular protocol.  An explanation of
  257.   it's purpose and use will give the reader a reference point for
  258.   understanding the protocol, and where it fits in the Internet.  The
  259.   Draft Standard RFC 1583 was recommended to the STDGUIDE working guide
  260.   as providing a good example of this in it's "Protocol Overview"
  261.   section. 
  262.  
  263.   The protocol's general description should also provide information on
  264.   the relationship between the different parties to the protocol.  
  265.   This can be done by showing typical packet sequences.  
  266.  
  267.   This also applies to the algorithms used by a protocol.  A detailed
  268.   description of the algorithms or citation of readily available
  269.   references that give such a description is necessary.
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276. draft-ietf-stdguide-ops-04.txt                                  [Page 5]
  277.  
  278. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  279.  
  280.  
  281.  
  282. 2.3  Target Audience
  283.  
  284.   RFCs have been written with many different purposes, ranging from the
  285.   technical to the administrative.  Those written as standards should
  286.   clearly identify the intended audience, for example, designers,
  287.   implementors, testers, help desk personnel, educators, end users, or
  288.   others.  If there are multiple audiences being addressed in the
  289.   document, what sections are for each audience needs to be identified. 
  290.   The goal is to help the reader discover and focus on what they have
  291.   turned to the document for, and avoid what they may find confusing,
  292.   diverting, or extraneous.
  293.  
  294. 2.4  Level of Detail
  295.  
  296.   The author should consider what level of descriptive detail best
  297.   conveys the protocol's intent.  Concise text has several advantages. 
  298.   It makes the document easier to read.  Such text reduces the chance
  299.   for conflict between different portions of the specification.  The
  300.   reader can readily identify the required protocol mechanisms in the
  301.   standard.  Also, it makes it easier to identify the requirements for
  302.   protocol implementation.  A disadvantage of concise descriptions is
  303.   that a reader may not fully comprehend the reasoning behind the
  304.   protocol, and thus make assumptions that will lead to implementation
  305.   errors.
  306.  
  307.   Longer descriptions may be necessary to explain purpose, background,
  308.   rationale, implementation experience, or to provide tutorial
  309.   information.  This helps the reader understand the protocol.  Yet
  310.   several dangers exist with lengthy text.  Finding the protocol
  311.   requirements in the text is difficult or confusing.  The same
  312.   mechanism may have multiple descriptions, which leads to
  313.   misinterpretations or conflict.  Finally, it is more difficult to
  314.   comprehend, a consideration as English is not the native language of
  315.   the many worldwide readers of IETF standards. 
  316.  
  317.   One approach is to divide the standard into sections:  one describing
  318.   the protocol concisely, while another section consists of explanatory
  319.   text.  The STD 3/RFC 1122/RFC 1123 and Draft Standard RFC 1583
  320.   provides examples of this method.  
  321.  
  322. 2.5  Protocol Versions
  323.  
  324.   Often the standard is specifying a new version of an existing
  325.   protocol.  In such a case, the authors should detail the differences
  326.   between the previous version and the new version.  This should
  327.   include the rationale for the changes, for example, implementation
  328.   experience, changes in technology, responding to user demand, etc.
  329.  
  330.  
  331. draft-ietf-stdguide-ops-04.txt                                  [Page 6]
  332.  
  333. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  334.  
  335.  
  336.  
  337. 2.6  Decision History
  338.  
  339.   In standards development, reaching consensus requires making
  340.   difficult choices.  These choices are made through working group
  341.   discussions or from implementation experience.  By including the
  342.   basis for a contentious decision, the author can prevent future
  343.   revisiting of these disagreements later, when the original parties
  344.   have moved on.  Also, the knowledge of the "why" is as useful to an
  345.   implementor as the description of "how."  For example,  the
  346.   alternative not taken may have been simpler to implement, so
  347.   including the reasons behind the choice may prevent future
  348.   implementors from taking nonstandard shortcuts.  
  349.  
  350. 2.7  Response to Out of Specification Behavior
  351.  
  352.   The STDGUIDE working group recommends that detail description of the
  353.   actions taken in case of behavior that is deviant from or exceeds the
  354.   specification be included.  This is an area where implementors often
  355.   differ in opinion as to the appropriate response.  By specifying a
  356.   common response, the standard author can reduce the risk that
  357.   different implementations will come in to conflict.  
  358.  
  359.   The standard should describe responses to behavior explicitly
  360.   forbidden or out of the boundaries defined by the specification.  Two
  361.   possible approaches to such cases are discarding, or invoking
  362.   error-handling mechanisms.  If discarding is chosen, detailing the
  363.   disposition may be necessary.  For instance, treat dropped frames as
  364.   if they were never received, or reset an existing connection or
  365.   adjacency state.
  366.  
  367.   The specification should describe actions taken when critical
  368.   resource or performance scaling limits are exceeded.  This is not
  369.   necessary for every case.  It is necessary for cases where a risk of
  370.   network degradation or operational failure exists.  In such cases, a
  371.   consistent behavior between implementations is necessary.
  372.  
  373. 2.8  The Liberal/Conservative Rule
  374.  
  375.   A rule, first stated in STD 5/RFC 791, recognized as having benefits
  376.   in implementation robustness and interoperability is:
  377.  
  378.                   "Be liberal in what you accept, and
  379.                     conservative in what you send."
  380.  
  381.   Or establish restrictions on what a protocol transmits, but be able
  382.   to deal with every conceivable error received.  Caution is urged in
  383.   applying this approach in standards track protocols.  It has in the
  384.  
  385.  
  386. draft-ietf-stdguide-ops-04.txt                                  [Page 7]
  387.  
  388. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  389.  
  390.  
  391.  
  392.   past lead to conflicts between vendors when interoperability fails. 
  393.   The sender accuses the receiver of failing to be liberal enough, and
  394.   the receiver accuses the sender of not being conservative enough. 
  395.   Therefore, the author is obligated to provide extensive detail on
  396.   send and receive behavior. 
  397.  
  398.   To avoid any confusion between the two, recommend that standard
  399.   authors specify send and receive behavior separately.  The
  400.   description of reception will require the most detailing.  For
  401.   implementations will be expected to accept any packet from the
  402.   network without failure or malfunction.  Therefore, the actions taken
  403.   to achieve that result, need to be laid out in the protocol
  404.   specification.  Standard authors should consider not just how to
  405.   survive on the network, but achieve the highest level of cooperation
  406.   possible to limit the amount of network disruption.  The appearance
  407.   of undefined information or conditions must not cause a network or
  408.   host failure.  This requires specification on how to attempt
  409.   acceptance of most of the packets.  Two approaches are available,
  410.   either using as much of the packet's content as possible, or invoking
  411.   error procedures.  The author should specify a dividing line on when
  412.   to take which approach.
  413.  
  414.   A case for consideration is that of a routing protocol, where
  415.   acceptance of flawed information can cause network failure.  For
  416.   protocols such as this, the specification should identify packets
  417.   that could have differing interpretations and mandate that they be 
  418.   either rejected completely or the nature of the attempt to recover
  419.   some information from them.  For example, routing updates that
  420.   contain more data than the tuple count shows.  The protocol authors
  421.   should consider whether some trailing data can be accepted as
  422.   additional routes, or to reject the entire packet as suspect because
  423.   it is non-conformant.
  424.  
  425. 2.9  Handling of Protocol Options
  426.  
  427.   Specifications with many optional features increase the complexity of
  428.   the implementation and the chance of non-interoperable
  429.   implementations.  The danger is that different implementations may
  430.   specify some combination of options that are unable to interoperate
  431.   with each other.  
  432.  
  433.   As the document moves along the standard track, implementation
  434.   experience shall determine the need for each option.  Implementation
  435.   sahll show whether the option should be a mandatory part of the
  436.   protocol or remains an option.  If an option is not implemented as
  437.   the document advances, it must be removed from the protocol before it
  438.   reaches draft standard status.
  439.  
  440.  
  441. draft-ietf-stdguide-ops-04.txt                                  [Page 8]
  442.  
  443. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  444.  
  445.  
  446.  
  447.   Therefore, options shall only be present in a protocol to address a
  448.   real requirement.  For example, options can support future
  449.   extensibility of the protocol, a particular market, e.g., the
  450.   financial industry, or a specific network environment, e.g., a
  451.   network constrained by limited bandwidth.  They shall not be included
  452.   as a means to "buy-off" a minority opinion.  Omission of the optional
  453.   item shall have no interoperability consequences for the
  454.   implementation that does so. 
  455.  
  456.   One possible approach is to document protocol options in a separate
  457.   document.  Doing so would make it clear that the options are not
  458.   integral to the implementation of the protocol, and would keep the
  459.   main protocol specification clean.  Regardless of whether they appear
  460.   within the specification or in a separate document, the text shall
  461.   discuss the full implications of either using the option or not, and
  462.   the case for choosing either course.  As part of this, the author
  463.   needs to consider and describe how the options are intended to be
  464.   used alongside other protocols.  The text must also specify the
  465.   default conditions of all options.  For security checking options the
  466.   default condition is on or enabled.
  467.  
  468.   There may be occasions when mutually exclusive options appear within
  469.   a protocol.  That is, the implementation of an optional feature
  470.   precludes the implementation of the other optional feature.  For
  471.   clarity, the author needs to state when to implement one or the
  472.   other, what the effect of choosing one over the other is, and what
  473.   problems the implementor or user may face.  The choice of one or the
  474.   other options shall have no interoperability consequences between
  475.   multiple implementations.
  476.  
  477. 2.10  Indicating Requirement Levels
  478.  
  479.   The BCP 14/RFC 2119, "Key words for use in RFCs to Indicate
  480.   Requirement Level," defines several words that are necessary for
  481.   writing a standards track document.  Editors of standards track
  482.   documents must not deviate from the definitions provided as they are
  483.   intended to identify interoperability requirements or limit
  484.   potentially harmful behavior.  The capitalization of these words is
  485.   the accepted norm, and can help in identifying an unintentional or
  486.   unreasonable requirement.  These words have been used in several RFCs
  487.   the first instances being STD 3/RFC 1122/RFC 1123.
  488.  
  489. 2.11  Notational Conventions
  490.  
  491.   Formal syntax notations can be used to define complicated protocol
  492.   concepts or data types, and to specify values of these data types. 
  493.   This permits the protocol to be written without concern on how the
  494.  
  495.  
  496. draft-ietf-stdguide-ops-04.txt                                  [Page 9]
  497.  
  498. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  499.  
  500.  
  501.  
  502.   implementation is constructed, or how the data type is represented
  503.   during transfer.  The specification is simplified because it can be
  504.   presented as "axioms" that will be proven by implementation.
  505.  
  506.   The formal specification of the syntax used should be referenced in
  507.   the text of the standard.  Any extensions, subsets, alterations, or
  508.   exceptions to that formal syntax should be defined within the
  509.   standard.  
  510.  
  511.   The STD 11/RFC 822 provides an example of this.  In RFC 822 (Section
  512.   2 and Appendix D) the Backus-Naur Form (BNF) meta-language was
  513.   extended to make its representation smaller and easier to understand. 
  514.   Another example is STD 16/RFC 1155 (Section 3.2) where a subset of
  515.   the Abstract Syntax Notation One (ASN.1) is defined.
  516.  
  517.   The author of a standards track protocol needs to consider several
  518.   things before they use a formal syntax notation.  Is the formal
  519.   specification language being used parseable by an existing machine? 
  520.   If no parser exists, is there enough information provided in the
  521.   specification to permit the building of a parser?  If not, it is
  522.   likely the reader will not have enough information to decide what the
  523.   notation means.  Also, the author should remember machine parseable
  524.   syntax is often unreadable by humans, and can make the specification
  525.   excessive in length.  Therefore, syntax notations cannot take the
  526.   place of a clearly written protocol description.
  527.  
  528. 2.12  IANA Considerations
  529.  
  530.   The common use of the Internet standard track protocols by the
  531.   Internet community requires that the unique values be assigned to the
  532.   parameter fields.  An IETF WG does not have the authority to assign
  533.   these values for the protocol it is working on.  The Internet
  534.   Assigned Numbers Authority (IANA) is the central coordinator for the
  535.   assignment of unique parameter values for Internet protocols, and is
  536.   responsible for establishing the procedures by which it does so.  The
  537.   authors of a developing protocol that use a link, socket, port,
  538.   protocol, etc., need to coordinate with the IANA the rules and
  539.   procedures to be used to register constants and tags.  This
  540.   coordination needs to be completed prior to submitting the internet
  541.   draft to the standards track.  For further information on parameter
  542.   assignment and current assignments, authors can reference STD 2/RFC
  543.   1700, "Assigned Numbers."
  544.  
  545. 2.13  Network Management Considerations
  546.  
  547.   When relevant, each standard needs to discuss how to manage the
  548.   protocol being specified.  This management process should be
  549.  
  550.  
  551. draft-ietf-stdguide-ops-04.txt                                 [Page 10]
  552.  
  553. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  554.  
  555.  
  556.  
  557.   compatible with the current IETF Standard management protocol.  Also
  558.   a MIB must be defined within the standard or in a companion document. 
  559.   The MIB must be compatible with current SMI and parseable using a
  560.   tool such as SMICng.  Where management or a MIB is not necessary this
  561.   section of the standard should explain the reason it is not relevant
  562.   to the protocol.
  563.  
  564. 2.14  Scalability Considerations
  565.  
  566.   The standard should establish the limitations on the scale of use,
  567.   e.g., tens of millions of sessions, gigabits per second, etc., and
  568.   establish limits on the resources used, e.g, round trip time,
  569.   computing resources, etc.  This is important because it establishes
  570.   the ability of the network to accommodate the number of users and the
  571.   complexity of their relations.  The STD 53/RFC 1939 has an example of
  572.   such a section.  If this is not applicable to the protocol an
  573.   explanation of why not should be included.
  574.  
  575. 2.15  Network Stability
  576.  
  577.   A standard should discuss the relationship between network topology
  578.   and convergence behavior.  As part of this, any topology which would
  579.   be troublesome for the protocol should be identified.  Additionally,
  580.   the specification should address any possible destablizing events,
  581.   and how the protocol resists or recovers from them.  The purpose is
  582.   to insure that the network will stabilize, in a timely fashion, after
  583.   a change, and that a combination of errors or events will not plunge
  584.   the network into chaos.  The STD 34/RFC 1058, as an example, has
  585.   sections which discuss how that protocol handles the affects of
  586.   changing topology.  
  587.  
  588.   The obvious case this would apply to is a routing protocol.  However,
  589.   an application protocol could also have dynamic behavior that would
  590.   affect the network.  For example, a messaging protocol could suddenly
  591.   dump a large number of messages onto the network.  Therefore, editors
  592.   of an application protocol will have to consider possible impacts to
  593.   network stability and convergence behavior.
  594.  
  595. 2.16  Glossary
  596.  
  597.   Every standards track RFC should have a glossary, as words can have
  598.   many meanings.  By defining any new words introduced, the author can
  599.   avoid confusing or misleading the implementer.  The definition should
  600.   appear on the word's first appearance within the text of the protocol
  601.   specification, and in a separate glossary section.  
  602.  
  603.  
  604.  
  605.  
  606. draft-ietf-stdguide-ops-04.txt                                 [Page 11]
  607.  
  608. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  609.  
  610.  
  611.  
  612.   It is likely that definition of the protocol will rely on many words
  613.   frequently used in IETF documents.  All authors must be knowledgeable
  614.   of the common accepted definitions of these frequently used words. 
  615.   FYI 18/RFC 1983, "Internet Users' Glossary," provides definitions
  616.   that are specific to the Internet.  Any deviation from these
  617.   definitions by authors is strongly discouraged.  If circumstances
  618.   require deviation, an author should state that he is altering the
  619.   commonly accepted definition, and provide rationale as to the
  620.   necessity of doing so.  The altered definition must be included in
  621.   the Glossary section.
  622.  
  623.   If the author uses the word as commonly defined, she does not have to
  624.   include the definition in the glossary.  As a minimum,  FYI 18/RFC
  625.   1983 should be referenced as a source.
  626.  
  627. 3  Specific Guidelines
  628.  
  629.   The following are guidelines on how to present specific technical
  630.   information in standards.
  631.  
  632. 3.1  Packet Diagrams
  633.  
  634.   Most link, network, and transport layer protocols have packet
  635.   descriptions.  The STDGUIDE working group recommends that packet
  636.   diagrams be included in the standard, as they are very helpful to the
  637.   reader.  The preferred form for packet diagrams is a sequence of long
  638.   words in network byte order, with each word horizontal on the page
  639.   and bit numbering at the top:  
  640.  
  641.  
  642.     0                   1                   2                   3  
  643.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  644.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  645.    |Version| Prio. |                   Flow Label                  |
  646.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  647.  
  648.  
  649.   In cases where a packet is strongly byte-aligned rather than
  650.   word-aligned (e.g., when byte-boundary variable-length fields are
  651.   used), display packet diagrams in a byte-wide format.  The author can
  652.   use different height boxes for short and long words, and broken boxes
  653.   for variable-length fields:
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661. draft-ietf-stdguide-ops-04.txt                                 [Page 12]
  662.  
  663. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  664.  
  665.  
  666.  
  667.                             0 1 2 3 4 5 6 7
  668.                            +-+-+-+-+-+-+-+-+
  669.                            |    Length N   |
  670.                            +-+-+-+-+-+-+-+-+
  671.                            |               |
  672.                            +    Address    +
  673.                                   ...
  674.                            +   (N bytes)   +
  675.                            |               |
  676.                            +-+-+-+-+-+-+-+-+
  677.                            |               |
  678.                            +  2-byte field +
  679.                            |               |
  680.                            +-+-+-+-+-+-+-+-+
  681.  
  682.  
  683. 3.2  Summary Tables
  684.  
  685.   The specifications of some protocols are particularly lengthy,
  686.   sometimes covering a hundred pages or more.  In such cases the
  687.   inclusion of a summary table can reduce the risk of conformance
  688.   failure by an implementation through oversight.  A summary table
  689.   itemizes what in a protocol is mandatory, optional, or prohibited. 
  690.   Summary tables do not guarantee conformance, but serve to assist an
  691.   implementor in checking that they have addressed all protocol
  692.   features.  
  693.  
  694.   The summary table will consist of, as a minimum, four (4) columns: 
  695.   Protocol Feature, Section Reference, Status, and
  696.   References/Footnotes.  The author may add columns if they further
  697.   explain or clarify the protocol.  
  698.  
  699.   In the Protocol Feature column describe the feature, for example, a
  700.   command word.  We recommend grouping series of related transactions
  701.   under descriptive headers, for example, RECEPTION.  
  702.  
  703.   Section reference directs the implementor to the section, paragraph,
  704.   or page that describes the protocol feature in detail.
  705.  
  706.   Status indicates whether the feature is mandatory, optional, or
  707.   prohibited.  The author can either use a separate column for each
  708.   possibility, or a single column with appropriate codes.  These codes
  709.   need to be defined at the start of the summary table to avoid
  710.   confusion.  Possible status codes:
  711.  
  712.  
  713.  
  714.  
  715.  
  716. draft-ietf-stdguide-ops-04.txt                                 [Page 13]
  717.  
  718. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  719.  
  720.  
  721.  
  722.        M - must
  723.        M - mandatory
  724.        MN   - must not
  725.        O - optional
  726.        S - should
  727.        SN   - should not
  728.        X - prohibited
  729.  
  730.   In the References/Footnotes column authors can point to other RFCs
  731.   that are necessary to consider in implementing this protocol feature,
  732.   or any footnotes necessary to explain the implementation further.  
  733.  
  734.   The STD 3/RFC 1122/RFC 1123 provides examples of summary tables.
  735.  
  736. 3.3  State Machine Descriptions
  737.  
  738.   A convenient method of presenting a protocol's behavior is as a
  739.   state-machine model.  That is, a protocol can be described by a
  740.   series of states resulting from a command, operation, or transaction. 
  741.   State-machine models define the variables and constants that
  742.   establish a state, the events that cause state transitions, and the
  743.   actions that result from those transitions.  Through these models, an
  744.   understanding of the protocol's dynamic operation as sequence of
  745.   state transitions that occur for any given event is possible.   
  746.   State transitions can be detailed by diagrams, tables, or time lines.
  747.  
  748.   Note that state-machine models are never to take the place of
  749.   detailed text description of the specification.  They are adjuncts to
  750.   the text.  The protocol specification shall always take precedence in
  751.   the case of a conflict.
  752.  
  753.   When using a state transition diagram, show each possible protocol
  754.   state as a box connected by state transition arcs.  The author should
  755.   label each arc with the event that causes the transition, and, in
  756.   parentheses, any actions taken during the transition.  The STD 5/RFC
  757.   1112 provides an example of such a diagram.  As ASCII text is the
  758.   preferred storage format for RFCs, only simple diagrams are possible. 
  759.   Tables can summarize more complex or extensive state transitions.  
  760.  
  761.   In a state transition table, read events vertically and states
  762.   horizontally.  The form, action/new state, represents state
  763.   transitions and actions.  Commas separate multiple actions, and
  764.   succeeding lines are used as required.  The authors should present
  765.   multiple actions in the order they must be executed, if relevant. 
  766.   Letters that follow the state indicate an explanatory footnote.  The
  767.   dash ('-') indicates an illegal transition.  The STD 51/RFC 1661
  768.   provides an example of such a state transition table.  The initial
  769.  
  770.  
  771. draft-ietf-stdguide-ops-04.txt                                 [Page 14]
  772.  
  773. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  774.  
  775.  
  776.  
  777.   columns and rows of that table are below as an example:
  778.  
  779.            | State
  780.            |    0         1         2         3         4         5
  781.      Events| Initial   Starting  Closed    Stopped   Closing   Stopping
  782.      ------+-----------------------------------------------------------
  783.       Up   |    2     irc,scr/6     -         -         -         -
  784.       Down |    -         -         0       tls/1       0         1
  785.       Open |  tls/1       1     irc,scr/6     3r        5r        5r
  786.       Close|    0       tlf/0       2         2         4         4
  787.            |
  788.        TO+ |    -         -         -         -       str/4     str/5
  789.        TO- |    -         -         -         -       tlf/2     tlf/3
  790.  
  791.  
  792.   The STD 18/RFC 904 also presents state transitions in table format. 
  793.   However, it lists transitions in the form n/a, where n is the next
  794.   state and a represents the action.  The method in RFC 1661 is
  795.   preferred as new-state logically follows action.  Also, this RFC's
  796.   Appendix C models transitions as the Cartesian product of two state
  797.   machines.  This is a more complex representation that may be
  798.   difficult to comprehend for those readers that are unfamiliar with
  799.   the format.  The working group recommends that authors present tables
  800.   as defined in the previous paragraph.  
  801.  
  802.   A final method of representing state changes is by a time line.  The
  803.   two sides of the time line represent the machines involved in the
  804.   exchange.  The author lists the states the machines enter as time
  805.   progresses (downward) along the outside of time line.  Within the
  806.   time line, show the actions that cause the state transitions.  An
  807.   example:
  808.  
  809.             client                                     server
  810.  
  811.                |                                          |
  812.                |                                          |   LISTEN
  813.    SYN_SENT    |-----------------------                   |
  814.                |                       \ syn j            |
  815.                |                        ----------------->|   SYN_RCVD
  816.                |                                          |
  817.                |                        ------------------|
  818.                |        syn k, ack j+1 /                  |
  819.    ESTABLISHED |<----------------------                   |
  820.                |                                          |
  821.  
  822.  
  823.  
  824.  
  825.  
  826. draft-ietf-stdguide-ops-04.txt                                 [Page 15]
  827.  
  828. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  829.  
  830.  
  831.  
  832. 3.4  Character Sets
  833.  
  834.   At one time the Internet had a geographic boundary and was English
  835.   only.  Since the Internet now extends internationally, application
  836.   protocols must assume that the contents of any text string may be in
  837.   a language other than English.  Therefore, new or updated protocols
  838.   which transmit text must use ISO 10646 as the default Coded Character
  839.   Set, and RFC 2044, "UTF-8, a transformation format of Unicode and ISO
  840.   10646" as the default Character Encoding Scheme.  An exception is the
  841.   use of US-ASCII for a protocol's controlling commands and replies. 
  842.   Protocols that have a backwards compatibility requirement should use
  843.   the default of the existing protocol.  This is in keeping with the
  844.   recommendations of RFC 2130, "The Report of the IAB Character Set
  845.   Workshop held 29 February - 1 March 1996." 
  846.  
  847. 4  Document Checklist
  848.  
  849.   The following is a checklist based on these guidelines that can be
  850.   applied to a document:
  851.  
  852.   o Does it identify the security risks?  Are countermeasures for each
  853.      potential attack provided?  Are the effects of the security
  854.      measures on the operating environment detailed? 
  855.   o Does it explain the purpose of the protocol or procedure?  Are the
  856.      intended functions and services addressed?  Does it describe how it
  857.      relates to existing protocols?
  858.   o Does it consider scaling and stability issues?
  859.   o Are procedures for assigning numbers provided as guidance for IANA.
  860.   o Does it discuss how to manage the protocol being specified.  Is a
  861.      MIB defined?
  862.   o Is a target audience defined?
  863.   o Does it reference or explain the algorithms used in the protocol?
  864.   o Does it give packet diagrams in recommended form, if applicable?
  865.   o Does it describe differences from previous versions, if applicable?
  866.   o Does it separate explanatory portions of the document from
  867.      requirements?
  868.   o Does it give examples of protocol operation?
  869.   o Does it specify behavior in the face of incorrect operation by
  870.      other implementations?
  871.   o Does it delineate which packets should be accepted for processing
  872.      and which should be ignored?
  873.   o If multiple descriptions of a requirement are given, does it
  874.      identify one as binding?
  875.   o How many optional features does it specify?  Does it separate them
  876.      into option classes?
  877.   o Have all combinations of options or option classes been examined
  878.      for incompatibility?
  879.  
  880.  
  881. draft-ietf-stdguide-ops-04.txt                                 [Page 16]
  882.  
  883. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  884.  
  885.  
  886.  
  887.   o Does it explain the rationale and use of options?
  888.   o Have all mandatory and optional requirements be identified and
  889.      documented by the accepted key words that define Internet
  890.      requirement levels?
  891.   o Does it use the recommended Internet meanings for any terms use to
  892.      specify the protocol?  
  893.   o Are new or altered definitions for terms given in a glossary?
  894.  
  895. 5  Security Considerations
  896.  
  897. This document does not define a protocol or procedure that could be
  898. subject to an attack.  It establishes guidelines for the information
  899. that should be included in RFCs that are to be submitted to the
  900. standards track.  In the area of security, IETF standards authors are
  901. called on to define clearly the the threats faced by the protocol and
  902. the way the protocol does or does not provide security assurances to the
  903. user.  
  904.  
  905. 6  References
  906.  
  907.   RFC 791   "Internet Protocol (IP)," J. Postel, September 1981.
  908.  
  909.   RFC 904   "Exterior Gateway Protocol formal specification," D. Mills,
  910.             April 1984
  911.  
  912.   RFC 1058  "Routing Information Protocol," C.  Hedrick, June 1988
  913.  
  914.   RFC 1112  "Host extensions for IP multicasting," S. Deering,
  915.             August 1989
  916.  
  917.   RFC 1122  "Requirements for Internet Hosts -- Communication Layers,"
  918.             R.  Braden, October 1989
  919.  
  920.   RFC 1123  "Requirements for Internet hosts -- Application and
  921.             Support," R.  Braden, October 1989
  922.  
  923.   RFC 1311  "Introduction to the STD Notes," J.  Postel, March 1992
  924.  
  925.   RFC 1350  "The TFTP Protocol (Revision 2)," K.  Sollins, July 1992
  926.  
  927.   RFC 1583  "OSPF Version 2," J. Moy, March 1994
  928.  
  929.   RFC 1661  "The Point-to-Point Protocol (PPP)," W. Simpson, July 1994
  930.  
  931.   RFC 1662  "PPP in HLDC-like Framing," W.  Simpson, July 1994
  932.  
  933.   RFC 1700  "Assigned Numbers," J. Reynolds, J. Postel, October 1994
  934.  
  935.  
  936. draft-ietf-stdguide-ops-04.txt                                 [Page 17]
  937.  
  938. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  939.  
  940.  
  941.  
  942.   RFC 1983  "Internet Users' Glossary," G. Malkin, August 1996
  943.  
  944.   RFC 1939  "Post Office Protocol - Version 3," J. Meyers, M. Rose,
  945.             May 1996
  946.  
  947.   RFC 2026  "The Internet Standards Process -- Revision 3," S. Bradner,
  948.             October 1996
  949.  
  950.   RFC 2044  "UTF-8, a transformation format of Unicode and ISO 10646,"
  951.             F. Yergeau, October 1996
  952.  
  953.   RFC 2119  "Key words for use in RFCs to Indicate Requirement Level,"
  954.             S. Bradner, March 1997
  955.  
  956.   RFC 2130  "The Report of the IAB Character Set Workshop held 29
  957.             February - 1 March 1996," C. Weider, C. Preston,
  958.             K. Simonsen, H. Alvestrand, R. Atkinson, M. Crispin,
  959.             P. Svanberg, April 1997
  960.  
  961. 7  Acknowledgments
  962.  
  963.   Peter Desnoyers and Art Mellor began the work on this document.  The
  964.   area directors that oversaw the STDGUIDE WG's efforts were
  965.   Scott Bradner, Mike O'Dell, and John Curran.  Others that contributed
  966.   to this document were:
  967.  
  968.      Bernard Aboba 
  969.      Harald T. Alvestrand
  970.      Fred Baker
  971.      Robert Elz
  972.      Dirk Fieldhouse
  973.      Dale Francisco
  974.      Gary Malkin
  975.      Neal McBurnett
  976.      Craig Partridge
  977.      Henning Schulzrinne
  978.      Kurt Starsinic
  979.      James Watt
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991. draft-ietf-stdguide-ops-04.txt                                 [Page 18]
  992.  
  993. INTERNET DRAFT    Guide for Internet standards Writers          May 1997
  994.  
  995.  
  996.  
  997. 8  Editor's Address
  998.  
  999.   Gregor D. Scott
  1000.   Director, Defense Information Systems Agency
  1001.   ATTN: JIEO-JEBBD
  1002.   Ft. Monmouth, NJ  07703-5613
  1003.   USA
  1004.  
  1005.   Phone:    (908) 427-6856
  1006.   Fax:      (908) 532-0853
  1007.   EMail:    scottg@ftm.disa.mil
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046. draft-ietf-stdguide-ops-04.txt                                 [Page 19]
  1047.