Re: Idea for packet numbers

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Thu, 20 July 2017 11:10 UTC

Return-Path: <mikkelfj@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 92DA0131B09 for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:10:15 -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, UNPARSEABLE_RELAY=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 JllW_pR4UjjP for <quic@ietfa.amsl.com>; Thu, 20 Jul 2017 04:10:13 -0700 (PDT)
Received: from mail-ua0-x22e.google.com (mail-ua0-x22e.google.com [IPv6:2607:f8b0:400c:c08::22e]) (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 B39A112EAF0 for <quic@ietf.org>; Thu, 20 Jul 2017 04:10:13 -0700 (PDT)
Received: by mail-ua0-x22e.google.com with SMTP id f9so20319853uaf.4 for <quic@ietf.org>; Thu, 20 Jul 2017 04:10:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to; bh=4FfFBb0cbWKCCcTiVIPR52/SdtN7snfRNJ7+PlQPzUs=; b=mBB+B4dY87m3owpHK/L2z8fV7cg0/9MNAQDYjmoWixQd3EZuDVoXHK+fu+blcHJHiZ XkxzOJcgkZZYabdfzfeRXciQtV7J7Puj8382S/HjV9UGhW7S38wmjLCBwyNYC5HyXtkB EJ+Ra2Z/iBd6LKtfW/sJvNuMWET8Tp6hgXENCLEEo+JEyo6mwQg33tLZb2akdVN73Tr+ A+BjEatVLJHIzag/4H5ACv61hvCz7X89L7p+tZ2qSouDDwi3SpsG3cop7LIy7hoyiq/H olIwWSXDYULCizmww5TvZOm98j+3jkWlc5iyRZcThbhM0B+7xpB3l/N32sL3Bi6BrU0W Gr5Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=4FfFBb0cbWKCCcTiVIPR52/SdtN7snfRNJ7+PlQPzUs=; b=OCxdTlIueBWZDM4JyogvMn+V1qcIR60hwvXIn7Vgd6/PsD2QlWw5+592n2JVE3ephM 0JNhzTkm5RP9sOz2gFpABox9uh/M5zrv1Wm5LDiCHzhsJNoTqJrI8W61rRbZMqXLvYGm VUf8HER2shg4ktgvLxvOt53Q2O9VfdK34KZ7iEoTcmedqEzvYw+abZl8xrJ6gI+sL2S6 MDIHvSUAv7JVtQdZjB6QKxAh9QVdhGeoRTt+ZRWVjTD2BORCKaseufN3pVOKhccyBOaf XWvXYMAOPybE8PMF6np1IoYb5vM6/EXlMSS52NX0RiO/gLp+t2HaHAxZdFOvmf1aZzBy s+Qw==
X-Gm-Message-State: AIVw112R+F8IQ8Eximt396A+4FduKEMvUV4DiPgoCuSjecxLe7dFgcIl PlcwBH+8ez8zD+S3QK8qn3Lx+hp+fg==
X-Received: by 10.31.186.130 with SMTP id k124mr1435781vkf.124.1500549012802; Thu, 20 Jul 2017 04:10:12 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 20 Jul 2017 07:10:12 -0400
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
References: <c7941a67-6eaa-cd58-d0e2-a764478aa5b0@ericsson.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Thu, 20 Jul 2017 07:10:11 -0400
Message-ID: <CAN1APdfwCoEieon8H98TOXBmsiwoHQfpsknfMB4hteU5gi9sMg@mail.gmail.com>
Subject: Re: Idea for packet numbers
To: Magnus Westerlund <magnus.westerlund@ericsson.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11441096e051a10554bdca99"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/OjKnMT83-7rqpcpBtbEAJktQEPg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 20 Jul 2017 11:10:16 -0000

For other reasons I would like the packet numbers to be close, preferably
without gaps except during connection migration.

This relates to storing interval maps as groups of bitmaps instead of
binary trees to track already received packets. This both provides are more
efficient implementation, and it reduces some modes of DoS where an
attacker can create a lot of small intervals which cause the data structure
to inflate.

If packet numbers can only jump in higher bits and if we make a constraint
that such jumps must not be happen without filling at least one full packet
block, then it is possible to pack received packets efficiently into their
respective lower bit groups and the DoS concern would be mitigated, and it
would be easy to reject abuse. There is still the issue of blocks of lost
packets - so it is not that simple in praxis.


Kind Regards,
Mikkel Fahnøe Jørgensen


On 20 July 2017 at 12.00.04, Magnus Westerlund (
magnus.westerlund@ericsson.com) wrote:

Hi,

There has been some discussion around packet numbers. For passive
detection of packet loss in measurements and network management, it
would be really good if the packet numbers where continuous and not only
monotonically increasing. As this enables one to determine losses
upstream of the measurement point. At the same time I understand there
are benefits with being able to introduce gaps into the packet number to
test the receiver's behaviour.

To enable both of these capabilities I would propose that the N least
significant bits of the packet number are strictly increased by one.
Then one can introduce gaps in the bits above the N ones. Yes, that will
burn through the packet number space faster as the gaps may become
larger than was the case without this. However, I don't see that this
will have significant effect unless the sender introduce gaps very
frequently so that the length of the packet number field needs to be
much larger due to the outstanding sequence number space is much larger.

The value of N can clearly be discussed but it should be selected so
that reordering and common burst durations are shorter than the time to
wrap the strictly increase amount of bits. If the higher bits are
available to measurement node, some possibility to infer gaps will also
be possible. It might be that N needs to be scaled with throughput with
a minimal value. N=8 would mean 256 packets between wraps. I think that
is a reasonable minimal value. However, that will wrap in 28 ms at 100
mbps of payload (assuming 1400 bytes of payload per packet).

So what people think about this idea?


Cheers

Magnus Westerlund

----------------------------------------------------------------------
Media Technologies, Ericsson Research
----------------------------------------------------------------------
Ericsson AB | Phone +46 10 7148287
Torshamnsgatan 23 | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------