Live data from Hacker News

Protocol Wars

en.wikipedia.org

111–120 of 121 posts

Re: Protocol Wars

#111
post #66

Earlier quoted context omitted.

you don't understand the power of the Lindy effect. All of the dated infrastructure we have now has ultimately survived the test of time. https://en.wikipedia.org/wiki/Lindy_effect by the way DNS is wonderful.

Lindy is pretty much just natural selection for ideas, right? It doesn't prove they are optimal. It does seem to suggest that frequently switching protocols all the time like we switch web frameworks would be awful though. The benefits of having any universal standard at all can outweigh the flaws in just about anything, even Ipv4 or in some cases even analog stuff.

Exactly. It's like the laryngeal nerve of the giraffe. It did the job for millions of years but there is no good reason other than history for why it still needs to loop around the heart.

https://www.mcgill.ca/oss/article/student-contributors-did-y...

Re: Protocol Wars

#112
post #66

Earlier quoted context omitted.

you don't understand the power of the Lindy effect. All of the dated infrastructure we have now has ultimately survived the test of time. https://en.wikipedia.org/wiki/Lindy_effect by the way DNS is wonderful.

Lindy is pretty much just natural selection for ideas, right? It doesn't prove they are optimal. It does seem to suggest that frequently switching protocols all the time like we switch web frameworks would be awful though. The benefits of having any universal standard at all can outweigh the flaws in just about anything, even Ipv4 or in some cases even analog stuff.

> Lindy is pretty much just natural selection for ideas, right? It doesn't prove they are optimal.

You missed the point. Lindy law proves that being optimal is not necessary for an idea to be successful. Your association with natural selection is valid from this point of view, too.

Re: Protocol Wars

#113

Earlier quoted context omitted.

Nah. The main impetus to achieve FTL communication will be because it'll be easier than shifting people off of TCP.

It’s all fun and games until you get an ACK before you sent the SYN.

Tardis Control Protocol.

Re: Protocol Wars

#114
post #19

Earlier quoted context omitted.

Actually, even TCP is going to be replaced. I just want to remind the initial work of Google on QUIC, which now has become some standard. It is based on UDP and re-defining TCP features based on UDP together with cryptography and by allowing IP changes to allow moving clients.

TCP is fine and isn't going anywhere. QUIC is an overengineered contraption that only exists to serve more ads. SSH doesn't need it. Postgres doesn't need it. Nobody needs QUIC except Google.

> SSH doesn't need it.

SSH's "master" mode connection sharing would benefit from QUIC / HTTP/3 head of line blocking elimination just as much as browsers would. Run a heavy rsync using connection sharing with an interactive session and you'll notice the interactive sessions latency suffering noticably.

Long-lived SSH connections would benefit from QUIC / HTTP/3 session survivability.

Re: Protocol Wars

#115
post #79

Earlier quoted context omitted.

Consider that NAT64 is able to translate between IPv4 and IPv6 at the packet level. If the protocols were as different as you suggest, this wouldn't be possible.

Doesn't IPv6 remove broadcast, thus removing DHCP and ARP? I mean, hosts need to be 'dual stack' to support IPv4 and IPv6 together - whereas TheLoafOfBread's proposal would allow support of both with one backward-compatible stack.

NAT64 is never in a position to need to translate DHCP & ARP, those live fully on one side of NAT64 ("4" side for DHCP & ARP, "6" side for SLAAC/DHCPv6 & NDP).

NAT64 is involved on the level of TCP & UDP, not lower level protocols.

Re: Protocol Wars

#116
post #26

Earlier quoted context omitted.

i'm not sure about that statement. See https://en.wikipedia.org/wiki/IP_over_Avian_Carriers

That's IP (and ICMP for ping), not TCP.

Yep yep yep, Long Fat Pipe problems, right.

Re: Protocol Wars

#117
post #103
post #95

Earlier quoted context omitted.

You may want to talk to operators of DNS servers to find out why DNS is mostly UDP. From a software point of view is hardly matters. UDP has some quirks, TCP has some issues, not a big deal. The big deal for operators is resource consumption and latency. In the vast majority of cases where the UDP reply is not truncated, using UDP is both cheaper and faster.

