As per Relevance of the word successful, we have this rfc below:











Network Working Group T.
Request for Comments: 1756
Category: Experimental January 1995


REMOTE WRITE PROTOCOL - VERSION 1.0

Status of this

This memo defines an Experimental Protocol for the
community. This memo does not specify an Internet standard of
kind. Discussion and suggestions for improvement are requested
Distribution of this memo is unlimited

1.

It is often convenient to use electronic communication
lighter than electronic mail. Sometimes even the use of the talk(1)
*) program seems like overkill. We like to offer to user
like UNIX **) command write(1) ***) except that it can also
messages through the network instead of the single host

There have been few programs offering this kind of service, but
have either based on SUN-RPC protocol or used a strictly
protocol

This document describes a simple Remote Write Protocol (RWP)
should have been documented at least 10 years ago. But late
better than never. Version number of the RWP protocol in
document is 1.0.

2.

RWP is a simple protocol that can be used to relay short
through the network to other users. RWP looks pretty much
Simple Mail Transfer Protocol (SMTP) ****) though it is a bit
complicated due to the interactive nature of the RWP session

The idea behind the RWP session is that client program that
relaying message to the host in which the target user is logged
opens the tcp or udp connection to the server program running in
target machine Then the client gives the sender's and recipient'
identification (usually login ids), actual message body and tells
server to deliver a message to the user. On tcp-connection
returns a status from each action taken. On udp-connection
responses are sent. RWP sessions through udp are implemented
support message broadcasting




Rinne [Page 1]

RFC 1756 Remote Write Protocol January 1995


Message delivering methods are not defined within this document,
the basic method could be a simple write to users terminal. This
basically what UNIX command write(1) does. Depending on
implementation, the delivery method could be configurable
by each user

3.

Server program answers to each command submitted by a response.
responses have two parts: three number unique response code and
short textual explanation of the response. Also whenever the
is ready to accept new commands a notification is submitted to
client

There are three kinds of commands in RWP. The first group is
querying a status of the server. The second group is actual
handling commands and the last set of commands are for RWP
control

When the server is ready to receive a command from the client,
sends a message code 100 to the client. This message is for
as follows

100 Ready

Server commands are as follows

Status

HELP Gives a short help message that contains
RWP commands. Help lines have code 510. Example
implementation *****) gives a following response
HELP command

