网桥对MAC地址的自动学习过程

网桥是一个能够对局域网数据帧进行过滤并转发的网络设备。通过查看数据帧MAc地址,网桥只向数据帧目的节点所在端口转发数据帧,而对其他端口过滤掉这个数据帧。只行在接收到一个广播数据帧时,网桥才会向所有助口转发这个广播帧。网桥的过滤转发功能将连接在不同端口上的主机分隔成不同的网段。意味着某个网段内部主机之间的数据传洁被网桥隔离,并不会传输到其他的网段,也不会与其他网段正在进行的数据传筋发生效据冲突。

网桥最开始怎样知道其不同的端口所连接的计算机情况?如何建立并维护它的转发表?

多数网桥采用一种称为自适应或自学习的过程建立其转发表。当网桥在圾开始接人某个局域网环境时,其转发表为空状态,之后采用以下所述的自适应过程逐步构建并完善它的转发表。
网桥从某个端口接收数据帧,通过数据帧的源MAC地址和接收到该数据帧的端口,能够了解到:拥有数据帧源MAc地址的左机位于收到这个数据帧的端口上.并将这个信息作为一条转发记录添加到其转发表中。当下一次某个数据帧的目的MAc地址与这个MAc地址相吻合时,阿娇便知道应该向哪个端口转发数据蚊。
网桥接收到一个数据帧,如果不了解应该向哪个端口转发,就向所有的口广播这个数据帧。如果这个数据帧的目标主机连接在网桥某个端口上,则必定会收到该帧。当这个目的主机追回源主机一个应答帧时,网桥便可以从这个应答锁的源毗地址中了解到该主机连接的端口。网桥同样将这个新发现的毗地址与端口号关系记人转发表,因此而不断扩充其转发表。网桥的这种自适应过程不断重复一段时间后,便能够逐步了解列其端口所连接的主机地址,从而建立起完整的转发对应表。

然而,网络拓扑不可能是永不改变的。假设我们将主机B和主机C换个位置,当主机C发出报文时(不管发给谁),交换机S1的eth1口收到报文,于是交换机 S1会更新其学习到的地址,将原来的“主机C是通过eth2网口接入的”改为“主机C是通过eth1网口接入的”。

但是如果主机C一直不发送报文呢?S1将一直认为“主机C是通过eth2网口接入的”,于是将其他主机发送给C的报文都从eth2转发出去,结果报文就发 丢了。所以交换机的地址学习需要有超时策略。对于交换机S1来说,如果距离最后一次收到主机C的报文已经过去一定时间了(默认为5分钟),则S1需要忘记 “主机C是通过eth2网口接入的”这件事情。这样一来,发往主机C的报文又会被转发到所有网口上去,而其中从eth1转发出去的报文将被主机C收到。

你可能感兴趣的:(网桥对MAC地址的自动学习过程)