|  | 10.3 | IP Addresses within the IP Header
| 10.3.2 | Network layer fields

The Layer 3 packet/datagram becomes the Layer 2 data, which is then encapsulated into frames (as previously discussed). Similarly, the IP packet consists of the data from upper layers plus an IP header, which consists of:

- version - indicates the version of IP currently used (4 bits)
- IP header length (HLEN) - indicates the datagram header length in 32 bit words (4 bits)
- type-of-service - specifies the level of importance that has been assigned by a particular upper-layer protocol (8 bits)
- total length - specifies the length of the entire IP packet, including data and header, in bytes (16 bits)
- identification - contains an integer that identifies the current datagram (16 bits)
- flags - a 3-bit field in which the 2 low-order bits control fragmentation – one bit specifying whether the packet can be fragmented, and the second whether the packet is the last fragment in a series of fragmented packets (3 bits)
- fragment offset - the field that is used to help piece together datagram fragments (13 bits)
- time-to-live - maintains a counter that gradually decreases, by increments, to zero, at which point the datagram is discarded, keeping the packets from looping endlessly (8 bits)
- protocol - indicates which upper-layer protocol receives incoming packets after IP processing has been completed (8 bits)
- header checksum - helps ensure IP header integrity (16 bits)
- source address - specifies the sending node (32 bits)
- destination address - specifies the receiving node (32 bits)
- options - allows IP to support various options, such as security (variable length)
- data - contains upper-layer information (variable length, maximum 64 Kb)

- padding - extra zeros are added to this field to ensure that the IP header is always a multiple of 32 bits

| Web Links
| IP Addressing Architecture