510 Valid commands are
510 BYE, DATA, HELP, HELO
510 RSET, SEND, PROT, QUIT
510 VRFY,
510 FROM
510 FHST
510 TO recipentlogin [tty
510 FWDS current_hop_

HELO Says hello to the server. Server response to
command has code 500. For example

500 Hello remote.host. This is local.host speaking




Rinne [Page 2]

RFC 1756 Remote Write Protocol January 1995


PROT Asks the RWP protocol version from the server
Response code to PROT command is 502.
version described in this document is RWP 1.0 and
response is as follows

502 RWP version 1.0.

VRFY After the recipient of the message is set by to
described later, the possibility of message
can be queried by VRFY command. If message can
delivered the response code is 108. If message
about to be forwarded the response code is 110
message is either form

110 Recipient ok to forward

or if the server can tell the destination of
forwarding

110 Recipient ok to forward .

Other possible response codes are 669, 670, 671, 674
and 677 and they all indicate that message delivery
by one way or another currently impossible
Description of the codes is later in this document

After the SEND command the server may also
autoreply from the remote user before the
response code. Autoreply lines are ones of code 300.

VER Asks the version of the server program. Response
to VER command is 501 and the textual part of
response is the name and the version number of the
server, for example

501 Rwrited version 1.0.

Message Handling

FROM
Tells the server the identification information of
sender of the message. Usually this id information
user's login id. Response code to successful
command is 105, for example

105 Sender ok





Rinne [Page 3]

RFC 1756 Remote Write Protocol January 1995


TO recipentlogin [tty
Tells the server the identification information of
intended recipient of the message. Usually this
information is user's login id. If tty is submitted
the message is delivered to that tty. If tty
submitted between brackets '[]' the tty given
treated as a hint only. Response code to
TO command is 106.

FHST original.host [forwarder1.host forwarder2.host ...]
Tells the server the host name that the
originates to and the path of the hosts that
forwarded the message. The host name of the
that is currently submitting the message to the
should not be in the path list

This information is relevant if message is
and it is not originally coming from the host that
forwarding it. Response code to successful
command is 111.

DATA Tells the server to start receive the body of
message. Response code to DATA command is 200,
example

200 Enter message. Single dot '.' on line terminates

After response 200 the message lines are submitted
the server one after another. Message is
by the line that contains a single dot '.'.
termination of the message is acknowledged by
server with the response code 107. Server does
notify client about receiving the single
lines. If empty message is submitted (i.e. single
is on the first line) the response code is 672
DATA command only cancels possible previous
command. Because of this all dots or at least
that are standing alone in the line have to be quoted

SEND Sends the message. If commands FROM, TO and DATA
successfully given before SEND command, the message
delivered to the target user. If delivery
successful the response code is 103. If message
not delivered directly to the target user but
forwarded to another host the response code is 104.
Response codes 669, 670 and 671, 677 indicate an
on message delivery and codes 673, 674, 675
that either command FROM, TO or DATA has not



Rinne [Page 4]

RFC 1756 Remote Write Protocol January 1995


successfully given before SEND command. After
SEND command the server may also give autoreply
the remote user before the actual response code
Autoreply lines are ones of code 300.

FWDS n Tells the server that message has been forwarded
times. If the server forwards the message to
another server, it increments the counter and
the remote server the current count of forwards
Response code to the FWDS command is 110 if n is
than the server specific forward limit. If this
is exceeded the response code is 676. If the
code is 676 the client can either quit the session
fail the message or it can give the message to
server despite the fact that the forward limit
exceeded. If the message is given when forward
is exceeded, the server tries to deliver it, but
not forward it to another server. If forward count
given as -1, the message is considered as a
and never forwarded

Session Control

RSET Resets the RWP session. FROM, TO and DATA -
that are given before are canceled and they have
be given again before SEND command can be used.
possible FWDS and FHST commands are canceled

BYE Terminates the RWP session. Server gives a
code 101 and closes the connection

QUIT Is the synonym to bye, but it's a lot more impolite
Response code is however 101 as in bye

Server specific command

QUOTE

Relay a command to the server. If the QUOTE
is successfully completed response code 112
returned. If QUOTE command is failed the
code is 678. If RWP server doesn't recognize
given QUOTE command the response code is 679.

Currently reserved QUOTE commands are AGENT, CHARSET
IDENT, KEY and KEYID





Rinne [Page 5]

RFC 1756 Remote Write Protocol January 1995


4. Response

Here are all legal response codes of RWP server followed by
textual explanation. Only the numeral codes are important and
can contain practically anything, however in response code 110
is possibly useful information between '<' and '>' characters.
characters '<' or '>' should be present in other responses.
response 502 has possibly interesting information about the
protocol version the server supports

100 Ready

The RWP server is ready to accept next command

101 Goodbye

The RWP server is closing connection

103 Message delivered

The SEND command is successfully completed and the message
delivered directly to its destination

104 Message forwarded

The SEND command is completed and message is forwarded to
user

105 Sender ok

The FROM command successful

106 Recipient ok

The TO command successful

107 Message ok

The DATA command successful

108 Recipient ok to send

The VRFY command successful and direct message delivery
possible

109 RSET ok

The RWP server has received the RSET command and reset itself



Rinne [Page 6]

RFC 1756 Remote Write Protocol January 1995


110 Ok to forward



110 Ok to forward .

The VRFY command successful and direct message delivery
forwarding is possible. If response has also
address the client can either forward the message itself
give it to server for forwarding

111 Original sender host ok

The FHST command successful and original sender host is set
given by the client

200 Enter message. Single dot '.' on line terminates

The RWP server is ready to receive the message. Single dot
message line terminates the message


300 |I'm not in right now but I'll be back
300 |at 8 o'clock a.m

Automatical response to the delivered message. Every line
this user defined reply message is delivered in its own 300
line. Response code 300 lines may appear only after
command before response code 103 (message delivered).
receiving autoreply 300 should show the text of the
to the user. Actual autoreply line begins after the '|'
-character in the line

500 Hello remote.host. This is local.host speaking

Response to the HELO command. This message can also occur
the beginning of the conversation without the VER command
it can be ignored

501 Rwrited version X.X

Response to the VER command. This message can also occur
the beginning of the conversation without the VER command
it can be ignored







Rinne [Page 7]

RFC 1756 Remote Write Protocol January 1995


502 RWP version 1.0.

Response to the VER command. This message can also occur
the beginning of the conversation without the VER command
it can be ignored

510 Valid commands are
510 BYE, DATA, HELP, HELO
510 RSET, SEND, PROT, QUIT
510 VRFY,
510 FROM
510 FHST
510 TO
510 FWDS current_hop_

Response to the HELP command

511 Information to the user

Server specific informational response. These responses
occur anytime during the conversation. The client can
them

512 Debug information to the user

Server specific informational response. Reserved for
debugging. These messages may occur anytime during
conversation. The client can ignore them

666 FATAL ERROR

The RWP server got into the fatal error situation and is
to exit immediately. Client programs are strongly
to close the connection

668 Syntax error

The RWP server has received an invalid command

669 Permission denied

The RWP server is unable to deliver the message because
target user has denied the send permission

670 User not logged in

The RWP server is unable to deliver the message because
target user is not logged in



Rinne [Page 8]

RFC 1756 Remote Write Protocol January 1995


671 No such user

The RWP server is unable to deliver the message because
target user does not exist. Error code 670 can be used
replace this message

672 No message

The DATA command is terminated with empty message body.
SEND command can be executed before a new DATA command
given

673 FROM command required

Tried to give the SEND command before FROM

674 TO command required

Tried to give the SEND command before TO

675 DATA command required

Tried to give the SEND command before DATA

676 Forward limit exceeded

Response to the FWDS command that had an argument
exceeded the server specific limit of message
steps

677 Unable to forward message



677 Unable to forward message to .

Response to the SEND or VRFY command if message forwarding
attempted and the server specific limit of message
steps has been exceeded or if message forwarding has
failed. If message forwarding fails with message 669, 670
671, server will not use response 667 but gives response
instead it gives the response analogous with the
occured. If message 677 includes address the message was
be forwarded, the client may try to deliver it itself

698 Unknown error

RWP server has faced an internal error that is not fatal



Rinne [Page 9]

RFC 1756 Remote Write Protocol January 1995


699 Unknown error

RWP server has faced an unknown error that is not fatal

5. RWP Compliant

Simple RWP 1.0 compliant server and client software RWrite-1.1
be available during the fall 1994.

6. Security of

RWP version 1.0 does not offer any mean to verify the identity of
user connecting the RWP server program. It's possible to
the sender using ident-service, but not all hosts currently
that. This vulnerability is analogous with the weakness of the
protocol. Cryptographic user verification and message hiding
is under development and is to be defined in RWP version 2.0
the year 1995.

RWP server also may offer a way to the intruder to get to know
ids within the target host by trying the TO and VRFY commands.
vulnerability is also present in SMTP. It is however possible
build servers so that they never give message 671 (no such user)
use response 670 (user not logged in) instead

Another way to increase security even within RWP-1.0 described in
document is to design RWP servers so that they do not
messages directly to user but instead connect to some kind of
agent process that is executed by each user willing to receive
messages. This user configurable message agent could then
whether to deliver the message to the user and which way of
to use. Message agent is the best way to prevent hostile user
sending uncontrolled message flood to the user's terminal

Sample implementation (RWrite-1.0) of the RWP server includes
support for user configuration files in which each user can
allow or deny messages from some user(s), host(s) or
domains(s). Support for message agents is currently
development

The user that is receiving the message should be able to
characters to be stripped from the incoming messages to
terminal mess-up








Rinne [Page 10]

RFC 1756 Remote Write Protocol January 1995


7. RWP Connection

It is suggested that tcp (and udp) port 18 should be allocated
rwp in future versions of RFCs listing the reserved tcp/udp/
ports. Currently port 18 is assigned to the service called
Send Protocol (msp) that is not known to be implemented.
port 18 is not currently defined at all in the /etc/services -file
the any common UNIX-like system. Entry for /etc/services -file is


rwrite 18/udp # RWP
rwrite 18/tcp # RWP

Given that RWP compliant daemon program is /usr/sbin/rwrited
entry for /etc/inetd.conf -file would be

rwrite stream tcp nowait nobody /usr/sbin/rwrited

8. Character

To offer a safe method to transfer various character sets RWP
a method to quote characters in both message and autoreply. RWP
quotation similar to MIME `quoted-printable' encoding.
character is presented as a '=' -sign followed by a two character
code. This means also that all '='-signs have to be quoted
Quotation is also needed when message contains a line with only
single dot '.' in it

For example
'.' -> =2
'=' -> =3
'\a' -> =07
'\t' -> =09

9. Security

Security issues are not discussed in this memo

10. Author's

Timo J.
Helsinki University of Technology
Cirion
PO-BOX 250
FIN-00121
Helsinki,

EMail: Timo.Rinne@hut.



Rinne [Page 11]








if you see any problems within the linking, don't worry be happy,
this is version 0.1 of the Relevance System and you gotta expect some crappy subroutines sometimes,
just be content we did not write this in Java, which would have made this "bigger and better" HAHAHHA.




RFC documents can be found at I.E.T.F.



Relevance System Copyright © 2002 Spectrum WorldResearch
other technical nosh by ServerMasters Corporation
collaboration of BobX







Spectrum