(rev. 01/13/2008)
Notes On Chapter Twenty-Two
-- The Future IP (IPv6)
- 22.1 Introduction
- This chapter is about problems with IPv4 and
about how IPv6 will help solve those problems.
- 22.2 The Success of IP
- The Internet started using IP when there were no LAN's and the
Internet was composed of just a few point-to-point links.
- IP has accommodated a tremendous amount of change and growth in
networking.
- IP has done extremely well.
- 22.3 The Motivation For Change
- The main problem with IP is that we are
quickly running out of IP addresses.
- There is a desire to offer more qualities of service to
support real-time delivery of audio and video.
- Collaboration and client-server technologies require new addressing and routing capabilities.
- 22.4 A Name And A Version Number
- The current IP protocol is IPv4 (meaning:
version 4)
- The new IP protocol is IPv6 (aka IPng)
- What happened to IPv5? It was an early experimental protocol that
never became a standard.
- 22.5 Characterization Of Features In IPv6
- IPv6 addresses are four times the
length of IPv4 addresses: 128-bits
instead of 32-bits!
(As a side note: this means there are 2128
possible IPv6 addresses. The mass of the earth is about
283 kilograms. 2128/283 is
245, which equals about 32 trillion. So it would seem
that we have enough IP addresses now to assign 32 trillion of them
to each kilogram of the earth. If Internet addresses were 64 bits
long, and the population of the earth was 16 billion, there would be
enough IP addresses to give a billion to each person.)
- IPv6 has a completely different IP header
format
- IPv6 has a mechanism that allows sender and
receiver to establish a high quality path for
sending audio or video.
- Extensible Protocol: The rules for the
IPv6 datagram allow the format to be extended easily in the future.
- 22.6 IPv6 Datagram Format
-
The diagram at right depicts the IPv6 datagram header (c.f. page 346
of the fourth edition.)
- The IPv6 datagram header begins with a base
header, followed by zero or more extension headers.
- Use of extension headers allows for many options without forcing
all datagrams to carry large headers.
- It is easy to experiment with new kinds of headers and extend the
set of header types.
- 22.7 IPv6 Base Header Format
-
The 40-byte, 320-bit base header contains the following fields:
- VERS: 4-bits; protocol version number (6)
- TRAFFIC CLASS: 8-bits; e.g. "low delay"
- FLOW LABEL: 20-bits; routing info -- a specific path
- PAYLOAD LENGTH: 16-bit; size of data part only
-
NEXT HEADER: 8-bit; indicates what kind of header
comes next, or if the payload comes next and the type
of the payload.
- HOP LIMIT: 8-bit; similar to "time to live"
- SOURCE ADDRESS: 128-bit
- DESTINATION ADDRESS: 128-bit
- 22.8 How IPv6 Handles Multiple Headers
-
Some headers are like the base header and have a fixed size.
- Other headers are variable in length and have a length field.
- 22.9 Fragments, Reassembly, and Path MTU
-
IPv6 fragments are marked by fields in a
special fragment extension header.
- IPv6 requires the sender to fragment
the packet.
- The sending host performs path MTU
discovery. For example, the host could send smaller and
smaller test packets to the destination until receiving
acknowledgment for one.
- 22.10 The Purpose Of Multiple Headers
- The advantages of the header scheme are
economy (of header
space and transmission time )
and extensibility.
- Most datagrams will just use the base header
and that will keep the average amount of header used in IPv6
packets to a minimum.
- On the other hand, the scheme allows the header
to be very large and to carry a great
deal of information when desired.
- 22.11 IPv6 Addressing
- IPv6 addresses have a network prefix part and a
host suffix part.
- However in IPv6, there are no address classes
and you cannot tell from looking at an address where the
boundary lies between the network prefix and the host suffix. (Routing tables need to include the prefix length
information.)
- IPv6 doesn't have broadcast addresses.
- An IPv6 address is:
- unicast (goes to a single
computer), OR
- multicast (goes to all members of
a designated set of computers), OR
- anycast (goes to the 'closest'
member of a designated set).
- Anycast can be used, for example, to make a
database query from one of a group
of servers, print a file on one
of a group of printers, or request to download
a web page from one of a group of servers (maybe the one
that is the least busy).
- 22.12 IPv6 Colon Hexadecimal Notation
- If we decide to use dotted decimal notation for IPv6 addresses,
we'll need 16 groups of numbers -- too much. For example:
105.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255
- It's a little better to write the address as 8
groups of 16-bit hexadecimal numbers:
69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF
- Using a notation called zero compression
we replace a sequence of zeros with two colons:
FF0C:0:0:0:0:0:0:B1
is shortened to:
FF0C::B1
- Many current IPv6 addresses have long runs of
zero's, so the zero compression will make them pretty easy
to write.
- IPv4 addresses will be mapped to the 32 least
significant bits of an IPv6 address with zeros in the more
significant bits.
- Of course, the computers "don't care" about numbers that seem long
to humans.
- 22.13 Summary