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

📄 rfc1171.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:
      peer is not open.  In particular, the Restart timer should be
      allowed to expire.

   Ack-Received (4)

      In the Ack-Received state, a Configure-Request has been sent and a
      Configure-Ack has been received.  The Restart timer is still
      running since a Configure-Ack has not yet been transmitted.

      Upon receipt of a Configure-Request with acceptable Configuration
      Options, a Configure-Ack is transmitted, the Restart timer is
      stopped and the Open state is entered.  If the Configuration
      Options are unacceptable, a Configure-Nak or Configure-Reject is
      sent as appropriate.  Upon the expiration of the Restart timer, a
      new Configure-Request is transmitted, the Restart timer is
      restarted, and the state machine returns to the Request-Sent



Perkins                                                        [Page 18]

RFC 1171                Point-to-Point Protocol                July 1990


      state.

   Ack-Sent (5)

      In the Ack-Sent state, a Configure-Ack and a Configure-Request
      have been sent but a Configure-Ack has not yet been received.  The
      Restart timer is always running in the Ack-Sent state.

      Upon receipt of a Configure-Ack, the Restart timer is stopped and
      the Open state is entered.  Upon receipt of a Configure-Nak or
      Configure-Reject, the Configure-Request Configuration Options are
      adjusted appropriately, a new Configure-Request is transmitted,
      and the Restart timer is restarted.  Upon the expiration of the
      Restart timer, a new Configure-Request is transmitted, the Restart
      timer is restarted, and the state machine returns to the Request-
      Sent state.

   Open (6)

      In the Open state, a connection exists and data may be
      communicated over the link.  The Restart timer is not running in
      the Open state.

      In normal operation, only two events cause transitions out of the
      Open state.  Upon receipt of a Close command, a Terminate-Request
      is transmitted, the Restart timer is started, and the Closing
      state is entered.  Upon receipt of a Terminate-Request, a
      Terminate-Ack is transmitted and the Closed state is entered.
      Upon receipt of an Echo-Request, an Echo-Reply is transmitted.
      Similarly, Echo-Reply and Discard-Request packets are silently
      discarded or processed as expected.  All other events cause
      immediate transitions out of the Open state and should be handled
      as if the state machine were in the Listen state.

   Closing (7)

      In the Closing state, an active attempt is made to close the
      connection.  A Terminate-Request has been sent and the Restart
      timer is running, but a Terminate-Ack has not yet been received.

      Upon receipt of a Terminate-Ack, the Closed state is immediately
      entered.  Upon the expiration of the Restart timer, a new
      Terminate-Request is transmitted and the Restart timer is
      restarted.  After the Restart timer has expired Max-Restart times,
      this action may be skipped, and the Closed state may be entered.
      Max-Restart MUST be a configurable parameter.

      Since there is an outstanding Terminate-Request in the Closing



Perkins                                                        [Page 19]

RFC 1171                Point-to-Point Protocol                July 1990


      state, special care must be taken to implement the Passive-Open
      event; otherwise, it is possible for the LCP peer to think the
      connection is open.  Processing of the Passive-Open event should
      be postponed until there is reasonable assurance that the peer is
      not open.  In particular, the implementation should wait until the
      state machine would normally transition to the Closed state
      because of a Receive-Terminate-Ack event or Max-Restart Timeout
      events.

4.2.  Loop Avoidance

   Note that the protocol makes a reasonable attempt at avoiding
   Configuration Option negotiation loops.  However, the protocol does
   NOT guarantee that loops will not happen.  As with any negotiation,
   it is possible to configure two PPP implementations with conflicting
   policies that will never converge.  It is also possible to configure
   policies which do converge, but which take significant time to do so.
   Implementors should keep this in mind and should implement loop
   detection mechanisms or higher level timeouts.  If a timeout is
   implemented, it MUST be configurable.

4.3.  Timers and Counters

   There is one special timer used by LCP, the Restart timer.  The
   Restart timer is used to time out transmissions of Configure-Request
   and Terminate-Request packets.  Expiration of the Restart timer
   causes a Timeout event, and the corresponding Configure-Request or
   Terminate-Request packet retransmission.  The Restart timer MUST be
   configurable, but should default to three (3) seconds.

   There is one additional restart parameter, Max-Restarts.  Max-
   Restarts indicates the number of packet retransmissions that are
   required before there is reasonable assurance that the link closed.
   Max-Restarts MUST also be configurable, but should default to ten
   (10) retransmissions.
















Perkins                                                        [Page 20]

RFC 1171                Point-to-Point Protocol                July 1990


