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

📄 rfc1662.txt

📁 数据链路层滑动窗口协议的设计与实现。有完整的说明和模拟环境文档。
💻 TXT
📖 第 1 页 / 共 4 页
字号:
      prior agreement.

      The FCS field is calculated over all bits of the Address, Control,
      Protocol, Information and Padding fields, not including any start
      and stop bits (asynchronous) nor any bits (synchronous) or octets
      (asynchronous or synchronous) inserted for transparency.  This
      also does not include the Flag Sequences nor the FCS field itself.

         When octets are received which are flagged in the Async-
         Control-Character-Map, they are discarded before calculating
         the FCS.

      For more information on the specification of the FCS, see the
      Appendices.

   The end of the Information and Padding fields is found by locating
   the closing Flag Sequence and removing the Frame Check Sequence
   field.













Simpson                                                         [Page 6]
RFC 1662                   HDLC-like Framing                   July 1994


3.2.  Modification of the Basic Frame

   The Link Control Protocol can negotiate modifications to the standard
   HDLC-like frame structure.  However, modified frames will always be
   clearly distinguishable from standard frames.

   Address-and-Control-Field-Compression

      When using the standard HDLC-like framing, the Address and Control
      fields contain the hexadecimal values 0xff and 0x03 respectively.
      When other Address or Control field values are in use, Address-
      and-Control-Field-Compression MUST NOT be negotiated.

      On transmission, compressed Address and Control fields are simply
      omitted.

      On reception, the Address and Control fields are decompressed by
      examining the first two octets.  If they contain the values 0xff
      and 0x03, they are assumed to be the Address and Control fields.
      If not, it is assumed that the fields were compressed and were not
      transmitted.

         By definition, the first octet of a two octet Protocol field
         will never be 0xff (since it is not even).  The Protocol field
         value 0x00ff is not allowed (reserved) to avoid ambiguity when
         Protocol-Field-Compression is enabled and the first Information
         field octet is 0x03.
























Simpson                                                         [Page 7]
RFC 1662                   HDLC-like Framing                   July 1994


4.  Octet-stuffed framing

   This chapter summarizes the use of HDLC-like framing with 8-bit
   asynchronous and octet-synchronous links.



4.1.  Flag Sequence

   The Flag Sequence indicates the beginning or end of a frame.  The
   octet stream is examined on an octet-by-octet basis for the value
   01111110 (hexadecimal 0x7e).



4.2.  Transparency

   An octet stuffing procedure is used.  The Control Escape octet is
   defined as binary 01111101 (hexadecimal 0x7d), most significant bit
   first.

   As a minimum, sending implementations MUST escape the Flag Sequence
   and Control Escape octets.

   After FCS computation, the transmitter examines the entire frame
   between the two Flag Sequences.  Each Flag Sequence, Control Escape
   octet, and any octet which is flagged in the sending Async-Control-
   Character-Map (ACCM), is replaced by a two octet sequence consisting
   of the Control Escape octet followed by the original octet
   exclusive-or'd with hexadecimal 0x20.

      This is bit 5 complemented, where the bit positions are numbered
      76543210 (the 6th bit as used in ISO numbered 87654321 -- BEWARE
      when comparing documents).

   Receiving implementations MUST correctly process all Control Escape
   sequences.

   On reception, prior to FCS computation, each octet with value less
   than hexadecimal 0x20 is checked.  If it is flagged in the receiving
   ACCM, it is simply removed (it may have been inserted by intervening
   data communications equipment).  Each Control Escape octet is also
   removed, and the following octet is exclusive-or'd with hexadecimal
   0x20, unless it is the Flag Sequence (which aborts a frame).

   A few examples may make this more clear.  Escaped data is transmitted
   on the link as follows:




Simpson                                                         [Page 8]
RFC 1662                   HDLC-like Framing                   July 1994



      0x7e is encoded as 0x7d, 0x5e.    (Flag Sequence)
      0x7d is encoded as 0x7d, 0x5d.    (Control Escape)
      0x03 is encoded as 0x7d, 0x23.    (ETX)

   Some modems with software flow control may intercept outgoing DC1 and
   DC3 ignoring the 8th (parity) bit.  This data would be transmitted on
   the link as follows:

      0x11 is encoded as 0x7d, 0x31.    (XON)
      0x13 is encoded as 0x7d, 0x33.    (XOFF)
      0x91 is encoded as 0x7d, 0xb1.    (XON with parity set)
      0x93 is encoded as 0x7d, 0xb3.    (XOFF with parity set)




4.3.  Invalid Frames

   Frames which are too short (less than 4 octets when using the 16-bit
   FCS), or which end with a Control Escape octet followed immediately
   by a closing Flag Sequence, or in which octet-framing is violated (by
   transmitting a "0" stop bit where a "1" bit is expected), are
   silently discarded, and not counted as a FCS error.



4.4.  Time Fill

4.4.1.  Octet-synchronous

   There is no provision for inter-octet time fill.

   The Flag Sequence MUST be transmitted during inter-frame time fill.


