RE: Small size of core QUIC library to replace TCP for embedded system

Nick Banks <nibanks@microsoft.com> Tue, 21 July 2020 00:53 UTC

Return-Path: <nibanks@microsoft.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 0520B3A123B for <quic@ietfa.amsl.com>; Mon, 20 Jul 2020 17:53:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 grUTTmnF5Dgq for <quic@ietfa.amsl.com>; Mon, 20 Jul 2020 17:53:19 -0700 (PDT)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com (mail-eopbgr650138.outbound.protection.outlook.com [40.107.65.138]) (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 8FC593A1238 for <quic@ietf.org>; Mon, 20 Jul 2020 17:53:19 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gPvMfB4NvN5a4AClpNDqC08CisitHAAHpIcKsv6yObnl4884p3erqoySM9qzwNNdwYRuQMjdkTYGP6hcomA97gGZ6OXTJjEuWpaAJjRTOy9819H/CAdgd3pWU2r3ge+NdynXsH4dvF+B6oW0O0FCMS9thJNxgQ+6cbUAZzs7BlYesIoNBuirQ9WA8Fr1OgbdWTGeSFXRR1HmYjRh5Ot8pwnkt8tkOfcAT/oYXsikccDw6+T2vg4WHBq00cmOMn+g6Wu1qo6UQoAGmYk5ROFgov5ms8y2UKCul5beHsOWdmTJjn3X3LKqTKyPFg3YXyar1Ps6Pv1oZCwqFUhRB+u1Fg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y9t7GuKF9jSk4vUn8XkvqIjKLlNmSz0DebXh6vXGcKw=; b=V0bj+NORPsKHuVPzTbTpquWG7c9P4oudwoPdusEVLJvN0gLHt3HnP07+xUYzyCgxIkhv6HKBs45JzLrO/vKcW9UfXGbzWmCzKznc4dyJu2T37qM/iELbhFFw0M74U3P5Gpb+PboYav6vUO2F1sqzLqkJY5CCw9rYqVZZxWyXI/ms7FuTK4/xtdbge8ADn91/owaoRdRAv+MI0zIUBrBSZT8m9YlP+wlcNPHx753jSOHz02Vcc/Q1jbHG/hWO89Dl9tvoCXPocMvensCvp2wiybVV7EUYlYCA9ZJtv8QUZWc+qyzP0NMOGAcDbR+ZhnpcsCPqHTamr5lHV5sd/O9vuA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y9t7GuKF9jSk4vUn8XkvqIjKLlNmSz0DebXh6vXGcKw=; b=OkSZ0JB1PhzLJiX1IU1FbM6RLB800Mfp/jTKmlm/s7i1tfLItyHyzI4s5LlyG2k+dLR4Qrf2vvZ4RtocUSlbAeNYnjNjy1+KI7O8NPAYtz3KmQ070rxzw4Gw4pfypxPShR9BTirY5eSG3gYD2TPg+ZQX9tZMGU6PvRksbXkc0q4=
Received: from CH2PR00MB0764.namprd00.prod.outlook.com (2603:10b6:610:63::8) by CH2PR00MB0853.namprd00.prod.outlook.com (2603:10b6:610:ad::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3253.0; Tue, 21 Jul 2020 00:53:18 +0000
Received: from CH2PR00MB0764.namprd00.prod.outlook.com ([fe80::9d6f:a1a9:1d2e:9c32]) by CH2PR00MB0764.namprd00.prod.outlook.com ([fe80::9d6f:a1a9:1d2e:9c32%3]) with mapi id 15.20.3252.000; Tue, 21 Jul 2020 00:53:17 +0000
From: Nick Banks <nibanks@microsoft.com>
To: Jupiter <jupiter.hce@gmail.com>, quic <quic@ietf.org>
Subject: RE: Small size of core QUIC library to replace TCP for embedded system
Thread-Topic: Small size of core QUIC library to replace TCP for embedded system
Thread-Index: AQHWXvZp3uq7gVE72UKmbppHgOE7C6kRNCvA
Date: Tue, 21 Jul 2020 00:53:17 +0000
Message-ID: <CH2PR00MB07647EEBC9795A9BE3801C13B3780@CH2PR00MB0764.namprd00.prod.outlook.com>
References: <CAA=hcWS0V8ipsoAEFK3ejdA++Vzi+czth37=ntP4mnt8d=mtRg@mail.gmail.com>
In-Reply-To: <CAA=hcWS0V8ipsoAEFK3ejdA++Vzi+czth37=ntP4mnt8d=mtRg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2020-07-21T00:53:13Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=408994c0-3b45-438a-bcb5-554c1e225ebc; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0
authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [66.235.1.136]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 327fc4dd-14e1-416f-ea6c-08d82d107513
x-ms-traffictypediagnostic: CH2PR00MB0853:
x-microsoft-antispam-prvs: <CH2PR00MB0853A6964B5D70BB22FC3A2FB3781@CH2PR00MB0853.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: TIo0zKrkoQ4I6ifE2c+IIfjBVaSU5Ph9FqxuVi4mWWjOO39pvfZ5tIydIUaJBR55HdVlx0mfhb1ospAqcN/I6MT9JakF+EJgraDL360s36WYvAUmJDr7GK23i0kJSgWOsWmt8CnlnWZ80A0QrOkviqbmyKsRGwZTQj1YpPJi0XZMgPWZc3s/6Wg+WReFljfZfJnL1W8MvGT3COeqBFWSrzfVBCi1qfUjWAmTXuJiO/X2igy6EdPeQWwjEOii9xko42RRU18VYjzApXvBTdwKK3Py90eyFt1I3r2Meudg/tZ+1UQKyTBnKodMckfrIDT4Lumn7niolx4D05VUfCeMwZdThxubKCBSgCZswzS+uueoT0FEay7PeZapgs+GLITR8YVPCfwfFCwsx2C4CoDsdw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR00MB0764.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(39860400002)(366004)(376002)(396003)(136003)(55016002)(8936002)(7696005)(10290500003)(83380400001)(110136005)(53546011)(2906002)(186003)(66446008)(71200400001)(66556008)(64756008)(6506007)(76116006)(66476007)(26005)(66946007)(33656002)(86362001)(316002)(52536014)(478600001)(8990500004)(8676002)(5660300002)(82950400001)(9686003)(82960400001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: dY0LwyiC8HOQP6L0k7rf968qeUTfUDa/SGWKzSkgwSWbnxMOugye5zwGspcIDAlVu0qmOeNza3Kgp5II/PXJl8xy9HuAMwI74zvfg2uXYtpMVVOMkaKFLYrgWHA1MVvV+e4B1hLvYwivDgs0Q04qnA1SWU/g5uygXShirSiSWBnsj5ETGFKZ3C0+bOeZB7zVlWROpYoT3RxG7LFYgDc6U87R6sMcozJeV3t7lEKWpk1lKI9MzrC7dBi7nJkN6mbMRbfmHEkTGKWk9V3ljjAWGksgbF+4RuzyI05MaGPBPFND9WQEdH90cJodOWV54a9PSQ8EmuaGTbbnUzbq3XbdREfYZTdtZzN4e/Hn+aWoao/YlWCE4ZeXV+LHaXMw3SIzxD6QNUeuezJHE22UCSyml4C9sBnG6h0N/zguCKChZ+SzSFAN0rzQr1v1pUWVyOnr4iziDvt/ZtrPG0uWFuMrV7k0xnt8k5O4xkYaz77h76ohXuDlgx5fhqp74JEdryueyQVV3Ie3mni7tsdrbLR1Ms4QXtOcNpWBUTxQd8R6vfG/n2SVAfc0WQT/DM7R8gZQL10iTS7nYWMHakxZ+0i2NyHpiMnbV5pMa4AB+aM6MeP1vvwWZ/CQEz/XZZQzp2aCp9cyCIyYOmqEf/xJWz7IWA==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH2PR00MB0764.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 327fc4dd-14e1-416f-ea6c-08d82d107513
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jul 2020 00:53:17.8975 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7n9zUlr+T+S8dN9KiNRK5a/pSz0REhsO8Bu5l7VgxSuz8HbKiDz7C1DTDNLe6JE6HQOgYRE2qkkyaJ30ir2WCg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR00MB0853
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/oQ2HRo3GMNVXasjnBsvX5Zd--Yc>
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, 21 Jul 2020 00:53:21 -0000

Hello!

Feel free to take a look at MsQuic (https://github.com/microsoft/msquic). It's written in C and is purely a QUIC implementation (no HTTP/3). We've not necessarily targeted it for embedded systems and I can't tell you off-hand how small the library will end up being in your scenario. If you try it out and find any specific problems, feel free to open issues and we can discuss fixing them.

Thanks,
- Nick

-----Original Message-----
From: QUIC <quic-bounces@ietf.org> On Behalf Of Jupiter
Sent: Monday, July 20, 2020 5:31 PM
To: quic <quic@ietf.org>
Subject: Small size of core QUIC library to replace TCP for embedded system

Hi,

I am looking for a slim backbone core QUIC library to replace TCP stack.

Here are core features currently I am using TCP, I am wondering if there is a QUIC open source library can be used or to be further developed to replace following TCP key functionality

- Replace Boost ASIO TCP by QUIC for socket communication between the device and Cloud services.

- Use (Address)-restricted-cone NAT

- Use TCP TLS

The major issue when I looked at Google and other QUIC source is because it supports HTTPS, the size is too large, it is not modularized, Some open source claimed the library can be used by adding or removing options, the reality is most of the QUIC libraries are designed based on HTTPS in mind, it is hard to have a clean small size QUIC core functions above.

I have to admit my knowledge about QUIC is limited, but I am a programmer, I am keen to participate a modular QUIC open source development for embedded system, here are options:

- Take an existing QUIC library (C/C++)

- Fork a QUIC Git source to develop a slim C/C++ QUIC for the embedded system.

- Start from scratch based on reference of some QUIC library

Appreciate your advice and suggestions.

Thank you.

Kind regards,

jupiter




--
"A man can fail many times, but he isn't a failure until he begins to blame somebody else."
-- John Burroughs