ProtocolIPv4IPv6
Address 4 Octet xx.xx.xx.xx *
5 Classes *
Class A ~ 2^26 local @
Class B ~ 2^20 local @
Class C ~ 2^256 local @
Class D - multicast
Class E - experimental

Class A ~ 1st octet specifies domain *, high bit of high octet 0
Class B ~ 1st 2 octets specifies domain *, high 2 bits of high octet 10
Class C ~ 1st 3 octets specifies domain *, high 3 bits of high octet 110

Note that some IPs are reserved for special purposes :
see "Reserved IP addresses" on Wikipedia.

64 bit subnet prefix / 64 bit interface identifier *
Classless * - single sized domain id makes routing much easier.

Node ID often generated from/consists of MAC@
Newer OSes attempt to obscure this for security reasons.

Size Size field 16 bit
20 bytes(just header) - 65535 bytes. *

Fragmenting (usually) permitted *

  • Different hops/links along path may fragment initial packet.
  • Size field 16 bit
    Packet created to match minimum allowed along path or 1280 (default)*

    Minimum IPv6 packet 40 bytes (header).
    Maximum 65535, but only if all hops support.

    Fragmented packets NOT permitted *

  • Fragmenting must occur at source and reassembled at destination. Packets are not allowed to be fragmented once they leave source.

    IPv6 supports Jumbogram, (2^32)-1 if all hops support.

  • HeaderVariable length
    20 - 60 bytes. *
    Standard 40 octet. *

    Allows linking 8 octet 'extension' headers following main header

    Header structure http://en.wikipedia.org/wiki/IPv4#Header

    Version Id. 4-bit *

    IHL (header length) 4-bit

  • IHL * 32 bit/word = total header length. 20-60 bytes.

    DSCP

    ECN

    Total Length 16-bit * of IP packet.

    Identification - used when packet is fragmented.

    Flags

  • bit 0
  • bit 1 - Don't fragment (not allowed if set to 1)
  • bit 2 - set to 1 - fragmented, set to 0, not fragmented or last fragment

    Fragment offset * - fragment sequence #

    TTL (Time to live) * - decremented at each hop, also checked for age

    Protocol - type of data
    see http://en.wikipedia.org/wiki/List_of_IP_protocol_numbers

    Header check sum * - needs to be recalculated each hop.

    Source IP *

    Destination IP *

    Options - seldom used

  • http://en.wikipedia.org/wiki/IPv6_packet#Fixed_header

    Version Id. 4-bit *

    Traffic class. 8-bit

    Flow label. 20-bit

    Payload length * 16-bit - set to zero if Jumbo-gram.

    Next header * 8-bit - link to 1st additional header block if used.

    Hop Limit 8-bit * Source IP 128-bit *

    Destination IP 128-bit *

    * Note : NO check-sum - check-sum recalculation slowed hop and multiple checks at other layers of TCP/IP stack guarantee packet delivery.

    Pointer to first link in linked list of Extension Headers. Linked Extension list placed between the IPv6 header and the protocal (data body).

    IPv6 uses one of the next header nodes to specify the type of transport layer data.

    Data
    Transport layer
    Data - various types

    256 possible data types, 142 assigned.

  • 1 - ICMP
  • 6 - TCP
  • 17 - UDP
  • 41 - ENCAP - IPv6 encapsulation, for moving IPv6 packets across an IPv4 network.
  • etc.

    http://en.wikipedia.org/wiki/List_of_IP_protocol_numbers

    68 bytes minimum - 64KiB maximum.

    If permitted, data can be fragmented over a particular link.

  • Data - various types

    256 possible data types, 142 assigned.

  • 1 - ICMP
  • 6 - TCP
  • 17 - UDP
  • etc.
  • Lectures