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

📄 rfc91.txt

📁 RFC技术文档 从0000-05
💻 TXT
📖 第 1 页 / 共 2 页
字号:
establishing a process independent in all senses of the process thatmade the request. Otherwise, self- protection mechanisms which arereasonable for any system will make us all much more interdependent thatwe wish. To do this, there must exist in every system a UUO/SVC thatdoes the right thing (ATTACH, but forget me). If this is true, then theLOGON process over the Network is tantamount to issuance of a foreignUUO/SVC by another node in the Network. I see no reasonable way aroundthis. If that is the case, then SYS N is the kind of flag to use toconvey the requisite data. If that is so, then it is only reasonable tolet SYS convey a request for any OS instruction at the user program-operating system interface level!The practical questions of implementation are something else! In thecase of the PDP-10, I can pretty well see how to turn a SYS into eithera LOGON request to execute a monitor command or UUO (would that theywere the same) as the case might be. OS/360 is more sophisticaed,unfortunately. MULTICS might make it.  Naytheless, I hope that is clearthat what we want to do, which is what the protocol should reflect, isquite a different question from that of how it is to be done in thecontext of a specific HOST system. What we want to do is, in general,rather independent of the system we are dealing with as far as theprotocol is concerned, and we should not fail to introduce generalnotions into the protocol just because we are uncertain as to how theymay have to be translated into particular implementation practice.                                                                [Page 6]A PDP-10 IMPLEMENTATIONAlthough the following can be implemented as either a set of userroutines or imbedded in the monitor as UUO's (our first implementationwill be the former), the latter version will be used for descriptivepurposes. The UUO's would be:     PUTF    CH, E   Put flag     PUTD    CH, E   Put data     PUT     CH, E   Put record     GETFD   CH, E   Get flag or data     GET     CH, E   Get recordIn the above, "CH" is the logical channel number. The customary OPEN orINIT UUO is used to open the channel. Standard format user buffers areassigned. However, the ring and buffer headers will be used in anonstandard way, so that data mode 12 is assigned for used with Networkbuffering and file status bit 31 must be on for input. (Any of thedevices DSK, DTA, MTA, or IMP can be used in this mode.)In the Harvard NCP and HOST-HOST protocol implementation, user buffersdo not correspond directly to messages. On output, each user buffer willbe formatted into a message; on input, a message may become one or twouser buffer loads (128 word buffers are used in order to make maximumuse of the facilities of the disk services routines).PUTF UUO:This UUO places a flag into the output buffer. The effective address isthe location of a word:     XWD operation, countIn the case of block flags, the count is ignored, since it will becomputed from the number of bytes actually placed in the buffer beforethe next use of PUTF. PUTF and PUTD will insert EOM flags automaticallyas each buffer becomes full; if data bytes are currently being placed inthe buffer by PUTD, it will also insert an EOM flag after computing thecount for the previous block flag in the buffer and place a new blockflag of the same type at the beginning of the next buffer, afterinserting a SIZE flag stating the then current byte size.PUTD UUO:This UUO places data into the output buffer. The effective address isthe location of the data byte (if the byte size is less than 36) or ofthe next 36 bit word of data to be placed in the buffer. In the firstcase, the byte is assumed to be in the low order part of the word                                                                [Page 7]addresses. In the second case, the data word containing the final bitsof the byte contains them in the high order part of the word, and thenext data byte starts a new word in PDP-10 storage. Thus, for a bytesize of 64, two .ne 5 entries to PUTD would be used per bytetransmitted, the first containing 36 bits and the second containing 28bits, left- justified. This strategy allows maximum use of the PDP-10byte handling instructions.PUT UUO:This UUO places a whole logical record in the output buffer(s).  Theeffective address is that of a word:     IOWD count, locationA PUTF UUO must have been used to output the proper SIZE flag.Thereafter, each use of PUT will output a BLOCK flag,*simulate a number of calls to PUTD using the IOWD to discover thelocation and size of the user data area, and then output a RS flag toindicate end of record.In the case of byte size of less than 36 bits, PUT will use the ILDBinstruction to pick up bytes to be output by PUTD. Hence, the standardPDP-10 byte handling format is used, and the count part of the IOWD isthe total byte count, not word count.The above UUO'S have both an error return and a normal return.GETFD UUO:The calling sequence for this UUO is:     GETFD CH, E     error return     whyte flag return     block flag return     data return                                                                [Page 8]The effective address is the location at which the flag or data will bereturned. The flag is returned in the same format as for PUTF and thedata in the same format as for PUTD. Certain flags (NUL, IGNORE, andEOM) will be handled entirely with the UUO and will not be reported tothe user. SYS should eventually be handled this way, but initially willbe handled by the user.GET UUO:The calling sequence for this UUO is:     GET CH, E     error return     end of file return     end of group return     normal returnGET transmits the next logical record to the user, using GETFD togetherwith an IOWD in the same format as for PUT. If the IOWD count runs outbefore end of record, the remainder of the record will be skipped. Inany case, the updated IOWD will be returned at the effective address ofthe UUO in order to inform the user how much data was transmitted orskipped.PDP-10 FILE TRANSMISSION:Assume that I have a link connected to another PDP-10 and a user processthere that is listening. In order to get that process to send me a file,the sequence of flags that might be transmitted can be represented asfollows, where the UUO'S executed by me are in the left margin, theflags are indented, and the commentary opposite them indicates thenature of the data block transmitted:                                                                [Page 9]PUT F     CONTROL   Data with OPEN parameters, requesting OPEN     LABEL     File identification data for LOOKUP     EOM       Forces message to be transmittedGETFD     STATUS         Status returned by OPEN     SIZE      Byte size to be used     LABEL          File retrieval informationPUTF     CONTROL        Data requesting INPUT from file     EOM            Forces request to be transmittedGETFD     STATUS         Status bits returned by INPUTGET                 Logical record (one file buffer load)     (loop back to second PUTF, above, for other records)Finally, the status information returned by the second GETF indicatesend of file, and I wind up with the sequence:PUTF     CONTROL        Data requesting a CLOSE     EOM            Forces transmissionGETFD     STATUS         Status bits returned by CLOSEIn the case I am getting a file, the main loop looks like:PUTF     CONTROL        Data requesting OUTPUTPUT                 Logical record (one file buffer load) PUTF     EOM            Forces transmissionGETFD     STATUS         Status bits returned by OUTPUTThe use of both the record and the flag transmission UUO's is worthnoting, as well as the use of the EOM flag to force transmission of amessage when switching between input and output over the link. PUT andGET UUO's are clearly required above for transmission of the CONTROL andLABEL data; I suppressed them for the sake of clarity.For this application, the handshaking nature of the transmission ofCONTROL and STATUS flags are mandatory. While the protocol would permit                                                               [Page 10]transmission of a complete file without the handshaking, it would be anall or nothing proposition - a single error would necessitate doing itall over again, presuming that the receiving process did not end up in acomplete tangle.BRIEF DISCUSSION:The PDP-10 space required to implement the above protocol is about 400instructions, divided equally between the input and the output side.Enough experimental coding has been done to confirm the feasibility ofthis basic strategy, taken together with experience with implementationand use of the SOS buffering system.The above does not touch the question of LOGON protocol, exceptindirectly. My belief is that it can be accommodated in the framework ofthis proposal, but I have not tested this theory as yet. As indicatedfurther above, I would be tempted to handle the matter with the SYSflag, given that SYS data is interpreted directly by the system (in oursystem, we would use the RUN UUO to run the LOGON CUSP, which would, inturn handshake using ASCII data over the link). In this way, I think wemight be able to dispense with the notion of dedicated sockets and thereconnection morass.One other point that needs thought is the question of how to handle theinterrupt on link facility. Should it have any direct relation to theGET/PUT UUO's, or be handled on the side? I am inclined to think that itshould be treated qua interrupt of the user process, quite independentlyof the matter of data transmission over the link. Some of our currentwork on the PDP-10 monitor would lend itself rather easily toimplementation as a true interrupt.ENDNOTES*1.  A message is that string of bits between any two HOST-HOST headers.2.  In memory of an attractive, but nonspelling, SDC secretary whocould not distinguish between black and white, at least during 1957and in manuscript form.3.  PUTF may be used to ouput the block flag, if a different fromBLOCK is required.       [ This RFC was put into machine readable form for entry ]       [ into the online RFC archives by Colin Barrett  9/97   ]                                                               [Page 11]

⌨️ 快捷键说明

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