Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!decvax!decwrl!ucbvax!SCRC-YUKON.ARPA!Margulies From: Margulies@SCRC-YUKON.ARPA.UUCP Newsgroups: mod.protocols.tcp-ip Subject: Port Multiplexing Details Message-ID: <860519074440.9.MARGULIES@REDWING.SCRC.Symbolics.COM> Date: Mon, 19-May-86 07:44:00 EDT Article-I.D.: REDWING.860519074440.9.MARGULIES Posted: Mon May 19 07:44:00 1986 Date-Received: Tue, 20-May-86 20:12:20 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 36 Approved: tcp-ip@sri-nic.arpa I have been thinking about how the port multiplexing protocol might work. Part of it seems simple enough, but part does not. For TCP, the following sketch seems easy enough: Given a TCP port for a NAMED-TCP-SERVICE service, you connect to that port, and send the name of the service you want followed by a CRLF. If the service exists, your connection is handed off to it. If not, the connecting is closed. Server implementions are welcome to mark the TCB with the service name. Conceptually, note that there need not be any numeric port number associated with the protocol at all. Some implementations may choose to implement this as a mapping from names to ports. It is particularly useful for the port used to vary, so that no explicit configuration is needed to avoid collisions between protocols. For UDP, the problem is harder. In the CHAOS protocol, the datagram equivalent carries a protocol name. However, it dosen't carry any data. Having UDP packets include a protocol name would none the less be the most elegant. I fear that it won't be practical. It would probably be necessary to invent UDP-2 as a full-fledged protocol that stored the name-length in the header. The weaker alternative is a UDP service that converts a protocol name into a port number. The problem here is the lifetime of the resulting information. If the mapping from names to numbers has to be permanent, then each server implementation has to have a way to maintain a permanent data base of the assignments, which would be a shame.