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