📄 rfc705.txt
字号:
FEP is device independent. For the present however, an initial implementationwill be accomplished using the DEC PDP/11 computer as the FE device and thefront-end software is to be based upon an extended version of the original ELFsystem developed at SCRL.For more detailed information, see Appendix C. by : 9 G. W. Bailey (BAILEY@OFFICE-1) K. McCloghrie (MCCLOGHRIE@OFFICE-1) ***WORKING DOCUMENT*** 28RFC 705Front-End Protocol ***WORKING DOCUMENT*** APPENDIX A 10 References[1] ICP is used in this document in a less strict manner than specified in NIC 7101, in that it is not necessarily two simplex connections that are set up as the result of the exchange of the socket number on the initial connection.[2] An example of connections needing to be affiliated, is in the implementation of FTP, where the control connection and the data connection have a defined relationship in their socket assignments.[3] Note that a range of socket numbers is reserved for use by an index when it is set-up (cf. AEN). However, socket numbers for the paths of an index are not necessarily contiguous. For instance, when the next path opened after a SEND path is another SEND path, or when a path other than the first of an index is opened with ICP specified. Nevertheless, if a protocol requires contiguous sockets, then the opening of the paths in a logical manner will provide the contiguity.[4] One possible translation will be from a Network Virtual Terminal on the network side to a local terminal type on the Host side.[5] The FE will directly equate the INTERRUPT command with the Host-Host protocol INR/INS commands.[6] Note that the READY indication in a REPLY is, in the general case, not directly related to a network RFNM; unless it is heavily loaded, the FE will be buffering possibly more than one message (in either direction) until flow control mechanism allow the messages to be sent on. However, it is possible that a particular Host might wish to have knowledge of receipt of a previous message before transmitting the next. In this case, the FEP implementation could be set up to only indicate READY after receiving the RFNM and possibly only send RFNMs after receiving a REPLY containing an ACK. ***WORKING DOCUMENT*** 29RFC 705Front-End Protocol ***WORKING DOCUMENT*** APPENDIX B 11 State DiagramsIn the state diagrams below the following notation is used: REPLY(A) - REPLY with ACK=1, READY/NOT-READY irrelevant REPLY(N) - REPLY with NAK=1, READY/NOT-READY irrelevant REPLY(R) - REPLY with ACK=0, NAK=0, READY=1 REPLY(A+R) - REPLY with ACK=1, READY=1 REPLY(N+R) - REPLY with NAK=1, READY=1 REPLY(A+NR) - REPLY with ACK=1, NOT-READY=1 REPLY(N+NR) - REPLY with NAK=1, NOT-READY=1 State Diagram for INDEX / ------\ /-------\ /-----\ ! !BEGIN(new index) ! ! ! ! ! !->--------------->-!Index ! ! ! !Index !LISTEN(new index) !Open ! ! ! !Closed ! !Pending! !Index! ! ! REPLY(N)! !REPLY(A) !Open ! ! !-<---------------<-! !->------->-! ! ! ! \-------/ ! ! ! ! ! ! ! ! /-------\ END(Path=0)! ! ! ! ! !-<-------------<-! ! ! ! REPLY(A)!Index ! ! ! ! !-<---------<-!Close !REPLY(N) ! ! ! ! !Pending!->------------->-! ! \-------/ \-------/ \-----/ ***WORKING DOCUMENT*** 30RFC 705Front-End Protocol ***WORKING DOCUMENT*** APPENDIX B (continued) State Diagram for Whole Path /------\BEGIN /----------\ ! !->-------->-! ! ! !LISTEN !Connection! !Path ! !Pending !REPLY(A) /-------\ !Closed! REPLY(N)! !->------------>-! ! ! !-<--------<-! ! ! ! ! ! \----------/ !Path ! ! ! !Conn- ! ! ! /-----\ RESPONSE(CODE>0)! ecting! ! ! ! !-<-----------------<-! ! ! ! !Path ! ! ! ! ! REPLY(A)!Abort! END(PATH>0)! ! ! !-<--------<-!Pend-!-<-----------------<-! ! ! ! ! ing ! ! ! ! ! ! !REPLY(N) ! ! \------/ ! !->----------------->-! ! \-----/ ! ! ! ! /-------\ ! ! ! ! RESPONSE(CODE=0)! ! /----\ !Path !-<--------------<-! ! ! ! !Open ! ! ! !Path! !Pending!REPLY(N) ! ! !Open! REPLY(A)! !->-------------->-! ! ! !-<--------<-! ! \-------/ \----/ \-------/ ***WORKING DOCUMENT*** 31RFC 705Front-End protocol ***WORKING DOCUMENT*** APPENDIX B (continued) State Diagram for Each Direction of Path /----\MESSAGE /-------\ /-------\ ! !->---------------->-! !REPLY(A+NR) ! ! !Path!INTERRUPT !Command!->--------->-!Message! !Open! !Blocked!REPLY(N+NR) !Blocked! ! ! ! ! ! ! ! ! REPLY(A+R)! ! INTERRUPT! ! ! !-<----------------<-! !-<---------<-! ! ! ! REPLY(N+R)\-------/ ! ! ! ! REPLY(R)! ! ! !-<----------------------<---------------<-! ! ! ! ! ! ! !END(PATH>0) /-------\ END(PATH>0)! ! ! !->---------------->-! !-<---------<-! ! ! ! ! ! ! ! ! ! REPLY(N+R)!Path !REPLY(N) ! ! ! !-<----------------<-!Close !->--------->-! ! \----/ !Pending! \-------/ ! ! /------\ REPLY(A)! ! !Path !-<--------------<-! ! !Closed! ! ! ! ! \-------/ \------/ ***WORKING DOCUMENT*** 32RFC 705Front-End Protocol ***WORKING DOCUMENT*** APPENDIX C Front-End ImplementationIntroductionA Network Access System (NAS), developed for a DEC PDP/11 computer, supportsthe current Imp-Host, Host-Host and ICP protocols. The implementation ofthese protocols facilitate process-process communications across the networkand multi-user TELNET access to foreign hosts. This NAS provides the FE environment in which FEP is implemented.The NAS system is comprised of a Kernel or executive section and a NetworkControl Program (NCP) plus a collection of modules to support deviceinterfaces, handle terminals, and implement applications, as appropriate. Thesoftware is modular and extensible.The KERNELThe Kernel of the system consists of a set of functional modules which performthe task of resource management in a multiprocessing environment. This allowsprocesses to be created, vie for processor service according to priority, intercommunicate, and be terminated. System primitives exist for varioustasks such as process creation and synchronization, storage allocation, andsharing of the interval timer.The term process used here describes an autonomous sequence of states broughtabout by the PDP-11 processor; a process' state is characterized by the set ofprocessor registers, a stock, and process-owned storage areas. Process share storage areas which are accessed only (eq. pure code). Processes also sharestorage areas which may be updated (eq. control tables). In this case anallocation mechanism is utilized to prevent simultaneous ownership of an updatable storage area. The storage area is thus viewed as a sequentially sharable resource which is allocated by the process, modified, and thenreleased.Processes are given control of the processor by a single procedure called theDispatcher. Processes are said to be in a ready state or in a waiting state.When a process blocks itself, control is given to the highest priority readyprocess. ***WORKING DOCUMENT*** 33RFC 705Front-End Protocol ***WORKING DOCUMENT***Each process has an associated input message queue. This queue is the vehiclefor interprocess communication. A process is blocked (put into a wait state)when its input message queue becomes empty (voluntary wait), or when an interrupt occurs (involuntary wait) because a higher priority process is toreceive control of the processor. A process may voluntarily block itselfwaiting for any signal, or it may block itself for a specific event to beposted to its input message queue.The Network Control ProgramThe NCP provides "third level" protocol functions to local processes. Itcontains a process which decodes and passes messages which have been receivedfrom the IMP and placed on the IMP-Host queue. This process interacts withother processes which call the NCP to establish connections or to transmitdata. Thus the NCP is essentially divided into two parts: 1) a process which handles incoming messages from the network, interprets IMP-Host and Host-Host control messages, and forwards regular messages on established connections; and 2) a set of primitives which allow local processes to establish connections to other processes across the network, and to perform requests for data to be transferred on these connections.There are two primary data structures used by the NCP to monitor the statusof network connections. The first is called the Host Table, and describesthat which is peculiar to each given host; the second is referred to as aConnection Table and contains all information on the state of a local NCP socket (connection). Connection Tables may be created either throughexternal requests (e.q., an RFC is received from a remote host) or throughinternal requests (e.g., a local process performs a LISTEN).Flow control is that portion of the NCP which governs the flow of data onconnections. There are two procedures which perform this task; one which handles receive connections and one which handles send connections. Theseprocedures receive control when an event has occurred which may now make it possible to transfer data on a connection.Both send and receive flow control procedures have the responsibility of movingdata between local process buffers and messages being received or transmittedover the network. In addition, they handle the formatting and unpacking of ***WORKING DOCUMENT*** 34RFC 705Front-End Protocol ***WORKING DOCUMENT***messages received. Local processes are unaware that data is being transmittedas discrete messages.The NCP watchdog process monitors the state of network connections, checkingfor error conditions and performing garbage collection tasks. It receives control at periodic intervals and scans the list of known hosts, looking forexisting connections. For each host to which an input or output connectionexists, the Watchdog causes a Host-Host NOP message to be sent. Thus if aremote Host crashes while data is being awaited, local processes are informedof the error condition. The NCP takes notice of the remote crash when itreceives a IMP--Host type 7 control message (Destination Host Dead). It thenautomatically closes all connections to that Host, and notifies using processesof that fact.A second function of the NCP Watchdog is to check for connections hung becauseof an outstanding RFNM. If a RFNM is not received for a specified interval,the message is discarded, and the associated connection closed.The FEP HandlerThe Front-End Protocol is implemented as a collection of related, butspecialized processes which manage network connections on the one side, andmanage FEP paths and indexes on the other. Some FEP processes are NCP users.They cause network connections to be made, rule on incoming RFCs, and bothaccept and generate network data. Other FEP processes support the Host.These processes parse incoming commands, create indexes and paths, controlthe generation of replies and generally manage the paths. Certain FEP processes control specialized tasks such as translation of data, servicing of LISTEN commands and generation of RESPONSE commands.Two data structures provide control information for FEP activities. An IndexTable exists for each active index. Each Index Table associates one or morePath Table entries. Information in the Path Table reflects the state of thepath, the translation type specified for data on this path, and necessaryinformation to associate the path to any appropriate NCP Connection Tables.The Path Table is the common interface for all of the FEP modules. Most FEPprocesses are activated to service some event which is usually associated toa path. The action of the process will likely be dic
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -