Re: QUIC for robotics and other time-sensitive applications

John Wason <johnwason1@gmail.com> Tue, 30 April 2019 21:51 UTC

Return-Path: <johnwason1@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB2D61203C5 for <quic@ietfa.amsl.com>; Tue, 30 Apr 2019 14:51:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.748
X-Spam-Level:
X-Spam-Status: No, score=-1.748 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 Zfm7rpAOS_ua for <quic@ietfa.amsl.com>; Tue, 30 Apr 2019 14:51:41 -0700 (PDT)
Received: from mail-yw1-xc2f.google.com (mail-yw1-xc2f.google.com [IPv6:2607:f8b0:4864:20::c2f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 52B701203D1 for <quic@ietf.org>; Tue, 30 Apr 2019 14:51:41 -0700 (PDT)
Received: by mail-yw1-xc2f.google.com with SMTP id u14so7085365ywe.1 for <quic@ietf.org>; Tue, 30 Apr 2019 14:51:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language; bh=ZxxVJsNIEK2U142vZ/lzubtTEwjHU7wZz/tiEZChK+s=; b=nCXK4yHZ0T9fVk/qc5kLfKW7O/jYoDdXo1XXZo8+m2lrJ5Et9YIaGJ5qVWT6kAV0zV D5ptkCVaL1PgkauTi/y83TMQ8HqdrD2O2zU/2KuFu7aWRxP6wqj1HmCxj83iuJcaJkCg FIJA+co4xonTmaRRjlb4vYe4bMKRmAeoEENQFjo1nghwT3P+5usdYPOOP9Sqb/3sEHxf 2Z9JmKWeO/OBIbGl2+2aBqxfvcwrGltLc1SKdAw80FMWsmns5n+s7govnvuEx3F6e4XO uXjC1ddhvU/Hx9d+pV9//JY8LrBoDbdOjvkoHT+BrnRCQy1EVOrnwxOW63byIcHtT2eG rUGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=ZxxVJsNIEK2U142vZ/lzubtTEwjHU7wZz/tiEZChK+s=; b=QW4tTAvzhGJETB+FelGe20wVi1MBtDov6u1mU6q9mbPvFP0QcV0aQSnUg0EIGXa8hv 0cvC6oP/DKk1GiO5c9OWMTk2GVYOuGIcJuk4RA7+Ox667gez4nzLvWpaOnguDUBjG96g mmKd6f/+shm2tK1I87TC29+9TZG0PrDkdXzwZ1KAF4kVifN/tDIQqz3MC0OntwZ0Z3Ku UV+drR0mRLFXqI70yMwk7EQSCKxnZXhjA3tU76a8F11ZLF5D8wv+y4jl1WCtKCwMBRfD +1jKWMkjwye1u/4xjqukBUzELPb+NZID/YO8PdZCeMjq0ifz09H0s/T/9q6JM2azsw43 Nmtg==
X-Gm-Message-State: APjAAAUW4hvWNXxoNK+hd5RqHtXDd3qadduumMTDgDzTGgvY3KsDtqRg wIZ0YQSnDAs1aDzZbQSdsO7fnX2v
X-Google-Smtp-Source: APXvYqx5nKS75sbU1PPq6zms/v93zTET3euAgslFS7KJBxvfvOcmnReS26YMYhYn+GZdoVCjBNk6+Q==
X-Received: by 2002:a25:9d06:: with SMTP id i6mr57735687ybp.347.1556661100195; Tue, 30 Apr 2019 14:51:40 -0700 (PDT)
Received: from [192.168.11.58] (D8FF7f43.cst.lightpath.net. [216.255.127.67]) by smtp.gmail.com with ESMTPSA id t85sm5089799ywc.92.2019.04.30.14.51.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Apr 2019 14:51:39 -0700 (PDT)
Subject: Re: QUIC for robotics and other time-sensitive applications
To: Ted Hardie <ted.ietf@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>
References: <542b6445-de16-8b13-4ffc-f1ca46c535da@gmail.com> <CA+9kkMDD-DyReh-mCYgF==t8Lcy9tVOrABiWhyMx2VgcwfbOtw@mail.gmail.com>
From: John Wason <johnwason1@gmail.com>
Message-ID: <ae90d734-43f2-412d-123c-03421b44d6c8@gmail.com>
Date: Tue, 30 Apr 2019 17:51:37 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <CA+9kkMDD-DyReh-mCYgF==t8Lcy9tVOrABiWhyMx2VgcwfbOtw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------AAFE7B29E72D876856BF135D"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/434w1WJamsyy1NGXtFgWy4R1D8U>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Apr 2019 21:51:44 -0000

Thanks Ted, this looks very interesting. Based on these documents the 
DETNET sits below the level of QUIC that we are currently discussing and 
would mainly affect the IP header format of the resulting UDP packets. 
The QUIC protocol will still require some form of partial reliability to 
function on a DETNET network.

     -John Wason

On 4/30/2019 5:37 PM, Ted Hardie wrote:
> Hi John,
>
> Thanks for the message.  If you have not already reviewed the work of 
> DETNET (https://datatracker.ietf.org/wg/detnet/about/) here in the 
> IETF, it might be useful to do so, as there are a number of elements 
> of your use case which appeared to be shared with their work.  In 
> particular, it might be useful to consider whether the integration of 
> their proposed IP data plane 
> (https://datatracker.ietf.org/doc/draft-ietf-detnet-dp-sol-ip/?include_text=1) 
> with QUIC would be valuable in achieving your timing goals.
>
>
> best regard,
>
> Ted Hardie
>
> On Tue, Apr 30, 2019 at 12:15 PM John Wason <johnwason1@gmail.com 
> <mailto:johnwason1@gmail.com>> wrote:
>
>     Greetings QUIC WG,
>
>     The discussion on Issue #92 of webrtc-quic suggested that I post my
>     requirements to this list.
>
>     I am a robotics engineer and the developer of Robot Raconteur, a
>     communication framework for robotics and automation systems
>     (https://github.com/robotraconteur/robotraconteur). Robotics
>     applications require different data types and QoS when compared to
>     business or web applications. Robotics applications need real-time
>     communication of isochronous data, for instance constant updates
>     on the
>     position of the joints of the robot, alongside generic
>     non-time-sensitive data. Currently most robotics applications are
>     using
>     TCP (Robot Raconteur, ROS*, OPC/UA), UDP (DDS, ROS2, ROS*), or
>     some form
>     of custom Ethernet protocol (Ethernet/IP, EtherCAT, PowerLink). To
>     add
>     more confusion to the situation, there is the recent introduction of
>     IEEE 802.1Q Time Sensitive Networking (TSN) which claims to allow TCP
>     and UDP to achieve hard real-time performance.
>
>     While there are many robotics protocols out there, only Robot
>     Raconteur
>     and OPC/UA are compatible with existing web and cloud infrastructure.
>     (Some limited support for ROS/ROS2 has become available on AWS,
>     but the
>     design of ROS does not play very well outside of local networks.*)
>     Robot
>     Raconteur implements web browser and web server support by
>     allowing the
>     websocket protocol to be used. Clients can use a URL that
>     specifies that
>     the connection is a websocket, and incoming TCP connections can
>     detect
>     if the connection is the Robot Raconteur protocol or an incoming
>     websocket connection. Robot Raconteur running inside an ASP.NET
>     <http://ASP.NET> web
>     server has been demonstrated, and there is no technical reason that
>     other server technologies cannot accept Robot Raconteur connections
>     through websockets. (OPC/UA uses SOAP for its web based transport,
>     but
>     support is very poor and only available in a few implementations.)
>
>     The main issue limiting Robot Raconteur for more demanding
>     applications
>     is the use of TCP for data transport. TCP suffers from "head-of-line"
>     blocking, which means that if stale data encounters an error it
>     can stop
>     fresh data from reaching the other peer. There is also the problem of
>     large messages blocking the transmission of smaller, more time
>     sensitive
>     messages on the connection. QUIC appears to solve most of these
>     problems, and the webrtc-quic support under development provides a
>     lot
>     of new and interesting opportunities for integrating robotics
>     applications with web technology. By adopting QUIC, the resulting
>     software will remain completely compatible with web infrastructure.
>
>     Transmitting time-sensitive data requires the ability to multiplex
>     (and
>     prioritize) messages and drop messages if the data contained becomes
>     stale. The multiplexing issue is solved using the "streams as
>     messages"
>     concept in QUIC, with built in priority handling. This design
>     looks very
>     promising, and considerably simpler to use compared to SCTP
>     streams. The
>     current issue that is somewhat questionable is the implementation of
>     partial reliability. The discussion right now is focused on DATAGRAM
>     extensions (draft-pauly-quic-datagram-02), which allow for "raw"
>     access
>     to the socket so protocols such as RTP can tunnel through QUIC. This
>     requirement is quite a bit different than what is required for an
>     application like Robot Raconteur. Robot Raconteur is based on message
>     passing, where either the entire message is received or the entire
>     message is cancelled because the data contained is stale. The message
>     may be considerably larger than MTU, and the QoS may be "partial,"
>     meaning that a set number of attempts may be made to resend, and/or
>     there is an expiration time on the message. This capability is
>     discussed
>     in draft-lubashev-quic-partial-reliability-03, and is similar to how
>     SCTP handles partial reliability. If only a raw DATAGRAM
>     capability is
>     provided, then partial reliability will need to be built on top of
>     QUIC,
>     defeating the purpose of using QUIC for this application. Other
>     applications such as online gaming have very similar performance
>     requirements, so I think that the partial reliability capability
>     will be
>     important to many future users.
>
>     The complexity and required effort to add the partial reliability
>     capability to QUIC is low, so I hope that this capability is not
>     abandoned.
>
>     Robot Raconteur has received a grant from the United States ARM
>     Institute and New York State to begin commercializing the technology.
>     This project will be done in partnership with Wason Technology, LLC,
>     Rensselaer Polytechnic Institute, Southwest Research Institute, and
>     United Technologies Research Center. The project starts soon, and
>     considerable development effort will be invested in the Robot
>     Raconteur
>     technology starting early summer. Integrating QUIC is one of the
>     tasks
>     that I hope to undertake during this project.
>
>     Please let me know if you have any questions about Robot Raconteur or
>     the requirements for QUIC in robotics applications.
>
>          -John Wason
>
>     (* I am aware that there are some caveats to how ROS/ROS2 interact
>     with
>     the wider world, but the technologies are not built on or compatible
>     with web standards so an in depth discussion is not relevant for the
>     current topic. ROS does have a UDP transport, but it is not
>     commonly used.)
>
>     -- 
>     John Wason, Ph.D.
>     Wason Technology, LLC
>     16 Sterling Lake Rd
>     Tuxedo, NY 10987
>     (518) 279-6234
>     wason@wasontech.com <mailto:wason@wasontech.com>
>
-- 
John Wason, Ph.D.
Wason Technology, LLC
16 Sterling Lake Rd
Tuxedo, NY 10987
(518) 279-6234
wason@wasontech.com