IPv6 addresses are 128 bits long, providing more than 3.4 x 10^38 unique addresses, with addresses written in groups of 4 hexadecimal characters. IPv6 headers include a Flow Label field that can prioritize packets sent from a particular source to a specific unicast, anycast, or multicast destination. IPv6 supports various address types including link-local for layer 2, unique/site-local for an organization, and global for internet communication.