xref: /NextBSD/crypto/openssh/README.hpn (revision 4557fabb34e865d7f40be64b39c9e34fa41dbb60)
1Notes:
2
3PERFORMANCE:
4  The performance increase will only be as good as the network and TCP stack
5  tuning on the reciever side of the connection allows.  As a rule of thumb a
6  user will need at least 10Mb/s connection with a 100ms RTT to see a doubling
7  of performance.
8  The HPN-SSH home page  http://www.psc.edu/networking/projects/hpn-ssh
9  describes this in greater detail.
10
11
12BUFFER SIZES:
13- if HPN is disabled the receive buffer size will be set to the OpenSSH default
14  of 64K.
15
16- if a HPN system connects to a non-HPN system the receive buffer will
17  be set to the HPNBufferSize value. The default is 2MB but user adjustable.
18
19- If a HPN to HPN connection is established a number of different things might
20  happen based on the user options and conditions.
21
22  Conditions: HPNBufferSize NOT Set, TCPRcvBufPoll enabled, TCPRcvBuf NOT Set
23  Result: HPN Buffer Size = up to 64MB
24    This is the default state.  The HPN buffer size will grow to a maximum of
25    64MB as the TCP receive buffer grows.  The maximum HPN Buffer size of 64MB
26    is geared towards 10GigE transcontinental connections.
27
28  Conditions: HPNBufferSize NOT Set, TCPRcvBufPoll disabled, TCPRcvBuf NOT Set
29  Result: HPN Buffer Size = TCP receive buffer value.
30    Users on non-autotuning systesm should disable TCPRcvBufPoll in the
31    ssh_cofig and sshd_config
32
33  Conditions: HPNBufferSize SET, TCPRcvBufPoll disabled, TCPRcvBuf NOT Set
34  Result: HPN Buffer Size = minmum of TCP receive buffer and HPNBufferSize.
35    This would be the system defined TCP receive buffer (RWIN).
36
37  Conditions: HPNBufferSize SET, TCPRcvBufPoll disabled, TCPRcvBuf SET
38  Result: HPN Buffer Size = minmum of TCPRcvBuf and HPNBufferSize.
39    Generally there is no need to set both.
40
41  Conditions: HPNBufferSize SET, TCPRcvBufPoll enabled, TCPRcvBuf NOT Set
42  Result: HPN Buffer Size = grows to HPNBufferSize
43    The buffer will grow up to the maximum size specified here.
44
45  Conditions: HPNBufferSize SET, TCPRcvBufPoll enabled, TCPRcvBuf SET
46  Result: HPN Buffer Size = minmum of TCPRcvBuf and HPNBufferSize.
47    Generally there is no need to set both of these, especially on autotuning
48    systems. However, if the users wishes to override the autotuning this would
49    be one way to do it.
50
51  Conditions: HPNBufferSize NOT Set, TCPRcvBufPoll enabled, TCPRcvBuf SET
52  Result: HPN Buffer Size = TCPRcvBuf.
53   This will override autotuning and set the TCP recieve buffer to the user
54   defined value.
55
56
57HPN SPECIFIC CONFIGURATION OPTIONS:
58
59- HPNDisabled=[yes/no] client/server
60  In some situations, such as transfers on a local area network, the impact
61  of the HPN code produces a net decrease in performance.  In these cases it is
62  helpful to disable the HPN functionality. By default HPNDisabled is set to no.
63
64- HPNBufferSize=[int]KB client/server
65  This is the default buffer size the HPN functionality uses when interacting
66  with non-HPN SSH installations.  Conceptually this is similar to the TcpRcvBuf
67  option as applied to the internal SSH flow control.  This value can range from
68  1KB to 64MB (1-65536).  Use of oversized or undersized buffers can cause
69  performance problems depending on the roud trip time of the network path.
70  The default size of this buffer is 2MB.
71
72- TcpRcvBufPoll=[yes/no] client/server
73  Enable or disable the polling of the TCP receive buffer through the life
74  of the connection.  You would want to make sure that this option is enabled
75  for systems making use of autotuning kernels (linux 2.4.24+, 2.6, MS Vista,
76  FreeBSD 7.x and later). Default is yes.
77
78- TcpRcvBuf=[int]KB client
79  Set the TCP socket receive buffer to n Kilobytes.  It can be set up to the
80  maximum socket size allowed by the system.  This is useful in situations where
81  the TCP receive window is set low but the maximum buffer size is set higher
82  (as is typical).  This works on a per TCP connection basis.  You can also use
83  this to artifically limit the transfer rate of the connection.  In these cases
84  the throughput will be no more than n/RTT.  The minimum buffer size is 1KB.
85  Default is the current system wide TCP receive buffer size.
86
87
88CREDITS:
89
90  This patch was conceived, designed, and led by Chris Rapier (rapier@psc.edu)
91  The majority of the actual coding for versions up to HPN12v1 was performed
92  by Michael Stevens (mstevens@andrew.cmu.edu).
93  The MT-AES-CTR cipher was implemented by Ben Bennet (ben@psc.edu).
94  This work was financed, in part, by Cisco System, Inc., the National Library
95  of Medicine, and the National Science Foundation.
96