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
- Making use of SADR at the higher layers Juliusz Chroboczek