Making use of SADR at the higher layers

Juliusz Chroboczek <jch@pps.univ-paris-diderot.fr> Wed, 20 July 2016 08:50 UTC

Return-Path: <jch@pps.univ-paris-diderot.fr>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9578112D0B3 for <rtgwg@ietfa.amsl.com>; Wed, 20 Jul 2016 01:50:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4RwNzaf_wg1E for <rtgwg@ietfa.amsl.com>; Wed, 20 Jul 2016 01:50:10 -0700 (PDT)
Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BA2D212B037 for <rtgwg@ietf.org>; Wed, 20 Jul 2016 01:50:09 -0700 (PDT)
Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/56228) with ESMTP id u6K8o8EH005036 for <rtgwg@ietf.org>; Wed, 20 Jul 2016 10:50:08 +0200
Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 053A461FA1 for <rtgwg@ietf.org>; Wed, 20 Jul 2016 10:50:08 +0200 (CEST)
X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr
Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id vwDjtoOdzE-z; Wed, 20 Jul 2016 10:50:04 +0200 (CEST)
Received: from ijon.pps.univ-paris-diderot.fr (dhcp-9bed.meeting.ietf.org [31.133.155.237]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 3B6D761FA3; Wed, 20 Jul 2016 10:50:01 +0200 (CEST)
Date: Wed, 20 Jul 2016 10:50:01 +0200
Message-ID: <8760s0bsna.wl-jch@pps.univ-paris-diderot.fr>
From: Juliusz Chroboczek <jch@pps.univ-paris-diderot.fr>
To: rtgwg@ietf.org
Subject: Making use of SADR at the higher layers
User-Agent: Wanderlust/2.15.9
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset="US-ASCII"
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Wed, 20 Jul 2016 10:50:08 +0200 (CEST)
X-Miltered: at korolev with ID 578F3B40.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)!
X-j-chkmail-Enveloppe: 578F3B40.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<jch@pps.univ-paris-diderot.fr>
X-j-chkmail-Score: MSGID : 578F3B40.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000
X-j-chkmail-Status: Ham
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtgwg/HOCh1tWHwoqWl1OKRal4Yv-xKec>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jul 2016 08:50:11 -0000

I have been told that my comments after Jen's talk yesterday were not
clear to everyone, so please let me expand on them.

My summary of Jen's talk is:

    With the right network layer mechanisms, IPv6+SADR allows you to do
    everything you do with IPv4+NAT.

I fully agree with that statement (although not necessarily with the exact
details of the mechanisms).  However, I think a stronger statement stands:

  With the right network layer mechanisms, IPv6+SADR allows you to do
  everything you do with IPv4+NAT.  You can do even better if you
  additionally do some work at the higher layers.

A way to look at it is that SADR splits the multihoming problem into two
simpler problems: routing (done by the network) and selecting among the
available paths (done by the end hosts).  We've pretty much solved the
first problem, the second is an open research project.  Jen's approach
picks paths at the network layer, which is necessary for SADR-unaware
applications.  SADR-aware applications, however, can do their own picking,
which has the potential to improve the user experience.

I am fairly intimately familiar with two examples of such mechanisms that
have been fairly widely deployed: MP-TCP and the Vuze ML-DHT plugin for
BitTorrent.  I'll also say a few words about MP-Mosh, which was implemented
by my student Matthieu Boutier but not upstreamed yet.


1. MP-TCP

MP-TCP is an IETF standards track extension to TCP that aims to use all
available paths for data transfer; it can do both fallback and load-balancing.
Making good use of MP-TCP with IPv4+NAT is somewhat involved -- it requires
either using multiple interfaces on the host, or doing dirty hacks with
"virtual interfaces" and multiple IPv4 leases.  In an IPv6+SADR network,
MP-TCP works out of the box -- it probes all available source-dest pairs,
and performs fallback or load-balancing as necessary.

Our experiences with MP-TCP in an IPv6+SADR network are described in
Section VII.B of

  Matthieu Boutier and Juliusz Chroboczek.  Source-specific routing.  IFIP
  Networking 2015.
  https://arxiv.org/pdf/1403.0445.pdf

Don't bother reading, though -- we just say that it works out of the box,
way beter than we expected.


2. The Vuze BitTorrent ML-DHT plugin

Vuze is one of the major implementations of BitTorrent.  Vuze's ML-DHT
plugin implements "trackerless torrents" using a DHT.  Unlike the other
implementations of the BitTorrent DHT, ML-DHT runs an instance of the DHT
on every GUA assigned to the local host; the result is that, in an SADR
network, the BitTorrent traffic gets load-balanced across all available
paths.  This work was done by an individual who goes by the nickname
The8475, and as far as I know hasn't been written down anywhere.


3. MP-Mosh

Mosh is a remote shell implementation due to Keith Winstein (of congestion
control fame).  Unlike ssh, mosh doesn't transmit a command stream over
TCP, but instead uses a synchronisation mechanism that is layered directly
over UDP.  It has support for client-side roaming, but not server-side
roaming.

MP-Mosh is a modification to Mosh that uses all available paths
simultaneously, with the goal of allowing server-side roaming and
double-stack operation, while reducing latency.  In an IPv6+SADR network,
it will probe all available paths and send traffic over the one with the
lowest latency.

Our work with MP-Mosh hasn't been published yet, but you will find an
early draft on:

    https://arxiv.org/pdf/1502.02402.pdf


I can thing of other applications that will want to use upper-layer
mechanisms to optimise their traffic in IPv6+SADR networks.  The obvious
candidates are video streaming and video conferencing, and more generally
anything where increased throughput, reduced latency, higher reliability
are desired and you control both the client and the server.

-- Juliusz