RFC 1159 EXPERIMENTAL MESSAGING · APPLICATIONS · PROTOCOLS

Message Send Protocol

An experimental protocol for sending a short message to a user on another host.

On rfc-editor.org ↗
PUBLISHED
June 1990
AUTHORS
R. Nelson
STREAM
Legacy
OBSOLETED BY
RFC 1312 — MSP2
TCP SERVICE PORT
18
UDP SERVICE PORT
18
CURRENT REVISION VALUE
65 (A)
MESSAGE LENGTH
Less than 512 octets
DOI
10.17487/RFC1159

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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
PROBLEMSome hosts did not run TCP/IP at all times but could use a simple protocol to send a short message to a user on another host.
MECHANISMThe RFC defines TCP and UDP message-send services on port 18 and a four-part message format shorter than 512 octets.
EXPERIMENTAL, SUPERSEDEDRFC 1159 is an experimental protocol and was obsoleted by RFC 1312.

§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.

§4References