闲谈IPv6-组播和广播

IPv6试着将骚扰降低到了最低,虽然还不完美,但至少适应了时代!

IPv4年代,一个IP网段对应一个以太网,因为连接连接层和IP层的EARP是基于广播的。我们通告文档公告可知,一个以太网可以承受的主机数量从几十台到上千台不等,我们还知道,一个1000BaseT的单线缆长度不能超过千米,这些都是物理限制。

逻辑上与物理无关的IP网络因为ARP被广播域的大小所限制,再加上Spanning Tree协议的物理收敛限制,在现实中,我们很难实现10000台主机的一个二层网络。换句话说,B类IP网络根本无法映射到一个单独的以太网中。


进化到IPv6,事情必须改变!


在IPv6的理论标准中,一个 网段 至少要承担64bit数量的主机,这是个天文数字!想象一下如果运行IPv4协议,如果一个64bit数字数量的主机组成了一个以太网,通信所需的ARP广播将会如何侵袭整个网络,这是赤裸裸的自找的广播风暴!

在IPv6时代使用广播解析链路层地址,根本就不现实!广播会把整个链路全部淹没!


那么怎么办?


IPv6摒弃了广播,采用了一个缩减版的多播来替代。

IPv6的链路层邻居解析旨在将亿万台的设备MAC地址进行散列分组。假设IPv6地址的主机标识符均遵循EUI-64规则,或者换句话说,它们均遵循MAC地址一一对应规则,那么将所有处在同一个网段中的亿万主机按照其MAC地址的低24位进行取模散列,就会得到一个值,该值作为一个多播地址,该多好!如此一来,解析单独IPv6地址的请求就不必发给全部的主机了!

该机制一下子把多播域缩短了 2 64 2 24 \dfrac{2^{64}}{2^{24}} 224264,减少骚扰了这么多的主机!

如果一个主机的某个接口上配置了一个IP地址A,那么该主机自然需要侦听一个多播地址,该地址为:
M = f ( A ) M=f(A) M=f(A) 具体算法参见 https://tools.ietf.org/html/rfc3513#section-2.7
如果另一台同网段的主机需要解析A的MAC,那么它根据地址A可以计算出M,然后它只需要将请求发给M即可!


不是说IPv6使用组播代替广播是一种优化,而是说,不用组播而继续使用广播,根本就行不通!

浙江温州皮鞋湿,下雨进水不会胖!

你可能感兴趣的:(闲谈IPv6-组播和广播)