IPv6 does have advantages over IPv4.
Nonsense.
The overhead, thus latency of NAT is eliminated.
Irrelevant. You are talking about one layer of routers in the network (the home-routers of end-users and small businesses). Most routers in the Internet don't do NAT. So the cost there is irrelevant. Also, most traffic that goes through NAT is not latency-sensitive. (As opposed to, e.g., server-to-server traffic in datacenters). In access-networks (where NAT is used), latency is usually impacted by queuing-delays. Not by the cost of forwarding itself.
If you don't use NAT, most often you will want a firewall. For TCP you can probably get away without a statefull firewall. (Just look at the SYN-bit. Aka "established"-keyword in cisco ACLs). But for other traffic (like UDP) you do need to keep state. And the paranoid probably want to do stateful for TCP too. And even then, the impact on forwarding cost will be minimal, imho.
Wanna talk about cost ?
Forwarding gets harder (and thus more expensive) the more inward you go, to the center of the Internet. (The Default Free Zone. The Tier-2 and Tier-1 ISPs). Those routers carry 600k routes. They forward Terabits of traffic per second. All those boxes use
TCAM for their forwarding tables. TCAM is very expensive memory. With IPv6, because you have longer addresses, and longer prefixes, you can typically store only half the amount of prefixes in TCAM as you can with IPv4.
IPSec is 'baked into' IPv6 meaning that IPV6 ICMP packets can be secured, vs. IPv4 where the common solution is to simply block all ICMP at the firewall.
1) You can do IPSec with IPv4 too. I'm not too familiar with IPSec. Are you telling me that you can't do IPSec with ICMPv4 today ? 2) BTW, I suspect even if admins could let ICMP through their firewalls, they will still not do that.
True end-to-end connectivity at the network layer improving VoIP and QoS
1) Yes, you are right here. Being able to connect to services inside a network (e.g. calling someone with VoIP) is easier with IPv6. However, this also causes extra security concerns. I think you will end up having to configure rules for the services you want to expose. This will be *exactly* the same amount of work as configuring port-forwarding in NAT. The big benefit is that you can have multiple devices with the same service.
Notice, this is a benefit of getting rid of NAT. It's not a direct benefit of IPv6 over IPv4.
2) QoS is better with IPv6 ? QoS is better with end-to-end connectivity ? What makes you think that ?
Simpler network configuration, i.e. no subnetting/VLSMs
We have classless routing in IPv4 for over 20 years now. Both IPv4 and IPv6 deal with prefixes. It's the same.
Multicast for multimedia streaming
Last time I looked, IPv4 has multicasting.
No layer 3 checksum eliminating the need to recalculate at each hop (overhead and latency)
Oh God. People keep repeating this.
Have you ever looked at the IPv4 header checksum ? Did you look how it works ? It's a sum. Literally a sum of all bytes in the IP-header. Very simple. Now let's look at what changes when a router forwards a packet. All that changes in the IP-header is that the TTL is decremented by 1. That means the checksum has to be decremented by 1 as well !! That's all there is too it. When forwarding a packet, the routers does:
ippacket->ipheader->ttl--;
ippacket->ipheader->checksum--;
Just one extra instruction. That is absolutely irrelevant. Compared to all the other work a router must do (route lookup, packet classification for QoS, ACL-filtering, accounting, etc), that one extra instruction is absolutely irrelevant.
More efficient routing (smaller routing tables)
Nonsense.
IPv4 routing and IPv6 routing works exactly the same. Longest-match route-lookup. Hop-by-hop forwarding. The size of the routing tables depends on 1) strictness of address-allocation, 2) amount of site multi-homing needed. With IPv6 the allocation was a little more strict in the beginning than with IPv4 in the eighties. True. But the more IPv6-addresses that will be assigned, the more the entropy will increase. In the end, there will be hardly any difference in entropy between IPv4 and IPv6 entropy.
Wanna talk about routing-table sizes ?
IPv6 addresses are 4x longer. That means the IPv6 routing tables will use more memory. If you implement a Radix-tree, you will have to traverse more bits to find the route. If you use TCAM, you will need twice the amount of TCAM (expensive). If you use a 256-way B-Tree, you will need a lot more memory. IPv6 loses.
Maximum MTU of a path can be determined, placing the fragmentation task on the source and not routers.
All IPv4 implementations use PMTU. IPv6 uses the exact same algorithms. Stuff that works well, and stuff that works less well, is exactly the same for IPv4 and IPv6. If I am mistaken, please enlighten me in which scenario IPv6 works better.
No DHCP server required, host simply gets prefix from router and generates its own IPv6 address.
SLAAC is of the devil. People with a clue use DHCPv6. And even if everybody would use SLAAC, it would hardly make a difference.
Hosts can have multiple network addresses.
Holy moly ! Are you telling me that hosts can not have multiple network addresses with IPv4 ?
May I suggest you read the following articles ?
http://blog.ipspace.net/2010/02/ipv6-myths.html
http://searchtelecom.techtarget.com/tip/Seven-IPv6-networking-myths-that-dont-match-reality
http://blog.ipspace.net/2015/04/video-ipv6-myths-and-reality.html (movie)
Those articles are from Ivan Pepelnjak's blog. Ivan has been an independant networking guy for over 20 years. His blog is awesome. He is very knowledgable. He is very interested in all the new stuff (SDN, IPv6, data-center stuff). But he doesn't drink the coolaid. Very refreshing. If you want to learn more about networking than the standard marketing fluff, his blog is an excellent source of information.