In the late winter of 2006, I realized, on a train from somewhere between Freilassing and Rosenheim, after an interop in Salzburg leading up to IETF 65 in Dallas, that I was probably going to have to move to Central Europe.
A bit more than twenty years later, I’m sitting on a Railjet on the way to Landeck – a train that did not exist at the time – waiting at the platform in Freilassing – an occurrence more frequent now that Germany is reaping the rewards of running its rail network as a Volkswagen ad for the past two decades. This gives me time to reflect a long week at IETF 126 in Vienna before I disappear into the mountains for a bit.
In addition to joining the Board of Trustees of the Internet Society, on which more after I’ve understood the assignment, a couple of things of note happened that warrant talking about here.
happy eyeballs works by hiding failure. is that good?
Within the IETF, I’m one of the Endpoints Chatting With Middleboxes people: PLUS, the spin bit, SCONE. Indeed, it’s a space of problems that never quite goes away, with a solution surface that remains interesting. Just after the end of the HAPPY working group meeting back in November 2025, a tired end-of-week side discussion turned into a joke turned into an Internet-Draft.
HAPPY maintains and improves Happy Eyeballs, the mechanism by which a dual-stack client, faced with a name that resolves to both an A and a AAAA record, races connection attempts against each other and uses whichever one answers first, with a small head start given to IPv6 so that the future gets a fair shake. It is one of the more successfully deployed pieces of recent IETF engineering, and the group is now working through version three of it.
It works, in short, by hiding failure. That is not a side effect. It’s what the thing is meant to do: make the eyeballs (a potentially-too-grisly metaphor for end users) happy by abstracting away path failure behind application behavior. The entire value proposition of Happy Eyeballs is that when the v6 path is broken, or the DNS is lying, or somebody’s CPE or access network firewall has Opinions, the user does not find out, because the connection over the other family completed milliseconds later and nobody noticed. You’re probably using it, and you’re probably not noticing, except that Internet performance sucks slightly less than it once did.
Indeed, the people whose job it might be to fix the underlying problem also don’t notice, and there the problems begin. Now, as a measurement geek, I’m admittedly biased toward More Measurement when that measurement and/or the data it needs does no harm. Discussion on correcting Happy Eyeballs’ inherent observability penalty this week touched on a few recurring themes: any exposure of failures has to be actionable1, the personas need to be mapped out2, etc.
It also pointed at said joke, which is a much less considered proposal than the protocol itself, with the character of something between a thought experiment and a threat. To wit: we already have a protocol for signaling certain kinds of failures across the network: it’s called ICMP. Slow Alternate Detection, so named entirely because it has a good acronym to go with HAPPY, creates a new ICMP message type (44 at the moment) which gets sent by a client using Happy Eyeballs to the candidate it did not pick, so that everything along that path – including the loser – has the opportunity to learn that it lost, and to correlate that against its own logs. This is either the smallest possible fix for a genuine measurement gap, or a mechanism for transmitting several billion tiny reproaches per day across the Internet3. I have been unable to convince myself it is only one of those, but it is easier to argue about what the signal should be by proposing a concrete bad idea than by gesturing vaguely at the unseen shape of a good one.
If you don’t get it: ICMP is a comparatively ancient protocol4 that is widely considered to be both ossified beyond any hope of being able to extend it and complicated to the point of impossibility to roll out changes to because it sits on the network layer, and therefore beyond the kernel-userspace boundary in most stacks, so my proposal is akin to the little Youtube bell icon causing you to be notified of new videos by sending a guy wearing a funny hat ‘round your house to give you a URL on a piece of paper.
I wrote it half as a joke, half a provocation to discussion, and let it expire six months later. Enough people were interested in it in the hallway that I dusted it off and submitted a new version this morning.
welcome to the aietf (the a is silent)
Thursday morning, one of the larger conference rooms in the venue, a BoF signup sheet that wanted room for 200, got significantly more than that, and still filled it to standing room only. I’m not going to run down the details this particular BoF, you can read the parallel pull requests against the charter if you’re interested5. The fascinating part is the record of the show of hands6:
| yes | no | abstain | |
|---|---|---|---|
| problem understood, solvable, useful? | 124 | 72 | 14 |
| need for interoperability clear? | 155 | 30 | 8 |
| IETF the right venue? | 158 | 30 | 14 |
| initial scope correct? | 38 | 124 | 40 |
| initial deliverables correct? | 92 | 58 | 49 |
| form a WG with this charter or one derived from it? | 154 | 51 | 5 |
| willing to write or review drafts? | 137 | 17 | 40 |
| willing to implement? | 42 | 28 | 40 |
Or, in other words: “Yes, we should very much do something here. No, this isn’t it at all. But it’s close enough that we’re willing to use it as a jumping-off point, and I’m excited to help.”
The tsunami of agentic AI that has hit everything remotely adjacent to Things Computer since the spring has also hit the IETF, and while there are the obvious downsides – slop drafts, autonomous emails on the lists, an atmosphere of general disorganization uncharacteristic even for a thousand-plus person volunteer organization full of software and network engineers – there was a palpable sense of excitement and (dare I say it) optimism. It will take us a while to figure out what we’ll do about it7. There is an argument that standards are obsolete in a world where the $n^2$ problem of private protocol adapters – which can be seen fundamentally as an issue of implementation difficulty if you ignore certain things – has been made cheap to the point of ridiculousness8.
up into the mountains
So that’s it. I’m still stuck in Freilassing, having written an entire blog post, as a lighthearted joke about “the trains are always late in Germany” turns into an hour-long farce. There are a few other things I could mention: we’ll finally click the publish button on SCONE this week, the world is learning more about how QUIC does and does not work, path-aware networking is still a thing. But all that will have to wait until I’ve made it to Landeck and beyond.
(1): e.g. “fix your AAAA records, they point at link-local addresses”, which showed up in some of my path-transparency work a decade ago – and which is about as good as an error report can get, in that the recipient is the person who can fix it and the fix is in the message.
(2): indeed, the unifying theme of Stuff I’m Interested In is strong here: all of these are higher-order considerations in RFC 9217. The persona that fails the test most clearly is the server, which does precisely nothing with the news that some client somewhere didn’t pick it. The strongest argument I heard for telling it anyway is that a large enough server operator is also, statistically, a measurement platform, and the aggregate is worth something even if no individual report is actionable – which is both More Measurement and Maybe Accidental Surveillance Infrastructure in one.
(3): it does have an approximate sampling rate signal built in, so maybe it’s only a hundred million tiny reproaches per day.
(4): or a more civilized one, for a more civilized time, depending on who you ask.
(5): which is itself the underrated move of the week: I asked the chairs at the mic whether one could simply open a PR against the charter, and Orie said yes. A charter argument conducted as diffs converges faster than a charter argument conducted as opinions, because a diff has to be specific about what it removes.
(6): with the very large caveat that the IETF does not vote, has never voted, and that these numbers are not a decision and should not be quoted as one. They are a signal to attentive chairs about the shape of a room, which in an IETF that went hybrid and stayed there is not even the whole room. The decision, such as it will be, happens on a mailing list, later, and is declared by a chair.
(7): indeed, there are two types of experts on agents: those who know they don’t know what they’re doing, and those who don’t know they don’t know what they’re doing.
(8): I’ll take the other side of that argument, both as someone who pays for my own tokens, and as someone who has long understood that coding has always been the cheapest part of software that works.