⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc753.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:










Postel                                                         [Page 11]


                                                              March 1979
Internet Message Protocol






















































[Page 12]                                                         Postel


March 1979                                                              
                                               Internet Message Protocol



                       3.  DETAILED SPECIFICATION

The presentation of the information in this section is difficult since
everything depends on everything, and since this is a linear media it
has to come in some order.  In this attempt, a very brief overview of
the message structure is given, then a radical switch is made to
defining the basic building blocks, and finally using the building
blocks to reach the overall structure again.

3.1.  Overview of Message Structure

  In general a message is composed of three parts:  the identification,
  the command, and the document.  Each part is in turn composed of
  message objects.

  The identification part is composed of a transaction number assigned
  by the originating MPM, and the internet host number of that MPM.

  The command part is composed of  an operation type, an operation code,
  an argument list, an error list, the destination mailbox, and a stamp.
  The stamp is a list of the MPMs that have handled this message.

  The document part is composed of a header and a body.  The message
  delivery system does not depend on the contents of the document part,
  but this specification does make some recommendations for the document
  header.

  The following sections define the representation of a message as a
  structured object composed of other objects.  Objects in turn are
  represented using a set of basic data elements.

3.2.  Data Elements

  The data elements defined here are similar to the data structure and
  encoding used in NSW [18].

  Each of the diagrams which follow represent a sequence of octets.
  Field boundaries are denoted by the "!" character, octet boundaries by
  the "+" character. The diagrams are presented in left to right order.
  Each element begins with a one octet code.











Postel                                                         [Page 13]


                                                              March 1979
Internet Message Protocol
Specification



  
  Code  Type          Representation
  ----  ----          --------------

  
                      +------+
    0  No Operation   !  1   !
                      +------+

  
                      +------+------+------+------+------
    1  Padding        !  0   !     octet count    ! Data ...
                      +------+------+------+------+------

  
                      +------+------+
    2  Boolean        !  2   ! 1/0  !
                      +------+------+

  
                      +------+------+------+
    3  Index          !  3   !     Data    !
                      +------+------+------+

  
                      +------+------+------+------+------+
    4  Integer        !  4   !            Data           !
                      +------+------+------+------+------+

  
                      +------+------+------+------+------
    5  Bit String     !  5   !      bit count     ! Data ...
                      +------+------+------+------+------

  
                      +------+------+------+------+------
    6  Text String    !  6   !     octet count    !  Data ...
                      +------+------+------+------+------

  
                      +------+------+------+------+------+------+-----
    7  List           !  7   !     octet count    !  item count ! Data
                      +------+------+------+------+------+------+-----

  
                      +------+------+------+------+------
    8  Proplist       !  8   !     octet count    ! Data ...
                      +------+------+------+------+------


[Page 14]                                                         Postel


March 1979                                                              
                                               Internet Message Protocol
                                                           Specification



  Element code 0 (NOP) is an empty data element used for padding when it
  is necessary. It is ignored.

  Element code 1 (PAD) is used to transmit large amounts of data with a
  message for test or padding purposes.  No action is taken with this
  data but the count of dummy octets must be correct to indicate the
  next element code.

  Element code 2 (BOOLEAN) is a boolean data element which has the value
  1 for True and 0 for False.

  Element code 3 (INDEX) is a 16-bit unsigned integer datum. Element
  code 3 occupies only 3 octets.

  Element code 4 (INTEGER) is a signed 32-bit integer datum. This will
  always occupy five octets.  Representation is two's complement.

  Element code 5 (BITSTR) is a bit string element for binary data.  The
  bit string is padded on the right with zeros to fill out the last
  octet if the bit string does not end on an octet boundary.  This data
  type must have the bit-count in the two octet count field instead of
  the number of octets.

  Element code 6 (TEXT) is used for the representation of text.  Seven
  bit ASCII characters are used, right justified in the octet.  The high
  order bit in the octet is zero.

  Element code 7 (LIST) can be used to create structures composed of
  other elements.  The item-count contains the number of elements which
  follow.  Any element may be used including List itself.  The octet
  count specifies the number of octets in the whole list.  A null or
  empty List, one with no elements, has an item-count of zero (0).


















Postel                                                         [Page 15]


                                                              March 1979
