这个问题解释起来很麻烦的诶……建议先学习osi七层模型之后再来看你现在看的资料。
首先我们要了解一个数据是怎么从一个设备传输到另一个设备上的。搞清楚这个原理,你的疑问就很好解决了……
你的理解是对的,广播只存在于第三层:网络层。而发起的广播的协议就是大名鼎鼎的ARP协议。
比如路由器发起ARP的广播(请注意,路由器是三层设备),需找与目的IP匹配的MAC地址,有人回应,那么此时将IP包分片封装成“数据帧”交由下一层:数据链路层传输。所以ARP协议是一个承上启下的协议,一不小心就很容易混淆,还以为它是二层协议呢……我们举个例子来说
ARP广播后的过程:在每台有TCP/IP协议的设备里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个广播,A主机MAC地址是“00-aa-00-00-00”,这表示向同一网段内的所有主机发出这样的询问:“我是192.168.1.5,我的硬件地址是"00-aa-00-00-00".请问IP地址为192.168.1.1的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信息了。同时A和B还同时都更新了自己的ARP缓存表(因为A在询问的时候把自己的IP和MAC地址一起告诉了B),下次A再向主机B或者B向A发送信息时,直接从各自的ARP缓存表里查找就可以了。ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(一般15到20分钟)如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。
说起二层有广播?!这个应该是没有的事,二层设备理论上只有MAC地址的缓存。所以二层交换机是不能识别IP地址的,它只认MAC地址。
二层交换机能查到ARP表,那是因为你用的是可网管交换机,这类交换机在其逻辑结构中划出了一部分作为管理区域,在管理区域内是可以设置该交换机的管理IP地址的,在这个区域内我们可以把它看成是有完整的七层结构的设备,所以你能查看到ARP表。你查看到的ARP表只是和该交换机同网段的IP与MAC地址对应表,并没有其他网段的(除非你的子网只有一个)。
那我们对可网管交换机可以做些什么呢?对物理端口进行管理:比如将不同的VLAN分配给各接口,配置接口的工作模式(全双工和半双工),控制接口的传输速度,编写基于MAC地址的访问控制列表(要高级的可网管二层交换机才行。比如H3C S3100系列的交换机,其中3100-SI的就不能写入访问控制列表,而-EI的就可以),还可以管理物理接口是否可以进行以太网供电(POE:power over ethernet),以上所说的跟IP地址一点关系都没有。