Re: [core] Fw: New Version Notification for draft-bhattacharyya-core-a-realist-00.txt
Abhijan Bhattacharyya <abhijan.bhattacharyya@tcs.com> Wed, 10 October 2018 09:55 UTC
Return-Path: <prvs=8145ec7a0=abhijan.bhattacharyya@tcs.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DD66A130DE5 for <core@ietfa.amsl.com>; Wed, 10 Oct 2018 02:55:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=tcs.com
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 9OrIxsk0FfZN for <core@ietfa.amsl.com>; Wed, 10 Oct 2018 02:55:45 -0700 (PDT)
Received: from indelg02.tcs.com (indelg02.tcs.com [203.200.109.58]) (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 01159130ECF for <core@ietf.org>; Wed, 10 Oct 2018 02:55:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcs.com; i=@tcs.com; q=dns/txt; s=default2048; t=1539165340; x=1570701340; h=in-reply-to:references:to:cc:mime-version:subject: message-id:from:date; bh=/j66skxxfqfmFsl+mfwJrvXu4gq2x/8Ws/Zgdy0dacg=; b=cB5fu4Y4xMMatTkKV+pg/ioPJt2KjKZtReBO4GCpfJFnhuXj/B5yWw0a +yYNqllvhvr4C9apHNg+IaIWEZpQKdRGxzjQyhQqY+0sYSPkxGyetoW2h 9ZHch68IajrlsnSZnACtIwKZp+owwIT4//ET7zj+/yQ584w4/w+u5Y5i5 NTvw3+/eO8IW4iBoRutQQz7h9wGsNHprRMDYiSIw+xZFssspy1VLumndd ZE1V1vHarNELfVxE98fduT20uRqhDooddc+lGSpwnq58liZTGwsH1eVp3 jfhY1018hMQmBV00QUOSx8dZlrr4bu9HIMflPLgWaMJ1ARPaPohrD5L/w Q==;
IronPort-PHdr: 9a23:dUu5CBR6Xtp8164mX41SW8HVhtpsv+yvbD5Q0YIujvd0So/mwa6zYRGN2/xhgRfzUJnB7Loc0qyK6/+mATRIyK3CmUhKSIZLWR4BhJdetC0bK+nBN3fGKuX3ZTcxBsVIWQwt1Xi6NU9IBJS2PAWK8TW94jEIBxrwKxd+KPjrFY7OlcS30P2594HObwlSizexfbF/IA+qoQnNq8IbnZZsJqEtxxXTv3BGYf5WxWRmJVKSmxbz+MK994N9/ipTpvws6ddOXb31cKokQ7NYCi8mM30u683wqRbDVwqP6WACXWgQjxFFHhLK7BD+Xpf2ryv6qu9w0zSUMMHqUbw5Xymp4rx1QxH0ligIKz858HnWisNuiqJbvAmhrAF7z4LNfY2ZKOZycqbbcNgHR2ROQ9xRWjRDDYOycYUAAPcPM+FboYf9qVUBsQCzChOwCO710DJFnGP60bA83u88EQ/GxgsgH9cWvXnIt9r1NKYSUeKvw6nO0D7OcvNW1i3h6IjUaB8uvfGMUqhqccvRyUggDR7Og1KKpoP+PzOV1+YNvHKd7+Z6Tu2vi3Qoqx1toje12sgsipPGhpgVy1HE7yp025o1KsGjSEJhfdGkF55QujicOoBrTM0iRGRotzw7yr0AoZO7fDQKyIg/xxLGcPyHb5KI7Qz5W+aUIDd4gn1leby+hxau8Uiv0PbzVtOu3FZRqSpJisXMuWwW1xDJ9seHTf5980G80jiMzwDe8vxILEIqmabBNpIswaQ8moQdvEjZESL7nlj9grWMeUU+4Oeo7vzqYrDhppCBKYB5khr+MqEymsynBuQ4LxQOU3Cb+eui0L3j+lX0TrZSgPMzi6fXto3UKNgdqKC3BQFbyIEt5QijAju7yNgYnH8HI0xZeB+fkoTkOU/CLOrlAfq8mVigjjlmy+rJM7H5B5XCNHnDkLPvfbZn7E5czRI+wspE6JJUC7EBIuj8WknruNPDDh82KRC0w/r9B9ph1oMRQ3iPA6+ZMazIqlKI+v4gI/KWaIAJvzb9LuAp5+Tygn8hhV8dYa6p0IMLZ3C4BPRmIl6ZYWbtgtgbF2cHpRAxTOnxiF2fTzFTfG2yU7gg6TE8DYKsFZ3DSZy1gLydwCe7GYVbaXxBClCWD3jlbISEVOkQaCKcOMNhlSYEVbfyA7MmgFuFtBX70KZmJ+zj0ygDIYn4npAh7O3JlAou9DVyJ82YyHyAVHoylWQNEWwYxqd69GV3ylaB2K4wqfxRCcBa7PNASBYrPNaIxuZ6CtL7XETLft6VVF+tQty8ECA4Zs462JkFZEMrSIbqtQzKwyf/W+xdrLeMHpFht/uEh3U=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A2EFAACmy71b/wQXEqxkGQEBAQEBAQEBAQEBAQcBAQEBAQGBUwIBAQEBAQsBgVuBEIEnmkqWfhSBZigThD4ChGs2Cw0BAwEBAgEBAgEBAoEFDII2JAEOS2sBAQEBAQEjAghoAQEBAQIBDgwNPhICBQsLBwYEAwECASAHB0YJCAYKAQgbgwYBgXmjaQEBAYFoM4R4hR2LXHd+gRKDEoRLAQwGAQMGNgyDAoIqAog7Eg4EBIYNMoUFiV8HAoILjl2BT4RpiVOXVQaBEHFwgzwJgh0XEWoBCIJCilpniX4BBgiCPgEB
X-IPAS-Result: A2EFAACmy71b/wQXEqxkGQEBAQEBAQEBAQEBAQcBAQEBAQGBUwIBAQEBAQsBgVuBEIEnmkqWfhSBZigThD4ChGs2Cw0BAwEBAgEBAgEBAoEFDII2JAEOS2sBAQEBAQEjAghoAQEBAQIBDgwNPhICBQsLBwYEAwECASAHB0YJCAYKAQgbgwYBgXmjaQEBAYFoM4R4hR2LXHd+gRKDEoRLAQwGAQMGNgyDAoIqAog7Eg4EBIYNMoUFiV8HAoILjl2BT4RpiVOXVQaBEHFwgzwJgh0XEWoBCIJCilpniX4BBgiCPgEB
X-IronPort-AV: E=Sophos;i="5.54,363,1534789800"; d="scan'208";a="20249388"
In-Reply-To: <20181009072535.GA31858@hephaistos.amsuess.com>
References: <OF6F7D9482.0418744D-ON6525831E.0068D037-6525831E.006A8351@tcs.com> <20181009072535.GA31858@hephaistos.amsuess.com>
To: Christian Amsüss <christian@amsuess.com>
Cc: core@ietf.org, Hemant Rath <hemant.rath@tcs.com>
MIME-Version: 1.0
X-KeepSent: C4567C72:A5736163-65258322:00270C28; type=4; name=$KeepSent
X-Mailer: IBM Notes Release 9.0 March 08, 2013
Message-ID: <OFC4567C72.A5736163-ON65258322.00270C28-65258322.003683EF@tcs.com>
From: Abhijan Bhattacharyya <abhijan.bhattacharyya@tcs.com>
Date: Wed, 10 Oct 2018 15:25:27 +0530
X-MIMETrack: Serialize by Router on InKolM02/TCS(Release 9.0.1FP10HF213 | April 26, 2018) at 10/10/2018 15:25:29, Serialize complete at 10/10/2018 15:25:29
Content-Type: multipart/alternative; boundary="=_alternative 003683EE65258322_="
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/2JnoXWOCI2caFQHGq2BnsvcLaD8>
Subject: Re: [core] Fw: New Version Notification for draft-bhattacharyya-core-a-realist-00.txt
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 10 Oct 2018 09:55:50 -0000
Hi Christian,
It is a pleasure to get your valuable comments. Probably the subject
matter needs to be discussed in the broader context of real-time
time-series streaming for IoT. Your inputs are important in this regard.
Let us share some ready thoughts in response to some of your comments. We
can definitely discuss further.
> * I assume that an I-Frame is still larger than an MTU, thus transported
> in the stream it would still occupy multiple exchanges. Given that you
> stick with NSTART=1 ("MUST wait to send any further segment"), won't
> the round-trip times for the (how-many?) CON exchanges bring
> throughput to a halt at every I-Frame?
Yes, the possibility cannot be ignored. However, since I-frames are
essentially JPEG encoded spatially compressed frames so similar techniques
used in the MJPEG streaming example can be used. So one can sub-classify
critical and non-critical information within I-frames and switch the
semantics accordingly. Anyway, one thing that we need to bear in mind is
that the I-frames are sparse and separated by the scale of the GoP. P / B
frames are usually very small in size. So one gets some time to transfer
the I-frames and then may be serialize the P and B frames in subsequent
best-effort delivery. Depends on design experiences. May be we can put
some text regarding this in future versions.
Having said that, I admit one of your later points where you have
mentioned about some of the possible optimizations in block wise transfer.
These things can be discussed in a broader spectrum. At present we did
not attempt to disrupt the Block-wise transfer mechanism as it has been
created with a specific use case of reliable large data delivery. We need
to define what should be the behaviour if a block option is used with
No-Response (if at all).
> * The stream states look like something that should not be managed in an
> option but can be managed at REST level by using established
> mechanisms: "Create an entity (stream) and give a handle that we can
> use to talk about it" is commonly expressed by POSTing somewhere
> and receiving a URI for that stream as a Location.
> The re-negotiation information could then go into unsuccessful
> messages (eg. 4.xx Too Many Requests, with a payload indicating to
> increase compression).
>
> This example moves the stream ID into the URI path and both timestamp
> and position into the URI-Query. I've expressed both timestamp and
> position in decimal format, but that shouldn't be a show stopper; if
> it causes trouble, we'll come up with something (eg. a way of having
> a compressed URI query that's transmitted as int but means a
> decimal-encoded URI-Query component).
What you propose is definitely a sensible approach.
But we tried to follow the approach in existing streaming standards and
put the specific header options to help the consuming end relate the
components of a series-transfer. One thing to note is that in this case
the header over-head due to stream control information has a deterministic
limit. Parsing is also straight forward with minimal processing overhead.
Stream-state in the header helps quick understanding on agreement/
disagreement from the other party. In case we put the details in a URI
query string then that impacts the effective length of the header and we
need special mechanism to compress the URI. We wanted to avoid these
complexities. The philosophy is to minimise control level processing to
cater the hard real time requirements for live feed in AR control
applications like automated VSLAM (Visual Simultaneous Localization and
Mapping) for dumb robot terminals and UAVs. So the terminal is not
manually remote controlled.
We assume that the time-stamp is presented in epoch time.
Another point is that we chose to provide autonomy to the producer to
propose the stream-ID through header option. We consider the typical case
where a remote (UAV) terminal is depleted of energy and replaced by
another terminal, which streams as soon as commissioned, using the same
stream ID (keeping an option for pre-provisioning). It becomes seamless
for the consumer.
> * In general, video streaming has been my classical example of things
> you would not want to do over CoAP, so please forgive my skepticism.
> I'd be happy to be shown to be wrong, but that might need statistical
> comparison to RTP streaming, and practical demonstration (though I
> only might be saying this because I want to try remote piloting a UAV
> over CoAP myself ;-) )
>
RTP is something that will automatically come as a first thought. However,
according to our experience, commercial IP based streaming implementations
are using custom protocols on TCP. These protocols are quite in line with
the usual current practice for RESTful streaming over public Internet
which uses HTTP-streaming with ABR. So, we tried to create an efficient
streaming counterpart of HTTP-streaming for IoT. ABR can be an added
feature to what we proposed in the draft. In future AR the producer may
not only stream multimedia but can send mulSEmedia (multi SEnsory media)
with video as a sensory input. So we wanted to have a RESTful protocol
which is equally efficient in transferring sensor data as well as large
streams. Also, as we have mentioned in draft, CoAP allows us to create the
intelligent switch to balance between real-time and reliable delivery
while optimizing the resource usage and allowing flexibility to react to
the connection environment.
Having said that, we have done bench marking experiments to compare with
RTP. We are not doing bad actually (however, definitely you need to change
the default time-out limits, etc. for the real-time).
We can present the approach and use cases in more detail with descriptions
of the experiments and the bench marking results for further discussion in
a physical meeting.
Thank you.
With Best Regards
Abhijan Bhattacharyya
Consultant / Scientist,
{Internet Protocols | 5G | Standardization},
TCS Research,
Tata Consultancy Services
Building 1B,Ecospace
Plot - IIF/12 ,New Town, Rajarhat,
Kolkata - 700160,West Bengal
India
Ph:- +91 33 66884691
Cell:- +919830468972 | +918583875003
Mailto: abhijan.bhattacharyya@tcs.com
Website: http://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Consulting
____________________________________________
"Christian Amsüss" <christian@amsuess.com> wrote on 10/09/2018 12:55:35
PM:
> From: "Christian Amsüss" <christian@amsuess.com>
> To: "Abhijan Bhattacharyya" <abhijan.bhattacharyya@tcs.com>
> Cc: core@ietf.org, "Hemant Rath" <hemant.rath@tcs.com>
> Date: 10/09/2018 12:55 PM
> Subject: Re: [core] Fw: New Version Notification for draft-
> bhattacharyya-core-a-realist-00.txt
>
> Hello Abhijan,
>
> On Sun, Oct 07, 2018 at 12:53:24AM +0530, Abhijan Bhattacharyya wrote:
> > A new draft [...] of real-time streaming
>
> I've had a brief look at this draft, and have some questions and
> comments:
>
> * I assume that an I-Frame is still larger than an MTU, thus transported
> in the stream it would still occupy multiple exchanges. Given that you
> stick with NSTART=1 ("MUST wait to send any further segment"), won't
> the round-trip times for the (how-many?) CON exchanges bring
> throughput to a halt at every I-Frame?
>
> * The stream states look like something that should not be managed in an
> option but can be managed at REST level by using established
> mechanisms: "Create an entity (stream) and give a handle that we can
> use to talk about it" is commonly expressed by POSTing somewhere
> and receiving a URI for that stream as a Location.
>
> I'll try to re-phrase the exchange on p9 in such terms:
>
> Client (Producer) Server (Consumer)
> | |
> | POST: CON; |
> | URI=/video; |
> | Payload= CBOR or JSON |\
> +------------------------------------------------->| |
> | | |Stream
> | ACK; | |negotiation
> | Response = 2.04 CHANGED | |
> | Location: /five-bit-id | |
> |<-------------------------------------------------|/
> : :
> : :
> |(First segment of an MJPEG frame. Contains |
> | meta-data. Critical segment needs reliable |
> | delivery.) |
> | |
> | PUT: CON; |
> | URI=/five-bit-id?t=123&pos=0 |
> | Payload= <Bytes_in_1st segment> |\
> +------------------------------------------------->| |
> | | |
> | ACK; | |
> | Response = 2.04 CHANGED | |
> |<-------------------------------------------------| |
> |(Second segment of an MJPEG frame. Contains | |
> | non-meta-data. Non-critical segment- best effort | |
> | transfer.) | |
> | | | Stream
> | PUT: NON; | | ongoing
> | URI=/five-bit-id?t=123&pos=1024; | |
> | No-response = 127 | |
> | Payload= <Bytes_in 2nd _segment> | |
> +------------------------------------------------->| |
> | | |
> : : |
>
> The re-negotiation information could then go into unsuccessful
> messages (eg. 4.xx Too Many Requests, with a payload indicating to
> increase compression).
>
> This example moves the stream ID into the URI path and both timestamp
> and position into the URI-Query. I've expressed both timestamp and
> position in decimal format, but that shouldn't be a show stopper; if
> it causes trouble, we'll come up with something (eg. a way of having
> a compressed URI query that's transmitted as int but means a
> decimal-encoded URI-Query component).
>
> If the offsets and lengths of the messages within a time slice are
> always block-sized, it would be well possible to use blockwise
> transfer for the individual time frames. AFAICT it should be within
> the specification to have some blocks CON transferred, some NON even
> with no-response. As processing of the time frames is not atomic, the
> application could work with blocks that are missing. That'd also give
> us access to other established mechanisms, like sending a Size1
> option with the pos=0 package of a timestamp to indicate how many
> butes there will be for this timestamp.
>
> * In general, video streaming has been my classical example of things
> you would not want to do over CoAP, so please forgive my skepticism.
> I'd be happy to be shown to be wrong, but that might need statistical
> comparison to RTP streaming, and practical demonstration (though I
> only might be saying this because I want to try remote piloting a UAV
> over CoAP myself ;-) )
>
> Best regards
> Christian
>
> --
> To use raw power is to make yourself infinitely vulnerable to greater
powers.
> -- Bene Gesserit axiom
> [attachment "signature.asc" deleted by Abhijan Bhattacharyya/KOL/TCS]
> "External email. Open with Caution"
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
- [core] Fw: New Version Notification for draft-bha… Abhijan Bhattacharyya
- Re: [core] Fw: New Version Notification for draft… Christian Amsüss
- Re: [core] Fw: New Version Notification for draft… Abhijan Bhattacharyya
- Re: [core] Fw: New Version Notification for draft… Mohit Sethi M
- Re: [core] Fw: New Version Notification for draft… Abhijan Bhattacharyya