地址的层次性
当地址总数并不是很多的情况下,有了唯一地址就可以定位相互通信的主体。然而当地址的总数越来越多时,如何高效地从中找出通信的目标地址将成为一个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。其实,在使用电话和信件通信的过程当中,早已有了地址分层这种概念。例如,电话号码包含国家区号和国内区号,通信地址包含国名,省名,市名和区名等。正是有了这种层次分类才能更加快速地定位某一个地址。如下图:
MAC地址和IP地址在标识一个通信主体时虽然都具有唯一性,但是它们当中只有IP地址具有层次性,而MAC地址是不具有层次性的)。个人理解,具有层次性就好比是mysql表使用了索引,可以快速的查询到一个主机,而没有层次性就只能全表搜索,查询效率比较慢。
那么IP地址又是怎样实现分层的呢?一方面,IP地址由网络号和主机号两部分组成。即使通信主体的IP地址不同,若主机号不同,网络号相同,说明它们处于同一个网段。通常,同处一个网段的主机也都属于同一个部门或集团组织。另一方面,网络号相同的主机在组织结构、提供商类型和地域分布上都比较集中,也为IP寻址带来了极大的方便。这也是为什么说IP地址具有层次性的原因。
网络传输中,每个节点都会根据分组数据的地址信息,来判断该报文应该由哪个网卡发送出去。为此,各个地址会参考一个发出接口列表。在这一点上MAC寻址与IP寻址是一样的。只不过MAC寻址中所参考的这张表叫做地址转发表,而IP寻址中所参考的叫做路由控制表。MAC地址转发表中所记录的是实际的MAC地址本身,而路由控制表中记录的IP地址则是集中了之后的网络号。如下图: