The Internet as we use today uses IPv4 as layer 3 protocol as packet delivery mechanism. IPv4 stands for Internet Protocol version 4 which was designed back in 1980. As the Internet usage grew exponentially during the last decade, the number of free IP addresses for new allocations reduced rapidly. According to current estimates, the number of free IP addresses fallen below 5% and expected to become zero by first quarter of 2011. The IPv4 protocol uses 32 bit (4 byte) addresses limiting the possible IP address space to 2^32 (4 billion). To solve this IP address exhaustion problem. Internet Protocol version6 (IPv6) is designed and all networks are expected to migrate to IPv6 eventually. The IPv6 specification is explained in RFC 2460.
Highlights of IPv6 compared to IPv4:
Size of address increase from 32 bits (4 bytes) to 128 bits (16 bytes)
IPv6 offers lot more usable IP addresses compared to IPv4
IPv6 can carry bigger payloads compared to IPv4
IPv6 is better suited for mobile networks
IPv6 makes routing relatively simpler
IPv6 addresses are represented in hexadecimal and colon separated notation, while IPv4 is represented with dotted decimal notation.
IPv4-in-IPv6 and IPv6-in-IPv4 tunnelling mechanisms are designed for smoother transition from IPv4 to IPv6 networks.