Re: [nwcrg] Closeup on a "Generic Robust Low Latency Tunnelling"

Emmanuel Lochin <emmanuel.lochin@isae.fr> Thu, 11 May 2017 17:59 UTC

Return-Path: <Emmanuel.LOCHIN@isae.fr>
X-Original-To: nwcrg@ietfa.amsl.com
Delivered-To: nwcrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3111713145A for <nwcrg@ietfa.amsl.com>; Thu, 11 May 2017 10:59:05 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001] 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 1kEbcCI34MnZ for <nwcrg@ietfa.amsl.com>; Thu, 11 May 2017 10:59:01 -0700 (PDT)
Received: from smtpextng.isae.fr (smtpextng.isae.fr [192.93.254.80]) by ietfa.amsl.com (Postfix) with ESMTP id F4058129434 for <nwcrg@irtf.org>; Thu, 11 May 2017 10:53:51 -0700 (PDT)
Received: from supmail (supmail.isae.fr [10.132.1.9]) by smtpextng.isae.fr (Postfix) with ESMTP id DC4507127E for <nwcrg@irtf.org>; Thu, 11 May 2017 19:54:13 +0200 (CEST)
Received: from smtp-secung (smtp-secung.isae.fr [192.93.254.79]) by supmail (Postfix) with ESMTP id 67EDEC887C6 for <nwcrg@irtf.org>; Thu, 11 May 2017 19:54:05 +0200 (CEST)
Received: from [192.168.0.54] (bon31-1-81-56-87-55.fbx.proxad.net [81.56.87.55]) by smtp-secung (Postfix) with ESMTPSA id 79CA673F4E for <nwcrg@irtf.org>; Thu, 11 May 2017 19:54:13 +0200 (CEST)
To: nwcrg@irtf.org
References: <10356081-E367-4B9D-A6A6-427907D164BB@inria.fr>
From: Emmanuel Lochin <emmanuel.lochin@isae.fr>
Message-ID: <7e74559f-3a61-84d4-8f83-dc6916962d4c@isae-supaero.fr>
Date: Thu, 11 May 2017 19:53:48 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <10356081-E367-4B9D-A6A6-427907D164BB@inria.fr>
Content-Type: multipart/alternative; boundary="------------0B578425758881238771D76C"
Archived-At: <https://mailarchive.ietf.org/arch/msg/nwcrg/ch-_fRRprKTTJ5JKNlV6FE-2c7E>
Subject: Re: [nwcrg] Closeup on a "Generic Robust Low Latency Tunnelling"
X-BeenThere: nwcrg@irtf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IRTF Network Coding Research Group discussion list <nwcrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/nwcrg>, <mailto:nwcrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nwcrg/>
List-Post: <mailto:nwcrg@irtf.org>
List-Help: <mailto:nwcrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/nwcrg>, <mailto:nwcrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 May 2017 17:59:05 -0000

Hi Vincent, all,

This is indeed a good idea and following your draft, there are plenty of 
things to discuss for each item. I am interested in all points raised 
but first by 3.1, 3.2 and 3.3.
Considering only 3.2 (otherwise this email could be too long too read ;) 
I am currently working on this with Tetrys/Tunnel. In particular, there 
are a bunch of results from the QoS epoch, used by ISP (e.g. the 
well-known core scheduling defined in RFC5865), allowing to schedule, 
and mark a given traffic to separate flows that have different QoS 
requirements. I reckon that scheduling and differentiating flows (e.g. 
differentiate video from VoIP from bulk data) is mandatory to correctly 
protect them before tunneling. It would be a good thing to discuss and 
share our experience on this.
So yes... I'm strongly interested.

Emmanuel



