Message Send Protocol
An experimental protocol for sending a short message to a user on another host.
Nelson, R., "Message Send Protocol", RFC 1159, DOI 10.17487/RFC1159, June 1990, <https://www.rfc-editor.org/info/rfc1159>.
@misc{rfc1159,
series = {Request for Comments},
number = 1159,
howpublished = {RFC 1159},
publisher = {RFC Editor},
doi = {10.17487/RFC1159},
url = {https://www.rfc-editor.org/info/rfc1159},
author = {R. Nelson},
title = {{Message Send Protocol}},
pagetotal = 2,
year = 1990,
month = jun,
} RFC text
Contents
Network Working Group R. Nelson
Request for Comments: 1159 Clarkson University
June 1990
Message Send Protocol
Status of this Memo
This RFC suggests an Experimental Protocol for the Internet
community. Hosts on the Internet that choose to implement a Message
Send Protocol may experiment with this protocol. Please refer to the
current edition of the "IAB Official Protocol Standards" for the
standardization state and status of this protocol. Distribution of
this memo is unlimited.
Discussion
The Message Send Protocol is used to send a short message to a given
user on a given terminal on a given host. This is similar to the
service provided by Unix's write command, which is limited to the
users on that host. This service is also known on some hosts as
"SEND".
As the Internet grows, more and more people are using hosts that do
not run TCP/IP at all times. These hosts may be able to use a simple
protocol that can be implemented in a subset of TCP/IP. The Message
Send Protocol is one such protocol.
Note that a message sending protocol is already defined using TCP.
The SMTP protocol includes a "SEND" command that will direct mail to
a user's terminal. SMTP's SEND is not useful in this instance
because TCP requires quite a bit of code. For the purposes of
standardization, we will include a TCP based Message Send Service.
TCP Based Message Send Service
One message send service is defined as a connection based application
on TCP. A server listens for TCP connections on TCP port 18. Once a
connection is established a short message is sent by the client out
the connection (and any data received by the client is thrown away).
The client closes the connection after sending the message.
UDP Based Message Send Service
Another message send service is defined as a datagram based
application on UDP. A server listens for UDP datagrams on UDP port
18. When a datagram is received by the server, an answering datagram
is sent back to the client containing exactly the same data.
Message Syntax
The message should consist of several parts. The first part is a
single octet indicating the protocol revision, currently decimal 65,
'A'. The second part is the name of the user that the message is
directed to. This and the remaining parts are null-terminated, and
consist of eight-bit characters. Do not strip the eighth bit of the
characters. The third part is the name of the terminal. The fourth
part is the actual message.
The total length of the message shall be less than 512 octets. This
includes all four parts, and any terminating nulls.
If the terminal part is empty, then "the right" terminal is chosen.
If the user part is empty, then the message is written on the
console.
If this protocol is changed, the revision number will be changed. In
no case will any of the four parts be removed.
Advisories
It is advisable for servers to strip escape sequences before sending
them to actual terminals. Some terminals can do nasty things when
you send them certain escape sequence.
In both the TCP and UDP versions of the service, checksums are always
used.
Security Considerations
Security issues are not addressed in this memo.
Author's Address
Russell Nelson
Educational Computing System
Clarkson University
Potsdam, NY 13699-5730
Phone: (315) 268-6455
EMail: nelson@sun.soe.clarkson.edu
ISO Plain Language
On this page
§1Purpose of Message Send
The Message Send Protocol sends a short message to a given user on a given terminal on a given host. The RFC compares it with the Unix write command, which is limited to users on the same host.
The memo says some hosts did not run TCP/IP at all times and might be able to use a simpler protocol implemented in a subset of TCP/IP. It also notes that SMTP already had a SEND command, but says TCP required substantial code for the intended use.
The protocol sends a short message to a named user and terminal on another host. It was proposed for systems that could use a simpler service than a full TCP connection.
§2TCP and UDP Services
The TCP service listens on TCP port 18. A client establishes a connection and sends the message; data received by the client is discarded, and the client closes the connection after sending.
The UDP service listens on UDP port 18. When the server receives a datagram, it sends an answering datagram containing exactly the same data back to the client.
The TCP and UDP versions both use port 18. The TCP client sends over a connection, while the UDP server echoes the received datagram back.
§3Message Fields and Length
The message has four parts: a one-octet protocol revision, the target user name, the terminal name, and the message text. The current revision value is decimal 65, the character A. The user name and remaining parts are null-terminated eight-bit characters, and the eighth bit must not be stripped.
The total message length, including all four parts and terminating nulls, must be less than 512 octets. An empty terminal part selects the appropriate terminal; an empty user part sends the message to the console.
The message identifies its revision, user, terminal, and text. Its total length must be under 512 octets, including the null terminators.