📄 rfc929.txt
字号:
and the TCP interpreter is informed that the data stream will consist of primarily small blocks. Notes to the Implementor Response 203 might seem silly to some readers, but it's there in case somebody goofed in using the Channel Layer. Transmit Purpose of the Transmit Command The purpose of the Transmit command is to permit the process in the Host to send data using an off-loaded protocol interpreter in the OPE, and also to permit the OPE to deliver data received from the network destined for the process in the Host. The Transmit command is particularly relevant to connection and stream type protocols, although it has applications for connectionless protocols as well. After the Begin command is issued successfully and the proper Response received, Transmit commands can be issued on the given channel. The semantics of the Transmit command depend on whether it was issued by the Host or the OPE. - If the Host issues the Transmit command, a process in the Host wishes to send the data to the destination specified to the off-loaded protocol interpreter that was established (typically) by a previous Begin command on the given H-FP channel. - If the OPE issues the command, the OPE has received data destined for a process in the Host from a connection or stream supported by the off-loaded protocol that was established by a previous Begin command on the given H-FP channel. Parameters of the Transmit Command The Transmit command has one parameter associated with it. It is an optional parameter, to temporarily override the response discipline for this particular transmit command. Some protocols may have protocol-idiosyncratic parameters as well. The transmit command also has data associated with it. All parameters must precede the data to be transmitted.Lilienkamp & Mandell & Padlipsky [Page 21]RFC 929 December 1984Proposed Host-Front End Protocol Response Discipline Override The Response Discipline Override parameter indicates the desired response discipline for that individual Transmit Command, overriding the default response discipline. A single ASCII character is used to indicate the desired discipline. The character "N" indicates that this Transmit command should not block, and should return a response as soon as the data is given to the protocol interpreter in the OPE. The character "B" indicates that this Transmit command should block, meaning that a response should not be generated until the data has been sent to the destination. The default value of this parameter is the currently defined Transmit Command response discipline. The use of this parameter does not alter the currently defined Transmit command response discipline; the default is changed with the Condition command. The control flag for this parameter is -rd. Protocol-Idiosyncratic Parameters Any other parameters to the Transmit command are protocol-idiosyncratic. That is, each protocol that is off-loaded has a set of these parameters, which are documented with a description of the off-loaded protocol. The default value for these parameters is NULL, unless otherwise specified by a particular off-loaded protocol. The control flag for this set of parameters is -pi, which identifies the first protocol-idiosyncratic parameters. Control flags for other protocol-idiosyncratic parameters must be defined for each off-loaded protocol. Responses The following responses for the Transmit command have been identified: 000 Transmit Command completed successfully 201 Transmit Command not appropriate 300 Problem with multiple chunks 301 Syntax problem with Transmit Command 302 Invalid Transmit Command Response Discipline 401 Protocol Interpreter in OPE not responding 402 Failure in remote protocol interpreter 403 Failed; insufficient protocol interpreter resources 501 Failed; insufficient OPE resources 601 Request violates security policyLilienkamp & Mandell & Padlipsky [Page 22]RFC 929 December 1984Proposed Host-Front End Protocol Additionally, protocol-idiosyncratic responses will be defined for each off-loaded protocol. Example of Transmit Command The transmit command is used in TCP to provide the TCP write call. An example of such a transmit command would be: C TR N <nl> <DATA> Where N indicates non-blocking transmission discipline, <nl> is the required command-ending newline, and <DATA> is presumed to be the user's data that is to be transmitted. Notes to the Implementor If you get a 403 or a 501 response and have sent a multiple chunk it probably makes sense to try a single chunk; if you've sent a single chunk, it makes sense to wait a while and try again a few times before giving up on the stream/channel. Condition Purpose of the Condition Command The primary purpose of the Condition command is to permit a process to alter the characteristics that were originally set up with the Begin command. (That is, "condition" is a verb.) These characteristics include the addresses, the mediation level, the type of service, and the flow control parameters from Begin. They may also include protocol-idiosyncratic characteristics. (Although Condition is usually thought of as a Host->OPE command, it may also be used OPE->Host in some contexts.) Condition is a generic command that may find little use in some off-loaded protocols. In others, only some of the parameters identified may make sense. For example, changing the destination address of a TCP connection involves closing one connection and opening another. Consequently, in may make more sense to first issue an End command, and then a Begin with the new address. In other protocols, such as IP or UDP, changing the address on each datagram would be a perfectly reasonable thing to do.Lilienkamp & Mandell & Padlipsky [Page 23]RFC 929 December 1984Proposed Host-Front End Protocol Parameters of the Condition Command The Condition command has the same parameters as the Begin command. Any parameters expressed in a Condition command indicate the new values of the characteristics to be altered; all parameters not expressed retain the current value. Although it is possible to express the change of any of the characteristics originally set up in the Begin command using the Condition command, there are some characteristics that do not make sense to alter, at least for some protocols. For example, once a connection is opened, it does not make much sense to change the Foreign Address Primary or Secondary Components. Doing so is inconsistent with current versions of TCP, and would require the closing of the existing connection and opening a new one to another address. Earlier versions of TCP did permit connections to be moved. If a protocol that provided such a feature was implemented in the OPE, the changing the Secondary Address Components would be a reasonable thing to do. Responses The responses to the Condition command are the same as those to the Begin command. Example of Condition Command The Condition Command can be quite complex, and can be used for many purposes. One conceived use of the condition command would be to change the type of service advice associated with the channel. An example of this (which also demonstrates the ability to skip parameters) is: C -ts T <nl> which causes the offloaded PI associated with the current channel to attempt to achieve high throughput (in its use of the comm subnet(s) in play). Notes to the ImplementorLilienkamp & Mandell & Padlipsky [Page 24]RFC 929 December 1984Proposed Host-Front End Protocol Signal Purpose of Signal Command The purpose of the Signal Command (implicitly at least) is to permit the transfer of out-of-band signals or information between the Host and the OPE, in order to utilize (explicitly) out-of-band signaling services of the off-loaded protocol. The semantics of the Signal command depend upon whether it was issued by the Host or the OPE. - If the Signal command was issued by the Host, it means a process in the Host desires to send out-of-band data or an out-of-band signal. - If the Signal command was issued by the OPE, it means out-of-band data or an out-of-band signal arrived for the process associated with the channel in the Host. Parameters of the Signal Command The basic usage of the Signal command is with no parameters, which sends or reports the receipt of an out-of-band signal. Some protocols, such as the NBS Transport Protocol, permit the user to send data with the out-of-band signal. Hence, data is permitted to accompany the Signal command. There may also be protocol-idiosyncratic parameters for the Signal command. If this is the case, these parameters would come before the data. Protocol-Idiosyncratic Parameters The parameters for the Signal command are protocol idiosyncratic. That is, each protocol off-loaded has a set of these parameters. The default value for these parameters is their previous values. Control flags for multiple protocol-idiosyncratic parameters must be defined for each off-loaded protocol. Responses The following responses have been identified for the Signal command: 000 Command completed successfully 201 Command not appropriate 300 Problem with multiple chunks 301 Syntax problem with CommandLilienkamp & Mandell & Padlipsky [Page 25]RFC 929 December 1984Proposed Host-Front End Protocol 401 Protocol Interpreter in OPE not responding 402 Failure in remote protocol interpreter 403 Failed;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -