我结束了我的岗位上IPv6地址设计说我会向您展示与十六进制数的工作了几个简单的技巧跟进。然后,IPv4地址的IANA池的长期预测枯竭发生了,我被分心,并写了一对夫妇在该帖子。但现在是时候对我的承诺做好;迟到总比不到好。
点分十进制非常适合于表示IPv4地址;其32位被分成4个8位字节,然后将每个八位组的那些都在0和255之间写入其十进制等效-some十进制数 - 和由点分开。
一个128位的地址则是另一回事。点分十进制,IPv6地址可能看起来像:
32.1.13.184.35.24.105.196.131.84.126.3.218.92.171.205
它的长,它更难以阅读,和点号可以很容易不小心混杂的数字,你读它。这是很难的眼睛。
而不是破128位的IPv6地址成16个八位位组和写入每个八位位组为十进制数分离由点,让我们打破相同的地址分成8个16位的段和写入每个段为十六进制数分离用冒号:
2001年:将0db8:2318:69c4:8354:7e03:da5c:ABCD
不可否认它仍然不是整洁的IPv4地址,但它更容易比它的点分十进制形式阅读。它是较短的,在数字的更大变化(16而不是10)可以更容易地读取,并且冒号的更清晰的分离降低了“混杂因素”。
只是为了好玩,写在IPv6的风格十六进制表示的IPv4地址192.168.213.84是c0a8:D554。地址看起来外交和恐吓你,如果你还没有六角工作过,但一旦你习惯了它,你会发现用十六进制的工作更容易比用点分十进制工作。特别是,它更容易为十六进制和二进制之间的转换不是十进制和二进制之间。
这样做的原因是,每个十六进制位有16个可能的值(0 - f)中,对应于一个4位二进制数的16倍可能的值。这很容易记住16个值或快速运作他们在你的脑袋:
十六进制数字 | 十进制等效 | 二进制数 |
---|---|---|
0 |
0 |
0000 |
1 |
1 |
0001 |
2 |
2 |
0010 |
3 |
3 |
0011 |
4 |
4 |
0100 |
五 |
五 |
0101 |
6 |
6 |
0110 |
7 |
7 |
0111 |
8 |
8 |
1000 |
9 |
9 |
1001 |
一个 |
10 |
1010 |
b |
11 |
1011 |
C |
12 |
1100 |
d |
13 |
1101 |
Ë |
14 |
1110 |
F |
15 |
1111 |
十进制数,而另一方面,仅具有10个可能值(0 - 9),所以有十进制数字和的二进制数字的任何组之间没有一个一一对应。相反,我们选择十进制表示一个字节的256个可能的值,因为电脑和路由器定期与八位位组(字节)的工作。这是很难记住256个不同的值,所以我们采取了一点算术十进制和二进制之间的转换。
例如,以十进制数213如果我们要找到它的二进制等效值,我们首先要知道一个二进制字节的,从左至右的位置值是:
1286432168421
我们与所有八个地点值未知开始了:
XXXXXXXX
213是大于128,因此,我们写在“128”代替1:
1XXXXXXX
213-128 = 85,这是大于64,所以我们写在“64”代替1:
11xxxxxx
85-64 = 21,这比32小,所以我们写在那个地方一个0;它是大于16,所以我们在那个地方写1:
1101xxxx
21-16 = 5。这比8小,所以我们写在“8”代替0;它比4大,所以我们写在“4”的地方1:
110101xx
5-4 = 1,所以在“2”位置0,并在“1”的地方1,我们就大功告成了:
213 = 11010101
从二进制转换为十进制使用的简单算术的步骤相似序列,但我们添加的,而不是减法。看看下面的八位字节:
10011010
知道的地方的价值观,我们可以看到有1克的在128,16,8,和2个地方。128 + 16 + 8 + 2 = 154。所以:
10011010 = 154
这些转换很容易,可以在一张纸上快速地解决。但看看多么容易是十六进制和二进制之间的转换。取十六进制数8C(二进制八位位组的每一个可能的值可以用两个十六进制数字来表示):
你不知道的纸张援助是8个二进制相当于1000
你知道C的二进制数(十进制12)是1100。
所以,只要把那些值加在一起,你有你的转换:
图8c = 10001100
这是一样容易在另一个方向转化。以二进制八位01110101.就掰成两个4位数字,0111和0101:
0111 = 7
0101 = 5
所以:
01110101 = 75
你甚至不需要记住对应的16位16进制十六进制数;你只需要知道的四个地方的值是8,4,2和1。因此,例如,0101是4 + 1 = 5。1110是8 + 4 + 2 = E(十进制14)。
IPv6地址表示16位,或2个八位字节,各结肠之间。转换是很容易。就拿本文前面使用的示例地址:
2001年:将0db8:2318:69c4:8354:7e03:da5c:ABCD
让我们说,你需要看到该地址,69c4的第四部分,以二进制:
6 = 0110
9 = 1001
C = 1100
4 = 0100
坚持它一起:
69c4 = 0110100111000100
或者,也许你与一个地址的二进制部分可视化的地址设计,并且需要转换的结果返回给六角工作。让我们用下面的16位数字:
1111000011001100
再次,只是把它分解成4位部分,找到六角相当于每个部分,并把十六进制数字一起:
1111 = F(一个当然是容易)
0000 = 0(不开玩笑!)
1100 = C
1100 = C
所以:
1111000011001100 = f0cc。
每过一段时间就需要十进制和十六进制,例如与IPv6地址中嵌入IPv4地址的隧道协议作业时,之间的转换。如果你没有一个科学计算器方便,你仍然可以快速转换对位的草稿纸,使用的是什么您已经知道:从十进制转换为二进制文件,然后以十六进制或从十六进制到二进制文件,然后以小数。十六进制和二进制之间的转换是很容易,没有必要对任何更多的花样添加到您的袋子。
当您在网络中启用IPv6,您的工程师和网络运营商将需要能够做转换。使用这些技术,它的东西,你可以在一个快速20分钟的白板会话教给他们。