Re: [Webpush] Early TSV-ART review of draft-ietf-webpush-protocol-09

Magnus Westerlund <magnus.westerlund@ericsson.com> Wed, 05 October 2016 13:08 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 84FC21296F3; Wed, 5 Oct 2016 06:08:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 IySXUeH31mb7; Wed, 5 Oct 2016 06:08:27 -0700 (PDT)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (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 0A73B1296EA; Wed, 5 Oct 2016 06:08:26 -0700 (PDT)
X-AuditID: c1b4fb2d-5b107980000009f7-aa-57f4fb491bb8
Received: from ESESSHC022.ericsson.se (Unknown_Domain [153.88.183.84]) by (Symantec Mail Security) with SMTP id 45.E1.02551.94BF4F75; Wed, 5 Oct 2016 15:08:25 +0200 (CEST)
Received: from [127.0.0.1] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.86) with Microsoft SMTP Server id 14.3.301.0; Wed, 5 Oct 2016 15:08:23 +0200
To: Brian Raymor <Brian.Raymor@microsoft.com>, "tsv-art@ietf.org" <tsv-art@ietf.org>, "draft-ietf-webpush-protocol@ietf.org" <draft-ietf-webpush-protocol@ietf.org>, "webpush@ietf.org" <webpush@ietf.org>, "webpush-ads@ietf.org" <webpush-ads@ietf.org>
References: <1f645188-2344-ebf3-1228-3735bcf81338@ericsson.com> <CY1PR03MB23800B9F4C7BEF6137E5EEA483C50@CY1PR03MB2380.namprd03.prod.outlook.com> <CY1PR03MB238084C15B9BEEBE0F8CD8C683C40@CY1PR03MB2380.namprd03.prod.outlook.com>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Message-ID: <4baa72c6-cd52-19d5-c070-4a19336c23ed@ericsson.com>
Date: Wed, 5 Oct 2016 15:08:21 +0200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <CY1PR03MB238084C15B9BEEBE0F8CD8C683C40@CY1PR03MB2380.namprd03.prod.outlook.com>
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKLMWRmVeSWpSXmKPExsUyM2J7iK7n7y/hBq/fSFncn/eIyWLx9wY2 i1l7FrFYtF86w25x5fRfdgdWjyVLfjJ5tO74yx7AFMVlk5Kak1mWWqRvl8CVsfrWEraCaTYV c+b+ZmpgfG7QxcjJISFgInHgzAX2LkYuDiGB9YwS3S2bGEESQgLLGCXenrQCsYUFnCVWXjnL DFIkIvCfUeL8/80sEEVPGSWunuYCsdkELCRu/mhkA7F5BewlOjq2soPYLAIqElO23WYCsUUF YiSuP3sEVSMocXLmE6A5HBycArESjZsiQUxmoNYHW8tAKpgF5CWat85mhtikLdHQ1ME6gZF/ FpLmWQgds5B0LGBkXsUoWpxaXJybbmSsl1qUmVxcnJ+nl5dasokRGJgHt/zW3cG4+rXjIUYB DkYlHt4HWz+HC7EmlhVX5h5ilOBgVhLh1fz1JVyINyWxsiq1KD++qDQntfgQozQHi5I4r9nK ++FCAumJJanZqakFqUUwWSYOTqkGRgV/lRfJrRHXtj6+81lfpyZyQsjNmiebljSetrL+4xxz 9/56G+MNpvF1Ocfd7vmvm1KvZ6G+6YXU3MwPXELm5w/YvvuoJXH/jsekAqPC8HClXVnWRurf avwTF/A4dE/Nqvm37c73LS1W7Ud0trHou2oLJE1akvRzpUZ+jLGMG//v0gSR9a1BSizFGYmG WsxFxYkAAh7BnUgCAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/webpush/eksyXzX_sbfPKyaeVz2HV2lrvvU>
Subject: Re: [Webpush] Early TSV-ART review of draft-ietf-webpush-protocol-09
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <webpush.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webpush>, <mailto:webpush-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webpush/>
List-Post: <mailto:webpush@ietf.org>
List-Help: <mailto:webpush-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webpush>, <mailto:webpush-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Oct 2016 13:08:32 -0000

Hi,

I have looked at the pull request which looks good, with one very minor 
comment that you should check out on github.

Cheers

Magnus


Den 2016-10-05 kl. 05:10, skrev Brian Raymor:
> I've created an initial pull request for review -
> https://github.com/webpush-wg/webpush-protocol/pull/131 - while we
> discuss whether there's additional guidance that can be shared for
> "4. Dealing with overload situations".