I have worked for Paul Vixie. (I've met Mockepetris and Liu.) Even Vixie agrees UDP frags were a bad idea for The DNS. Given the context of where we're discussing this, mind if I ask: Why is UDP so attractive for DNS operators? Is it that it encapsulates the message query / response paradigm so well? Why isn't encryption of greater concern? How can DoT or DoH be "faster" than UDP? Is it really the protocol or a misat…

Fragmentation is a complex subject. If avoiding fragmentation was obviously good, then UDP packets would always be sent with the don't fragment (DF) bit set. In reality, that would make some situation much worse than allowing fragmentation to happen.

DoT and DoH are certainly not faster than UDP. It is only in the long tail that DoT and DoH work better.

If encryption is required for DNS, then obviously UDP and plain TCP not suitable. But operators of authoritative DNS servers are very reluctant to support DoT. The IETF is still trying to hash out how to use DoT between recursive resolvers and authoritative server.

Re: Protocol Wars

#118
post #117
post #103

Earlier quoted context omitted.

I have worked for Paul Vixie. (I've met Mockepetris and Liu.) Even Vixie agrees UDP frags were a bad idea for The DNS. Given the context of where we're discussing this, mind if I ask: Why is UDP so attractive for DNS operators? Is it that it encapsulates the message query / response paradigm so well? Why isn't encryption of greater concern? How can DoT or DoH be "faster" than UDP? Is it really the protocol or a misat…

Fragmentation is a complex subject. If avoiding fragmentation was obviously good, then UDP packets would always be sent with the don't fragment (DF) bit set. In reality, that would make some situation much worse than allowing fragmentation to happen. DoT and DoH are certainly not faster than UDP. It is only in the long tail that DoT and DoH work better. If encryption is required for DNS, then obviously UDP and plain…

Thanks. Apropos "virtual turtles all the way down" I was expecting something along the lines of the well-recognized historical practice of site to site VPNS and tunnelling for DNS backhaul.

It's not fair to conflate "DNS operators" with the relationship between authoritative and recursive operators.

The (main) problem with encryption has to do with context. In order to achieve privacy, key and/or secret material needs to be negotiated between the ends and this context needs to be retrievable for reference. There is no provision in the DNS for that. There is no provision in the transport per se either. I argue that this is appropriate and correct, that generating and negotiating this material is a separate concern and developing the protocols to do so proceeds on a different track (QED).

A better term than "connection" for the concept we are about to discuss would be "circuit". Once in possession of the approprate key material (and the out of band signaling this implies) it's possible for the parties to exchange individually encrypted messages in the open, but this ignores network issues such as dropped packets and fragmentation to name a couple. This could be dealt with but it is not a general solution.

If you're going to solve problems it's generally accepted that it's prudent to solve them generally: hence the notion of a circuit. (Frags and dropped packets are other general problems to be solved by a circuit implementation.)

It's easy to see that such a generalized circuit is a tunnel and that UDP (or TCP) packets of arbitrary size (up to architectural limits, but significantly larger than either ATM or ethernet frames) can transit such a tunnel with guarantees of no loss and no fragmentation.

DNS specifies a very lightweight convention of its own for encapsulating UDP traffic in a TCP tunnel: the payloads are prepended with with a (2 byte) length word [0]. The tunnel protocol (carefully) doesn't even specify that responses via this tunnel need to preserve the ordering of requests. Bearing in mind that context needs to be preserved for each (active) request, the context required for the tunnel itself is amortized by the number of requests using the particular tunnel instance or circuit. (No need to worry about frags, all messages are preserved up to the architectural limit specified by the underlying DNS protocol.)

So, this is one example of solving the message-vs-stream dilemma in the real world. We can see that IP-over-IP is a real thing and that DNS provides a point solution for eliding frame size issues but that more general solutions also exist which also support e.g. encryption.

The key architectural consideration is mostly who maintains the circuit context and where it is maintained.

[0] Yes of course the redundant IP header is omitted for the encapsulated messages.

Re: Protocol Wars

#119
post #117
post #103

Earlier quoted context omitted.

I have worked for Paul Vixie. (I've met Mockepetris and Liu.) Even Vixie agrees UDP frags were a bad idea for The DNS. Given the context of where we're discussing this, mind if I ask: Why is UDP so attractive for DNS operators? Is it that it encapsulates the message query / response paradigm so well? Why isn't encryption of greater concern? How can DoT or DoH be "faster" than UDP? Is it really the protocol or a misat…

Fragmentation is a complex subject. If avoiding fragmentation was obviously good, then UDP packets would always be sent with the don't fragment (DF) bit set. In reality, that would make some situation much worse than allowing fragmentation to happen. DoT and DoH are certainly not faster than UDP. It is only in the long tail that DoT and DoH work better. If encryption is required for DNS, then obviously UDP and plain…

> If avoiding fragmentation was obviously good

In the general case frags are always bad, and instead of blocking DNS over TCP your firewall should be alerting on them.

In the case of the DNS resolution protocol, UDP frags are double-bad. The protocol (not updated since the 1980s) specifies that TCP retry should only occur if a UDP response is received with TC=1; if the UDP response is dropped, TCP retry never occurs. In the case of a UDP frag if a portion of the original datagram is dropped the response is never reassembled, TC=1 is never observed, and TCP retry never occurs.

Re: Protocol Wars

#120

I wish we could start over and redesign everything from Ethernet up to TLS with the lessons we now understand. So many layers could be merged, security could be so much easier, IP addressing hassles could be unnecessary. But all the stuff that seems obvious now couldn't have been learned without the decades of kind of terrible hackery that is OSI and the associated awful stuff like DNS. I'm not sure what the moral of…

I'm curious, what exactly would you redesign? Seems to me that it's intrinsically necessary to have DNS to translate between human-readable names and machine-efficient addresses. What am I missing?
Post reply on HN