Re: [Int-area] MPT Network Layer Multipath Library (draft-lencse-tsvwg-mpt-00.txt)

Gabor Lencse <gabor-l@is.naist.jp> Wed, 26 July 2017 03:56 UTC

Return-Path: <gabor-l@is.naist.jp>
X-Original-To: int-area@ietfa.amsl.com
Delivered-To: int-area@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83866128AB0 for <int-area@ietfa.amsl.com>; Tue, 25 Jul 2017 20:56:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-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 d_PSO0KJk6Jc for <int-area@ietfa.amsl.com>; Tue, 25 Jul 2017 20:56:41 -0700 (PDT)
Received: from mailrelay32.naist.jp (mailrelay32.naist.jp [IPv6:2001:200:16a:d26::152]) by ietfa.amsl.com (Postfix) with ESMTP id 409F1126557 for <int-area@ietf.org>; Tue, 25 Jul 2017 20:56:40 -0700 (PDT)
Received: from mailpost32.naist.jp (mailscan32.naist.jp [163.221.12.157]) by mailrelay32.naist.jp (Postfix) with ESMTP id 11A195FE; Wed, 26 Jul 2017 12:56:38 +0900 (JST)
Received: from [IPv6:2001:200:16a:1010:ec23:f810:1955:42af] (unknown [IPv6:2001:200:16a:1010:ec23:f810:1955:42af]) by mailpost32.naist.jp (Postfix) with ESMTPSA id F187B5FC; Wed, 26 Jul 2017 12:56:37 +0900 (JST)
To: int-area@ietf.org
References: <4515c18c-b2f7-a5c8-8471-299422092e43@is.naist.jp> <3ADAA55B-AED3-47E1-8BF9-A69700F40006@apple.com>
Cc: David Schinazi <dschinazi@apple.com>, Gabor Lencse <gabor-l@is.naist.jp>, Szilagyi Szabolcs <szilagyi.szabolcs@inf.unideb.hu>, Marius Georgescu <marius.georgescu@rcs-rds.ro>, Fejes Ferenc <fejes@openmailbox.org>
From: Gabor Lencse <gabor-l@is.naist.jp>
Message-ID: <18bbeaa7-a7a9-60f4-090d-bc0ca4b1670c@is.naist.jp>
Date: Wed, 26 Jul 2017 12:56:37 +0900
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <3ADAA55B-AED3-47E1-8BF9-A69700F40006@apple.com>
Content-Type: multipart/alternative; boundary="------------76928BA6FD7CC4B43EF6DFDF"
X-TM-AS-MML: disable
X-TM-AS-Product-Ver: IMSS-7.1.0.1808-8.1.0.1062-23218.003
X-TM-AS-Result: No--20.256-7.0-31-10
X-imss-scan-details: No--20.256-7.0-31-10
X-TMASE-MatchedRID: tRcutRVVeFmhMED/6x0ppshGzBIb6Jpryjcw+jQixVhF0vHVf0FWQDMV Y5itbDoDLVdieW1lpmcwPc056E+qJnGGEKfcJAliJoswqQpTupzx5KZMlKYS/dIv4RV84lHTV6K WY8jugmXcv5ZWOrA+iskedzoet6eP5pZ/l0Abezm6lIBLPjRk6Res/RxhysDblxClX9Ey45Ztv4 +aU05V+/rGSMtEVYY9tyJkrp9ElhMcXqYXbVvibWwvoWYqMw6Bk3rl+MaNgxDSde/CNbaZJe5an ar5bqNu4NbWfxcgpeXFxDoHLv3qJDkKSFihQCWxXmtgg1SwHyMAKzYLecaUGCTbbsi+pqSFBNbO kII96c0UQ7CeFrI30YXxGAZtNHQZdgvRpLBFObDpUhdxxt+sdQPZZctd3P4Bgs2Y99lqecyna6U 74e0+qG0LQpmjB9pjPavUKmAA72f2EY6UlCIXig9FV6kNYiPHMSjlkes0Ka/NUTeBBPKQKg2Y8x yy93kWuEworDHWZ6b1oMtVOTRE4ppdRSjt6VGPn7/cTzCWv4OFtdXfaNUsul7OZ6hrwwnzleulF 3zlkFg3ufkyVLUl7YM0UI/wsMx+x2fPo79As2C+DiWkn7vel0j2sPWKvtn0ojQrbrPpzzphugTj /RcylqtYXNbyT8atVZOEYEsHFBsA/9TZj3+cM/tAPEfr8cPbxZQoGMRGhhOB01driWko20S/boW SGMtdmIwEEdLVZ0ny6jv8ITOMb+XeVMmB/JqBRdfDoOsKexv5wpfrIJDXe8kv13FaE99hM/dZg2 GSzOXzb5kmgp405ST9NCas8YSAD5YpuZ75ik5ccQ8eam5EfRRFJJyf5BJetOt1ofVlaoJ5WX6jI 4oJVxir9Ak4ADTtSQQofLPVHA1nPQAAZZiCoqDmii8RYWYpF5zaa6d2vTb9WfTyK/HCUMyAYCu6 BJNHAJ2WJuKZfv0QRFSW+P8kjQ==
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/HrxytzL5SPLeAbg0ymtxG4cVZaY>
Subject: Re: [Int-area] MPT Network Layer Multipath Library (draft-lencse-tsvwg-mpt-00.txt)
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Internet Area Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-area>, <mailto:int-area-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-area/>
List-Post: <mailto:int-area@ietf.org>
List-Help: <mailto:int-area-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>, <mailto:int-area-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Jul 2017 03:56:44 -0000

