Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why IPv6 use colon as delimiter instead of dot? [closed]

Tags:

ipv6

I cannot find the reason why IPv6 use colon as delimiter instead of dot.
When address is described with port number, it seems clumsy to me.

[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443 

What justify using colon?

like image 682
Takahiro Hozumi Avatar asked Mar 25 '11 09:03

Takahiro Hozumi


People also ask

Why was the colon used IPv6?

Abbreviating IPv6 Addresses Most IPv6 addresses do not occupy all of their possible 128 bits. This condition results in fields that are padded with zeros or contain only zeros. The IPv6 addressing architecture allows you use the two-colon (::) notation to represent contiguous 16-bit fields of zeros.

Is IPv6 separated by colons?

In contrast, IPv6 addresses are 128 bits divided along 16-bit boundaries. Each 16-bit block is converted to a 4-digit hexadecimal number and separated by colons. The resulting representation is called colon-hexadecimal.

Can IPv6 address have dot?

An alternative format for IPv6 addresses combines the colon and dotted notation, so the IPv4 address can be embedded in the IPv6 address. Hexadecimal values are specified for the left-most 96 bits, and decimal values are specified for the right-most 32 bits indicating the embedded IPv4 address.

What does double colon mean in IPv6?

:: can be used once in an IPv6 address to replace a consecutive blocks of zeroes. It can be any length of zeroes as long as it is greater than a single block. All zeroes in a single block can be represented by :0: instead of writing out all four zeroes.


1 Answers

I looked through the older IPv6 RFCs in order to find a clue about the history, but I think the answer lies in RFC 4291 section 2.2.3:

3. An alternative form that is sometimes more convenient when dealing    with a mixed environment of IPv4 and IPv6 nodes is    x:x:x:x:x:x:d.d.d.d, where the 'x's are the hexadecimal values of    the six high-order 16-bit pieces of the address, and the 'd's are    the decimal values of the four low-order 8-bit pieces of the    address (standard IPv4 representation).  Examples:        0:0:0:0:0:0:13.1.68.3        0:0:0:0:0:FFFF:129.144.52.38     or in compressed form:        ::13.1.68.3 

That is, you wouldn't be able "embed" an IPv4-compatible address if IPv6 addresses were dot-delimited.

To address your implication about the colon clashing with a port number in a URL, I think the answer is that at the time that IPv6 was being designed in the early 1990s, hypertext and the URL were being designed at the same time. Since port numbers are separate from IP addresses, there was no standard for specifying a (port, address) tuple. (The command-line telnet client, for example, uses a space to separate the IP address from the port.)

like image 173
mpontillo Avatar answered Oct 10 '22 06:10

mpontillo