Day 2 at QtWS16, Thiago Macieira "IPv6 for Beginners" Watch more at www.qt.io/qtws16/ IPv6 is the evolution of the Internet Protocol and was created in the late 1990s when it was clear that the then-current version (IPv4) would run out of available addresses soon. Soon after, software was converted to handle IPv6 and the all service providers began offering IPv6 connectivity. Right? Not really. While a lot of applications did add support for IPv6, that conversion was by far not widespread enough. That created a chicken-and-the-egg problem with the service providers not deploying IPv6: no applications supported it, so connectivity wasn’t necessary, so developers didn’t add support in their applications, … The Internet of Things, however, will change that scenario. With a predicted 40 billion devices connected in a couple of years’ time, IPv4 will clearly not be enough. As a point of fact, all but one of the Regional Internet Registries, the organisations that administer the IP address space, have run out of blocks they can delegate to new clients. Moreover, new mesh-connectivity technology is being designed, first and foremost, for IPv6, especially 6LoWPAN, Thread, and 6lo-over-Bluetooth LE. That means application support is required now, more than ever. New protocols should be designed, from the drawing board, to take advantage of IPv6. In specific for IoT, since most of the domain is green field right now, designing for IPv6 is possible and should be encouraged. This session will go over the basics of IPv6, how it differs from IPv4 and what application developers should be aware of. It will go over the basic C socket API and then move on to how IPv6 is accessible in the Qt API, thus explaining how to write software capable of both IPv4 and v6, seamlessly. It will then discuss how application protocols can benefit of the expanded address space, multicasting abilities, header compression in mesh networks and other technology not available in IPv4. The presenter is a system architect for Internet of Things in Intel’s Open Source Technology Center. In addition to being QtCore and QtDBus’s maintainer, he’s a regular contributor to QtNetwork and recently added classes like QNetworkDatagram to that module.