Dear David,

Thank you very much for your answer. Please find my answers inline.

On 7/25/2017 8:03 PM, David Schinazi wrote:
> Hi Gabor,
>
> I don't think the problem space is quite as simple:
>
> 1) Many content providers will return different DNS results based on 
> where you're querying from. For this reason you need to perform DNS 
> and your transport protocol on the same interface to be efficient.

You are completely right. Unfortunately the deployment scenarios are 
completely missing from the draft. I plan to include them into version 
"-01".

As for the current examples, I would call the applicable scenario as 
"MPT service provider scenario", which is the following:
- The client side MPT server is executed on my laptop (or smartphone).
- The service provider side MPT server is executed by an "MPT service 
provider". (*)
- An MPT tunnel is set up between the two above MPT servers using all 
the available paths (WiFi, LTE)
- Client software (in our case Meetecho, Skype, Viber, etc.) uses the 
tunnel IP for all communication (both for sending DNS queries and VoIP 
data).

(*) In my case it would be an MPT server at NAIST. In general, there are 
two conditions:
(1) it should be close to the client
(2) it should have high speed Internet connection

Of course, what I can achieve is not as good as if I would sit in my 
room at NAIST and use the Gigabit Ethernet connection, but the 
reliability of the solution is better than that of using WiFi only, and 
the price of the solution is less than that of using LTE only.

In general, an "MPT service provider" can be an independent provider or 
some ISPs also may provide this service. Multipath resilience and 
throughput aggregation apply only to the section between the two MPT 
servers. This is the most problematic part by means of unreliability and 
cost.


Other possible scenarios would include MPT servers at data center sites 
interconnected by several independent high speed paths...

> 2) Congestion properties can differ greatly per link, for that reason 
> you'll need to have separate per-link congestion control to avoid 
> starving one link or risking congestion collapse on the other.

Yes, this is another issue, which has not been addressed yet. I add this 
also to the "ToDo" list.

> For these reasons, transport-layer solutions like MPTCP or MPQUIC are 
> preferable: you perform DNS on your favorite link and connect there, 
> the server provides you with extra addresses and the client host can 
> then open up different paths via link selection or source address 
> selection.

The problem with this solution is that MPTCP provides only TCP. Its 
retransmission mechanism is probably disadvantageous for real-time 
traffic. (Sometimes loss may be better than very long delay, which 
applies for all the following data.)

> Don't get me wrong, in general I'm a very big proponent of using IP as 
> our narrow waist to allow innovation at the above and below layers. 
> However, in this case I don't think you can build a safe and efficient 
> solution exclusively at the IP layer, because what you're trying to 
> improve is transport-layer performance (again the only motivation I 
> see in the draft is "throughput" and "resilience" [Abstract] which I 
> don't see as main goals for a networking stack, latency is still the 
> first priority [1].

Whereas I agree with the main message of [1], I would say that Delay, 
Throughput and Resilience (or Reliability) are all important and none of 
them may be neglected. (Since the time when we used modems, there was a 
huge development in the transmission rates, and it has its results: 
currently about 75% of the Internet traffic is video and it is 
increasing. -- I could not dream of video calling of my wife from Japan 
to Hungary without this development.)

> You may have solved these issues, but I couldn't find that in the 
> draft. For example, in draft-lencse-tsvwg-mpt-00 section 5.2, you 
> mention that "(E.g. WiFi is used for Torrent traffic and LTE is used 
> for VoIP calls.)" without specifying how the IP layer can 
> differentiate these various types of traffic.

Section 5.2 is still "Under construction".

Our idea is that the usual 5-tuple (source IP address, source port 
number, destination IP address, destination port number, and protocol 
number (TCP or UDP)) could be used for the identification of the flows. 
(Yes, this method uses more than just IP layer header information. 
Perhaps calling MPT as "Network Layer Multipath" solution is 
questionable. By calling MPT so, we would like to emphasize that we use 
a tunnel IP layer over which both TCP or UDP may be used.) But the 
details are missing. (E.g. how to describe the flows, how they can be 
efficiently identified, etc.)

> And when it comes to per-packet mappings, sending a percentage of 
> packets on various links and then adding delay to reorder at the MPT 
> server will add buffer bloat to match the worst link.

