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

📄 rfc1570.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 3 页
字号:
      specific information to make use of the Callback.  The      codification of the range of allowed usage of this field is      outside the scope of this specification.2.4.  Compound-Frames   Description      This Configuration Option provides a method for an implementation      to send multiple PPP encapsulated packets within the same frame.      This option might be used for many diverse purposes, such as      savings on toll charges.Simpson                                                        [Page 12]RFC 1570                   PPP LCP extensions               January 1994      Only those PPP Protocols which have determinate lengths or      integral length fields may be aggregated into a compound frame.      When Compound-Frames is successfully negotiated, the sender MAY      add additional packets to the same frame.  Each packet is      immediately followed by another Protocol field, with its attendant      datagram.      When padding is added to the end of the Information field, the      procedure described in Self-Describing-Padding is used.      Therefore, this option MUST be negotiated together with the Self-      Describing-Padding option.      If the FCS-Alternatives option has been negotiated, self      describing padding MUST always be added.  That is, the final      packet MUST be followed by a series of octets, the first of which      contains the value one (1).      On receipt, the first Protocol field is examined, and the packet      is processed as usual.  For those datagrams which have a      determinate length, the remainder of the frame is returned to the      demultiplexor.  Each succeeding Protocol field is processed as a      separate packet.  This processing is complete when a packet is      processed which does not have a determinate length, when the      remainder of the frame is empty, or when the Protocol field is      determined to have a value of one (1).      The PPP Protocol value of one (1) is reserved as the Padding      Protocol.  Any following octets are removed as padding.   A summary of the Compound-Frames Option format is shown below.  The   fields are transmitted from left to right.    0                   1    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   |     Type      |    Length     |   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   Type      15   Length      2Simpson                                                        [Page 13]RFC 1570                   PPP LCP extensions               January 19942.4.1.  LCP considerations   During initial negotiation, the Compound-Frames option can be used to   minimize the negotiation latency, by reducing the number of frames   exchanged.   The first LCP Configure-Request packet is sent as usual in a single   frame, including the Self-Describing-Padding and Compound-Frames   options.   The peer SHOULD respond with a Configure-Ack, followed in a compound   frame by its LCP Configure-Request, and any NCP Configure-Requests   desired.   Upon receipt, the local implementation SHOULD process the Configure-   Ack as usual.  Since the peer has agreed to send compound frames, the   implementation MUST examine the remainder of the frame for additional   packets.  If the peer also specified the Self-Describing-Padding and   Compound-Frames options in its Configure-Request, the local   implementation SHOULD retain its Configure-Ack, and further NCP   configuration packets SHOULD be added to the return frame.   Together with the peer's final return frame, the minimum number of   frames to complete configuration is 4.Simpson                                                        [Page 14]RFC 1570                   PPP LCP extensions               January 1994A.  Fast Frame Check Sequence (FCS) ImplementationA.1.  32-bit FCS Computation Method   The following code provides a table lookup computation for   calculating the 32-bit Frame Check Sequence as data arrives at the   interface.   /*    * u32 represents an unsigned 32-bit number.  Adjust the typedef for    * your hardware.    */   typedef unsigned long u32;   static u32 fcstab_32[256] =      {      0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,      0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,      0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,      0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,      0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,      0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,      0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,      0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,      0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,      0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,      0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,      0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,      0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,      0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,      0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,      0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,      0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,      0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,      0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,      0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,      0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,      0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,      0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,      0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,      0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,      0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,      0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,      0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,      0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,      0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,      0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,      0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,Simpson                                                        [Page 15]RFC 1570                   PPP LCP extensions               January 1994      0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,      0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,      0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,      0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,      0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,      0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,      0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,      0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,      0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,      0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,      0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,      0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,      0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,      0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,      0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,      0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,      0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,      0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,      0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,      0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,      0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,      0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,      0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,      0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,      0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,      0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,      0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,      0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,      0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,      0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,      0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,      0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d      };   #define PPPINITFCS32  0xffffffff   /* Initial FCS value */   #define PPPGOODFCS32  0xdebb20e3   /* Good final FCS value */   /*    * Calculate a new FCS given the current FCS and the new data.    */   u32 pppfcs32(fcs, cp, len)       register u32 fcs;       register unsigned char *cp;       register int len;       {       ASSERT(sizeof (u32) == 4);       ASSERT(((u32) -1) > 0);       while (len--)Simpson                                                        [Page 16]RFC 1570                   PPP LCP extensions               January 1994           fcs = (((fcs) >> 8) ^ fcstab_32[((fcs) ^ (*cp++)) & 0xff]);       return (fcs);       }   /*    * How to use the fcs    */   tryfcs32(cp, len)       register unsigned char *cp;       register int len;   {       u32 trialfcs;       /* add on output */       trialfcs = pppfcs32( PPPINITFCS32, cp, len );       trialfcs ^= 0xffffffff;             /* complement */       cp[len] = (trialfcs & 0x00ff);      /* Least significant byte first */       cp[len+1] = ((trialfcs >>= 8) & 0x00ff);       cp[len+2] = ((trialfcs >>= 8) & 0x00ff);       cp[len+3] = ((trialfcs >> 8) & 0x00ff);       /* check on input */       trialfcs = pppfcs32( PPPINITFCS32, cp, len + 4 );       if ( trialfcs == PPPGOODFCS32 )           printf("Good FCS\n");   }Security Considerations   Security issues are briefly discussed in sections concerning the   Callback Configuration Option.References   [1]   Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", RFC         1548, Daydreamer, December 1993.   [2]   Reynolds, J., and J. Postel, "Assigned Numbers", STD 2,          RFC 1340, USC/Information Sciences Institute, July 1992.   [3]   Simpson, W., Editor, "PPP in HDLC Framing", RFC 1549,          Daydreamer, December 1993.Simpson                                                        [Page 17]RFC 1570                   PPP LCP extensions               January 1994Acknowledgments   The Identification feature was suggested by Bob Sutterfield (Morning   Star Technologies).   The Time-Remaining feature was suggested by Brad Parker (FCR).   Some of the original text for FCS-Alternatives was provided by Arthur   Harvey (then of DEC).  The Null FCS was requested by Peter Honeyman   (UMich).  The 32-bit FCS example code was provided by Karl Fox   (Morning Star Technologies).   Self-Describing-Padding was suggested and named by Fred Baker (ACC).   Compound-Frames was suggested by Keith Sklower (Berkeley).   Special thanks to Morning Star Technologies for providing computing   resources and network access support for writing this specification.Chair's Address   The working group can be contacted via the current chair:      Fred Baker      Advanced Computer Communications      315 Bollay Drive      Santa Barbara, California  93117      EMail: fbaker@acc.comEditor's Address   Questions about this memo can also be directed to:      William Allen Simpson      Daydreamer      Computer Systems Consulting Services      1384 Fontaine      Madison Heights, Michigan  48071      EMail: Bill.Simpson@um.cc.umich.edu             bsimpson@MorningStar.comSimpson                                                        [Page 18]

⌨️ 快捷键说明

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