4.4.  Packet Format

   Exactly one Link Control Protocol packet is encapsulated in the
   Information field of PPP Data Link Layer frames where the Protocol
   field indicates type hex c021 (Link Control Protocol).

   A summary of the Link Control Protocol packet format is shown below.
   The fields are transmitted from left to right.

    0                   1                   2                   3
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Data ...
   +-+-+-+-+

   Code

      The Code field is one octet and identifies the kind of LCP packet.
      LCP Codes are assigned as follows:

         1       Configure-Request
         2       Configure-Ack
         3       Configure-Nak
         4       Configure-Reject
         5       Terminate-Request
         6       Terminate-Ack
         7       Code-Reject
         8       Protocol-Reject
         9       Echo-Request
         10      Echo-Reply
         11      Discard-Request

   Identifier

      The Identifier field is one octet and aids in matching requests
      and replies.

   Length

      The Length field is two octets and indicates the length of the LCP
      packet including the Code, Identifier, Length and Data fields.
      Octets outside the range of the Length field should be treated as
      Data Link Layer padding and should be ignored on reception.






Perkins                                                        [Page 21]

RFC 1171                Point-to-Point Protocol                July 1990


   Data

      The Data field is zero or more octets as indicated by the Length
      field.  The format of the Data field is determined by the Code
      field.

   Regardless of which Configuration Options are enabled, all LCP
   packets are always sent in the full, standard form, as if no
   Configuration Options were enabled.  This ensures that LCP
   Configure-Request packets are always recognizable even when one end
   of the link mistakenly believes the link to be Open.

   This document describes Version 1 of the Link Control Protocol.  In
   the interest of simplicity, there is no version field in the LCP
   packet.  If a new version of LCP is necessary in the future, the
   intention is that a new Data Link Layer Protocol field value should
   be used to differentiate Version 1 LCP from all other versions.  A
   correctly functioning Version 1 LCP implementation will always
   respond to unknown Protocols (including other versions) with an
   easily recognizable Version 1 packet, thus providing a deterministic
   fallback mechanism for implementations of other versions.






























Perkins                                                        [Page 22]

RFC 1171                Point-to-Point Protocol                July 1990


4.4.1.  Configure-Request


   Description

      A LCP implementation wishing to open a connection MUST transmit a
      LCP packet with the Code field set to 1 (Configure-Request) and
      the Options field filled with any desired changes to the default
      link Configuration Options.

      Upon reception of a Configure-Request, an appropriate reply MUST
      be transmitted.

   A summary of the Configure-Request packet format is shown below.  The
   fields are transmitted from left to right.

    0                   1                   2                   3
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Options ...
   +-+-+-+-+

   Code

      1 for Configure-Request.

   Identifier

      The Identifier field should be changed on each transmission.  On
      reception, the Identifier field should be copied into the
      Identifier field of the appropriate reply packet.

   Options

      The options field is variable in length and contains the list of
      zero or more Configuration Options that the sender desires to
      negotiate.  All Configuration Options are always negotiated
      simultaneously.  The format of Configuration Options is further
      described in a later section.










Perkins                                                        [Page 23]

RFC 1171                Point-to-Point Protocol                July 1990


4.4.2.  Configure-Ack


   Description

      If every Configuration Option received in a Configure-Request is
      both recognizable and acceptable, then a LCP implementation should
      transmit a LCP packet with the Code field set to 2 (Configure-
      Ack), the Identifier field copied from the received Configure-
      Request, and the Options field copied from the received
      Configure-Request.  The acknowledged Configuration Options MUST
      NOT be reordered or modified in any way.

      On reception of a Configure-Ack, the Identifier field must match
      that of the last transmitted Configure-Request, or the packet is
      invalid.  Additionally, the Configuration Options in a Configure-
      Ack must match those of the last transmitted Configure-Request, or
      the packet is invalid.  Invalid packets should be silently
      discarded.

      Reception of a valid Configure-Ack indicates that all
      Configuration Options sent in the last Configure-Request are
      acceptable.

   A summary of the Configure-Ack packet format is shown below.  The
   fields are transmitted from left to right.

    0                   1                   2                   3
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Code      |  Identifier   |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Options ...
   +-+-+-+-+

   Code

      2 for Configure-Ack.

   Identifier

      The Identifier field is a copy of the Identifier field of the
      Configure-Request which caused this Configure-Ack.

   Options

      The Options field is variable in length and contains the list of
      zero or more Configuration Options that the sender is



Perkins                                                        [Page 24]

RFC 1171                Point-to-Point Protocol                July 1990


      acknowledging.  All Configuration Options are always acknowledged
      simultaneously.

4.4.3.  Configure-Nak


   Description

      If every element of the received Configuration Options is
      recognizable but some are not acceptable, then a LCP
      implementation should transmit a LCP packet with the Code field
      set to 3 (Configure-Nak), the Identifier field copied from the
      received Configure-Request, and the Options field filled with only
      the unacceptable Configuration Options from the Configure-Request.
      All acceptable Configuration Options should be filtered out of the
      Configure-Nak, but otherwise the Configuration Options from the
      Configure-Request MUST NOT be reordered.  Each of the nak'd
      Configuration Options MUST be modified to a value acceptable to
      the Configure-Nak sender.  Finally, an implementation may be
      configured to require the negotiation of a specific option.  If
      that option is not listed, then that option may be appended to the
      list of nak'd Configuration Options in order to request the remote
      end to list that option in its next Configure-Request packet.  The
      appended option must include a value acceptable to the Configure-
      Nak sender.

⌨️ 快捷键说明

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