Our experience shows that it is worth aggregating only the capacity of 
the links with similar speeds and delay. Otherwise it is worth sending 
the traffic through the better link and use the other link as "spinning 
reserve" for resiliency purposes, if the better link fails.

> I may be missing something, but after reading the draft I think this 
> proposal will be harmful to users as it exclusively focuses on 
> throughput at the expense of many other priorities.
> While it's commonly assumed we can solve any problem by introducing an 
> extra level of indirection or IP headers, I don't think tunnels are 
> the solution to all woes.
>
> [1] http://www.stuartcheshire.org/rants/latency.html
>
> Thanks,
> David Schinazi
>

Whereas I try to "defend" our draft, and I hope that our conversation 
will result in a better draft, which will be useful for many people, I 
also admit, that there may be fundamental flaws in our concept, which we 
do not see. I honestly thank you for pointing them out in the past and 
in the future, too. And if the final outcome will be that we shell 
abandon the draft, I will still be grateful to you for saving us 
possibly years spent with something unusable.

So, I really appreciate your reply and wait for further comments from 
you and from anyone else interested in our draft.

Best regards,

Gabor

>
>> On Jul 25, 2017, at 08:59, Gabor Lencse <gabor-l@is.naist.jp 
>> <mailto:gabor-l@is.naist.jp>> wrote:
>>
>> Dear INTAREA WG members,
>>
>> I am Gabor Lencse, the first author of a "-00" draft about the MPT 
>> Network Layer Multipath Library: 
>> https://tools.ietf.org/html/draft-lencse-tsvwg-mpt-00
>>
>> It was introduced to the INTAREA WG by our co-author Marius Georgescu 
>> at IETF 99.
>>
>> I would like to elaborate on the feedback we received during the 
>> presentation.
>>
>> Q1 (David, from Apple): What is the motivation, what you are trying 
>> to solve? Why are you trying to use multiple interfaces?
>>
>> A1: Throughput aggregation between two sites. (E.g. between data centers)
>>
>> My answer:
>>
>> The problem to  be solved is the following. Due to the design of the 
>> TCP/IP protocol stack and its socket interface, even if a device has 
>> multiple network interfaces, only one of them can be used for a 
>> communications session. And it is a serious limitation many times!
>>
>> Example: Somebody is remotely participating at an IETF meeting using 
>> Meetecho on his laptop using WiFi connection (to save costs). When he 
>> receives permission to ask a question, the WiFi connection brakes. By 
>> the time he manages to switch over to LTE, it is too late.  -- 
>> According to our tests, MPT can do the switchover seamlessly.
>>
>> How common is this situation? I think many people have smartphones, 
>> with WiFi and LTE, and uses WiFi when available in order to save 
>> costs. Many of them use free video calls (e.g. by Skype, Viber, 
>> WhatsApp, etc.) and would be happy if the free WiFi could be backed 
>> up by seamless switchover to LTE during the calls.
>>
>> There are a number of multi path solutions, which shows that the 
>> problem is real, but I contend that MPT differs from them and MPT can 
>> be more suitable for certain purposes than they for different reasons:
>>
>> - MPTCP [RFC6824] is good, but it is "built together" with TCP. Some 
>> applications, e.g. DNS resolution or RTP use UDP. (They can work well 
>> with MPT.)
>>
>> -  Huawei's GRE Tunnel Bonding Protocol [RFC8157] was designed for 
>> this very purpose, but it uses GRE, which is filtered out in many 
>> networks. (MPT uses GRE-in-UDP, thus MPT behaves as a standard UDP 
>> application in the carrier networks.)
>>
>> - BANANA 
>> https://tools.ietf.org/html/draft-leymann-banana-data-encap-00 aims 
>> to do bandwidth aggregation, but it also uses GRE and not GRE-in-UDP. 
>> And I am not sure if it is able to provide a resilient tunnel (that 
>> is switching over from a given underlying path to another one).
>>
>> - Load Sharing for SCTP 
>> https://tools.ietf.org/html/draft-tuexen-tsvwg-sctp-multipath-14 is 
>> also a multipath solution, but it is very specific. MPT provides an 
>> IP tunnel, which can be used for any purpose.
>>
>> All in all, I could not find any other solutions that would provide 
>> such flexible, multipurpose IP tunnel (providing both IPv4 and IPv6), 
>> which is both resilient and can aggregate the transmission capacity 
>> of several (even high number of) underlying paths, and which can be 
>> used in any networks, where UDP is carried over either IPv4 or IPv6. 
>> I would be interested in hearing about any similar solutions.
>>
>> And I would like to receive your feedback about MPT. All your 
>> questions, comments, suggestions, etc.
>>
>> Best regards,
>>
>> Gabor
>>
>>
>> _______________________________________________
>> Int-area mailing list
>> Int-area@ietf.org <mailto:Int-area@ietf.org>
>> https://www.ietf.org/mailman/listinfo/int-area
>