# Why is the IPv6 link-local address range a /10 rather than e.g. /12 or /16?

I'm currently studying for my CompTIA Network+ Exam and am a bit confused as to why the IPv6 link-local address is a /10 and not a /12 or /16. Since each character in an IPv6 address is 4-bits and each section of a IPv6 address contains 4 hexadecimal characters, how can you effectively "split" a character and have a /10? And then on top of that, link-local addresses always starts with FE80, correct? And isn't 8 in binary 1000? It's not making any logical sense to me why /10 is used over /12 or /16. Any help and insight will be much appreciate! Thanks!

It is because IP addresses are binary numbers. The text representation is simply to make it easier for humans to read. RFC 4291, IP Version 6 Addressing Architecture explains the 10-bit prefix:

``````|   10     |
|  bits    |         54 bits         |          64 bits           |
+----------+-------------------------+----------------------------+
|1111111010|           0             |       interface ID         |
+----------+-------------------------+----------------------------+
``````

Link-Local addresses are designed to be used for addressing on a single link for purposes such as automatic address configuration, neighbor discovery, or when no routers are present.

You can break IPv6 prefixes on any bit boundary, just like you can with IPv4 prefixes, although the recommendation is to break IPv6 prefixes on nibble (hexadecimal character, four-bit) boundaries, it is not a requirement. Other IPv6 ranges break on non-nibble boundaries, too. For example the ULA addressing range is `fc00::/7`.
Before you ask why it isn't `fe80::/64`, see the answer to this question.
• This doesn't answer the question, you're just quoting the RFC. The question is Why is it a /10 and not a /12 or /16. Why couldn't the link local scope have been `FE8x::/12`, or `FE80::/16`. Aug 7, 2023 at 17:24