Internet Protocol version 6

From Citizendium
Revision as of 07:57, 4 August 2008 by imported>TJ Evans (Added "big picture" section)
Jump to navigation Jump to search
This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

Internet Protocol version 6 (or as it is more commonly known "IPv6") is a method of addressing hosts or nodes on a computer network, using 128 bit addresses. IPv6 was conceived as a "next generation" upgrade from the older Internet addressing scheme IPv4, which relied on a 32-bit address space and is quickly being exhausted by the continued growth of the Internet. For more information on the "IPv4 address exhaustion" issue, please reference Geoff Huston's IPv4 Address Report.

IPv6, "The Big Picture"

A quick note or two on the design intent(s) of IPv6, aspects that are recurring ideas that will be seen throughout the underlying protocol operation, and aren't bad things to keep in mind when trying to understand what IPv6 does, how it accomplished those things and why those things are done.

# More addresses - obviously IPv6 gives su more addresses, 128bits vs 32bits ... more details to follow (see below).
# Flexibility - The ability to readily add "stuff" (capabilities, functions, etc.) to the protocol without needing to rewrite the base protocol or necessarily re-architect our environments.
# Scalability - Reduce overhead, distribute workload, smoother/easier processing,

IPv6 addresses

# A sample (unicast) address:
2001:0db8:0001:1001:0000:0000:0000:0001
-- Note the use of Hexadecimal (hex; each character == 4 bits)
---- 4 character (16 bits) per "chunk", 8 chunks, colon separated

We can compress this to make our lives easier:
-- "Drop leading zeroes" (within each chunk)
---- 2001:db8:1:1001:0:0:0:1
-- "Double-colon" (Replace any number of SEQUENTIAL, ALL ZERO chunks ... one time per address)
---- 2001:db8:1:1001::1
(This double-colon technique is also frequently used when representing a Prefix.  
For example the above address is taken from the 2001:db8::/32 space - the 2001:0db8 piece (the first 32 bits) is fixed ... the rest (all zeroes) is subject to change)
 
Note that something like this is valid as well:
2001:0db8:0000:0000:0000:0000:0000:0001 --> 2001:db8::1
(This IS about making your life easier!)


# special IPv6 unicast addresses / ranges / address formats
::                   Unspecified_Address
::1                  Loopback  localhost  ipv6-localhost  ipv6-loopback

::<v4 address>       IPv4-Compatible Addresses (DEPRECATED)
::ffff:<v4 address>  IPv4-Mapped Addresses

2000::/3             (Currently active) Global Unicast Addresses
2001:0000::/32       Teredo service prefix
2002::/16            6to4 service prefix

fc00::/7             Unique-Local Addresses
fe80::/10            Link-Local Unicast
fec0::/10            Site-Local Unicast (DEPRECATED)


# special IPv6 multicast addresses / address formats
ff00::/8             ipv6-mcastprefix
ff02::1              ipv6-allnodes
ff02::2              ipv6-allrouters

ff02::1:ffXX:XXXX    Solicited-Node-Multicast