gher layer must perform this function if necessary. IP uses a single-octet protocol number in the packet header to identify the transport layer protocol that should receive the packet. IP version 6 (IPv6) [7] was developed by the IETF as a replacement for IPv4. It has been slowly gaining support and is supported now by a number of operating systems. The biggest initial networks of IPv6 will likely be the wireless telephony carriers who need the most important advantage of IPv6 over IPv4-that is, a much enlarged addressing space. IPv6 increases the addressing space from 32 bits in IPv4 to 128 bits, providing for over 4 billion IPv6 addresses. There are many other improvements in IPv6 over IPv4, including security. An IPv6 address is typically written as a sequence of eight hexadecimal numbers separated by colons. For example, 0:0:0:0:aaaa: bbbb CCCC dddd is an IPv6 address written in this format. It is also common to drop sequences of zeros with a single double colon. The same address can then be written as : aaaa : bbbb CCCC: dddd. IP addresses used over the public Internet are assigned in blocks by the Internet Assigned Number Association (IANA). As a result of this centralized assignment, IP addresses are globally unique. This enables a packet to be routed across the public Internet using only the destination IP address. Various proto- cols are used to route packets over an IP network, but they are outside of the scope of this book. Subnetting and other aspects of the structure of IP addresses are also not covered here. There are other excellent sources [8] that cover the entire suite of TCP/IP protocols in more detail. 1.4.3 Transport Layer The next layer shown in Figure 1.1 is the transport layer. It uses a two-octet port number from the application layer to deliver the datagram or segment to the correct application layer protocol at the destination IP address. Some port num- bers are dedicated to particular protocols-these ports are called "well-known" port numbers. For example, HTTP uses the well-known port