Re: [Int-area] IP parcels

Behcet Sarikaya <sarikaya2012@gmail.com> Thu, 27 January 2022 21:29 UTC

Return-Path: <sarikaya2012@gmail.com>
X-Original-To: int-area@ietfa.amsl.com
Delivered-To: int-area@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F0FB93A1120 for <int-area@ietfa.amsl.com>; Thu, 27 Jan 2022 13:29:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.847
X-Spam-Level:
X-Spam-Status: No, score=-6.847 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, 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 5K0gKWEQo2nL for <int-area@ietfa.amsl.com>; Thu, 27 Jan 2022 13:29:16 -0800 (PST)
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) (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 25A3A3A111E for <int-area@ietf.org>; Thu, 27 Jan 2022 13:29:16 -0800 (PST)
Received: by mail-lf1-x12e.google.com with SMTP id u14so7825530lfo.11 for <int-area@ietf.org>; Thu, 27 Jan 2022 13:29:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=5Zy6UfQtuYfIDeRAUmxqPgZUggB4+oMWZU8X/YWGi2c=; b=YLh+ot5R6hV4ir5ybrpfeMTY0+3JrBYdhgbHbGUyEu9CixfeHgUEPKGQQDy8eTPJT7 IAOnuBtOmKUMHlLnGGeUikzPj5otkOjeBgefQ3l7P16HUqwejrSMpPnqntTZ8C8l7/Lt ggANedwajIWXmAb7CnXyfPgwwBN3iiOcQMti4U/qgTR+4K/YJsiANV19eSyTDBhfvtZ1 ip90yOF5KcYj+RxPKw4Fd8JOkqm/hAM+fGliidoTzE53GSeafMZQ0Zru8xbtEs8gYTTd Zyedp+tBVTnuWCeQPbg3HL2BiN9ScYNz3NYUt52ZYlPCb3fLwnwBHobSWj2MM1nQ2VGk kd3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=5Zy6UfQtuYfIDeRAUmxqPgZUggB4+oMWZU8X/YWGi2c=; b=MdcQkAG6CKjPRmlRb5t4YVijyDClg+cH7re3sEMqKJRBl2Uf5hjDniYuk3qF13ect6 HZ9zRiMzPVizTaK/uAEglHvRBFRrErIKjFMuQ4FdjxK8gTLUC+TNSHZJ+ixiIVPhsDUt uwiV4JPq/dJmwhbHXTs14E32rf1USXnuWh4ysC7tezkWIHFLnE9BFT0JPGU096Fr2P8N t4JDYdflSYKIngnwUaqSOmTl1VXgwXzIUsBR6NhfIZqrwI4uY66fPBUNdfsrsslvGf0O aE36aFEDQeXi9SZMrpvgf9hcPiCCFCum7SRGPZp4Dd8DG9jCXAyqkdIxQvYwVPWHaKwk iTog==
X-Gm-Message-State: AOAM53145KNwYppgI3wfwfr9GtjGzCD5AgoddWGy0j8PvwrEPK3jlZay pROWA2knnxU6YWSco6qefLc0uH6ddzCNJS48+L0=
X-Google-Smtp-Source: ABdhPJyT3uByuGhCA7qKq13cCL1liwJOPmKwu0EL4W0B46AWpUnuSzLVnIyBnBuihYRCTfKbFNo1FWg7tww1WEYu7/U=
X-Received: by 2002:a05:6512:e9a:: with SMTP id bi26mr4029392lfb.677.1643318952953; Thu, 27 Jan 2022 13:29:12 -0800 (PST)
MIME-Version: 1.0
References: <d6c6fec034a74e319cc9840ecb0f5603@boeing.com> <7cf11719-20f4-26ed-f332-18633c65491e@huitema.net>
In-Reply-To: <7cf11719-20f4-26ed-f332-18633c65491e@huitema.net>
Reply-To: sarikaya@ieee.org
From: Behcet Sarikaya <sarikaya2012@gmail.com>
Date: Thu, 27 Jan 2022 15:29:01 -0600
Message-ID: <CAC8QAcc6vHjAk50MtNLFOKaFQuV-1e_L2U_-O4AX5bJW9=JUTQ@mail.gmail.com>
To: Christian Huitema <huitema@huitema.net>
Cc: "Templin (US), Fred L" <Fred.L.Templin@boeing.com>, "int-area@ietf.org" <int-area@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000718a6105d6970219"
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/7f4CF0GAoDnoos0-QLVF1L7zUsk>
Subject: Re: [Int-area] IP parcels
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Internet Area WG Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-area>, <mailto:int-area-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-area/>
List-Post: <mailto:int-area@ietf.org>
List-Help: <mailto:int-area-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>, <mailto:int-area-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 27 Jan 2022 21:29:21 -0000

Hi Folks,

Thanks Christian for explaining how GSO/GRO are used by Quic
implementations. So the use is not mandated in Quic RFCs but rather used in
implementations.

I found this presentation by Intel:
https://www.dpdk.org/wp-content/uploads/sites/35/2018/06/GRO-GSO-Libraries-Bring-Significant-Performance-Gains-to-DPDK-based-Applications.pdf
way back in 2017 quite useful.
So what I understand is GSO/GRO were originally used by TCP/UDP
and Quic implementations use UDP GSO/GRO because of Quic is UDP based.

Behcet

On Thu, Jan 27, 2022 at 1:24 PM Christian Huitema <huitema@huitema.net>
wrote:

> On 12/20/2021 10:03 AM, Templin (US), Fred L wrote:
>
> > Tom, sorry I will try to use my words more carefully; I am using GSO/GRO
> also for
> > a UDP-based transport protocol – not QUIC but something similar. I like
> GSO/GRO
> > very much; I am glad the service is available and I want to see it
> continue. But, my
> > understanding of the services is that they leverage the IP ID field in
> whole IPv4
> > packets that are not eligible for fragmentation and those are
> limitations I am
> > seeking to improve on.
>
> Lots of QUIC implementation use UDP GSO/GRO. They do that to achieve
> good performance. Without GSO, we have observed that almost 2/3rd of the
> CPU time was spent in socket calls, mostly sendmsg on servers. Using GSO
> to send batches of packets results in big gains. For example, the same
> single-core implementation that achieves 500 Mbps without GSO gets to
> 4-5 Gbps while sending batches of packets of about 64K using GSO.
>
> Note however that this is *UDP* GSO. The application prepares a batch of
> UDP packets, all sharing the same source and destination address and
> ports, and all but the last having the same length. The GSO call
> provides these header parameters, the common payload length, and a set
> of UDP payloads, concatenated in a large buffer. Each payload is a fully
> formed QUIC packet, encrypted and sealed using AEAD. There is no
> expectation that these packets would be somehow re-segmented or
> re-assembled in the network -- if the network did that, decryption would
> fail. There is also no expectation that the batch of packets will be
> delivered as a single batch to the receiver. It might happen by chance,
> but mostly it does not because GRO and GSO are not synchronized. On the
> other hand, the handling of the small packets by the QUIC stack is
> rarely considered a problem.
>
> > I want to enable a facility similar to GSO/GRO that works for both IPv4
> and IPv6
> > packets and allows for lower layers to fragment if necessary. And, I
> want to use
> > a well-behaved 32-bit IPv6 ID instead of the 16-bit IPv4 one where the
> use is not
> > well defined when DF=1.
>
> Consider encryption. QUIC certainly expects that packets sent will be
> received unchanged, or they would fail decryption. Also consider packet
> loss. In the GSO example, the sender might send a batch of 42 packets.
> If any of them is lost, it will be resent individually. QUIC could of
> course send a 64KB packet if the network allowed. But if a 64KB parcel
> is segmented in 42 segments, any packet loss will cause the loss of the
> whole parcel, and that would cause a significant drop in performance
> compared to GSO. Which is indeed the core of the "segmentation
> considered harmful" argument.
>
> -- Christian Huitema
>
> _______________________________________________
> Int-area mailing list
> Int-area@ietf.org
> https://www.ietf.org/mailman/listinfo/int-area
>