One address, several spellings
01IPv6 addresses are 128-bit values. Several strings can name the same value; canonical means the chosen consistent output spelling. This makes logs and searches easier to read.
The formatter emits lowercase, suppresses leading zeros, and compresses the leftmost longest zero run. Both original inputs remain legitimate.
Source for this drawing: RFC 5952 · Read RFC section 4 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Accept legitimate input; generate a consistent spelling.
- An IPv6 address has eight 16-bit groups. Each group uses up to four hexadecimal digits (0–9 and a–f); one digit represents four bits.
- RFC 4291 permits leading zeros, either letter case, and one :: replacing one or more all-zero groups. These choices can preserve the same address.
- RFC 5952 §4 says its generation recommendation SHOULD be followed. All implementations MUST accept and handle any legitimate RFC 4291 format; a noncanonical spelling is not automatically invalid.
This guide changes text, not address bits or routing. Canonical spelling helps operations but does not authenticate a machine. Examples use documentation addresses; no connection is made.
Read the RFC section ↗