2 ms·
Yes, multiplexing data flows that need flow control on top of protocols that have flow control is a difficult problem. SSHv1 had multiplexing but no flow contr
by cryptonector 3y ago
Yes, multiplexing data flows that need flow control on top of protocols that have flow control is a difficult problem.
SSHv1 had multiplexing but no flow control in the SSHv1 protocol so if you did a bulk transfer over a forwarded port your interactive session channel could "freeze" if the bulk transfer got flow controlled on the receiving end or if it took up all available bandwidth.
SSHv2 fixed this by adding flow control at the SSHv2 channel layer protocol, but the price paid for this was that that flow control essentially acts as a brake on each channel's bandwidth, so you just can't use SSHv2 for high-bandwidth bulk transfers unless you have implementations tuned for that (meaning that they set huge channel windows).
Nesting flow control just doesn't work very well.