he length of all fragments, except the last one, is a multiple of eight bytes. The fragment offset value tells where, in multiples of eight bytes, in original datagram this fragment starts. In the first fragment the offset is zero. The time-to-live field is supposed to count time in seconds and its purpose is to prevent datagrams for wandering around forever, which might happen if routing tables became corrupted. The maximum lifetime would then be 255 seconds. In practice, it is decremented by one on each hop. When it hits zero, the packet is discarded and a warning packet (ICMP message) is sent to the source host. When the destination host has received all fragments, it assembles the complete datagram to be given to the higher layer protocol. The proto- col field defines the higher layer and it is, for example, 6 for TCP and 17 for UDP. Header checksum verifies the header only. Every router must recompute it, because the time-to-live field changes at each hop. Source Data Communications and destination address fields contain the IP address described earlier. The options field needs not to be used but it may be useful for debugging rout- ing problems. A network manager may, for example, set the options field to indicate that each router must insert its address to the options field. Pad- ding fills up the IP header SO that it contains complete 32-bit words. 6.6.4.4 IP Version 6 The main problems of IPv4 have been address shortages, poor security, and poor handling of real-time services. The new version, IPv6, was specified by IETF and its major goals [3] are listed next: Increase address space to support billions of hosts. Reduce the size of routing tables. Simplify the protocol to make the routing process faster. Provide better security. Improve quality of service, particularly for real-time services. Make roaming possible for hosts without changing its address. Permit the old and new protocols to coexist. IPv6 specifications have been available for many years but version four is still the only one in wide use. H