TCP Handshake over IPv6
The internet we know today heavily relies on TCP/IP to send our information around the world at lightspeed. With more devices than ever connected to the internet (insert link to back this up, it sounded cool), using IPv4 we're soon going to run out of addresses. And in fact if it weren't for technologies such as NAT we'd be in a stickier situation than we already are. In preperation of running out of IP addresses, IPv6 was mustered up around 1998 by the IETF, a 128-bit addressing convention vs the old IPv4 32-bit addressing.
So that means IPv6 has been around quite a while now. Almost 20 years, yet still IPv4 is all the rage. Perhaps us techies have trouble letting go of what we know. I mean why set up an AAAA record, when you only need to set up an A record right? Why configure DNS to use 2001:4860:4860:0000:0000:0000:0000:8888 or 2001:4860:4860::8888 when you can just use 8.8.8.8 right? Well yeah, let's save all that for another article, once I've had a beer.
I got thinking - I wonder if the TCP Handshake has changed though? You know with all the added improvements IPv6 is meant to bring. Has the secret handshake been updated too?
Turns out, I didn't have to think to very hard. TCP and IP are two different protocols, 2 different layers of the OSI model and TCP/IP Model (depending on where you're from). So in theory we should be able to swap out IPv4 for IPv6 and keeping the same old TCP we're used too.
According to the very trustworthy Wikipedia, the only subtle change when TCP and IPv6 are used together comes in the checksum calculation.
When TCP runs over IPv6, the method used to compute the checksum is changed, as per RFC 2460:
- Any transport or other upper-layer protocol that includes the addresses from the IP header in its checksum computation must be modified for use over IPv6, to include the 128-bit IPv6 addresses instead of 32-bit IPv4 addresses.
So there you have it.
Thanks for reading.
Comments
Post a Comment