logoalt Hacker News

orangeboatslast Friday at 9:06 PM2 repliesview on HN

Another day, another Godwin's law of networking.

>It was doomed the moment you had to maintain two separate stacks

Pray, tell me, how are we supposed to extend IPv4 with another {insert a number here} bits without creating a new protocol (that neccessitates running two stacks)?

Suppose that you have an old computer that understands only 32 bit addresses -- good ol' IPv4. Let's name it 192.168.10.10.

It then receives a packet from another computer with hypothetical "IPv4+" support, 172.12.10.98.12.4.24.31... ...Wait a minute, it can't, because your old computer understands only 32 bit addresses!

What if we really forced it to receive the packet anyway? It will see that the packet is from 172.12.10.98, because once again, it understands 32 bit addresses only.

It then sends back the reply to... you guessed it, 172.12.10.98. Not 172.12.10.98.12.4.24.31.

Yeah,172.12.10.98.12.4.24.31 will never get its reply back.

Do you see why any "IPv4 with extra octets" proposal are doomed to begin with now?


Replies

redox99last Friday at 9:27 PM

It wouldn't be able to receive it. That simple. Which is not a problem, any server would still have an old ipv4 address (172.12.10.98 from your example), like they currently do and probably will for decades.

show 1 reply
krater23last Saturday at 4:35 AM

Having just optional field in the ipv4 header with extra address bits would leave all the stack source code with just some 100 lines of extra code. Would mean, you can have one stack that handles just both. Make special addresses where the additional bits are all 0, which means the field is not there at all. These addresses could reach ipv4 only addresses and could be reached from them. When you really want to make sure these devices aren't parsing ipv4+ packets, change the checksum-code for all packages that contain the optional field. That would mean all ipv4 only devices would ignore ipv4+ packages. Instead you could change the version to 5 for all with optional address bits.

This is stuff that could be implemented in any ipv4 stack in some days of work.

IPv6 is overengineered, thats the reason why it's not adopted after 30 years.

show 1 reply