Re: QUIC for robotics and other time-sensitive applications

Ted Hardie <ted.ietf@gmail.com> Tue, 30 April 2019 21:38 UTC

Return-Path: <ted.ietf@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 A2CB31202DF for <quic@ietfa.amsl.com>; Tue, 30 Apr 2019 14:38:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 jPYzzOvl3UNA for <quic@ietfa.amsl.com>; Tue, 30 Apr 2019 14:38:15 -0700 (PDT)
Received: from mail-it1-x135.google.com (mail-it1-x135.google.com [IPv6:2607:f8b0:4864:20::135]) (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 96218120329 for <quic@ietf.org>; Tue, 30 Apr 2019 14:38:15 -0700 (PDT)
Received: by mail-it1-x135.google.com with SMTP id v143so7282111itc.1 for <quic@ietf.org>; Tue, 30 Apr 2019 14:38:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=FbYlCsiqrAviDo6VZ/udEeEfw6OrE5gPHSdTtQWvKWM=; b=OVqAWQIgrC8Gil8vB4EmZYJcKWSt4Xp8NvZkCvmuCxjLw50HcD+SI/Sxhf6XEhrEWY 1D7kW2eTSdO7wJGq3idRCIuISjQxRMlyeCS8UTX6J/vjieq4AnZ+iRSaNOYOS24jyXKm DiuGl8xOU4Qvz+/XFZ/J1xzgSTcSz25gCJP3XBKGh1N5cv5MqLnnST4pejnlUqBGDL3X PaHmK/dEpyF1xIhhR7OKVwIKEpJPFTlkLTSSTpUVT1HYHxmL7Gi1aUjyUmVkEOYwgsnS C2Xe7UXmrF8a5mvsBHMJGb8oMbKnQfC5z0+ZsoNXVI4WsEk4DFKl9BQi7FaUByTNIK8I hQYQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=FbYlCsiqrAviDo6VZ/udEeEfw6OrE5gPHSdTtQWvKWM=; b=Qc0MNjG5gtishqJAt6BTSGE4y/iIPHkrt2mkKVdGvefT1oMAFpR0piJa2O0bhC90OG CeWEmB7LmTQL2VBB7RfN9XtS5tLGYXsmTixijS6+lubLW58V0kmxS/vRj26RcvR5W793 tZiQb23Myb3bP2/3rawQez7+6rejJbyUSqfaWfM75j22oL4rvuZ+Kcvr6veL0x7Hm0gU JW54/KZni4OCCAbgYpiIgEqA69hxJyWb9jjlmeQBP2Saymbc+XzTu6mek4hBJ7JSfcK2 UzjlM/mCM32CSObgLVA9bTOR/B0+RjdhRWaa2I10EYGbQbJ8io3mTFqB9YB+sHsfdwJZ dkKg==
X-Gm-Message-State: APjAAAWr3BVuqCurYNXmylYeyyqWCD1p04MBeOgoMzh3HLq+hmVeCim7 TxoWqKTWq8r1wgy7IiuFX7XEp47TaS0C8bsLPek=
X-Google-Smtp-Source: APXvYqzHCkwjuPK98mc6yuyg6ra5/cBsv80JFkd8TAyUGe5HjJNN6Z9tjvPTG/WMYkCHpnK+o4eqqajiAijMA832bok=
X-Received: by 2002:a02:8563:: with SMTP id g90mr21042261jai.11.1556660294567; Tue, 30 Apr 2019 14:38:14 -0700 (PDT)
MIME-Version: 1.0
References: <542b6445-de16-8b13-4ffc-f1ca46c535da@gmail.com>
In-Reply-To: <542b6445-de16-8b13-4ffc-f1ca46c535da@gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
Date: Tue, 30 Apr 2019 14:37:48 -0700
Message-ID: <CA+9kkMDD-DyReh-mCYgF==t8Lcy9tVOrABiWhyMx2VgcwfbOtw@mail.gmail.com>
Subject: Re: QUIC for robotics and other time-sensitive applications
To: John Wason <johnwason1@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000e4cbac0587c6373e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ZwID84ZP5zSfzBBBaRo6degdNDU>
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:38:19 -0000

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> 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 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
>
>