3 ms·
> possibly in a backward compatible way Pre-IPv6 all IP code had 32 bits reserved for addresses. For more addresses, you would need >32 bits. How do you squee
by throw0101a 5y ago
> possibly in a backward compatible way
Pre-IPv6 all IP code had 32 bits reserved for addresses. For more addresses, you would need >32 bits.
How do you squeeze >32 bits of data into 32 bit data structures?
You would need to touch every bit of IP code out there to expand the corresponding address filed (e.g., in a struct in_addr)—which is what had to be done for IPv6.
- patentatt 5y agoI'd argue that that's in essence what NAT (especially CGNAT) does by abusing the 16 bit port number: extend the 32-bit assessing space to ~48 bits. And it pretty much works just fine for many many use cases.
- tinus_hn 5y agoBecause NAT is really pervasive basically only the use cases that work with it survived.
- throw0101a 5y ago* https://en.wikipedia.org/wiki/Survivorship_bias https://en.wikipedia.org/wiki/Survivorship_bias
- throw0101a 5y agoBecause a whole suite of protocols had to be invented: * https://en.wikipedia.org/wiki/STUN https://en.wikipedia.org/wiki/STUN * https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_... * https://en.wikipedia.org/wiki/Interactive_Connectivity_Establishment https://en.wikipedia.org/wiki/Interactive_Connectivity_Estab... See also "NAT Issues when playing games": * https://support.plume.com/hc/en-us/articles/360035745134-NAT-Issues-when-playing-games- https://support.plume.com/hc/en-us/articles/360035745134-NAT... Certainly we'd need hole punching protocols (UPnP/PCP) because IPv6 firewalls would be default deny on incoming connections, but the addressing issue introduces a bunch of things on top of that. The fact that these kludges are considered 'normal' and/or 'okay' is kind of sad. And how do you hole punch through CGNAT? (AFAIK there is no way.) Everything is being crammed into HTTP/QUIC/whatever because of all of these limitations: what applications could have been designed better if bits flowed more freely? (SCTP and DCCP died because of limited middleware network boxes.)
- GoblinSlayer 5y agoAs the TRUN article says, only the symmetric NAT is impregnable, you can punch holes through other types on NAT.