Wednesday, 15 January 2014

WTF is IPv6?

The NMEA have announced that their next generation data protocol, OneNet, will run over IPv6 (Internet Protocol, version 6).  Before considering what that means for boaters, what the heck is IPv6 anyway?

"Internet Protocol" is a method of transporting data across computer networks. It's like a shipping container (or "packet") with a label on it for information such as the address of the sender and that of the recipient.  For the past three decades we've mostly been using Internet Protocol version 4, or "IPv4" (though more commonly just "IP").  As the number of computers connected to the Internet expanded rapidly during the 1980s, it became apparent that the "address" fields of this shipping container's label (or "header") were soon not going to be big enough to give a unique address to every new potential sender and recipient of Internet data.  A new type of shipping container with a different label with space for much longer addresses was required so the IETF started work on a new version of Internet Protocol, eventually dubbed IPv6 (there was no IPv5).

The differences between IPv4 and IPv6 extend to more than just address size.  IPv6 incorporates new mechanisms for auto-configuration (devices assigning addresses to themselves) and standardises many of the features which have been bolted on to IPv4 over the years.  Ultimately though  these protocols both perform much the same core function: shipping data across networks.  However they behave like two independent courier services which although they may put their containers onto the same trucks, trains, ships and planes in the course of delivering a packet, each courier uses postal codes on the address labels which are meaningless to the other courier.  You can do tricks like putting an IPv6 packet inside an IPv4 packet for part of the route where the devices connecting networks ("routers") only understand IPv4, but both sender and receiver must ultimately use the same addressing scheme.  A single device may have an IPv6 address and an IPv4 address, in the same way that a company can have an account with two courier companies and use whichever one delivers to the whoever they need to send something to.

The first IPv6 standard appeared in 1995.  During that time we've regularly seen news items predicting that we would soon be running out of IPv4 addresses.  Google tracks the percentage of users accessing their services over IPv6 (drilling down by country is interesting and occasionally surprising). Today it's only 2.3%. So why is IPv4 still ubiquitous and IPv6 almost unknown to anyone other than network engineers?

In the past 20 years a number of effective mechanisms have been adopted to slow the rate at which IPv4 addresses are being depleted.  Despite the hype to the contrary, IPv4 addresses are still obtainable and will remain so for a few years yet.  The bottom line is that for most Internet-using businesses there simply isn't a business case for using IPv6: IPv4 does what they want, so why endure the cost and risk of change?

Due in part to US government mandates that all computer equipment they purchase must be capable of running IPv6, all mainstream operating systems (Windows, MacOS, Linux, Android, iOS etc.) are capable of using it.  This does not mean other software is.  Your Mac may be quite capable of sending and receiving IPv6, but at time of writing, OpenCPN doesn't understand if you tell it to take a data feed from an IPv6 address. Users in many countries (including the UK) will have a hard time finding a domestic Internet Service Provider whose routers have been configured to correctly forward IPv6 packets even though the machines themselves are capable of it.  Without a bit of trickery, home computers can't normally speak to remote web servers using IPv6.  Even if they could, practically all web sites are reachable using IPv4.  Only a small minority can be reached via IPv6. Most computers which are configured to use IPv6 are also configured to use IPv4 to communicate with sites with IPv4-only connectivity.

Internet Of Things

The buzzphrase "The Internet of Things" is used to describe the interconnection of many different kinds of uniquely identifiable objects which are able to send and/or receive data.  Those objects might be toasters, fridges, transducers or cows.  Although a concept rather than an implementation and therefore independent of any particular technology, the Internet Of Things is often associated with IPv6 because of the very large number of objects (many billion) potentially requiring identifiers on the network.  Other properties of IPv6, particularly its self-configuration mechanisms, make IPv6 particularly appropriate for an internet of things.

The phrase has recently become so over-used as to be deeply annoying.

Key points for the average leisure boater

  • IPv6 does the same kind of things as IPv4 and end users shouldn't really notice or care about the difference
  • Yes your Mac/PC/phone/tablet can use it
  • Yes it can probably use IPv6 on your existing boat network at the same time as IPv4
  • Devices can only talk to each other using IPv6 if they both have an IPv6 address. Devices can only talk to each other using IPv4 if they both have an IPv4 address
  • A device may have an IPv4 address and an IPv6 address and use either protocol
  • No your Mac/PC/phone/tablet probably isn't configured to use IPv6
  • No, your marina wifi / mobile data service probably hasn't been configured to transfer IPv6 between you and the Internet
  • No, apart from "big" applications (e.g. firefox) and those produced by Microsoft, Apple, Google etc., the application you're using doesn't necessarily understand IPv6 addresses you type in.
  • No your MFD or other marine devices don't work with IPv6: Those companies struggle to get IPv4 right. There is nothing preventing updated firmware from changing that in the future though
  • You can, of course, put your nmea-0183 data on your network using IPv6 with kplex. Just thought I'd mention it
  • No, unless you really want to you probably shouldn't waste your time doing it.
The only reason you really need to know anything at all about IPv6 right now is so I can write about NMEA OneNet in the next post.

No comments:

Post a Comment