home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / ien / ien-92 < prev    next >
Text File  |  1988-12-02  |  14KB  |  569 lines

  1.  
  2.                                                                         
  3.  
  4.  
  5. IEN 92
  6.                                     
  7.                                     
  8.                             Protocol Options
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                                Jon Postel
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                                2 May 1979
  34.  
  35.  
  36.  
  37.  
  38.  
  39.                      Information Sciences Institute
  40.                    University of Southern California
  41.                            4676 Admiralty Way
  42.                    Marina del Rey, California  90291
  43.                                     
  44.                              (213) 822-1511
  45.                                     
  46.                                     
  47.  
  48.  
  49. IEN-92                                                         J. Postel
  50.                                                                      ISI
  51.                                                               2 May 1979
  52.  
  53.  
  54.  
  55.                             PROTOCOL OPTIONS
  56.                             ----------------
  57.  
  58. Introduction
  59. ------------
  60.  
  61. This memo collectes  the definition  of the various  options used in the
  62. Internet   protocols,   in  particular   the   options   from   Internet
  63. Protocol (IN) [1] and Transmission Control Protocol (TCP) [2].
  64.  
  65. Internet Protocol Options
  66. -------------------------
  67.  
  68. The option  field is variable  in length.   The format is an option-type
  69. octet, an option-length octet, and the actual option-data octets.  There
  70. are two special case options which have only the option-type octet.
  71.  
  72. The option-length  octet,  which follows, includes the option-type octet
  73. and the option-length octet in the octet count of the option length.
  74.  
  75. The option-type octet can be viewed as having 3 fields:
  76.  
  77.   1 bit   reserved, must be zero
  78.   2 bits  option class,
  79.   5 bits  option number.
  80.  
  81. The option classes are:
  82.  
  83.   0 = control
  84.   1 = internet error
  85.   2 = experimental debugging and measurement
  86.   3 = reserved for future use
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103. Postel                                                          [page 1]
  104.  
  105.  
  106.                                                                         
  107.                                                               2 May 1979
  108. Protocol Options                                                  IEN 92
  109.  
  110.  
  111.  
  112. The following internet options are defined:
  113.  
  114.   CLASS NUMBER LENGTH DESCRIPTION
  115.   ----- ------ ------ -----------
  116.     0     0      -    End of Option list.  This option occupies only 1
  117.                       octet; it has no length octet.
  118.     0     1      -    No Operation.  This option occupies only 1 octet;
  119.                       it has no length octet.
  120.     0     2      4    S/P/T.  Used to carry Security, Precedence, and
  121.                       user group (TCC) information compatible with
  122.                       AUTODIN II requirements.
  123.     0     3     var.  Source Routing.  Used to route the internet packet
  124.                       based on information supplied by the source.
  125.     0     4     var.  BCR Open.
  126.     0     5     var.  BCR Close.
  127.     0     6     var.  BCR other.
  128.     0     7     var.  Return Route.  Used to record the route taken by
  129.                       an internet packet.
  130.     1     1     var.  General Error Report.  Used to report errors in
  131.                       internet packet processing.
  132.     2     4      4    Internet Timestamp.  Used to carry timestamping
  133.                       information.
  134.     2     5      4    Satellite Timestamp.  Used as above for
  135.                       special satellite network testing.
  136.  
  137. Specific Option Definitions
  138.  
  139.   End of Option List
  140.  
  141.     +--------+
  142.     |00000000|
  143.     +--------+
  144.       Type=0
  145.  
  146.     This option indicates the end of the option list.  This might not
  147.     coincide with the end of the internet header according to the
  148.     internet header length.  This is used at the end of all options, not
  149.     the end of each option, and need only be used if the end of the
  150.     options would not otherwise coincide with the end of the internet
  151.     header.
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161. [page 2]                                                          Postel
  162.  
  163.  
  164.  
  165. 2 May 1979
  166. IEN 92                                                  Protocol Options
  167.  
  168.  
  169.  
  170.   No Operation
  171.  
  172.     +--------+
  173.     |00000001|
  174.     +--------+
  175.       Type=1
  176.  
  177.     This option may be used between options, for example, to align the
  178.     beginning of a subsequent option on a 32 bit boundary.
  179.  
  180.   S/P/T
  181.  
  182.     This option provides a way for AUTODIN II hosts to send security,
  183.     precedence, and TCC (closed user groups) parameters through networks
  184.     whose transport leader does not contain fields for this information.
  185.     The format for this option is as follows:
  186.  
  187.       +--------+--------+---------+--------+
  188.       |00000010|00000100|Prec|Sec |  TCC   |
  189.       +--------+--------+---------+--------+
  190.         Type=2  Length=4
  191.  
  192.     Precedence:  4 bits
  193.  
  194.       Specifies one of 16 levels of precedence
  195.  
  196.     Security:  4 bits
  197.  
  198.       Specifies one of 16 levels of security
  199.  
  200.     Transmission Control Code:  8 bits
  201.  
  202.       Provides a means to compartmentalize traffic and define controlled
  203.       communities of interest among subscribers.
  204.  
  205.     This option might be used between hosts on the AUTODIN II network
  206.     and other networks, such as the EDN at DCEC.
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219. Postel                                                          [page 3]
  220.  
  221.  
  222.                                                                         
  223.                                                               2 May 1979
  224. Protocol Options                                                  IEN 92
  225.  
  226.  
  227.  
  228.   Source Route
  229.  
  230.     +--------+--------+--------+---------//--------+
  231.     |00000011| length |        source route        |
  232.     +--------+--------+--------+---------//--------+
  233.     Option=3
  234.  
  235.     The source route option provides a means for the source of an
  236.     internet datagram to supply routing information to be used by the
  237.     gateways in forwarding the datagram to the destination.
  238.  
  239.     The option begins with the option type code.  The second octet is
  240.     the option length which includes the option type code and the length
  241.     octet, as well as length-2 octets of source route data.
  242.  
  243.     A source route is composed of a series of internet addresses.  Each
  244.     internet address is 32 bits or 4 octets.  The length defaults to
  245.     two, which indicates the source route is empty and the remaining
  246.     routing is to be based on the destination address field.
  247.  
  248.     If the address in destination address field has been reached and the
  249.     length is not two, the next address in the source route replaces the
  250.     address in the destination address field, and that address is
  251.     deleted from the source route and the length is reduced by four.
  252.  
  253.   Return Route
  254.  
  255.     +--------+--------+--------+---------//--------+
  256.     |00000111| length |        return route        |
  257.     +--------+--------+--------+---------//--------+
  258.     Option=7
  259.  
  260.     The return route option provides a means to record the route of an
  261.     internet datagram.
  262.  
  263.     The option begins with the option type code.  The second octet is
  264.     the option length which includes the option type code and the length
  265.     octet, as well as length-2 octets of return route data.
  266.  
  267.     A return route is composed of a series of internet addresses.  The
  268.     length defaults to two, which indicates the return route is empty.
  269.  
  270.     When an internet module routes a datagram it checks to see if the
  271.     return route option is present.  If it is, it inserts its own
  272.     internet address as known in the environment into which this
  273.  
  274.  
  275.  
  276.  
  277. [page 4]                                                          Postel
  278.  
  279.  
  280.  
  281. 2 May 1979
  282. IEN 92                                                  Protocol Options
  283.  
  284.  
  285.  
  286.     datagram is being forwarded into the return route at the front of
  287.     the address string and increments the length by four.
  288.  
  289.   BCR Options
  290.  
  291.     BCR OPEN
  292.  
  293.     +--------+--------+------
  294.     |00000100| length | data 
  295.     +--------+--------+------
  296.       Type=4
  297.  
  298.     BCR CLOSE
  299.  
  300.     +--------+--------+------
  301.     |00000101| length | data 
  302.     +--------+--------+------
  303.       Type=5
  304.  
  305.     BCR OTHER
  306.  
  307.     +--------+--------+------
  308.     |00000110| length | data 
  309.     +--------+--------+------
  310.       Type=6
  311.  
  312.     These options are used with the BCR.
  313.  
  314.   General Error Report
  315.  
  316.     +--------+--------+--------+--------+--------//--------+
  317.     |00100001| length |err code|   id   |                  |
  318.     +--------+--------+--------+--------+--------//--------+
  319.      Type=33
  320.  
  321.     The general error report is used to report an error detected in
  322.     processing an internet packet to the originator of that packet.  The
  323.     "err code" indicates the type of error detected and the "id" is
  324.     copied from the identification field of the packet in error,
  325.     additional octets of error information may be present depending on
  326.     the err code.
  327.  
  328.     ERR CODE:
  329.  
  330.       0 - Undetermined Error, used when no information is available
  331.       about the type of error or the error does not fit any defined
  332.  
  333.  
  334.  
  335. Postel                                                          [page 5]
  336.  
  337.  
  338.                                                                         
  339.                                                               2 May 1979
  340. Protocol Options                                                  IEN 92
  341.  
  342.  
  343.  
  344.       class.  Following the id should be as much of the datagram as fits
  345.       in the option space.
  346.  
  347.       No err codes have been defined for specific classes as yet.
  348.  
  349.   Internet Timestamp
  350.  
  351.     +--------+--------+--------+--------+--------+--------+
  352.     |01000100|00000100|        time in milliseconds       |
  353.     +--------+--------+--------+--------+--------+--------+
  354.      Type=68  Length=4
  355.  
  356.     The data of the timestamp is a 32 bit time measured in milliseconds.
  357.  
  358.   Satellite Timestamp
  359.  
  360.     +--------+--------+--------+--------+--------+--------+
  361.     |01000101|00000100|        time in milliseconds       |
  362.     +--------+--------+--------+--------+--------+--------+
  363.      Type=69  Length=4
  364.  
  365.     The data of the timestamp is a 32 bit time measured in milliseconds.
  366.  
  367. The options are just that, optional.  That is, the presence or absence
  368. of an option is the choice of the sender, but each internet module must
  369. understand how to process every option.
  370.  
  371. Transmission Control Protocol Options
  372. -------------------------------------
  373.  
  374. Options may occupy space at the end of the TCP header and are a multiple
  375. of 8 bits in length.  All options are included in the checksum.  An
  376. option may begin on any octet boundary.  All options have the same basic
  377. format:
  378.  
  379.   Option kind:  8 bits
  380.  
  381.   Option length:  8 bits
  382.  
  383.     Length in octets (including the two octets of length and kind
  384.     information)
  385.  
  386.   There are two special cases for options.
  387.  
  388.     The first is the End-of-Options option.  Only one octet is
  389.     associated with this option, the kind octet itself.
  390.  
  391.  
  392.  
  393. [page 6]                                                          Postel
  394.  
  395.  
  396.  
  397. 2 May 1979
  398. IEN 92                                                  Protocol Options
  399.  
  400.  
  401.  
  402.     The second is the No-Operation option and is also one octet long.
  403.  
  404.   Note that the list of options may be shorter than the data offset
  405.   field might imply.  The content of the header beyond the End-of-Option
  406.   option should be header padding (i.e., zero).
  407.  
  408. Currently defined options include (kind indicated in octal):
  409.  
  410.   Kind     Length    Meaning
  411.   ----     ------    -------
  412.    0         -       End of option list.
  413.    1         -       No-Operation.
  414.   100        -       Reserved.
  415.   105        4       Buffer Size.
  416.   
  417.  
  418. Specific Option Definitions
  419.  
  420.   End of Option List
  421.  
  422.     +--------+
  423.     |00000000|
  424.     +--------+
  425.      Kind=0
  426.  
  427.     This option code indicates the end of the option list.  This might
  428.     not coincide with the end of the TCP header according to the Data
  429.     Offset field.  This is used at the end of all options, not the end
  430.     of each option, and need only be used if the end of the options
  431.     would not otherwise coincide with the end of the TCP header.
  432.  
  433.   No-Operation
  434.  
  435.     +--------+
  436.     |00000001|
  437.     +--------+
  438.      Kind=1
  439.  
  440.     This option code may be used between options, for example, to align
  441.     the beginning of a subsequent option on a word boundary.  There is
  442.     no guarantee that senders will use this option, so receivers must be
  443.     prepared to process options even if they do not begin on a word
  444.     boundary.
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451. Postel                                                          [page 7]
  452.  
  453.  
  454.                                                                         
  455.                                                               2 May 1979
  456. Protocol Options                                                  IEN 92
  457.  
  458.  
  459.   Buffer Size
  460.  
  461.     +--------+--------+---------+--------+
  462.     |01000101|00000100|    buffer size   |
  463.     +--------+--------+---------+--------+
  464.      Kind=105 Length=4
  465.  
  466.     Buffer Size Option Data:  16 bits
  467.  
  468.       If this option is present, then it communicates the receive buffer
  469.       size at the TCP which sends this segment.  This field should only
  470.       be sent in segments with the SYN control bit set.  If this option
  471.       is not used, the default buffer size of one octet is assumed.
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509. [page 8]                                                          Postel
  510.  
  511.  
  512.  
  513. 2 May 1979
  514. IEN 92                                                  Protocol Options
  515.                                                               References
  516.  
  517.  
  518.  
  519. References
  520. ----------
  521.  
  522. [1]     Postel, J., "Internetwork Datagram Protocol -- Version 4,"
  523.         IEN 80, USC-Information Sciences Institute, February 1979.
  524.  
  525. [2]     Postel, J., "Transmission Control Protocol -- Version 4,"
  526.         IEN 81, USC-Information Sciences Institute, February 1979.
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567. Postel                                                          [page 9]
  568.  
  569.