Congestion avoidance in ssh ?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

What happens with an ssh connection hosting multiple tunnels where one
tunnel gets congested ? This would happen if one end of the tunnel stops
reading data out of it. Will the underlying TCP connection be blocked
and thus all other tunnels too ? Or does ssh provide a mean to keep
tunnel traffic independent so that if one tunnel gets congested the
others are not affected ?

I browsed the RFC but didn't see an obvious answer to this question.

PS: sorry if this is too technical.


Re: Congestion avoidance in ssh ? writes:
Quoted text here. Click to load it

The (obsolete) SSH-1 protocol does not provide per-channel flow control,
so the only way to provide back-pressure is to throttle the whole
session, as you've described.

The SSH-2 protocol (documented in RFC4250 et al) provides flow control
on individual channels, so that one channel blocking does not
necessarily mean that the whole session is blocked (although that is of
course still an option).

Whether per-channel flow control is actually performed is up to
individual implementations, of course.

Site Timeline