On 11/05/2017 16:22, Vincent Roca wrote:
> Hello everybody,
>
> In the high level overview of potential work items that could be 
> addressed in our RG, I mentioned:
>
>> Use-cases where end-to-end coding or network coding can be beneficial:
>>
>> […]
>> - Robust, low latency tunnels: this could be the basis of a generic 
>> protocol
>
> Here are some more details. As usual, everything is open to discussions.
> And if you’re interested, it would be great to create a dedicated team 
> and work
> jointly on some of the topics.
>
> Since I’m familiar with FECFRAME, you’ll find a few references. But 
> the goal here
> is really to have something more versatile.
>
> Cheers,
>
>   Vincent
>
> ------
>
> *Generic Robust Low Latency Tunnelling*
>
> *1- goals*
>
>     Provide a solution for robust, low latency transport of one or
>     several flows over several types of
>     communication links (physical or virtual/overlay). Can be
>     regarded as a « robust virtual link » or
>     « robust tunnel » depending on how it is used.
>
>     Various possibilities:
>     - may be unicast or multicast, potentially targeting massive delivery
>     - may include feedbacks or not
>     - may include in-network recoding or not
>
>
> *2- a few issues already solved*
> (inspired from FECFRAME, RFC 6363. Do other efficient approaches exist?)
> *
> *
> *2.1- use of FEC*
> *
> *
>
>     Sliding window linear coding schemes are good target FEC codes.
>     Yet the solution must be FEC Scheme
>     agnostic in order to be compatible with different types of FEC
>     schemes (sliding window codes or block codes).
>     Move all FEC considerations in specific I-Ds.
>
>
>
> *2.2- "application payloads" are of variable size*
>
>
>     (P)MTU considerations are always key aspects with tunnels
>     (additional headers can lead to IP fragmentation,
>     usually considered harmful). If the « application payload » size
>     is managed elsewhere, the symbol size is
>     under our control. From this perspective, padding each
>     « application payload » up to the (P)MTU (minus
>     various protocol headers) and having symbols of that maximum size
>     is sub-optimal because:
>     (1) all repair packets have that size even if « application
>     payloads » are very short;
>     (2) with high speed links that permit very large MTUs, it becomes
>     prohibitive.
>
>     FECFRAME / FEC Schemes provide a solution for that: use small
>     fixed size symbols and create a
>     mapping between « application payloads »  and symbols. To the
>     « application payload » we add a
>     length field and we pad the whole until it is multiple of the
>     symbol size. A small « application payload »
>     might correspond to a single source symbol while a large one may
>     correspond to multiple ones.
>
>     NB: a small symbol size is a good technique for asymptotically
>     good block codes like LDPC or Raptor
>     codes, but counter productive with sliding window codes (it
>     increases the linear system size).
>     NB: FEC Schemes also enable several repair symbols to be carried
>     in a single repair packet, with a single
>     repair header in that case. So this is not too much penalising
>     from this point of view.
>     NB: « application payloads » are called ADUs in RFC 6363.
>
>
>
> *2.3- assignment of decoded "application payloads" to flows in 
> multi-flow configurations*
>
>     With multiple flows multiplexed in the same tunnel, the problem is
>     to assign a decoded payload to the
>     right flow (UDP port numbers/IP addresses used to map application
>     payloads to flows are not necessarily
>     recovered depending on how tunnelling is applied).
>
>     FECFRAME provides a simple generic solution: each « application
>     payload » is prepended with a flow
>     identifier (1 byte) before doing the mapping to source symbols.
>     This (flow ID + length
>     + application payload + padding) is FEC protected. After decoding
>     at a destination, the flow ID is recovered
>     and the application payload assigned to the flow it belongs to.
>
>     NB: the flow ID + length + application payload + padding (called
>     ADUI in RFC 6363) is used for FEC
>     encoding but never sent in the tunnel. Only the « application
>     payload » plus a dedicated header/trailer
>     is sent.
>
>
>
> *3- a few open questions (potentially to be extended)*
> *
> *
> **NB: FECFRAME does not address the following items (out of scope).
> *
> *
> *3.1- congestion control and fairness requirements*
>
>
>     This is a tough question and may be the most complex and
>     controversial one.
>
>     Another requirement is not to mask congestion signals while
>     recovering from packet losses. It requires a
>     close integration between FEC decoder and congestion control/rate
>     adaptation component… Not very difficult.
>
> *3.2- flow scheduling when several flows share the same tunnel*
>
>     Flows may have different requirements in terms of time and robustness.
>
>     How to serve them within a single, shared tunnel?
>
>
> *3.3- exploiting several (high speed, low speed, or heterogeneous) paths*
>
>
>     A multipath capable solution is a plus and the use of FEC coding
>     will help a lot. There’s probably
>     interesting packet scheduling research to carry out. How should
>     the traffic be scheduled on the various
>     paths. How can it compare to MPTCP where FEC coding is absent?
>
>     An open question: in case of very high speed paths, can it compete
>     with simpler solutions where only
>     source packets are exchanged? Said differently, to which point is
>     FEC coding compatible with
>     very high speed transfers? With what compromise?
>
> *3.4- exploiting in-network recoding*
>
>
>     To what extent is it needed? Are there additional requirements?
>
>
> *3.5- exploiting feedbacks*
>
>
>     When is it required and for what purpose? What type of feedbacks?
>     Can it be a key differentiator
>     between proposals?
>     It is at least a key differentiator with FECFRAME (no feedback at
>     all in the core protocol).
>
>
> *Something else?*
>
>
>
> _______________________________________________
> nwcrg mailing list
> nwcrg@irtf.org
> https://www.irtf.org/mailman/listinfo/nwcrg

-- 
Emmanuel LOCHIN
Professeur ISAE

ISAE SUPAERO - Institut Supérieur de l'Aéronautique et de l'Espace
10 avenue Edouard Belin - BP 54032 - 31055 TOULOUSE CEDEX 4 FRANCE - http://www.isae-supaero.fr
Tel +33 5 61 33 84 85 - Fax (+33) 5 61 33 83 30