IETF-SSH archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: fds beyond 0/1/2



On Wed, Aug 25, 2010 at 10:03:50PM -0400, der Mouse wrote:
> Replying to multiple messages, here....
> 
> [Nicolas.Williams%oracle.com@localhost]
> > The current channel design has two flows in each direction (data and
> > "extended" data), with just one flow control window in each
> > direction.
> 
> No, it has 4294967297 potential flows in each direction (data, and an
> ...

Sure, sure.  A funny nit :)

> Fine for some purposes.  Not a good fit to the generic Unixish model.

Indeed.

> > Do you really need the multiple fd thing?
> 
> Need?  Arguably not.  But then, I arguably don't really _need_ ssh at
> all.  Or even computers - it all depends on where you draw the line
> between "need" and "want".  Let me put it thus: arbitrary fd forwarding
> is valuable enough to me for me to put nontrivial amounts of time into
> designing a mechanism to support it and implementing it in moussh.

If you implement, then that's good enough for me.  Write up an I-D.

> [jhutz%cmu.edu@localhost]
> > I can think of three ways to do this:
> 
> There's another way, which nobody seems to have mentioned yet.  I'm not
> sure where it fits into my preference list with respect to the others.
> 
> It is simple to state: give each data flow within a channel its own
> flow-control window.
> 
> I can think of some pros and cons, some of which depend on the details.
> I'm sure most of you people can too.  I'd probably go with two
> completely new window-adjust messages, one for CHANNEL_DATA data and
> another, with a data_type_code, for CHANNEL_EXTENDED_DATA data.  I can
> imagine various possible ways to handle using this mechanism instead of
> the shared window; my inclination after only a few seconds of thinking
> is to make it a global request, which, if accepted, causes all data on
> the connection which carried the global request to use per-flow
> windows (use of standard window adjustments after issuing or accepting
> the global request would be a protocol error).

That will do too.  In retrospect I wish the connection protocol had
always just had linkable uni-directional channels (with a way to create
channel pairs in one go, for things like port forwarding).  I suspect
the channel state machines would have been much simpler that way!  But,
it's too late :(

Nico
-- 



Home | Main Index | Thread Index | Old Index