• Version
    • specifies version of IP
    • current version is IPv4
    • future version is IPv6
  • HLen
    • header length in size of 32-bit words
    • maximum header length = 24 = 16 (i.e. 64 bytes)
    • most of the time Hlen = 5 32-bit words(without options and pad fields)
  • TOS (Type of Service)
    • basic function is to allow packets to be treated differently based on application needs
  • Length
    • length of datagram including header in bytes
    • Maximum Datagram Size (including header) = 216- 1 = 65,535 bytes
    • Length = HLen + size(Data)
    • IP supports fragmentation and reassembly process for lower layer protocols
  • fields used for fragmentation and reassembly
    • Ident (Identifier)
      • all fragments of same IP datagram carry the same identifier
    • Flags (3 bits)
      • bit 0: Reserved; must be zero
      • bit 1: Don’t Fragment (DF)
      • bit 2: More Fragments (MF)
    • Offset (13 bits)
      • counts 8-byte chunks, not bytes
  • TTL (Time to Live)
    • TTL initial default value = 64
    • used to prevent an IP datagram from looping eternally within an internetwork
    • routers would decrement this field by 1 until it reached 0 in which case it would drop it
  • Protocol
  • Checksum
    • Checksum = the result of checksum algorithm of IP header as a sequence of 16-bit words, adding them up using ones complement arithmetic, and taking the ones complement of the result
    • not the same as CRC but is much easier to calculate
  • SourceAddr - example,172.217.6.142
  • DestinationAddr - example, 208.67.222.222
  • Options (optional)
  • Pad (optional)
  • Data
    • size of data is determined by header size
    • Maximum Data Size = 65,535 - header size
    • Data Size = Length - HLen