Puts, Gets, and Serving Up Transfers Faster
March 30, 2017
HP 3000s are exchanging files with other servers, a process that's included the FTP protocol for more than 15 years. This capability was once so magic that the arrival of Samba file exchange on MPE/iX was lauded as a breakthrough. FTP is quite a ways off the most current of transfer protocols. One manager's started a discussion about how to improve transfer speeds to and from the 3000, though. He's using DSCOPY as well, but prefers the PUTs and GETs of FTP.
The advice that's current about FTP/iX says that hard-coding the 3000's ports (100mb full duplex, or 10mb half) is one way to speed things up. Ensuring your traffic is not running through a proxy (called "being proxied) is another idea. Measuring the speed of a PUT against a GET is one step in discovering why the 3000's FTP might seem slow.
In 2008, MPE/iX gained a secure version of FTP—at least part of one. This SFTP functionality arrived at the end of the Hewlett-Packard lab era for 3000s, a period when new tools were not being placed into wide use. Sites were locking down their 3000 scope of operations to ensure stability. The port of this then-current functionality fell short of complete: only an FTP secured client got created. PUTs could be secured, as well as GETs. But only from Windows, Unix, or Linux hosts to the 3000. The 3000 wasn't going to dish out files using secured FTP. There are notes in place to carry the work forward, though.
MPE/iX tools and components are also out there to complete this securing of file transfers. OpenSSH is the best-known protocol. A quick-start bundle can be downloaded from the MPE-OpenSource website run by Applied Technologies. There are SFTP installation instructions at Applied, too. Someone who's got a need for securing FTP transfers will need to do the server side of the porting, which was completed on the client side by Ken Hirsh, Mark Bixby, and Mark Klein. Requests to speed up FTP are a sign this porting would be more than just an open source hobby project.
Brian Edminster, the senior consultant at Applied Technologies, explained that "with a bit of work, you could get OpenSSH v 3.7.1p2 working. The issue is that 'select' is busted under MPE/iX, and that's what's required for ssh to work correctly."
The fact remains: ssh cannot connect to a remote system and execute commands that produce any output. Ken Hirsch did the original port, but he only really needed the SFTP client -- so the issue with ssh wasn't addressed.
Ken also posted on the 3000-L newsgroup in 2008, asking if there was any interest in getting an ssh and sshd/sftp-server working (server daemon) -- so the 3000 could do port forwarding, act as a SFTP server, receive inbound ssh connections, and so on. Apparently he didn't get enough response to carry forward.
Back in 2005, Hirsch posted his goal.
I could get an interactive ssh client to work on MPE/iX. I don't know how, but I know it's possible! It would not be possible to get an ssh server working in such as way that an ssh client could run any program. But it would be possible to get enough of the server running so that you could use the server to do port forwarding.
In 2008, he added the note which Edminster referenced. "If anybody knows a way to actually write to a terminal while there is a read pending," Hirsch said, "I could use OpenSSH as a server on the HP 3000. Apparently there are undocumented MPE/iX sendio() and rendezvousio() calls, of which I know nothing. There are also tread()/twrite() routines in libbsd.a that I think are intended for this, but there's no documentation for these, either."