(Latest Revision: 
Mon Oct 21 23:57:23 PDT 2002
) 
 
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 accomodated all the growth in networking from that time to
	  now!
     
 -   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.
     
 -   Also to support real-time delivery of audio and
	  video  there is a perceived need to offer more "qualities of
	  service."
     
 -  Additionally there is a  perceived need to
	  accommodate new forms of addressing and routing  such as
	  "group" addressing wherein  one  member of a group gets a
	  copy of a message -- the member that costs the least to reach.
     
 -  
     
 
 -  22.4 A Name And A Version Number
     
 
     -  The  current IP protocol is IPv4  
     
 -  The  new IP protocol is IPv6 (aka IPng) 
     
 -  
     
 
 -  22.5 Characterization Of Features In IPv6
     
     -   IPv6 addresses  are four times the
	  length of IPv4 addresses:   128-bits 
	  instead of 32-bits!
     
 -  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
     
     -  There is a diagram depicting the IPv6 datagram header on 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)
	  
 -  PRIORITY: 8-bits; routing priority
	  
 -  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
     
     -  In  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
	  acknowledgement 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 packets 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 Addresssing
     
     -   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.) 
     
 -  Network broadcast addresses do not exist in IPv6.
     
 -  An IPv6 addresss is:
          
	  -   unicast  (goes to a single
	       computer),
	  
 -   multicast  (goes to all members of a set of computers), or
	  
 -   anycast  (goes to the closest
	       member of a set.)
	  
 
      -  Anycast can be used, for example, to get 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 the closest of a group of servers.
     
 -  
     
 
 -  22.12 IPv6 Colon Hexadecimal Notation
     
     -  If we use dotted decimal notation for IPv6 addresses, we need to
	  have 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" that the number seem long to
          humans.
     
 -  
     
 
 -  22.13 Summary