]>
Commit | Line | Data |
---|---|---|
1 | Notes: | |
2 | ||
3 | To use the NONE option you must have the NoneEnabled switch set on the server and | |
4 | you *must* have *both* NoneEnabled and NoneSwitch set to yes on the client. The NONE | |
5 | feature works with ALL ssh subsystems (as far as we can tell) *AS LONG AS* a tty is not | |
6 | spawned. If a user uses the -T switch to prevent a tty being created the NONE cipher will | |
7 | be disabled. | |
8 | ||
9 | The performance increase will only be as good as the network and TCP stack tuning | |
10 | on the reciever side of the connection allows. As a rule of thumb a user will need | |
11 | at least 10Mb/s connection with a 100ms RTT to see a doubling of performance. The | |
12 | HPN-SSH home page describes this in greater detail. | |
13 | ||
14 | http://www.psc.edu/networking/projects/hpn-ssh | |
15 | ||
16 | Buffer Sizes: | |
17 | ||
18 | If HPN is disabled the receive buffer size will be set to the | |
19 | OpenSSH default of 64K. | |
20 | ||
21 | If an HPN system connects to a nonHPN system the receive buffer will | |
22 | be set to the HPNBufferSize value. The default is 2MB but user adjustable. | |
23 | ||
24 | If an HPN to HPN connection is established a number of different things might | |
25 | happen based on the user options and conditions. | |
26 | ||
27 | Conditions: HPNBufferSize NOT Set, TCPRcvBufPoll enabled, TCPRcvBuf NOT Set | |
28 | HPN Buffer Size = up to 64MB | |
29 | This is the default state. The HPN buffer size will grow to a maximum of 64MB | |
30 | as the TCP receive buffer grows. The maximum HPN Buffer size of 64MB is | |
31 | geared towards 10GigE transcontinental connections. | |
32 | ||
33 | Conditions: HPNBufferSize NOT Set, TCPRcvBufPoll disabled, TCPRcvBuf NOT Set | |
34 | HPN Buffer Size = TCP receive buffer value. | |
35 | Users on non-autotuning systesm should disable TCPRcvBufPoll in the | |
36 | ssh_cofig and sshd_config | |
37 | ||
38 | Conditions: HPNBufferSize SET, TCPRcvBufPoll disabled, TCPRcvBuf NOT Set | |
39 | HPN Buffer Size = minmum of TCP receive buffer and HPNBufferSize. | |
40 | This would be the system defined TCP receive buffer (RWIN). | |
41 | ||
42 | Conditions: HPNBufferSize SET, TCPRcvBufPoll disabled, TCPRcvBuf SET | |
43 | HPN Buffer Size = minmum of TCPRcvBuf and HPNBufferSize. | |
44 | Generally there is no need to set both. | |
45 | ||
46 | Conditions: HPNBufferSize SET, TCPRcvBufPoll enabled, TCPRcvBuf NOT Set | |
47 | HPN Buffer Size = grows to HPNBufferSize | |
48 | The buffer will grow up to the maximum size specified here. | |
49 | ||
50 | Conditions: HPNBufferSize SET, TCPRcvBufPoll enabled, TCPRcvBuf SET | |
51 | HPN Buffer Size = minmum of TCPRcvBuf and HPNBufferSize. | |
52 | Generally there is no need to set both of these, especially on autotuning | |
53 | systems. However, if the users wishes to override the autotuning this would be | |
54 | one way to do it. | |
55 | ||
56 | Conditions: HPNBufferSize NOT Set, TCPRcvBufPoll enabled, TCPRcvBuf SET | |
57 | HPN Buffer Size = TCPRcvBuf. | |
58 | This will override autotuning and set the TCP recieve buffer to the user defined | |
59 | value. | |
60 | ||
61 | ||
62 | HPN Specific Configuration options | |
63 | ||
64 | TcpRcvBuf=[int]KB client | |
65 | set the TCP socket receive buffer to n Kilobytes. It can be set up to the | |
66 | maximum socket size allowed by the system. This is useful in situations where | |
67 | the tcp receive window is set low but the maximum buffer size is set | |
68 | higher (as is typical). This works on a per TCP connection basis. You can also | |
69 | use this to artifically limit the transfer rate of the connection. In these | |
70 | cases the throughput will be no more than n/RTT. The minimum buffer size is 1KB. | |
71 | Default is the current system wide tcp receive buffer size. | |
72 | ||
73 | TcpRcvBufPoll=[yes/no] client/server | |
74 | enable of disable the polling of the tcp receive buffer through the life | |
75 | of the connection. You would want to make sure that this option is enabled | |
76 | for systems making use of autotuning kernels (linux 2.4.24+, 2.6, MS Vista) | |
77 | default is yes. | |
78 | ||
79 | NoneEnabled=[yes/no] client/server | |
80 | enable or disable the use of the None cipher. Care must always be used | |
81 | when enabling this as it will allow users to send data in the clear. However, | |
82 | it is important to note that authentication information remains encrypted | |
83 | even if this option is enabled. Set to no by default. | |
84 | ||
85 | NoneSwitch=[yes/no] client | |
86 | Switch the encryption cipher being used to the None cipher after | |
87 | authentication takes place. NoneEnabled must be enabled on both the client | |
88 | and server side of the connection. When the connection switches to the NONE | |
89 | cipher a warning is sent to STDERR. The connection attempt will fail with an | |
90 | error if a client requests a NoneSwitch from the server that does not explicitly | |
91 | have NoneEnabled set to yes. Note: The NONE cipher cannot be used in | |
92 | interactive (shell) sessions and it will fail silently. Set to no by default. | |
93 | ||
94 | HPNDisabled=[yes/no] client/server | |
95 | In some situations, such as transfers on a local area network, the impact | |
96 | of the HPN code produces a net decrease in performance. In these cases it is | |
97 | helpful to disable the HPN functionality. By default HPNDisabled is set to no. | |
98 | ||
99 | HPNBufferSize=[int]KB client/server | |
100 | This is the default buffer size the HPN functionality uses when interacting | |
101 | with nonHPN SSH installations. Conceptually this is similar to the TcpRcvBuf | |
102 | option as applied to the internal SSH flow control. This value can range from | |
103 | 1KB to 64MB (1-65536). Use of oversized or undersized buffers can cause performance | |
104 | problems depending on the length of the network path. The default size of this buffer | |
105 | is 2MB. | |
106 | ||
107 | ||
108 | Credits: This patch was conceived, designed, and led by Chris Rapier (rapier@psc.edu) | |
109 | The majority of the actual coding for versions up to HPN12v1 was performed | |
110 | by Michael Stevens (mstevens@andrew.cmu.edu). This work was financed, in part, | |
111 | by Cisco System, Inc., and the National Science Foundation. |