Re: [multipathtcp] Regarding rate control at a subflow level

Nagesh shamnur <nagesh.shamnur@huawei.com> Wed, 26 June 2019 06:15 UTC

Return-Path: <nagesh.shamnur@huawei.com>
X-Original-To: multipathtcp@ietfa.amsl.com
Delivered-To: multipathtcp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83FAE120096 for <multipathtcp@ietfa.amsl.com>; Tue, 25 Jun 2019 23:15:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.8
X-Spam-Level:
X-Spam-Status: No, score=0.8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_SUMOF=5, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 WKhLdoslqF95 for <multipathtcp@ietfa.amsl.com>; Tue, 25 Jun 2019 23:15:35 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (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 9CCD8120122 for <multipathtcp@ietf.org>; Tue, 25 Jun 2019 23:15:34 -0700 (PDT)
Received: from lhreml707-cah.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 7191EAB65E4D7786DBEF; Wed, 26 Jun 2019 07:15:32 +0100 (IST)
Received: from dggeme710-chm.china.huawei.com (10.1.199.106) by lhreml707-cah.china.huawei.com (10.201.108.48) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 26 Jun 2019 07:15:31 +0100
Received: from dggeme761-chm.china.huawei.com (10.3.19.107) by dggeme710-chm.china.huawei.com (10.1.199.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1591.10; Wed, 26 Jun 2019 14:15:29 +0800
Received: from dggeme761-chm.china.huawei.com ([10.6.66.35]) by dggeme761-chm.china.huawei.com ([10.6.66.35]) with mapi id 15.01.1591.008; Wed, 26 Jun 2019 14:15:29 +0800
From: Nagesh shamnur <nagesh.shamnur@huawei.com>
To: "philip.eardley@bt.com" <philip.eardley@bt.com>, "cpaasch=40apple.com@dmarc.ietf.org" <cpaasch=40apple.com@dmarc.ietf.org>, "olivier.bonaventure@uclouvain.be" <olivier.bonaventure@uclouvain.be>
CC: "multipathtcp@ietf.org" <multipathtcp@ietf.org>, Ashutosh prakash <ashutosh.prakash@huawei.com>
Thread-Topic: [multipathtcp] Regarding rate control at a subflow level
Thread-Index: AdUMWULM15YYbMauQ2OybE7pkHW5IQAPgMiAAI4nwwAB/2degAAocmPAAJC6+oAAFryLsALakkMAAGwTVYAABAJYAAAt0qJwAMJcxoAAOvyOIA==
Date: Wed, 26 Jun 2019 06:15:29 +0000
Message-ID: <af851f6d145f49db94ec3195b355ff86@huawei.com>
References: <4AC96705FB868F42B2075BA50F806DEB56995EF6@dggema524-mbx.china.huawei.com> <4f40e635-2a80-20ec-c991-8a7a61ef327a@uclouvain.be> <20190520135014.GG41806@MacBook-Pro-64.local> <LO2P123MB1965EA246F2652E9D5C47731EB180@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM> <4AC96705FB868F42B2075BA50F806DEB569B1298@dggema524-mbx.china.huawei.com> <LO2P123MB1965E1FF05CB40AC39F8B36AEB140@LO2P123MB1965.GBRP123.PROD.OUTLOOK.COM> <4AC96705FB868F42B2075BA50F806DEB569B1748@dggema524-mbx.china.huawei.com> <LNXP123MB2587FB78BF5AC2BB256E4A66EBEA0@LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM> <1859ba208bc5449281d43d0c4db4a940@huawei.com> <LNXP123MB258799012B1C3F610A4D3FB3EBE40@LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM> <c0547eb8c9024251bc4a127402a2588e@huawei.com> <LNXP123MB2587A653567F6F6F054D4AD5EBE30@LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM>
In-Reply-To: <LNXP123MB2587A653567F6F6F054D4AD5EBE30@LNXP123MB2587.GBRP123.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.18.156.80]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/multipathtcp/V-tK8vFVo0i2GMWMB556wPYbihI>
Subject: Re: [multipathtcp] Regarding rate control at a subflow level
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/multipathtcp/>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Jun 2019 06:15:38 -0000

Hi Philip,
	Thanks for the reply. I beg to differ. Since the problem I believe is related to all the multipath protocols like MPTCP, MPQUIC etc. I would like to quote a scenario, where server wants to throttle the rate to an extent that, it is more than the individual sub flows but much lesser than the sum of all the available sub flows. Existing schedulers can achieve this by loading the primary sub flow and once it reaches the limit, subsequent data would be sent on secondary sub flow. But the point here is, if the client pushes data more than the allotted limit, it can overrun the limit which server expects from the client.
	I would be interested to know, if it can be realized with any of the existing techniques.
	
Regards,
Nagesh S

-----Original Message-----
From: philip.eardley@bt.com [mailto:philip.eardley@bt.com] 
Sent: 25 June 2019 15:22
To: Nagesh shamnur <nagesh.shamnur@huawei.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Nagesh,
Sure - but I don’t think this is related to the use of multiple paths (ie in your example, the server wants to throttle the client - independently of the client's use of multiple paths) phil -----Original Message-----
From: Nagesh shamnur [mailto:nagesh.shamnur@huawei.com]
Sent: 21 June 2019 06:13
To: Eardley,PL,Philip,TUD1 R <philip.eardley@bt.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Dear Phil,
	Yes, client can control the rate at which data is pushed to server, but what if server what to throttle the bandwidth usage of the client targeted towards the server due to various server policies. One of them could be to reduce the load on the server.

Regards,
Nagesh S


-----Original Message-----
From: philip.eardley@bt.com [mailto:philip.eardley@bt.com]
Sent: 20 June 2019 20:44
To: Nagesh shamnur <nagesh.shamnur@huawei.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Nagesh,
For upstream, isn’t the most likely case that the client side knows the available bandwidth on the multiple paths? so it can control the rate at which it sends traffic upstream on the different paths. (ie the server doesn’t need to tell the client side to throttle speed, because the client side can do this on its own)

Thanks
phil

-----Original Message-----
From: Nagesh shamnur [mailto:nagesh.shamnur@huawei.com]
Sent: 20 June 2019 06:28
To: Eardley,PL,Philip,TUD1 R <philip.eardley@bt.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Hi Phil,
	Generally for the downlink traffic, server tries to share the available bandwidth among all the available connections (flows and subflows) and this would be achieved by Congestion control algorithm. Any algorithm would try to scale up to pipe limit. If server needs to throttle the speed then it wouldn't be possible with congestion control algorithm alone and server can realize the same with many ways and one of them would be to ask application on the server side to slow down the packet sending rate.
	How will server achieve the same to tell client side to throttle speed? Dropping packets on server side implicitly or explicitly can achieve it, but IMO it is not the best way. 
	
Regards,
Nagesh S


-----Original Message-----
From: philip.eardley@bt.com [mailto:philip.eardley@bt.com]
Sent: 18 June 2019 15:15
To: Nagesh shamnur <nagesh.shamnur@huawei.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Nagesh,

Thanks, interesting to hear about an upstream use case. Would be good to explore the scenario in a bit more detail. 
As you say, the congestion control algorithm can be used to stop one connection starving others (ie server / network-side drop packets to slow down a connection). I think you're hinting that this may not be good enough in all scenarios (<< but there can be cases where the application decides to limit the bandwidth to avoid possibly overload kind of scenarios.>>) - would you explain this a bit more please?
I'm trying to understand what benefit we might gain from some extra signalling (whether of preferences, a rate to limit to, or whatever) and therefore whether it's something we should think about doing. 

Thanks
phil

ps Sorry for delay, been away.
-----Original Message-----
From: Nagesh shamnur [mailto:nagesh.shamnur@huawei.com]
Sent: 03 June 2019 14:07
To: Eardley,PL,Philip,TUD1 R <philip.eardley@bt.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Hi Phil,
	The idea is about controlling the rate on the uplink rather than the downlink and the decision to limit the bandwidth is made at the server since, server can control the downlink traffic rate to all the clients connected to it, but the uplink limit needs to be pushed to the client. 	

Regards,
Nagesh S


-----Original Message-----
From: philip.eardley@bt.com [mailto:philip.eardley@bt.com]
Sent: 03 June 2019 15:46
To: Nagesh shamnur <nagesh.shamnur@huawei.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Nagesh,
Could you explain your scenario a bit more please? Not sure I get it right.  Is this about uplink? Is the application decision to limit the bandwidth made at the client or at the server, and does the network have a role (either in the decision making or supplying info)?
Thanks
phil

-----Original Message-----
From: Nagesh shamnur [mailto:nagesh.shamnur@huawei.com]
Sent: 31 May 2019 06:19
To: Eardley,PL,Philip,TUD1 R <philip.eardley@bt.com>; cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

Hi Phil,
	I am glad the problem is being discussed upon.  One more possible usecase is for load balancing to achieve one or a set of clients doesn't hog the entire bandwidth available on the server side. Though the links to server supports the bandwidth but still chooses to limit the bandwidth. I agree, this is left best to be dealt with congestion control algorithm to achieve the bandwidth sharing, but there can be cases where the application decides to limit the bandwidth to avoid possibly overload kind of scenarios.

Regards,
Nagesh S

-----Original Message-----
From: philip.eardley@bt.com [mailto:philip.eardley@bt.com]
Sent: 30 May 2019 23:23
To: cpaasch=40apple.com@dmarc.ietf.org; olivier.bonaventure@uclouvain.be
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>; Nagesh shamnur <nagesh.shamnur@huawei.com>
Subject: RE: [multipathtcp] Regarding rate control at a subflow level

I think the use case a hybrid operator could be interested in is the following. Similar to Alexander's use case.

We want to provide a particular customer with broadband access that is faster than their DSL alone can provide, for instance to meet some minimum rate to meet a target of say 20Mbps. The rate can't quite be met by DSL, therefore cellular or even satellite is used as a top-up. DSL capacity is much cheaper than cellular /satellite, therefore the ideal scheduler would favour DSL. It would react reasonably quickly to increased total load above the DSL rate (but not so fast that the instantaneous rate from a variable rate source 'kicks in' the cellular when the rate over a slightly longer time can be met by DSL). Note that the DSL rate is not completely static.  It supports deployments with a proxy in the home gateway and in the network (under the control of the operator), and deployments where there's only the proxy in the network (ie MPTCP is in the multi-interface phone). Possible to ensure that an individual flow goes over only one access. Downward direction (from network to house) more important than upward.  In a long-running session using a lot of bandwidth, because the amount of other traffic varies, it may be that this session sometimes uses just the DSL and sometimes is spread over both accesses. On a minor point, ideally a speed test should measure the rate correctly (I don’t mean the scheduler identifies a speed test and favours it; rather, ideally the speed test shouldn’t eg measure just the DSL rate - alternatively re-define the speed test). 

So in terms of Olivier's question below, I think this means that the limit is about the total and not per subflow. 

In terms of mechanism, I'm open to whatever is most suitable. I'm very interested if the best method would mean that ideally some new functionality is added to the MPTCP standard (and by implication to MP-QUIC).

Best wishes,
phil


-----Original Message-----
From: multipathtcp [mailto:multipathtcp-bounces@ietf.org] On Behalf Of Christoph Paasch
Sent: 20 May 2019 14:50
To: Olivier Bonaventure <olivier.bonaventure@uclouvain.be>
Cc: multipathtcp@ietf.org; Ashutosh prakash <ashutosh.prakash@huawei.com>; Nagesh shamnur <nagesh.shamnur@huawei.com>
Subject: Re: [multipathtcp] Regarding rate control at a subflow level

Hello,

On 17/05/19 - 09:59:54, Olivier Bonaventure wrote:
> Dear Nagesh,
> > 
> >                  Greetings. In case of Mobile deployments of MPTCP, 
> > though the data rates are getting cheaper, still it would be wise 
> > not to run the cellular path to full limit but to throttle to a 
> > certain extent considering cost in mind or if server wants to limit 
> > the client at subflow level, then I couldn’t find the support for 
> > the same in the specification.
> 
> We have developed several prototypes that include this capability in 
> the Linux kernel.
> 
> > So, while going through the discussion archives, could only find 
> > that, the peer(server) can throttle the speed for the entire 
> > connection by publishing a smaller receiver window rather than for a 
> > particular subflow. I feel, it would be a good idea if the peers can 
> > exchange this information using the control packets.
> 
> We could imagine an MPTCP option that provides the maximum rate on a 
> per-subflow level, but I was wondering whether the use case is not to 
> limit the bandwidth on the smartphone at the link level (i.e. multiple 
> tcp connections or udp flows) and not at the subflow level. Could you 
> precise your use case for the subflow level ?

another use-case for rate-control I see is when a client wants to tell a sender to gracefully close a subflow.

- Sending a TCP-RST results in packet-loss of the in-flight data.
- Reducing the window is going to stall the whole connection because the window is shared.
- Setting MP_PRIO also won't work because none might want to drain a secondary
  subflow even if the "primary" subflow is having severe packet-loss.

Thus, a "maximum-rate" option on a per-subflow level would allow to send the rate to 0, which would drain the subflow.


Christoph

_______________________________________________
multipathtcp mailing list
multipathtcp@ietf.org
https://www.ietf.org/mailman/listinfo/multipathtcp