>
>
> -----Original Message----- From: Brian Raymor
> [mailto:Brian.Raymor@microsoft.com] Sent: Monday, October 3, 2016
> 7:33 PM To: Magnus Westerlund <magnus.westerlund@ericsson.com>om>;
> tsv-art@ietf.org; draft-ietf-webpush-protocol@ietf.org;
> webpush@ietf.org; webpush-ads@ietf.org Subject: RE: Early TSV-ART
> review of draft-ietf-webpush-protocol-09
>
> Magnus - Thanks for the review. I'll have a pull request available
> tomorrow to address most of your feedback. In the interim, I've
> shared a few comments and clarifications below.
>
> On September 27, 2016 3:28 AM, Magnus Westerlund
> <magnus.westerlund@ericsson.com> wrote:
>
> <snip>
>
>> 3. Section 7.2:
>
>> To limit the number of stored push messages, the push service MAY
>> either expire messages prior to their advertised Time-To-Live or
>> reduce their advertised Time-To-Live.
>
>> Do I understand this correctly, that theses options are push
>> service side actions that is not notified at that point to the
>> application server? Instead it will have to note that the message
>> was early expired if it subscribes to delivery receipts?
>
> This text should be clarified. There are two cases. First, the push
> service can only reduce the requested TTL in its response to a
> request from an application server to deliver a push message:
>
> https://tools.ietf.org/html/draft-ietf-webpush-protocol-10#section-5.2
>
>  A push service MAY retain a push message for a shorter duration
> than requested.  It indicates this by returning a TTL header field in
> its response with the actual TTL.  This TTL value MUST be less than
> or equal to the value provided by the application server.
>
> Second, if an application server subscribes to delivery receipts it
> will receive a 410 if the push service does not then honor that TTL:
>
> https://tools.ietf.org/html/draft-ietf-webpush-protocol-10#section-6.2
>
>  The push service MAY cease to retry delivery of the message prior
> to its advertised expiration due to scenarios such as an
> unresponsive user agent or operational constraints.  If the
> application has requested a delivery receipt, then the push service
> MUST return a 410 (Gone) response to the application server
> monitoring the receipt subscription.
>
> If the application server does not subscribe to delivery receipts,
> then it's a fire-and-forget scenario.
>
>> 4. Dealing with overload situations
>
> Could webpush implementers review Magnus's questions below and
> consider whether there is further general guidance that can be
> offered based on their early experiences with the protocol?
>
>> Reviewing Section 7.1 and other parts I find the discussion of how
>>  overload situations of various kinds are dealt with missing some
>> cases. So the general handling of subscriptions are covered in
>> Section 7.1 and with a mitigation of redirecting to another server
>> to handle the new subscription.
>
>> What I lack discussion of are how any form of push back are handled
>> when first the deliver of push service to UA link is overloaded. Is
>> the assumption here that as the push service can store messages the
>> delivery will catch up eventually, or the message expires?
>
> Your assumption in this case is basically correct. The push service
> could also use the acknowledgements from the user agent as an
> indicator of overload and reduce the rate.
>
>> How does one handle a 0-RTT messages when one has a queue of
>> messages to deliver, despite having a UA to Push service
>> connection?
>
>> The second case is how the push service server can push back on
>> accepting new message when it is overloaded. To me it appears that
>> the load on a push service can be very dynamic. Thus overload can
>> really be periods. Thus, what push back to application servers is
>> intended here? Just, do a 503 response on the request from the
>> application server?
>
> We decided on a 429. See
> https://www.ietf.org/mail-archive/web/webpush/current/msg00341.html -
> although it's also possible for the push service to terminate a
> subscription.
>
> https://tools.ietf.org/html/draft-ietf-webpush-protocol-10#section-8.4
>
>  A push service MAY return a 429 (Too Many Requests) status code
> [RFC6585] when an application server has exceeded its rate limit for
> push message delivery to a push resource.  The push service SHOULD
> also include a Retry-After header [RFC7231] to indicate how long the
> application server is requested to wait before it makes another
> request to the push resource.
>
> A push service or user agent MAY also terminate subscriptions
> (Section 7.3) that receive too many push messages.
>
>> I do note that RFC 7231 does not appear to have any guidance one
>> how one sets the Retry-After header to spread the load of the
>> retries. This is a known issue. And in this context with automated
>> or external event triggered message creations the push back
>> mechanism needs to be robust and reduce the issues, not make them
>> worse.
>
>> I would recommend that some recommendations are actually included
>> here for handling overload from application server message
>> submissions.
>
>> 5. Life of subscription in relation to transports
>
>> I find myself a bit perplexed of if there are any relation between
>> the subscription and the relation to an existing transport
>> connection and outstanding request, i.e. the availability to
>> receive messages over push. I would guess, that there are no strict
>> need for terminating the subscription even if there are no receiver
>> for an extended time.
>
> Especially for mobile and/or battery powered clients, the expectation
> is that the user agents will be dormant for extended periods of
> time.
>
>> However, from an application perspective there could exists reason
>> for why a subscription would not be terminated as long as the UA is
>>  connected, while any longer duration of no connections could
>> motivate the subscription termination.
>
>> I personally would like a bit more clarification on this, but
>> seeing how these issues are usually handled around HTTP, I would
>> guess the answer, it will be implementation specific? Still there
>> appear to be assumptions around this, why it wouldn't matter that
>> much, but that is only given that one follows these assumptions.
>
> I think that your assumption is correct. The behavior is specific to
> the push service. Implementers have requested the ability for a push
> service to terminate a subscription at will based on its internal
> policies.
>
> Again, I'd ask that the webpush implementers share any general
> guidance or observations for this case.
>
> <snip>
>
>
>


-- 

Magnus Westerlund

----------------------------------------------------------------------
Services, Media and Network features, Ericsson Research EAB/TXM
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Färögatan 6                 | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------