4.4.2.  Asynchronous

   Inter-octet time fill MUST be accomplished by transmitting continuous
   "1" bits (mark-hold state).

   Inter-frame time fill can be viewed as extended inter-octet time
   fill.  Doing so can save one octet for every frame, decreasing delay
   and increasing bandwidth.  This is possible since a Flag Sequence may
   serve as both a frame end and a frame begin.  After having received
   any frame, an idle receiver will always be in a frame begin state.




Simpson                                                         [Page 9]
RFC 1662                   HDLC-like Framing                   July 1994


   Robust transmitters should avoid using this trick over-zealously,
   since the price for decreased delay is decreased reliability.  Noisy
   links may cause the receiver to receive garbage characters and
   interpret them as part of an incoming frame.  If the transmitter does
   not send a new opening Flag Sequence before sending the next frame,
   then that frame will be appended to the noise characters causing an
   invalid frame (with high reliability).

   It is suggested that implementations will achieve the best results by
   always sending an opening Flag Sequence if the new frame is not
   back-to-back with the last.  Transmitters SHOULD send an open Flag
   Sequence whenever "appreciable time" has elapsed after the prior
   closing Flag Sequence.  The maximum value for "appreciable time" is
   likely to be no greater than the typing rate of a slow typist, about
   1 second.



4.5.  Transmission Considerations

4.5.1.  Octet-synchronous

   The definition of various encodings and scrambling is the
   responsibility of the DTE/DCE equipment in use, and is outside the
   scope of this specification.


4.5.2.  Asynchronous

   All octets are transmitted least significant bit first, with one
   start bit, eight bits of data, and one stop bit.  There is no
   provision for seven bit asynchronous links.


















Simpson                                                        [Page 10]
RFC 1662                   HDLC-like Framing                   July 1994


5.  Bit-stuffed framing

   This chapter summarizes the use of HDLC-like framing with bit-
   synchronous links.



5.1.  Flag Sequence

   The Flag Sequence indicates the beginning or end of a frame, and is
   used for frame synchronization.  The bit stream is examined on a
   bit-by-bit basis for the binary sequence 01111110 (hexadecimal 0x7e).

   The "shared zero mode" Flag Sequence "011111101111110" SHOULD NOT be
   used.  When not avoidable, such an implementation MUST ensure that
   the first Flag Sequence detected (the end of the frame) is promptly
   communicated to the link layer.  Use of the shared zero mode hinders
   interoperability with bit-synchronous to asynchronous and bit-
   synchronous to octet-synchronous converters.



5.2.  Transparency

   After FCS computation, the transmitter examines the entire frame
   between the two Flag Sequences.  A "0" bit is inserted after all
   sequences of five contiguous "1" bits (including the last 5 bits of
   the FCS) to ensure that a Flag Sequence is not simulated.

   On reception, prior to FCS computation, any "0" bit that directly
   follows five contiguous "1" bits is discarded.



5.3.  Invalid Frames

   Frames which are too short (less than 4 octets when using the 16-bit
   FCS), or which end with a sequence of more than six "1" bits, are
   silently discarded, and not counted as a FCS error.



5.4.  Time Fill

   There is no provision for inter-octet time fill.

   The Flag Sequence SHOULD be transmitted during inter-frame time fill.
   However, certain types of circuit-switched links require the use of



Simpson                                                        [Page 11]
RFC 1662                   HDLC-like Framing                   July 1994


   mark idle (continuous ones), particularly those that calculate
   accounting based on periods of bit activity.  When mark idle is used
   on a bit-synchronous link, the implementation MUST ensure at least 15
   consecutive "1" bits between Flags during the idle period, and that
   the Flag Sequence is always generated at the beginning of a frame
   after an idle period.

      This differs from practice in ISO 3309, which allows 7 to 14 bit
      mark idle.



5.5.  Transmission Considerations

   All octets are transmitted least significant bit first.

   The definition of various encodings and scrambling is the
   responsibility of the DTE/DCE equipment in use, and is outside the
   scope of this specification.

   While PPP will operate without regard to the underlying
   representation of the bit stream, lack of standards for transmission
   will hinder interoperability as surely as lack of data link
   standards.  At speeds of 56 Kbps through 2.0 Mbps, NRZ is currently
   most widely available, and on that basis is recommended as a default.

   When configuration of the encoding is allowed, NRZI is recommended as
   an alternative, because of its relative immunity to signal inversion
   configuration errors, and instances when it MAY allow connection
   without an expensive DSU/CSU.  Unfortunately, NRZI encoding
   exacerbates the missing x1 factor of the 16-bit FCS, so that one
   error in 2**15 goes undetected (instead of one in 2**16), and triple
   errors are not detected.  Therefore, when NRZI is in use, it is
   recommended that the 32-bit FCS be negotiated, which includes the x1
   factor.

   At higher speeds of up to 45 Mbps, some implementors have chosen the
   ANSI High Speed Synchronous Interface [HSSI].  While this experience
   is currently limited, implementors are encouraged to cooperate in
   choosing transmission encoding.











Simpson                                                        [Page 12]
RFC 1662                   HDLC-like Framing                   July 1994

⌨️ 快捷键说明

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