网桥的工作原理(1)
缓存:网桥首先会对收到的数据帧进行缓存并处理
过滤:判断入帧的目标节点是否位于发送这个帧的网段中(同一端口中) ,如果是,网桥就不把帧转发到网桥的其他端口
转发:如果帧的目标节点位于另一个网络,网桥就将帧发往正确的网段 (向另一端口转发)
网桥的工作原理(2)
学习:当帧经过网桥,网桥首先在网桥表中查找帧的源MAC地址,
如果该地址不在网桥表中,则将有该MAC地址及其所对应的网桥端口信息加入(逆向学习法)
扩散:如果在表中找不到目标地址,则按扩散的办法将该数据发送给与该网桥连接的除发送该数据的网段外的所有网段。
以混杂方式工作(接收连接到该网桥的局域网上传送的所有帧)。
每个桥维护了一个基于MAC地址的过滤数据库,网桥根据这个数据库,把收到的帧往相应的局域网(端口)进行转发。
在过滤数据库中,列出了每个可能的目的地(目的MAC地址),以及它属于哪一条输出线路(一个端口号,即表示转发给哪个LAN),每个表项还有一个超时设置
(可以及时学习改变了的地址)
假设桥在端口x上接收到一个MAC帧,有如下规则
1查询过滤数据库,决定该目的MAC地址是否列在除端口x外的其它端口中。
2如果目的MAC地址没有找到,把该帧往除了它所到来的端口外的所有端口发送,即进行扩散。
3如果目的地址列在过滤数据库中的某个端口y中,其中,决定是否端口y处在阻塞或转发状态。在以后的生成树算法中我们可以看到,一个端口可能有时候是阻塞的,以防止它接收或发送帧。
4如果端口y是非阻塞的,把该帧通过端口y转发到它所连接的LAN中。
网桥会把广播帧向网桥的到来端口外的所有其它端口转发,即通过网桥连接的站点位于同一个广播域(broadcast
domain),这些节点能相互接收彼此的广播帧。
学习:站点A给B发送数据,网桥通过察看帧的源地址了解到A在端口1,过滤数据库中加入<A,1>。
扩散:网桥并不知道B在何处,因此把帧向所有其它端口(即端口2和3)进行扩散。
转发:B收到A发过来的帧之后,可能会进行回应,即B发送数据给A,这个时候网桥察看源地址了解到B在端口2上,加入表项<B,2>,同时帧的目的地址A在
过滤
数据库中存在,并且在端口1上,因此B发回给A的帧向端口1转发
过滤:现在站点C向A发送数据,由于A、C和网桥连接到同一个集线器上,网桥也会收到该帧,察看源地址C,记录C在端口1,加入表项<C,1>,同时目的地址A在
过滤数据库中并且所在的端口正是收到该帧的端口,因此不进行转发。
老化:过滤数据库表项的TTL每秒都增加,超过某个值则从数据库中清除,一般缺省的TTL设置为300秒。老化主要是考虑到网桥的内存有限、节点移动的情况。
定期清除,像计时器一样
网桥工作原理1,布布扣,bubuko.com
网桥工作原理1
原文:http://blog.csdn.net/mariofei/article/details/23298603