Re: Ephemeral addressing [was Re: 64share v2]

Lorenzo Colitti <> Wed, 11 November 2020 13:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id CC61D3A0DBD for <>; Wed, 11 Nov 2020 05:56:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Status: No, score=-17.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cBgJDshZT5Ci for <>; Wed, 11 Nov 2020 05:56:00 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4864:20::d32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6BA053A0DBF for <>; Wed, 11 Nov 2020 05:56:00 -0800 (PST)
Received: by with SMTP id m9so2321081iox.10 for <>; Wed, 11 Nov 2020 05:56:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rNlNrcLHOAIyxQIOPvbRC6sEvh0rdNQxZ9Vf1eXyKTE=; b=CgA+G4fBDspQmevpDQZzXL7Yu1ewfQaIggCImqbhpivuYv/0GjRInpbM0Tzo4QRbPx PMopl9o5Ct+Cg8Vumq7gxr+boWSMf7HQAvpR7v9arFil2tkiD2iJgjkHfScQ1nCWnOxr hpCOEFQggvjIAIkrFA6PkcFUvg1S+9iW8PlrAsGLW7DHCRqTnHZQazmiWKW2FhE+ip2s 8SJjQv+BVjbxDvebKcISm9rlRAJLwRQuPxm9OutnXiVrDm00Gc+Ok54dNgapjC0w14mF agz0mQCRpneh8RXbh/OyThyF+5T/6BY+9ZF1NQH2D7+DaKa5Cgu+caEjRUwqtWhm6nSD /G/w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rNlNrcLHOAIyxQIOPvbRC6sEvh0rdNQxZ9Vf1eXyKTE=; b=mNRE989CosWeAJQh5Y5TF4zjpGGv7oTIxakNVLfzodA/6inPP5g7cBhteSRmV3RnfN x931kFwanVC7bHDWZvAVuP27fCdRpzTOUx4/djrPvttcCvs0MT/QFjiEmLYUggMa1Gza ILewhSMagh0fxS/fVJiiatg3MOkrnx/Y0z4hz1MReF5j5Q9qD0U6qbxefU2VTvpz9sf4 Fxn3PAuXMvRZgh3V/z/PTgfCoJe53RKD1K1KTXgZQF+qHG891VzFnY67XY2StABsYCT7 CnHY9mMgYQQ8Rs3tm86keC5lc1e44f8mXtzMzt9YpVTI+FimKoUbKHMZq0KKMYSXiPBw vXOQ==
X-Gm-Message-State: AOAM530B98uNUQ/Vp4Oq6MN7Q0XGtwQLxoVc2gT4e7BBX6n2gRMlhgnA LEMgqI/6azMLOh/pFffeinlCCyyOfks053hF+5fxTA==
X-Google-Smtp-Source: ABdhPJyh8AIctXOiDLw3ypf0YpTb8EnpENMO21iDzlZPyaIMoD9pZB0NznZSzalkMDgcQY+jokAcE2BhAc2Kfj2UmRk=
X-Received: by 2002:a05:6638:58a:: with SMTP id a10mr19536673jar.51.1605102959359; Wed, 11 Nov 2020 05:55:59 -0800 (PST)
MIME-Version: 1.0
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
From: Lorenzo Colitti <>
Date: Wed, 11 Nov 2020 22:55:48 +0900
Message-ID: <>
Subject: Re: Ephemeral addressing [was Re: 64share v2]
To: Ole Troan <>
Cc: Philip Homburg <>, 6man WG <>
Content-Type: multipart/alternative; boundary="000000000000b8ee3405b3d5274e"
Archived-At: <>
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 11 Nov 2020 13:56:03 -0000

QUIC supports connection migration. See for example this draft:

In hindsight, the real reason mobility is hard is that TCP does not provide
its own session identifier and instead relies on the lower-level
identifiers (i.e., IP addresses) to identify its connections. So I think
part of the answer is that QUIC will solve this problem.

