📄 rfc929.txt
字号:
TCP The code for the protocol TCP
A Indicates Active Begin
ISIA The name of a Host at USC-ISI
9 Mediation Level 9: Full OPE mediation
N Non-blocking transmit
23 Destination Telnet Port
,, skip over parameters (Local Address Secondary,
Begin Timeout Interval)
N0 Type of Service Advice: No special Advice,
Normal Precedence
S Flow Control Advice: use small blocks
This command will cause the OPE to invoke the TCP interpreter
to generate the initial SYN packet to the well-known Telnet
socket on Host ISIA. It also informs the OPE to do all TCP
related processing via the Mediation Level, accepts default
Lilienkamp & Mandell & Padlipsky [Page 20]
RFC 929 December 1984
Proposed Host-Front End Protocol
Local Address parameters, and sets the Begin Timeout Interval
to infinity. The precedence of the TCP connection is Normal,
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 1984
Proposed 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 policy
Lilienkamp & Mandell & Padlipsky [Page 22]
RFC 929 December 1984
Proposed 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 1984
Proposed 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 Implementor
Lilienkamp & Mandell & Padlipsky [Page 24]
RFC 929 December 1984
Proposed 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -