| IPv6 Performance
Myths, Rumors and Facts
By Bill Kine
Product Manager
Spirent Communications
There are many valid reasons to upgrade to IPv6. These include auto-configuration,
the vastly expanded address space, improved security and simplified support
for mobility. Another frequently mentioned benefit of IPv6 is the performance.
In fact, many people claim that "IPv6 will be faster than IPv4."
While a very clear case can be made for the benefits associated with the
larger address space, the performance improvements are not so obvious.
In fact, this an extremely imprecise issue – it is not even certain
that a network's performance will necessarily improve once IPv6
is enabled. Documented below are some facts that will both confirm and
refute various aspects of the myths and rumors regarding IPv6 performance.
The Good News:
IPv6 does provide some facilities that definitely streamline communications
processes. To start with, the vast majority of all IPv6 packet headers
are set to a fixed length of exactly 40 bytes. (Of course there are some
exceptions to this rule, but this should be the case for 99% of the packets.)
The fact that the headers have a consistent fixed length, as opposed to
the variable sizes of IPv4 headers, greatly simplifies packet processing
and forwarding. This also allows hardware vendors to implement straightforward
silicon-based routing and switching algorithms that read the first 40
bytes of a packet and then make a forwarding decision.
Another significant change between IPv4 and IPv6 is the elimination of
the header checksum calculation. When IPv4 was conceived over two decades
ago, wide area transmission lines suffered from frequent quality problems
such as noise, cross-talk, signal degradation and even outright failures.
Therefore the integrity of the data carried over these lines often was
questionable. Hence it was important to implement a series of checks throughout
the communications process. This was accomplished with a complex mathematical
checksum. Today, communications links are much more dependable. Furthermore,
both the lower layer protocols such as Ethernet, along with the upper
layer applications already have their own built-in checksums. Additional
checksums are both unnecessary and redundant. These calculations are rather
complicated and add latency to the packet processing operations, so the
removal of the IP header checksums helps to further optimize IPv6 communications.
The two performance improvements mentioned above are based upon the modifications
to the packet header; these are both designed to reduce the latency associated
with processing an individual packet. Each of these enhancements should
lead to minor reductions in the transmission delays associated with an
individual switch or router. A much more significant performance improvement
is likely to come from the use of the IPv6 flow label. The appropriate
infrastructure already exists to support flow labels, but they have not
yet been fully implemented by the IETF or hardware vendors.
The flow label is designed to allow network administrators to identify,
label and optimize an end-to-end communications stream. In theory, an
entire data stream – which could encompass a particular application,
source/destination pair, location, or any other criteria – would
be assigned a unique end-to-end flow label, located near the beginning
of the IPv6 header. All of the intermediate switches and routers would
then identify the packets associated with this flow based upon the value
of this label. The network equipment would then know the specific forwarding,
quality of service, and possibly even security characteristics associated
with that particular flow. The packets can then be categorized and forwarded
without any further address or application processing.
The Bad News:
Unfortunately, the IPv6 performance story is not as rosy as people think.
There are some significant tradeoffs that must take place. For starters,
as my colleagues Philip Joung and Ankur Chadda point out in their 6Sense
article, "Does Size Matter?", IPv6 headers may be fixed at
a size of 40 bytes, but that is considerably larger than most typical
IPv4 headers. The additional header size (primarily due to the fact that
the source and destination addresses both quadrupled in size) detracts
from the data capacity of the physical media. Depending upon the packet
sizes, this can impact data throughput by as much as 18%.
The next consideration is that the larger addresses will incur additional
latency as they are parsed by a router in order to determine the destination
network prefix. In other words, it takes longer to read and process 128-bits
than 32-bits. And for that matter, the developers of the IPv6 protocol
have promised that it will support truly humongous networks. This leads
to much larger forwarding information bases (FIBs) within the routers.
The flip side of this massive scalability is that additional latency will
be necessary as the extremely large routing databases are searched for
the "longest prefix" match so that the appropriate forwarding
decision can be made.
IPv4 may be more than 20 years old (an eternity in Internet years!),
but during that time it has been optimized quite efficiently by most equipment
manufacturers. In fact, many routers and switches can now forward IPv4
traffic at the maximum speed of the media (also known as "wire rate"
forwarding). This means that there is no room for improvement! IPv6 can
only hope to match this data rate, and it really cannot even do that,
since the address size directly impacts the throughput. Most IPv6 vendors
have not had enough real world experience to be able to fully optimize
their protocol implementations, so for the time being, IPv4 may enjoy
a significant performance advantage.
All of these performance challenges can be summed up in one simple word
– physics. Physical limits state that only a finite quantity of
bits can fit on a wire, and IPv6 cannot alter that fact. And if all other
variables remain unchanged, it is not possible to process more information
(or longer addresses) in less time.
Your Mileage May Vary:
The performance of an IPv6 network will depend upon many factors. These
include the equipment types, packet sizes, table sizes and even the applications.
Users will expect the performance to be at least as good as that of IPv4,
and many users will also expect to see a significant performance improvement.
Network administrators should characterize the performance, based upon
their unique parameters, in a lab environment before deploying IPv6. This
is the only way to address the myths and rumors concerning the anticipated
IPv6 performance levels. Then, and only then, can facts and results be
used to set the proper expectations amongst the users.
|