The other part of the answer, I think, is that it isn't actually a big
problem. I think we should remember that flash renumbering - as long as
it's clearly communicated to the application - isn't actually a difficult
problem for many of today's apps, at least on mobile. Modern mobile apps
primarily use HTTP, with either idempotent GETs or using POST with replay
protection tokens. Once you have that, why bother with IP or TCP session
continuity? For streaming use cases you can just use chunked requests at
the application layer, or, at worst, range requests at the HTTP layer. Good
networking libraries can, I think, be told which requests are idempotent so
they can seamlessly retry them. Real-time apps like video conferencing use
things like webrtc which can already deal with multiple concurrent IP
addresses (and thus mobility) via STUN.

So actually, the main problem with mobility is not dealing with the change
- that's easy - but noticing the change. This is why Android added a
feature to the Linux kernel where userspace can force given sockets to
return errors to the apps that opened them. The OS does this when a network
goes down, so the app can immediately retry on whatever other network is
available, ideally without ever showing the user an error. The default
Linux behaviour was that read() or write() on that socket would block
"forever" (i.e., at least for minutes). That was solved a decade ago.

The remaining hard problem is what do you do when wifi is still connected
but is not actually getting any packets through right now. For that you do
need an actual L5 protocol that can do multipath or at least connection
migration. One of the first apps to do this was Siri, using MPTCP. But
other apps are starting to use QUIC connection migration for that, since
it's a lot easier to build and deploy than MPTCP.

On Wed, Nov 11, 2020 at 10:36 PM <> wrote:

> Philip,
> >> Let me rename this thread as this opens a much larger issue.  While
> >> being able to rapidly reconfigure an end-user network using the
> >> layer3 primitives in 6man, I don't think it's worth solving unless
> >> also the upper layer problems are solved.
> >> - How do TCP connections
> >> survive a renumbering event?
> >> - How do applications get notified to
> >> reconnect?
> >> - Do all applications have to change as a result? Or
> >> use a different transport layer?
> >> - What happens with DNS configuration?
> >> Are you assuming everyone has DNS-SD deployed and working?
> >> - What
> >> about other configuration? Static addresses for example?
> >>
> >> Good luck I say...  Until then I suggest that we continue (to
> >> pretend) that addresses must be long-lived.
> >
> > My reality is that many addresses are short lived. Not because addresses
> > on a single link change often, but because mobile devices regularly
> connect
> > to new links.
> >
> > Static addresses are similar to old unix systems where you have recompile
> > the kernel and reboot for each new piece of hardware that gets added to a
> > system. Modern systems were forced to evolve because users expect to
> > plug in USB devices, connect bluetooth devices, etc.
> >
> > Does the world wait until the IETF solves renumbering? No. Just like the
> > world switched to NAT long before the IETF recognized there was such a
> > thing, most modern application deployments are essentially an overlay
> > network.
> >
> > Applications use https to connect to the cloud, session identifiers are
> > stored in cookies. Short sessions and short timeouts make renumber event
> > transparent to the application.
> >
> > Can TCP survive a renumber event? Yes, MPTCP should be able to that.
> >
> > How do applications get notified. The IETF and the Open Group failed to
> > create APIs for that. So every OS creates its own ad-hoc mechanisms.
> >
> > DNS support dynamic updates.
> >
> > But what we do at the transport layer may not be relevant. So we can
> focus
> > on making the network layer work.
> >
> > Or just stick to static prefixes.
> Seems to me the world waited. At least the one I'm leaving in did. :-)
> None of the systems I use handle renumbering. Barring a single application
> (mosh).
> Most of the building blocks are there, but in 20 years of waiting few if
> any have put them together.
> I doubt this is deployable in time to avoid users being forced to NAT on
> the edge, to protect themselves from instability in global addressing.
> Are we going to restrict all future IPv6 end-user networks that are forced
> to depend on PA addressing to be client only?
> Cheers,
> Ole
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> Administrative Requests:
> --------------------------------------------------------------------