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 @ *

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

64 bit domain ID/64 bit subnet/node ID
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.

Size20 bytes - 65535 bytes. *

Fragmenting (usually) permitted *

  • Different links along path may fragment initial packet.
  • Packet created to match minimum allowed along path or 1280 (default)

    Packets NOT permitted *

  • Fragmenting must occur at source and reassembled at destination. Packets are not allowed to be fragmented once they leave source.
  • HeaderVariable length
    20 bytes minimum. 60 bytes max.
    IHL - 4 bit header word length count
    min. value ~ 5, max. value ~ 15
    Standard 40 octet

    Allows linking 8 octet 'extension' headers following main header

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

    Version 4-bit *

    IHL (header length) 4-bit *

  • IHL * 32 bit word = total header length.

    DSCP

    ECN

    Total Length 16-bit * - header and data.

    Identification

    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 #
       If permitted, data can be fragmented over a particular hop.

    TTL (Time to live) * - in seconds, decremented at each hop, also checked for age.
    On timeout, ICMP packet sent back to sender system with error state.

    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 *

    Traffic class

    Flow label

    Payload length * 16-bit - set to zero if Jumbogram.

    Next header * 8-bit - link to addtional header block if used

    Hop Count *

  • 8-bit - replacs TTL, 'age' of packet no longer checked, only number of hops

    Source IP *

    Destination IP *

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

    Fragmenting is not permitted.

    Linked list of header extensions.

  • Data Data - various types

    256 possible data types, 142 assigned.

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

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

    68 bytes minimum - 64KiB maximum.

  • Data - various types

    256 possible data types, 142 assigned.

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

    IPv6 protocol requires the sender to attempt to discover the smallest permitted packet size between source and destination and use that.

    1280 - default minimum if smallest size across all hops not confirmable.

    Junbogram 4GiB - only if supported across all hops.