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

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