Internet Message Protocol
Specification



  Element code 8 (PROPLIST) is the Property-List element.  It has the
  following form:

    
    +------+------+------+------+------+
    !   8  !     octet          ! pair !
    !      !           count    ! count!
    +------+------+------+------+------+
                         +------+------+------+---------+---------+
                         ! name !    value    ! name    ! value   !
             repeated    ! count!    count    !      ...!      ...!
                         +------+------+------+---------+---------+

  The Property-List structure consists of a set of unordered name/value
  pairs.  The pairs are a one octet name count and a two octet value
  count followed by the name and value strings.  The counts specify the
  length in octets of the name and value strings.  Each string has a
  length in octets which agrees with its respective count.  The count of
  octets until the next pair in the property list is  1 + 2 + name count
  + value count octets.  The entire Property-List is of course equal in
  length to the octet count of the element itself.  Immediately
  following the octet count for the entire element is a one octet pair
  count field which contains the total number of name/value pairs in the
  Proplist.

3.3.  Message Objects

  In the composition of messages we use a set of objects such as
  address, or date.  These objects are encoded in the basic data
  elements.  The message objects are built of data elements.

  While data elements are typed, message objects are not.  This is
  because messages are structured to the extent that only one kind of
  message object may occur in any position of a message structure.

  The following is a list of some of the objects used in messages.  The
  object descriptions are grouped by the section of the message in which
  they normally occur.












[Page 16]                                                         Postel


March 1979                                                              
                                               Internet Message Protocol
                                                           Specification



  Identification

    Internet Host Number (ihn)

      This identifies a host in the internetwork environment.  When used
      as a part of tid, it identifies the originating host of a message.
      The ihn is a 32 bit number, the higher order 8 bits identify the
      network, and the lower order 24 bits identify the host on that
      network.

      INTEGER

    Transaction Identifier (tid)

      This is the transaction identifier associated with a particular
      command.  It is a list of the transaction number and the internet
      host number of the originating host.

      LIST ( tn , ihn )

    Transaction Number (tn)

      This is a number which is uniquely associated with this
      transaction by  the originating host.  It identifies the
      transaction.  (A transaction is a message and acknowledgment, this
      is discussed in more detail in later sections.)  A tn must be
      unique for the time which the message (a request or reply)
      containing it could be active in the network.

      INDEX

  Command

    Address

      This is very similar to Mailbox in that it also is the "address"
      of a user.  However, Address is intended to contain the minimum
      information necessary for delivery, and no more.

      PROPLIST ( --- )

    Answer

      A yes (true) or no (false) answer to a question.

      BOOLEAN




Postel                                                         [Page 17]


                                                              March 1979
Internet Message Protocol
Specification



    Arguments

      This is the argument to many of the operations.  It consists of a
      List of different data types.  The List will have form and data
      relevant with the particular operation.

      LIST ( --- )

    Command-Type

      Gives the type of a command (e.g., request, reply, alarm).

      INDEX

    Error-List

      The error list contains information concerning an error which has
      occured.  It is a List comprised of the two objects error-class
      and error-string.

      LIST ( error class, error string )

    Error-Class

      A code for the class of the error.

      INDEX

    Error-String

      A text string explaining the error.

      TEXT

    How-Delivered

      A comment on the delivery of a messages, for instance a message
      could be delivered, forwarded, or turned over to general delivery.

      LIST ( TEXT )










[Page 18]                                                         Postel


March 1979                                                              
                                               Internet Message Protocol
                                                           Specification



    Mailbox

      This is the "address" of a user of the internetwork mail system.
      Mailbox contains information such as net, host, location, and
      local user-id of the recipient of the message.  Some information
      contained in Mailbox may not be necessary for delivery.

      As an example, when one sends a message to someone for the first
      time, he may include many items which are not necessary simply to
      insure delivery.  However, once he gets a reply to this message,
      the reply could contain an Address (as opposed to Mailbox) which
      the user will use from then on.

        A mailbox is a PROPLIST.  A mailbox might contain the following
        name-value pairs:

          name    element  description
          ----    -------  -----------
          IA      INTEGER  internet address
          NET     TEXT     network name
          HOST    TEXT     host name
          USER    TEXT     user name
          CITY    TEXT     city
          COUNTRY TEXT     country
          STATE   TEXT     state
          ZIP     TEXT     zip code
          PHONE   TEXT     phone number

      PROPLIST ( --- )

    Operation

      This names the operation or procedure to be performed.

      TEXT

    Options

      REGULAR for normal delivery, FORWARD for message forwarding,
      GENDEL for general delivery, or other options which may be defined
      later.

      LIST ( TEXT, ... )







Postel                                                         [Page 19]


                                                              March 1979
Internet Message Protocol
Specification

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -