[mosh-devel] Impressed

Keith Winstein keithw at MIT.EDU
Wed Apr 11 19:33:07 EDT 2012


Thanks Dave! I'm a big lurker on the bufferbloat list and appreciate your 
kind words.

We plan to support IPv6, and there are some user branches on github that 
get us working IPv6 for IPv6-only hosts. The problem is that for 
dual-stack hosts, we think it's pretty likely that the user may start up 
over IPv6 but later want to roam to a cellular network (e.g. LTE) that 
supports IPv4 only. We want this to keep working as well as it does today.

I haven't found other applications that have successfully implemented 
cross-protocol roaming -- I think it raises some new issues. (At the IETF 
last month we had some discussion about the various ways this could be 
done but nobody seemed confident in a pre-existing approach that would 
work.)

Right now we look up the server's A records, the resolver picks one, and 
we use that as the IPv4 address (for both the initial SSH connection that 
remotely executes the mosh-server, and then for the mosh-client to connect 
to the mosh-server).

If we support IPv6 and v4, then we're going to potentially get back four 
AAAA records and seven A records. How do we know which pairs correspond to 
the same host? Right now the client's roaming is totally stateless and it 
has no idea that it has even roamed (it just keeps sending heartbeats to 
the same target IPv4 address).

So to do this properly, we'll probably have to provide the client with a 
list of possible IPv6 and IPv4 addresses (every AAAA and A record we got 
back), and have it start out sending packets to all of them over each 
protocol. Whichever one it gets a (cryptographically authentic) reply from 
it can lock onto, but if it ever goes more than a few seconds without a 
reply from the server, it will have to fall back to the mass-send approach 
again.

This is like Happy Eyeballs on steroids. 
(http://tools.ietf.org/html/draft-ietf-v6ops-happy-eyeballs-07)

The datagrams all represent idempotent operations so I don't think there's 
any theoretical obstacle here, but it means adding logic and state to the 
client for something that right now is very dumb.

So... we're working on it! :-)

Best regards,
Keith

On Wed, 11 Apr 2012, Dave Taht wrote:

> I've been fiddling with mosh in the lab here and I'm really impressed.
>
> I need to read up on your underlying protocol a bit, but right now
> I'm no longer as motivated to finish fixing tcp.
>
> In what state is the ipv6 support?
>
> -- 
> Dave Täht
> http://www.bufferbloat.net
>
> _______________________________________________
> 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