5、IPv6任播地址一到近模式,多个设备共享一个地址 。
IPv6任播地址是分配给一套属于不同节点的接口的全球地址,地址格式和IPv6单播地址相同,用来标识一组接口的地址,一般这些接口属于不同的节点 。
分配相同的ipv6地址给拥有相同功能的设备,发送方发送一个以任播地址为目标的包,路由器接收到这个包后,就转发给具有这个地址的离它最近的设备 。当一个单播地址被分配给多个接口时,单播地址自动变成任播地址 。
如下边两个图所示,第一个配置没有冲突的地址,第二个配置了另外一台主机一样的地址 。同一链路的两个主机配置了相同的ipv6地址后,后边的地址标注就是“复制” 。
文章插图
文章插图
用途:
IPv6任播地址的用途之一是用来标识属于同一提供因特网服务的组织的一组路由器 。这些地址可在IPv6路由头中作为中间转发路由器,以使报文能够通过特定一组路由器进行转发 。
另一个用途就是标识特定子网的一组路由器,报文只要被其中一个路由器接收即可 。
其中有些任播地址是已经定义好的,如子网路由器任播地址,格式如下 。
文章插图
任播地址中“子网前缀”用来标识一个特定链路 。此任播地址在句法上,与该链路上接口标识符设置为0的接口的单播地址相同 。发送到子网路由器任播地址的报文会被送到子网中的一个路由器 。所有路由器都必须支持子网任播地址 。
子网路由器任播地址用于节点需要和远端子网上所有路由器中的一个(不关心具体是哪一个)通信时使用 。例如,一个移动节点需要和它的“家乡”子网上的所有移动代理中的一个进行通信 。
任播地址具有以下限制:
任播地址不得用作IPv6 数据包的源地址;
任播地址不得分配给IPv6 主机,但是可以分配给IPv6 路由器 。
6、IPv6多播地址一对多模式 。
IPv6多播地址用来标识一组接口,一般这些接口属于不同的节点 。一个节点可能属于0到多个多播组 。发往多播地址的报文被多播地址标识的所有接口接收 。
1)IPv6多播地址格式定义:
FF00::/8
文章插图
其中:
① 11111111:8比特 。标识此地址为多播地址
② Flags:4比特 。flag域中定义如下:
文章插图
最高的3比特标记为保留域,必须为0
T = 0表示为永久分配(“公认”)多播地址(由IANA分配);
T = 1表示为多播,表示用户可使用的临时多播地址
③ Scope:4比特 。用来标记此多播组的应用范围 。
文章插图
④ group ID
标识多播组(可能是永久的,也可能是临时的,范围由scope定义)
2) IPv6永久分配的多播地址
目前的永久分配(“周知”)多播组如下:
保留的多播地址:
FF00::---FF0F::(共16个地址)
所有节点的地址:
FF01:0:0:0:0:0:0:1 (节点本地)
FF02:0:0:0:0:0:0:1 (链路本地,在本地链路范围内的所有节点)
所有路由器地址:
FF01:0:0:0:0:0:0:2 (节点本地)
FF02:0:0:0:0:0:0:2 (链路本地,在本地链路范围内的所有路由器)
FF05:0:0:0:0:0:0:2 (站点本地)
被请求节点的地址:
FF02:0:0:0:0:1:FFXX:XXXX/104
上述地址由被请求节点的单播或任播地址形成:取被请求节点单播或泛播地址的低24比特,在前面增加前缀FF02:0:0:0:0:1:FF00::/104构成 。
对于节点或路由器的接口上配置的每个单播地址或者任播地址,都会自动生成一个对应的被请求节点的组播地址 。只在本地链路范围有效 。
特点:
① 在本地链路上,被请求的节点的组播地址通常只包含一个用户
② 只要知道一个节点的IPV6地址,就能计算出它的被请求节点的组播地址,例如,和IPv6地址4037::01:800:200E:8C6C对应的被请求节点多播地址是FF02::1:FF0E:8C6C 。
作用:
① 在IPV6中没有ARP,ICMP替代了ARP的功能,被请求节点的组播地址用IPv6邻居发现协议中,用在邻居请求报文中,由于只有后24比特单播地址相同的节点才会接收目的地址为此地址的报文,因此减少了通信流量(和IPv4 ARP相比) 。
推荐阅读
- MAC 地址为什么不需要全球唯一
- Spring简单入门教程(二)spring的体系结构
- Linux regulator子系统分析之二 从数据结构理解系统实现
- 南通家纺城在哪 南通家纺城地址
- 刷透近200道数据结构与算法,成功加冕“题王”,挤进梦中的字节
- 24张图,九大数据结构安排得明明白白
- Linux下逻辑地址-线性地址-物理地址详解
- Python中的数据结构
- 路由器要不要开启IPv6?这次网络升级究竟有多大改变
- MySQL数据库表结构快速导出成MarkDown文档