IPv6地址、单播、多播/组播介绍

您所在的位置:网站首页 ipv6中的6是什么意思啊 IPv6地址、单播、多播/组播介绍

IPv6地址、单播、多播/组播介绍

2023-12-21 09:04| 来源: 网络整理| 查看: 265

IPv6地址、单播、多播/组播介绍 1. IPv6地址介绍

这里主要介绍IPv6地址,什么是IP地址就不介绍了。

IPv6地址主要是为了解决IPv4地址枯竭的问题。

1.1 IPv6地址的格式

IPv6地址有128位,通常使用16进制表示,一个16进制数可以表示4位二进制,因此128位可以使用32个16进制数表示,而把4个16进制数又分成一组,因此128位可以表示成8组。

如下图所示,一个X表示一组(4个)16进制字符串,也就是一组包含了16个二进制。一共有8组。

image-20210417154840638

图片来源:《IPv6 Fundamentals A Straightforward》

1.2 IPv6地址简写方式

一个完整的IPv6地址有32个十六进制字符串表示,太长了,可以简写,简写规则有两种:

省略每一组开头的0省略连续的若干个0,使用两个冒号::表示省略的0。 1.2.1 省略开头的0

使用第一种简写规则,省略开头的0,如下图所示:

image-20210417155501703

1.2.2 使用双冒号代替连续的0

如果使用第二种规则,省略连续的0,使用两个冒号表示::,如下图:

image-20210417155636668

1.2.3 两种方式结合

如果把两种规则结合起来,也是最常见的写法,如下图:

image-20210417155832702

1.2.4 简写时注意事项 双冒号::只能在IPv6地址中出现一次 比如地址:ffff:0000:0000:ffff:0000:0000:0000:0001,就不能写成:ffff::ffff::0001,因为这样写根本不知道原来的地址是什么样的。使用双冒号::代替连续0最多的 比如地址:ffff:0000:0000:ffff:0000:0000:0000:0001,后面有连续的三组都是0,因此应该使用双冒号::代替这里,因此标准简写应该是ffff:0000:0000:ffff::00001。连续的0出现位置一样多,双冒号代替先出现的(最左边的)。 比如地址:ffff:0000:0000:ffff:ffff:0000:0000:ffff,第一二组是连续的0,第六七组也是连续的0,标准写法应该是只能使用双冒号::代替先出现的,也就是第一二组,标准写法为:ffff::ffff:ffff:0000:0000:ffff 1.3 IPv6地址分类

IPv6地址分类基本可以如下图所示:

image-20210417161712823

IPv6地址可以分为三种类型:单播地址、多播地址、任播地址。

2. 单播地址unicast

如上图,单播地址可以分为6种:

Global UnicastLink-Local UnicastLoopbackUnspecifiedUnique LocalEmbedded IPv4 2.1 Global Unicast Address

全局单播地址Global Unicast Address前缀是2000::/3,/3表示子网掩码,表示前面3位是固定的,跟IPv4掩码一样的。

全局单播地址全局唯一,不会重复,全局单播地址Global Unicast Address就像我们IPv4的公网IP地址。

2.2 Link-Local Unicast

Link-Local Unicast 前缀是fe80::/10,用于一个局域网内,不同的局域网的Link-Local地址可以重复。

类似IPv4的私网IP,比如IPv4的192.168.0.1

2.3 Loopback

回环地址Loopback前缀是::1/128,使用回环地址的数据包不会经过网卡,回环地址用于本地测试。

跟IPv4的回环地址127.0.0.1是一样的。

2.4 Unspecified

unspecified未指定的,这个地址固定就是全0,表示没有IPv6地址。

2.5 Unique Local

看名字,有个单词local,这个地址也是用于局域网,但是不同局域网的Unique Local Address不会重复。

那么不同的局域网如何保证产生的地址不重复呢?这涉及到一个算法,这里就不介绍了,这个地址的生成就类似UUID的生成。

2.6 Embeded IPv4

这个地址就是把IPv4地址包含在IPv6地址中,把IPv6地址的高80位全部设置为0, 然后中间16位设置为1, 低32位设置为IPv4地址。如下图:

image-20210417163307557

3. 多播地址multicast

还是这个图,怕看到这里忘了,再放一次:

image-20210417163442624

多播地址有很多种,重要的有三种:

Well-KnownTransientSolicited-Node 3.1 多播地址格式介绍

如下图:

每个字段的意思图上都有解释,主要说说Scope字段,这个字段表示了多播的范围,按照字面意思可能不好理解,如下图:

3.1 Well-Known

Well-Known 多播地址前缀是ff00::/12,也就是最常见的多播地址。

image-20210417164903410

注意:

​ IPv6没有广播地址,Well-Known多播地址包含了广播地址,比如上图中第一条地址,多播给多有设备,就是广播。

3.2 Transient

这个,,先不讲了

3.3 Solicited-Node

这个,,有点没看懂,简单说说。。。

Solicited-Node多播地址前缀是ff02:0:0:0:0:1:ff00::/104。

书上说Solicited-Node多播地址用于主要用于NDP(Neighbor Discovery Protocol)协议,NDP协议的功能有两个:

Address resolutionDuplicate Address Detection (DAD)

NDP协议的Address resolution功能就类似IPv4的ARP协议,名字都一样,就是根据IP地址请求MAC地址。

DAD功能是用来检测局域网中的所有设备的单播地址都是不同的。

3.3.1 单播地址到Solicited-Node多播地址的映射

Solicited-Node多播地址前104位是固定的,还剩下的24位则是来自单播地址,这剩下24位和单播地址是相同的。

如下图,把单播地址的低24位拷贝过来,作为Solicited-Node多播地址的低24位。

image-20210417171127850

image-20210417171217041

如上图,这个单播地址可以是全局单播地址,也可以是Link-Local单播地址。

3.3.2 Solicited-Node多播地址到MAC地址的映射

这个映射提现了多播地址比广播地址好的地方。。。。

Solicited-Node多播地址要映射到MAC地址上,就是Mac地址的高12位不变,低32位改为Solicited-Node多播地址的低32位。如图所示:

我之前以为MAC地址是固定不变了,原来可以改变。

这里我有个疑惑,每个设备有个公网地址Global Unicast Address,也有一个私网地址Link-Local Unicast Address,那这样不是会产生两个Mac地址吗????

这样映射有什么好处?

​ 多播地址只能用于目的地址,因此这样的数据包发出去后,目标设备接收时,只看Mac地址就可以知道,是不是发给自己的,就不用拆包查看IP地址了。

4. IPv6地址查看

查看了自己电脑的IP,如下图:

image-20210417172219006

可以确定的是有一个回环地址:::1/128,还有个Link-Local地址:fe80::b105:a91f:85a5:e1ef/64。

参考资料

《IPv6 Fundamentals A Straightforward》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3