TCP port service Multiplexer (TCPMUX)
A way to select a TCP service by name through one shared port.
Lottor, M., "TCP port service Multiplexer (TCPMUX)", RFC 1078, DOI 10.17487/RFC1078, November 1988, <https://www.rfc-editor.org/info/rfc1078>.
@misc{rfc1078,
series = {Request for Comments},
number = 1078,
howpublished = {RFC 1078},
publisher = {RFC Editor},
doi = {10.17487/RFC1078},
url = {https://www.rfc-editor.org/info/rfc1078},
author = {M. Lottor},
title = {{TCP port service Multiplexer (TCPMUX)}},
pagetotal = 2,
year = 1988,
month = nov,
} RFC text
Contents
Network Working Group M. Lottor
Request For Comments: 1078 SRI-NIC
November 1988
TCP Port Service Multiplexer (TCPMUX)
Status of this Memo
This RFC proposes an Internet standard which can be used by future
TCP services instead of using 'well-known ports'. Distribution of
this memo is unlimited.
Overview
Ports are used in the TCP to name the ends of logical connections
which carry long term conversations. For the purpose of providing
services to unknown callers, a service contact port is defined. The
contact port is sometimes called the "well-known port". Standard TCP
services are assigned unique well-known port numbers in the range of
0-255. These ports are of limited number and are typically only
assigned to official Internet protocols.
This RFC defines a protocol to contact multiple services on a single
well-known TCP port using a service name instead of a well-known
number. In addition, private protocols can make use of the service
without needing an official TCP port assignment.
The Protocol
A TCP client connects to a foreign host on TCP port 1. It sends the
service name followed by a carriage-return line-feed <CRLF>. The
service name is never case sensitive. The server replies with a
single character indicating positive ("+") or negative ("-")
acknowledgment, immediately followed by an optional message of
explanation, terminated with a <CRLF>. If the reply was positive,
the selected protocol begins; otherwise the connection is closed.
Service Names
The name "HELP" is reserved. If received, the server will output a
multi-line message and then close the connection. The reply to the
name "HELP" must be a list of the service names of the supported
services, one name per line.
The names listed in the "Protocol and Service Names" section of the
current edition of "Assigned Numbers" (RFC-1010 at this time) are
reserved to have exactly the definitions specified there. Services
with distinct assigned ports must be available on those ports and may
optionally be available via this port service multiplexer on port 1.
Private protocols should use a service name that has a high chance of
being unique. A good practice is to prefix the protocol name with
the name of your organization.
Multiple versions of a protocol can suffix the service name with a
protocol version number.
Implementation Notes
A negative reply will typically be returned by the port-multiplexing
process when it can't find the requested service. A positive reply
will typically be returned by the process invoked by the port
multiplexer for the requested service.
ISO Plain Language
On this page
§1One Port for Multiple Services
TCP ports identify the ends of logical connections. Standard TCP services have unique well-known port numbers, which the RFC says were assigned in the range 0 to 255 and were limited in number. TCPMUX offers another way to contact multiple services: clients use a service name at one well-known port rather than needing a separate assigned port for each service.
Instead of choosing a different well-known port for every service, a client can reach a shared port and name the service it wants.
§2Requesting a Service
The client connects to the remote host on TCP port 1 and sends the service name followed by a carriage return and line feed. Service names are not case-sensitive. The server replies with a plus sign for a positive acknowledgment or a minus sign for a negative one, optionally followed by an explanation ending in CRLF. After a positive reply, the selected protocol begins; after a negative reply, the connection closes.
The client sends the service name. A plus sign means that service can begin; a minus sign means the connection will close.
§3Service Names
The name HELP is reserved. It makes the server return a multi-line list of supported service names and then close the connection. Names listed in the current Assigned Numbers document are reserved for their defined services. For private protocols, the RFC recommends a name likely to be unique, such as one prefixed by an organization name; a protocol version may also be appended.
HELP asks for the list of services. The RFC recommends distinctive names for private services so clients can tell them apart.