(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