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

📄 rfc1661.txt

📁 pptp第二层隧道模块
💻 TXT
📖 第 1 页 / 共 5 页
字号:
Simpson                                                        [Page 25]RFC 1661                Point-to-Point Protocol                July 19945.  LCP Packet Formats   There are three classes of LCP packets:      1. Link Configuration packets used to establish and configure a         link (Configure-Request, Configure-Ack, Configure-Nak and         Configure-Reject).      2. Link Termination packets used to terminate a link (Terminate-         Request and Terminate-Ack).      3. Link Maintenance packets used to manage and debug a link         (Code-Reject, Protocol-Reject, Echo-Request, Echo-Reply, and         Discard-Request).   In the interest of simplicity, there is no version field in the LCP   packet.  A correctly functioning LCP implementation will always   respond to unknown Protocols and Codes with an easily recognizable   LCP packet, thus providing a deterministic fallback mechanism for   implementations of other versions.   Regardless of which Configuration Options are enabled, all LCP Link   Configuration, Link Termination, and Code-Reject packets (codes 1   through 7) are always sent as if no Configuration Options were   negotiated.  In particular, each Configuration Option specifies a   default value.  This ensures that such LCP packets are always   recognizable, even when one end of the link mistakenly believes the   link to be open.   Exactly one LCP packet is encapsulated in the PPP Information field,   where the PPP 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 LCPSimpson                                                        [Page 26]RFC 1661                Point-to-Point Protocol                July 1994      packet.  When a packet is received with an unknown Code field, a      Code-Reject packet is transmitted.      Up-to-date values of the LCP Code field are specified in the most      recent "Assigned Numbers" RFC [2].  This document concerns the      following values:         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.  When a packet is received with an invalid Identifier      field, the packet is silently discarded without affecting the      automaton.   Length      The Length field is two octets, and indicates the length of the      LCP packet, including the Code, Identifier, Length and Data      fields.  The Length MUST NOT exceed the MRU of the link.      Octets outside the range of the Length field are treated as      padding and are ignored on reception.  When a packet is received      with an invalid Length field, the packet is silently discarded      without affecting the automaton.   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.Simpson                                                        [Page 27]RFC 1661                Point-to-Point Protocol                July 19945.1.  Configure-Request   Description      An implementation wishing to open a connection MUST transmit a      Configure-Request.  The Options field is filled with any desired      changes to the link defaults.  Configuration Options SHOULD NOT be      included with default values.      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 MUST be changed whenever the contents of the      Options field changes, and whenever a valid reply has been      received for a previous request.  For retransmissions, the      Identifier MAY remain unchanged.   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 chapter.Simpson                                                        [Page 28]RFC 1661                Point-to-Point Protocol                July 19945.2.  Configure-Ack   Description      If every Configuration Option received in a Configure-Request is      recognizable and all values are acceptable, then the      implementation MUST transmit a Configure-Ack.  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.  Additionally, the      Configuration Options in a Configure-Ack MUST exactly match those      of the last transmitted Configure-Request.  Invalid packets are      silently discarded.   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      acknowledging.  All Configuration Options are always acknowledged      simultaneously.Simpson                                                        [Page 29]RFC 1661                Point-to-Point Protocol                July 19945.3.  Configure-Nak   Description      If every instance of the received Configuration Options is      recognizable, but some values are not acceptable, then the      implementation MUST transmit a Configure-Nak.  The Options field      is filled with only the unacceptable Configuration Options from      the Configure-Request.  All acceptable Configuration Options are      filtered out of the Configure-Nak, but otherwise the Configuration      Options from the Configure-Request MUST NOT be reordered.      Options which have no value fields (boolean options) MUST use the      Configure-Reject reply instead.      Each Configuration Option which is allowed only a single instance      MUST be modified to a value acceptable to the Configure-Nak      sender.  The default value MAY be used, when this differs from the      requested value.      When a particular type of Configuration Option can be listed more      than once with different values, the Configure-Nak MUST include a      list of all values for that option which are acceptable to the      Configure-Nak sender.  This includes acceptable values that were      present in the Configure-Request.      Finally, an implementation may be configured to request the      negotiation of a specific Configuration Option.  If that option is      not listed, then that option MAY be appended to the list of Nak'd      Configuration Options, in order to prompt the peer to include that      option in its next Configure-Request packet.  Any value fields for      the option MUST indicate values acceptable to the Configure-Nak      sender.      On reception of a Configure-Nak, the Identifier field MUST match      that of the last transmitted Configure-Request.  Invalid packets      are silently discarded.      Reception of a valid Configure-Nak indicates that when a new      Configure-Request is sent, the Configuration Options MAY be      modified as specified in the Configure-Nak.  When multiple      instances of a Configuration Option are present, the peer SHOULD      select a single value to include in its next Configure-Request      packet.      Some Configuration Options have a variable length.  Since the      Nak'd Option has been modified by the peer, the implementation      MUST be able to handle an Option length which is different fromSimpson                                                        [Page 30]RFC 1661                Point-to-Point Protocol                July 1994      the original Configure-Request.   A summary of the Configure-Nak 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      3 for Configure-Nak.   Identifier      The Identifier field is a copy of the Identifier field of the      Configure-Request which caused this Configure-Nak.   Options      The Options field is variable in length, and contains the list of      zero or more Configuration Options that the sender is Nak'ing.      All Configuration Options are always Nak'd simultaneously.5.4.  Configure-Reject   Description      If some Configuration Options received in a Configure-Request are      not recognizable or are not acceptable for negotiation (as      configured by a network administrator), then the implementation      MUST transmit a Configure-Reject.  The Options field is filled      with only the unacceptable Configuration Options from the      Configure-Request.  All recognizable and negotiable Configuration      Options are filtered out of the Configure-Reject, but otherwise      the Configuration Options MUST NOT be reordered or modified in any      way.      On reception of a Configure-Reject, the Identifier field MUST      match that of the last transmitted Configure-Request.      Additionally, the Configuration Options in a Configure-Reject MUSTSimpson                                                        [Page 31]RFC 1661                Point-to-Point Protocol                July 1994      be a proper subset of those in the last transmitted Configure-      Request.  Invalid packets are silently discarded.      Reception of a valid Configure-Reject indicates that when a new      Configure-Request is sent, it MUST NOT include any of the      Configuration Options listed in the Configure-Reject.   A summary of the Configure-Reject packet format is shown below.  The   fields are transmitted from left to right.    0            

⌨️ 快捷键说明

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