“Usually in IPv4, mobile devices are behind NAT. By eliminating NAT when using mobile devices in IPv6, we avoid the traffic of sending KEEP ALIVE messages, which are sent in order to keep the NAT state active. These messages are quite frequent. They are sent periodically every 40-120 seconds. NAT elimination for mobile devices in IPv6 reduces power consumption of these mobile devices, and as a consequence significantly improves their standby time. Sometimes, with mobile devices, each application may send its own keep alive messages, which only makes the problem worse.
“But its extended address space is not the only advantage of IPv6, as some might think. Based on the experience gained with IPv4, many changes were made in IPv6 to improve the IP protocol. We will try to explain and focus in this article on these changes and their implementation in Linux, and we will show what is better in IPv6 in comparison to IPv4. The next sections will describe the format of IPv6 addresses, and how IPv6 is implemented in Linux, in user space, and in the kernel.”