Optional 'test' or benchmark cipher
Chris Rapier
rapier at psc.edu
Sat Jan 19 02:38:28 EST 2008
Linda Walsh wrote:
> BDP? ...
Bandwidth delay product. Since network transfers aren't instantaneous
there is data in transit between two hosts at any time. Any path has a
maximum amount of this outstanding data it can hold which is determined
by multiplying the bandwidth by the round trip time. If you can keep as
much data in transit as the carrying capacity of the path you end up
using the network much more efficiently. So if you have a patch with a
2MB BDP and you only have 64KB of data in transit at any time you are
only using 3% of the network capacity.
The receiving host regulates how much outstanding data there is at
anytime with the receive window. So if your receive window is 64KB then
the end host will only allow 64KB to be unACKed (or outstanding or in
transit) for each round trip time. So this end up limiting your
throughput if the BDP is greater than the receive window. As such its
important to increase the receive window to at least the same size as
the BDP.
In multiplexed applications like SSH its necessary to include an
application layer receive window. This rides on top of the underlying
TCP receive window and your effective receive window for the application
will be the minimum of the two. SSH, up until 4.7, had a 64KB receive
window. Its been boosted to ~1MB and that really helps a lot of people.
This is still small for the faster networks which is where HPN-SSH comes
in as we tie the application window to the TCP window. So as long as the
TCP window is properly sized the application window will be as well.
> One of the machines is pegged: an aging 2x1GHz PIII. It's hard to
> say what is happening where, since I'm working with 3 different machine types
> (4 if you count 1 running WinXP vs. other running Linux).
Yeah, thats a bottleneck right there. None cipher will do a lot for you.
> The file transfer speed between via scp to a a cpu-limited
> target (ish, below) is 10.4MB. The same file transfered over CIFS,
> a file-system protocol, runs at 28.7MB/s. Network tuning isn't the
> issue, though "end-to-end" latency caused by ssh may be. Someone
It may be but the amount of latency imposed tends to be small. I've not
taken the time to quantify this though.
I need to skip some stuff as I'mn giving a presentation in a few minutes
but I wanted to address a couple of ther things before I do...
> Haven't found a source for Iperf yet. But I get nearly
> 2x performance over SSH with just using SMB. I doubt disk is playing
> much of a role (note, that the 250MB file I'm xfering fits in the
> buffer cache of 3 out of 4 of the machines).
http://dast.nlanr.net/Projects/Iperf
> Was preferring to have the standard ssh support it. Obviously,
> I have the sources and can hack something with-or-without a patch, but
> I don't want to get into modifying or doing a "special compile" for yet
> another piece of software (have done it with a few, and eventually I tend
> to give up my 'special mods' over simplicity).
I understand entirely.
in place.
> ----
> Well, one of the "requirements", in my proposal was to force
> the user (interactive or not) to include a switch on the ssh/scp command
> line, spelling out that encryption was turned off for the data.
In the HPN-SSH code the client must use both
-oNoneEnabled=yes and -oNoneSwitch=yes in order to use the None switch.
NoneEnabled can be set the ssh_config but NoneSwitch must come on the
command line. When it enters the NONE cipher it spits out a warning to
stderr so users are aware that the switch happened.
> I want to be able to turn off encryption on the 'normal' openssh
> product, under specific circumstances, including benchmarking to see
> what openssh's "end-to-end" latency is, but also for xfering large
> files over an internal network. While CIFS works well one one of the
> computers is Windows, It _seems_ to have lower performance between
> linux machines.
While I would like to see the None switch in the base code I'm not
entirely sure its going to happen.
> What is "HPN"...I don't recognize it as a cipher.
Its not a cipher. It stands for High Performance Networking and is a set
of modifications to improve SSH performance. Its typically geared
towards fast networks but it does have some benefits for people in your
situation. More ifnormation can be found at
http://www.psc.edu/networking/projects/hpn-ssh
Currently its being used by NASA, several governmental organizations,
its part of HP-UX, several linux distros, its available though FreeBSD,
many supercomputing centers use it, a bunch of financial institutions,
tech companies, and so forth.
Its not, in anyway, a fork of OpenSSH.
> As for "production"...
> if I wanted this at a company, I'd tend to believe I was "insane".
> "Deliberately disabling encryption at the server and client in a
> production environment"?
A lot of widely used applications do not encrypt bulk data transfers
even if they use encryption for authentication. So I'm not sure I would
say it was insane, just a different approach.
More information about the openssh-unix-dev
mailing list