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

  1.  
  2.                                                                         
  3.  
  4.  
  5. IEN 61
  6. Section 2.5.6.1
  7.                                     
  8.                                     
  9.                           Internet Name Server
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                                Jon Postel
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                             27 October 1978
  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.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.                           INTERNET NAME SERVER
  62.                           --------------------
  63.  
  64. NAME SYNTAX
  65.  
  66. It is strongly  recommended  that the use of host names  in programs  be
  67. consistent  for both input and output across all hosts.  To promote such
  68. consistency of the internet level, the following syntax is specified:
  69.  
  70. The SYNTAX  of names as presented to the user and as entered by the user
  71. is:
  72.  
  73.   ! NET ! REST
  74.  
  75.   where:
  76.  
  77.     NET is a network name or number as defined in [1]
  78.  
  79.   and
  80.  
  81.     REST is a host name within  that network  expressed  as a  character
  82.     string  or as a number.   When  a number is used, it is expressed in
  83.     decimals and is prefixed with a sharpsign (e.g., #1234).
  84.  
  85.   Note that this syntax  has minimal  impact  on the allowable character
  86.   strings for host names within a network.  The only restriction is that
  87.   a REST string cannot begin with an exclaimation point (!).
  88.  
  89.   The !NET!  may be omitted when specifying a host in the local network.
  90.   That is "!" indicates the network portion of a name string.
  91.  
  92. NAME SERVER
  93.  
  94. To aid in the translation  of names to internet  addresses, several name
  95. server  processes will be provided.  The name server process will accept
  96. a name in the above form and will return a name, address pair.
  97.  
  98. The name server processes will have well-known addresses; addresses that
  99. are constant  over long periods  of time and published in documents such
  100. as [1].
  101.  
  102. A request sent to a name server is sent as an internet datagram [2] with
  103. the following content:
  104.  
  105.     +--------+--------+--------+--------+--------+--------+---\\---+
  106.     !        !        !                                            !
  107.     !  NAME  ! LENGTH !                NAME STRING                 !
  108.     !        !        !                                            !
  109.     +--------+--------+--------+--------+--------+--------+---\\---+
  110.  
  111.  
  112.  
  113.  
  114.  
  115. Postel                                                          [page 1]
  116.  
  117.                                                                         
  118.                                                                27 Oct 78
  119. Internet Name Server                                              IEN 61
  120.  
  121.  
  122.  
  123.   where:
  124.  
  125.     NAME is a one octet code indicating that the following is a name,
  126.  
  127.     LENGTH  is a one octet  count  of the number  of octets  in the name
  128.     string, and
  129.  
  130.     NAME STRING is an ASCII character string of the form ! NET ! REST.
  131.  
  132. A reply to a successful translation is sent as an internet datagram with
  133. the following content:
  134.  
  135.     +--------+--------+--------+--------+--------+--------+---\\---+
  136.     !        !        !                                            !
  137.     !  NAME  ! LENGTH !                NAME STRING                 !
  138.     !        !        !                                            !
  139.     +--------+--------+--------+--------+--------+--------+---\\---+
  140.     !        !        !                                   !         
  141.     ! ADDRESS! LENGTH !         INTERNET ADDRESS          !         
  142.     !        !        !                                   !         
  143.     +--------+--------+--------+--------+--------+--------+         
  144.  
  145.   where:
  146.  
  147.     ADDRESS  is a one octet  code indicating  that the following  is  an
  148.     internet address,
  149.  
  150.     LENGTH  is a one octet  count  (=4)  of the length  of the  internet
  151.     address, and
  152.  
  153.     INTERNET ADDRESS is the internet address.
  154.  
  155. Actually  a particular  name might map to several internet addresses, in
  156. this case the response would include a list of internet addresses.
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172. [page 2]                                                          Postel
  173.  
  174.  
  175. 27 Oct 78
  176. IEN 61                                              Internet Name Server
  177.  
  178.  
  179.  
  180. When a name is not found,  an error is reported via an internet datagram
  181. as follows:
  182.  
  183.     +--------+--------+--------+--------+--------+--------+---\\---+
  184.     !        !        !                                            !
  185.     !  NAME  ! LENGTH !                NAME STRING                 !
  186.     !        !        !                                            !
  187.     +--------+--------+--------+--------+--------+--------+---\\---+
  188.     !        !        !  ERROR !                                   !
  189.     ! ERROR  ! LENGTH !  CODE  !       ERROR STRING                !
  190.     !        !        !        !                                   !
  191.     +--------+--------+--------+--------+--------+--------+---\\---+
  192.  
  193.   where:
  194.  
  195.     ERROR CODE specifies the error.
  196.  
  197.     ERROR STRING explains the error.
  198.  
  199. Error Codes
  200.  
  201.   The following error codes are defined:
  202.  
  203.     CODE          MEANING
  204.     ----          -------
  205.      0            Undetermined or undefined error
  206.      1            Name not found
  207.      2            Improper name syntax
  208.      3            Name not found, but the following similar names exist
  209.  
  210.   Note Error 3 is followed by a list of name strings.
  211.  
  212. Communication with a Name Server Process
  213.  
  214.   Communication  with a name server  process  is via internet datagrams.
  215.   Internet  datagrams  do not guarantee  reliable  communication.  Thus,
  216.   some requests or replies may be lost.
  217.  
  218.   The  name  server   process   is  a  transaction   oriented   process;
  219.   furthermore,  the  nature  of  the  transactions  allows  them  to  be
  220.   processed in any order and even to be duplicated.  This allows the use
  221.   of a very simple communication protocol.
  222.  
  223.   If a request  is made to the name server  process  and no response  is
  224.   received  within a reasonable time, then the requestor should make the
  225.  
  226.  
  227.  
  228.  
  229. Postel                                                          [page 3]
  230.  
  231.                                                                         
  232.                                                                27 Oct 78
  233. Internet Name Server                                              IEN 61
  234.  
  235.  
  236.  
  237.   request  again.   This recovers  from communication errors which cause
  238.   the loss of either the request or the reply.
  239.  
  240.   In order  to use this simple  strategy,  care must be taken  to  allow
  241.   replies to be properly matched with requests.  The name server process
  242.   does this by including in each reply a copy of the entire request.
  243.  
  244.   The internet  datagram  does not even guarantee the correctness of the
  245.   data.   The name server  protocol  must provide  measures  to  prevent
  246.   incorrect  data from being used.   For example,  an  interent  address
  247.   field could be affected by transmission errors.
  248.  
  249.   For this reason, the name server protocol includes a checksum over the
  250.   information  of the requests  and replies.   The checksum algorithm is
  251.   the same as is used in the internet  protocol  (which  covers only the
  252.   internet header).
  253.  
  254. Format
  255.  
  256.   The requests and replies to and from a name server process are encoded
  257.   as "items".   An item consists  of an item-code an item-length and the
  258.   item-data.
  259.  
  260.     Item  :=  Item-Code  Item-Length  Item-Data
  261.  
  262.     +--------+--------+--------+--------+--------+--------+---\\---+
  263.     !        !        !                                            !
  264.     !  Item  !  Item  !               Item                         !
  265.     !  Code  ! Length !                      Data                  !
  266.     !        !        !                                            !
  267.     +--------+--------+--------+--------+--------+--------+---\\---+
  268.  
  269.   A request  is typically  one item, and a reply is typically two items.
  270.   In any case the items  communicated  at one time are  grouped  into  a
  271.   "block".   A block consists  of an octet of zero, an octet identifying
  272.   this as an name server  block,  a two octet  block length, a two octet
  273.   checksum field, and some items.
  274.  
  275.     Block  :=  BHead  Items
  276.     BHead  :=  Zero  NS-id  Block-Length  Checksum
  277.     Items  :=  Item  !  Items  Item
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286. [page 4]                                                          Postel
  287.  
  288.  
  289. 27 Oct 78
  290. IEN 61                                              Internet Name Server
  291.  
  292.  
  293.  
  294.                  +--------+--------+-----------------+
  295.                  !        !  Name  !      Block      !
  296.                  !  Zero  ! Server !      Length     !
  297.                  +-----------------+--------+--------+
  298.                  !     Checksum    !ItemCode!Item Len!
  299.                  +--------+--------+--------+--------+
  300.                  ! ........... Item Data ........... !
  301.                  +--------+--------+--------+--------+
  302.                  ! ......... Item Data cont ........ !
  303.                  +--------+--------+--------+--------+
  304.                  ! Item Data cont. !ItemCode!Item Len!
  305.                  +--------+--------+--------+--------+
  306.                  ! ........... Item Data ........... !
  307.                  +--------+--------+--------+--------+
  308.  
  309.   This format  is chosen to be compatible with the proposed multiplexing
  310.   format for internet protocol.  Also the name server is one application
  311.   using raw  internet  datagrams  as  the  transmission  media,  so  the
  312.   internet  header  protocol field should carry the value indicating raw
  313.   datagram.  An additional  field is needed  somewhere  to multiplex the
  314.   various applications using raw datagrams.
  315.  
  316. Item Code Value Assignments:
  317.  
  318.   NAME    = 1
  319.  
  320.   ADDRESS = 2
  321.  
  322.   ERROR   = 3
  323.  
  324. Example
  325.  
  326.   a typical request:
  327.  
  328.                  +--------+--------+-----------------+
  329.                  !        !  NAME  !                 !
  330.                  !   0    ! SERVER !        14       !
  331.                  +-----------------+--------+--------+
  332.                  !     CHECKSUM    !   1    !   10   !
  333.                  +--------+--------+--------+--------+
  334.                  !   !    !   A    !   R    !   P    !
  335.                  +--------+--------+--------+--------+
  336.                  !   A    !   !    !   I    !   S    !
  337.                  +--------+--------+--------+--------+
  338.                  !   I    !   B    !                  
  339.                  +--------+--------+                  
  340.  
  341.  
  342.  
  343. Postel                                                          [page 5]
  344.  
  345.                                                                         
  346.                                                                27 Oct 78
  347. Internet Name Server                                              IEN 61
  348.  
  349.  
  350.  
  351.   and the reply:
  352.  
  353.                  +--------+--------+-----------------+
  354.                  !        !  NAME  !                 !
  355.                  !   0    ! SERVER !        20       !
  356.                  +-----------------+--------+--------+
  357.                  !     CHECKSUM    !   1    !   10   !
  358.                  +--------+--------+--------+--------+
  359.                  !   !    !   A    !   R    !   P    !
  360.                  +--------+--------+--------+--------+
  361.                  !   A    !   !    !   I    !   S    !
  362.                  +--------+--------+--------+--------+
  363.                  !   I    !   B    !   2    !   4    !
  364.                  +--------+--------+--------+--------+
  365.                  !   10   !   3    !   0    !   52   !
  366.                  +--------+--------+--------+--------+
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. [page 6]                                                          Postel
  401.  
  402.  
  403. 27 Oct 78
  404. IEN 61                                              Internet Name Server
  405.                                                               References
  406.  
  407.  
  408.  
  409. References
  410.  
  411. [1]     J.  Postel. "Assigned Numbers," RFC 750, NIC 45500, 26 September
  412.         1978.
  413.  
  414. [2]     J.  Postel.  "Internetwork Protocol Specification -- Version 4,"
  415.         IEN 54, USC-Information Sciences Institute, September 1978.
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457. Postel                                                          [page 7]
  458.