The list of TCP and UDP port numbers [1] is a treasure trove of historical artefacts. It's amazingly hard to find information on e.g. "compressnet", which is wasting port 2 and port 3 for eternity.
I was skeptical at first but found evidence to corroborate it's the same thing, the key fact being the company named Process Software.
The reference in RFC1340 for it says "Bernie Volz" of process.com. Searching on that let me to a Web-0.9 style page with the text "compressnet/tcp is a protocol that is used to compress TCP connections for WANS. It used two ports to compress tcp conections, one to send the compressed TCP connection data through, and one used for the management of CompressNet. This is a commercial product only."
It is not bad design. At least in world without firewalls or NATs. It potentially allows things like one machine setting up file transfer between two servers. Not sure if this was done, but could be done.
Lot of stuff was rather interesting design, which we really have gotten away with how our current networks are build. Like multi and broadcasting for actual content.
"It potentially allows things like one machine setting up file transfer between two servers. Not sure if this was done, but could be done."
Well I certainly recall doing it back in the 90s.
I vaguely recall it was sending PASV to one server, taking its response values, and providing them in a PORT command to the other server. Then sending the RETR and STOR commands respectively to the two servers.
It is much more complicated than using two ports. There are two modes of ftp, active and passive.
In active mode the client connects to the server on port 21. It then issues a PORT command which tells the server which port on the client to connect to for data. The server connects to destination port on the client using port 20 as the source port.
In passive mode the client connects to the server on port 21 and issues the PASV command. The server chooses a random port for data and responds back to the client with a PORT command indicating this port. The client then connects to this destination port on the server using a random high port as the source port.