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

📄 rfc904.txt

📁 RFC 相关的技术文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     |       Sequence #              |          Reason               |     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     |                                                               |     |                     Error Message Header                      |     |            (first three 32-bit words of EGP header)           |     |                                                               |     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+Type                    8Code                    0Status                  0       indeterminate                        1       Up state                        2       Down state                        128     unsolicited message bitReason (see below)      0       unspecified                        1       bad EGP header format                        2       bad EGP data field format                        3       reachability info unavailable                        4       excessive polling rate                        5       no responseError Message Header    first three 32-bit words of EGP headerFollowing is a summary of the assigned Reason codes along with a list ofscenarios in which they might be used.Exterior Gateway Protocol Formal Specification                   Page 25D.L. MillsCode    Reason                  Scenarios------------------------------------------------------------------------0       unspecified             when nothing else fits1       bad EGP header format   1. bad message length                                2. invalid Type, Code or Status fields                                Notes: The recipient can determine which                                of the above hold by inspecting the EGP                                header included in the message. An                                instance of a wrong EGP version or bad                                checksum should not be reported, since                                the original recipient can not trust the                                header format. An instance of an unknown                                autonomous system should be caught at                                acquistion time.2       bad EGP data field      1. nonsense polling rates        format                     (Request/Confirm)                                2. invalid Update message format                                3. response IP Net Address field does                                   not match command (Update)                                Notes: An instance of nonsense polling                                intervals (e.g. too long to be useful)                                specified in a Request or Confirm should                                result in a Refuse or Cease with this                                cause specified.3       reachability info       1. no info available on net specified in        unavailable                IP Net Address field (Poll)4       excessive polling rate  1. two or more Hello commands received                                   within minimum specified polling                                   interval                                2. two or more Poll commands received                                   within minimum specified polling                                   interval                                3. two or more Request commands received                                   within some (reasonably short)                                   interval                                Notes: The recipient can determine which                                of the above hold by inspecting the EGP                                header included in the message.5       no response             1. no Update received for Poll within                                   some (reasonably long) intervalExterior Gateway Protocol Formal Specification                   Page 26D.L. MillsAppendix B.  Comparison with RFC-888     Minor functional enhancements are necessary in the RFC-888 messageformats to support certain features assumed of the state-machine model,in particular the capability to request a neighbor to suppress Hellocommands.  In addition, the model suggests a mapping between its statesand certain status and error indications which clarifies and generalizesthe interpretation.     All of the header fields except the Status field (called theInformation field at some places in RFC-888) remain unchanged.  Thefollowing table summarizes the suggested format changes in the Statusfield for the various messages by (Type, Code) class.Class   Messages                Status Codes-------------------------------------------------------------------3,0     Request                 0       unspecified3,1     Confirm                 1       active mode3,2     Refuse                  2       passive mode3,3     Cease                   3       insufficient resources3,4     Cease-ack               4       administratively prohibited                                5       going down                                6       parameter problem5,0     Hello                   0       indeterminate5,1     I-H-U                   1       Up state2,0     Poll                    2       Down state1,0     Update                  128     unsolicited message bit8,0     ErrorThe changes from RFC-888 are as follows:1.  The status codes have been combined in two classes, one for those    messages involved in starting and stopping the protocol and the    other for those messages involved in maintaining the protocol and    exchanging reachability information.  Some messages of either class    may not use all the status codes assigned.2.  The status codes for the Request and Confirm indicate whether the    sender can operate in active or passive mode.  In RFC-888 this field    must be zero;  however, RFC-888 does not specify any mechanism to    decide how the neighbors poll each other.3.  The status codes for the Cease, Refuse and Cease-ack have the same    interpretation.  This provides a clear and unambiguous indication    when the protocol is terminated due to an unusual situation, for    instance if the NOC dynamically repartitions the ARPANET.  The    assigned codes are not consistent with RFC-888, since the codes for    the Refuse and Cease were assigned conflicting values;  however, the    differences are minor and should cause no significant problems.Exterior Gateway Protocol Formal Specification                   Page 27D.L. Mills4.  The status codes for the Hello, I-H-U, Poll, Update and Error have    the same interpretation.  Codes 0 through 2 are mutually exclusive    and are chosen solely on the basis of the state of the sender.  In    the case of the Update (and possibly Error) one of these codes can    be combined with the "unsolicited bit," which corresponds to code    128.  In RFC-888 this field is unused for the Poll and Error and may    contain only zero or 128 for the Update, so that the default case is    to assume that reciprocal reachability cannot be determined by these    messages.5.  Some of the reachability codes defined in RFC-888 have been removed    as not applicable.Exterior Gateway Protocol Formal Specification                   Page 28D.L. MillsAppendix C.  Reachability Analysis     The following table shows the state transitions which can occur ina system of two neighboring EGP gateways.  Besides being useful in thedesign and verification of the protocol, the table is useful forimplementation and testing.     The system of two neighboring EGP gateways is modelled as afinite-state automaton constructed as the cartesian product of two statemachines as defined above.  Each state of this machine is represented as[i,j], where i and j are states of the original machine.  Each line ofthe table shows one state transition of the machine in the form:                        [i1,j1] -> [i2,j2]  E  Awhich specifies the machine in state [i1,j1] presented with event Etransitions to state [i2,j2] and generates action A.  Multiple actionsare separated by the "/" symbol.  The special symbol "*" represents theset of lines where all "*"s in the line take on the (same) values 0 - 4in turn.     The table shows only those transitions which can occur as theresult of events arriving at one of the two neighbors.  The full tableincludes a duplicate set of lines for the other neighbor as well, witheach line derived from a line of the table below using thetransformation:         [i1,j1] -> [i2,j2]  E  A  =>  [j1,i1] -> [j2,i2]  E  AState    State  Event           Actions---------------------------------------------------[*,4] -> [0,4]  Cease           Cease-ack[0,1] -> [2,1]  Request         Confirm/Hello/Up/t1[0,1] -> [0,1]  Request         Refuse[0,*] -> [1,*]  Start           Request/t1[1,1] -> [2,1]  Request         Confirm/Hello/Up/t1[1,2] -> [2,2]  Confirm         Hello/Up/t1[1,3] -> [2,3]  Confirm         Hello/Up/t1[1,0] -> [0,0]  Refuse          Null[1,*] -> [1,*]  Start           Request/r1[1,*] -> [0,*]  Stop            Null[1,*] -> [1,*]  t1              Request/t1[2,1] -> [3,1]  Up              Down/Hello/Poll/t1/t2[2,1] -> [2,1]  Request         Confirm/Hello/Up/t1[2,2] -> [2,2]  Hello           I-H-U[2,3] -> [2,3]  Hello           I-H-U[2,2] -> [2,2]  I-H-U           ProcessExterior Gateway Protocol Formal Specification                   Page 29D.L. Mills[2,3] -> [2,3]  I-H-U           Process[2,*] -> [1,*]  Start           Request/r1[2,*] -> [4,*]  Stop            Cease/t1[2,1] -> [2,1]  t1              Hello/t1[2,2] -> [2,2]  t1              Hello/t1[2,3] -> [2,3]  t1              Hello/t1[3,1] -> [2,1]  Down            Null[3,2] -> [2,2]  Down            Null[3,3] -> [2,3]  Down            Null[3,1] -> [2,1]  Request         Confirm/Hello/Up/t1[3,2] -> [3,2]  Hello           I-H-U[3,3] -> [3,3]  Hello           I-H-U[3,2] -> [3,2]  I-H-U           Process[3,3] -> [3,3]  I-H-U           Process[3,3] -> [3,3]  Poll            Update[3,3] -> [3,3]  Update          Process[3,*] -> [1,*]  Start           Request/r1[3,*] -> [4,*]  Stop            Cease/t1[3,1] -> [3,1]  t1              Hello/t1[3,2] -> [3,2]  t1              Hello/t1[3,3] -> [3,3]  t1              Hello/t1[3,1] -> [3,1]  t2              Poll/t2[3,2] -> [3,2]  t2              Poll/t2[3,3] -> [3,3]  t2              Poll/t2[4,1] -> [4,1]  Request         Cease[4,*] -> [0,*]  Cease           Cease-ack[4,0] -> [0,0]  Cease-ack       Null[4,*] -> [0,*]  Stop            Null[4,*] -> [4,*]  t1              Cease/t1     In the state-machine model defined in this document all states ofthe above machine are reachable;  however, some are reachable only inextreme cases when one neighbor crashes, for example.  In the commoncase where only one of the neighbors initiates and terminates theprotocol and neither one crashes, for example, not all states arereachable.  Following is a matrix showing the states which can bereached in this case, where the neighbor that initiates and terminatesthe protocol is called the active gateway and the other the passivegateway.Exterior Gateway Protocol Formal Specification                   Page 30D.L. Mills                                Passive GatewayActive     0 Idle      1 Aqsn      2 Down      3 Up        4 CeaseGateway   +-----------+-----------+-----------+-----------+-----------+0 Idle    |stable     |           |           |           |unstable   |1 Aqsn    |unstable   |unstable   |unstable   |unstable   |unstable   |2 Down    |           |           |stable     |unstable   |           |3 Up      |           |           |unstable   |stable     |           |4 Cease   |unstable   |unstable   |unstable   |unstable   |unstable   |          +-----------+-----------+-----------+-----------+-----------+     In the above matrix the blank entries represent unreachable states,while those marked unstable represent transient states which cannotpersist for long, due to retransmission of Request and Hello messages,for example.

⌨️ 快捷键说明

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