[mosh-devel] Lazy buffers?

Robert Redelmeier redelm at sbcglobal.net
Tue Apr 21 19:49:43 EDT 2015


On 0022-0700 Tue 21 Apr, Keith Winstein wrote in part:
> Hello Robert, Thanks for your email! 

And thank you in turn for your prompt and detailed reply.

> We do this to a degree,
> but with the goal of _reducing_ latency -- please see Figure
> 3 of the Mosh paper ( https://mosh.mit.edu/mosh-paper.pdf).

Fascinating!  This 8ms is far too fast for human input, could
it be something like ACK & echo packet combining, or combining
from terminal local [cut'n']paste?

> With the constants tuned differently, we end up reducing the
> packets sent as you suggest. This is in the "lowbandwidth"
> branch in the Git repository.  > > Cheers, > Keith

I had a peek, thanks, but could not see how this would work
differently from termios.c_cc(VTIME)=5 beyond ^C handling.  I tried
this dumb delay, and the added latency on top of a slow connection
was very irksome.  But I found I could reduce the irritation greatly
by forcing the buffer out early when a command char was received.
Could the special handling for ^C be expanded to all ^char plus
duplicated chars (many pgms use hjkl for cursor movement)?  

Latency during straight typing is far less annoying unless chars
are lost.  Of course this system generates lots of false flushes.
But who cares?  Even `bookkeepers` sent as 4 packets is much better
than 11, especially considering the "ACK-echo-ACK" multiplication.


> On Mon, Apr 20, 2015 at 6:00 PM, Robert Redelmeier <redelm at sbcglobal.net>
> wrote:
> 
> >  First, thanks y'all for your work on mosh!
> > Second, a suggestion for your consideration (_NOT_ a vile "feature
> > request"):
> >
> > Have you considered allowing send buffers to fill a bit before
> > sending?  Not sending ASAP, but often sending more than one char
> > per packet?  Of course this increases latency, but reduces packet
> > count _tremendously_ and data usage likewise since the payload is
> > tiny compared to overhead (incl ACK)..
> >
> > Not sure how this would interact with SSP, but I hacked ssh to do
> > this 10+ years ago.  To minimize the latency when it would most
> > annoy, the buffer was released if a command was received or when
> > typing stopped for 300-600ms.  Commands were considered to be any
> > control-char or any duplicated char (likely to be cursor movement).
> >
> > Of course, latency is sometimes noticeable but that is the price
> > of reduced transmission data.  Most of the time, I'm typing blind
> > anyways -- I'm not going to focus on the screen unless needed.
> > Sometimes the reductions were as large as 70%, more often 50%.
> >
> > -- Robert in Houston
> >
> >
> > _______________________________________________
> > mosh-devel mailing list
> > mosh-devel at mit.edu
> > http://mailman.mit.edu/mailman/listinfo/mosh-devel
> >



More information about the mosh-devel mailing list