vorige  | index  | volgende |

IPv6 Header

Niet alleen werd de IP-adresstructuur gewijzigd, ook de header onderging een aantal grondige wijzigingen die o.a. tot een grotere performantie moeten leiden. Ter vergelijking:

IPv4 header

      +-------+-------+---------------+-------------------------------+
      |Version| 4 bits|    8 bits     |         16 bits               |
      | == 4  |  IHL  |Type of Service|       Total Length            |
      +-------+-------+---------------+-------------------------------+
      |            16 bits            | 4 bits|       12 bits         |
      |        Identification         | Flags |    Fragment Offset    |
      +-------------------------------+-------------------------------+
      |     8 bits    |    8 bits     |         16 bits               |
      | Time to Live  |   Protocol    |       Header Checksum         |
      +-------------------------------+-------------------------------+
      |                            32 bits                            |
      |                         Source Address                        |
      +---------------------------------------------------------------+
      |                            32 bits                            |
      |                      Destination Address                      |
      +---------------------------------------------------------------+
      |                            options                            |
      |                        variable length                        |
      +---------------------------------------------------------------+
	  
      |----                       32 bits                         ----|

        totale lengte 5 x 4 bytes: 20 bytes + opties (variabel)

IPv6 header

      +-------+---------------+---------------------------------------+
      |Version|    8 bits     |             20 bits                   |
      | == 6  | Traffic Class |            Flow Label                 |
      +-------+---------------+-------+---------------+---------------+
      |            16 bits            |    8 bits     |    8 bits     |
      |         Payload Length        |  Next Header  |   Hop Limit   |
      +-------------------------------+---------------+---------------+
   4  +                            128 bits                           +
   x  +                                                               +
  32  +                         Source Address                        +
      +---------------------------------------------------------------+
   4  +                            128 bits                           +
   x  +                                                               +
  32  +                      Destination Address                      +
      +---------------------------------------------------------------+
                  
                  totale lengte 10 x 4 bytes: 40 bytes

Verschillen tussen IPv6 header en IPv4 header

  1. "IHL" (Header Length) bestaat niet meer
  2. De primaire IPv6 header is altijd precies 40 bytes lang. Eventuele opties worden meegegeven in optionele extension headers. Hierdoor krijgen de backbone-routers het heel wat makkelijker: ze kunnen er vanop aan dat elke header net even lang is, en ze moeten zich niet bezighouden met niet relevante opties.

  3. Nieuw veld "Next Header"
  4. Het next header veld bevat het type van het volgende veld: een IPv6 extension header of een header van een bovenliggende netwerklaag (bv. TCP)

  5. "Time to live" wordt hernoemd naar "Hop Limit"
  6. Maakt beter duidelijk waar TTL eigenlijk voor staat: voor elke node die gepaseerd wordt, wordt de Hop Limit verlaagd. Als de Hop Limit nul is, wordt het pakket genegeerd ("vernietigd").

  7. "Total length" wordt hernoemd naar "Payload Length"
  8. Aangezien de lengte van de IPv6 header bekend is moet deze niet meer meegenomen worden in de lengte berekening. Verder voorziet IPv6 in zogenaamde jumbo-grams: d.w.z. paketten waarvan de totale lengte meer dan 64kB bedraagt. Daartoe wordt het payload length veld op nul gezet en wordt een extra extension header ingevoerd.

  9. IPv4 fragmentatie velden verdwijnen: "Identification", "Flags" en "Offset"
  10. IPv6 voorziet enkel in end-to-end fragmentatie, met een speciale extension header die enkel door de eindstations gelezen wordt. De communicerende eindstations moeten aan de hand van MTU-discovery zelf de Maximum Transfer Unit (MTU) bepalen.

    Pakketten kunnen onderweg niet meer in fragmenten worden onderverdeeld. De reden hiervoor is tweeërlei: eerst en vooral bezorgde het fragmenteren van IP-paketten de routers veel overlast, en ten tweede zorgde het fragmenteren ook voor beveiligingsproblemen.

  11. "Header checksum" verdwijnt
  12. Er wordt geen header checksum meer berekend omdat dit weinig garanties biedt op de integriteit van de data, en omdat onderliggende of bovenliggende (transport)lagen toch al in een checksum voorzien. Verder zorgt het berekenen van de checksum voor een onnodig belasting van de routers.

  13. Een nieuw veld: "Flow label"
  14. Tesamen met het vroegere "Type of service" (nu Traffic Class) moet het Flow Label Quality of Service mogelijk maken. Traffic Class geeft aan welke gewenste prioriteit dit pakket heeft. Het begrip "flow" moet als volgt geïnterpreteerd worden: een aantal pakketten die samen één datastroom volgen, vormen een flow. Het flow-label dient ter identificatie van deze stroom en moet het mogelijk maken om resources te prealloceren. Alle pakketten afkomsting van hetzelfde source adress en met hetzelfde fow-label worden geacht tot die flow te behoren.

    Natuurlijk hangt de implementatie van Quality of Service niet van IPv6 alleen af: IPv6 blijft een pakket-geschakeld netwerk-protocol, dat afhankelijk is van de onderliggende data-link laag.

vorige  | index  | volgende |














$Author: ben $ $Date: 1999/03/21 16:35:35 $ $Revision: 1.2 $