Why IPv6 exists
IPv4 has about 4.3 billion addresses - we ran out. IPv6 uses 128-bit addresses (written in hexadecimal), giving a practically unlimited supply. It also drops broadcasts in favour of multicast and neighbour discovery, and simplifies the header.
Reading and shortening an address
An IPv6 address is eight groups of four hex digits separated by colons, e.g. 2001:0db8:0000:0000:0000:ff00:0042:8329. Two rules shorten it: drop leading zeros in each group, and replace ONE run of all-zero groups with '::'. That example becomes 2001:db8::ff00:42:8329. You may use '::' only once, because otherwise the length would be ambiguous.
Address types
Global unicast (starts 2000::/3) is internet-routable, like a public IPv4. Link-local (fe80::/10) is auto-configured on every interface and used only on the local link - a bit like APIPA. Unique local (fc00::/7) is the private-use range. Multicast (ff00::/8) replaces broadcast. Loopback is ::1.
Getting an address
Hosts often self-assign using SLAAC, learning the network prefix from a router advertisement and generating the interface ID themselves - no DHCP server required. DHCPv6 is still available when central control is needed. Dual-stack means running IPv4 and IPv6 side by side during the transition.