IPv6前缀是什么?
IPv6被越来越的人使用,其中前缀在IPv6里是一个很重要的定义,那么什么是IPv6前缀?这个前缀又是什么意思?这个前缀有什么用?网上大多数都是解释的很专业,比较难懂,今天用一篇通俗易懂的文章来讨论一下。
说到IPv6的前缀,需要涉及到二进制、十进制、十六进制、IPv6的规则、子网划分等概念,下面我们一个一个的讨论。
一, 二进制、十进制、十六进制
我们先看下面这个表格,列出了0-15之间16个数字,分别对应的二进制和十六进制。
十进制 | 二进制 | 十六进制 |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | a |
11 | 1011 | b |
12 | 1100 | c |
13 | 1101 | d |
14 | 1110 | e |
15 | 1111 | f |
在计算机的世界里,只有二进制存在,也就是说,电脑只认识0和1两个数字,我们看到的、或者我们用键盘输入的所有内容,都会由电脑的cpu转化为二进制,进行计算处理,再由cpu转换成我们能认识的内容。
二进制就是逢二向前进一位,永远只有0和1出现,比如7=111,那么8=1000,就是在111的基础上,再加上1,三位不够了,向前进一位就是1000。
十六进制同样的道理,逢16向前进一位,永远只会出现0-f之间的16个字符。比如十进制的25,用十六进制表示就是:19,这里的1是16,9没有超过15,所以用本身表示,就是16+9=25。每一位十六进制的数字,都可以用4位二进制来表示,比如6,二进制表示0110。
二,IPv6的规则
IPv6由32个十六进制的数字组成,每组4个,用冒号隔开,一共8组。
abcd:1234:5678:90ab:cdef:2822:3fff:bbbb
上面这组就是一个合法的IPv6地址,我们可以看到,都是由16进制的数字组成的。
由上表得知,每一个16进制的数字,可以转换为4位的二进制。
例如:90ab=1001 0000 1010 1011,二进制一共有16位,那么一组IPv6的地址一共就是128位二进制
三,IPv6的前缀
IPv6的数字太多,多到地球上每粒沙子都能分配一个,这么多的ip怎么来划分一块一块的呢、如何区分呢?所以就有了前缀这个概念。
IPv6的前缀就是把IPv6的地址,转换为二进制,从左向右的个数。
例如:fe80::/10
这个/10就是fe80的前缀,我们把fe80转换为二进制,就是:1111 1110 1000 0000,我们从左向右数,十位二进制分别为1111 1110 10,这十位是不能动的,就意味着,前缀是不能动的,固定的,只有后面的118位是可以变动的。那么这个二进制后面就可以写为: 1111 1110 1011 1111 11111 11111 1111 1111.............
综上,fe80::/10的ip范围就是:fe80::----febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff
比如电信给我家里分配的地址为:240e:fc:b841:700::/56 ,其实就是240e:00fc:b841:0700::,粗体字不能变动,粗体后面的都属于我,想一想,这得有多少个IPv6,多的数不完。
通俗易懂,感谢分享